[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c466b978c72a4a49a08dd84e72103963@ausx13mpc120.AMER.DELL.COM>
Date: Fri, 16 Jun 2017 16:33:54 +0000
From: <Mario.Limonciello@...l.com>
To: <pali.rohar@...il.com>, <dvhart@...radead.org>
CC: <andy@...radead.org>, <luto@...nel.org>,
<platform-driver-x86@...r.kernel.org>,
<linux-kernel@...r.kernel.org>
Subject: RE: [PATCH] RFC: platform/x86: wmi: Fix check for method instance
number
> -----Original Message-----
> From: Limonciello, Mario
> Sent: Thursday, June 15, 2017 10:16 AM
> To: 'Pali Rohár' <pali.rohar@...il.com>; Darren Hart <dvhart@...radead.org>
> Cc: Andy Shevchenko <andy@...radead.org>; Andy Lutomirski <luto@...nel.org>;
> platform-driver-x86@...r.kernel.org; linux-kernel@...r.kernel.org
> Subject: RE: [PATCH] RFC: platform/x86: wmi: Fix check for method instance
> number
>
> > -----Original Message-----
> > From: Pali Rohár [mailto:pali.rohar@...il.com]
> > Sent: Thursday, June 15, 2017 8:59 AM
> > To: Limonciello, Mario <Mario_Limonciello@...l.com>; Darren Hart
> > <dvhart@...radead.org>
> > Cc: Andy Shevchenko <andy@...radead.org>; Andy Lutomirski
> <luto@...nel.org>;
> > platform-driver-x86@...r.kernel.org; linux-kernel@...r.kernel.org
> > Subject: Re: [PATCH] RFC: platform/x86: wmi: Fix check for method instance
> > number
> >
> > Mario, are you able to check if instance number passed to
> > wmi_evaluate_method in following dell WMI drivers is correct and should
> > be really 1?
> >
> > I suspect that it should be zero, as instance number is indexed from
> > zero.
> >
> > There is no comment in those dell WMI drivers why it is 1, nor what 1
> > means.
> >
> > Ideally it needs to be checked in ACPI byte code, MOF file and WDG dump.
> >
> I think you're likely correct. I don't have a box that supports alienware-wmi
> or dell-wmi-led.c handy at the current moment to confirm this hypothesis though.
> I'll confirm this later.
>
> I didn't realize it was zero indexed when I wrote alienware-wmi, and I'm guessing
> the author of dell-wmi-led didn't either.
>
> The reason it's probably working is the ACPI byte code isn't actually checking
> the instance since most times _WDG will only call out one instance.
I confirmed you're correct. Switching instance over to 0 works properly on an
ASM200 (supported by alienware-wmi).
Since only one instance is supported the ASL doesn't check Arg0 at all.
snippet:
Method (WMAX, 3, NotSerialized)
{
If ((Arg1 == One))
{
CreateByteField (Arg2, Zero, SOUR)
If ((SOUR == One))
{
GU01 = (GU01 | 0x80)
GIO1 = (GIO1 & 0x7F)
GL01 = (GL01 & 0x7F)
Return (Zero)
}
If ((SOUR == 0x02))
{
GU01 = (GU01 | 0x80)
GIO1 = (GIO1 & 0x7F)
GL01 = (GL01 | 0x80)
Return (Zero)
}
If ((SOUR == 0x03))
{
If ((CN00 == Zero))
{
CN00 = One
If (((GL01 & 0x80) == 0x80))
{
GL01 &= 0x7F
Return (Zero)
}
If (((GL01 & 0x80) == Zero))
{
GL01 |= 0x80
Return (Zero)
}
}
If ((CN00 == One))
{
CN00 = Zero
Return (Zero)
}
Return (One)
}
Return (One)
}
>
> > On Wednesday 14 June 2017 17:46:54 Pali Rohár wrote:
> > > Function wmi_evaluate_method:
> > ...
> > > alienware-wmi.c:
> > > instance=1 /* no comment why, guid=A70591CE-A997-11DA-B012-
> > B622A1EF5492 */
> > > instance=1 /* no comment why, guid=A80593CE-A997-11DA-B012-
> > B622A1EF5492 */
> > > instance=1 /* no comment why, guid=A70591CE-A997-11DA-B012-
> > B622A1EF5492 */
> > ...
> > > dell-wmi-led.c:
> > > instance=1 /* no comment why, guid=F6E4FE6E-909D-47cb-8BAB-
> > C9F6F2F8D396 */
> >
> > --
> > Pali Rohár
> > pali.rohar@...il.com
Powered by blists - more mailing lists