Re: [PATCH] [RESUBMIT] Fix mute key on older Lenovo made Thinkpads by OSI blacklisting

Len Brown
2010-05-20T05:48:23Z

thanks for the DSDT for the x200 and x301.
In these two cases, the OSI(Linux) workaround looks isolated,
and thus relatively safe.

I've applied your patch to the ACPI test branch, and I'm inclined to
push it with 2.6.35 with the justification that it is consistent
with our current DMI entries to fix thinkpad mute button on other
models.

Matthew, Henrique,
If you'd like to talk me out of this, now is your chance:-)

thanks,
Len Brown, Intel Open Source Technology Center

Both the x200 and x301 DSDT do this:

If (CondRefOf (\_OSI, Local0))
{
If (\_OSI ("Windows 2001"))
{
Store (0x01, \WNTF)
Store (0x01, \WXPF)
Store (0x00, \WSPV)
}

If (\_OSI ("Windows 2001 SP1"))
{
Store (0x01, \WSPV)
}

If (\_OSI ("Windows 2001 SP2"))
{
Store (0x02, \WSPV)
}

If (\_OSI ("Windows 2006"))
{
Store (0x01, \WVIS)
}

If (\_OSI ("Windows 2009"))
{
Store (0x01, \WIN7)
}

If (\_OSI ("Linux"))
{
Store (0x01, \LNUX)
}

The important thing here is that OSI(Linux)
doesn't disable any of the windows compatibility
flags above as it does in some other DSDTs.

If (\_OSI ("FreeBSD"))
{
Store (0x01, \LNUX)
}

and this _INI-time check is the only effect of LNUX:

If (\LNUX)
{
\_SB.PCI0.LPC.EC.SAUM (0x02)
\UCMS (0x1C)
}

Of course SAUM pokes the EC and UCMS is an SMI wrapper,
so we don't really know all they may do; but at least
OSI(Linux) doesn't obviously disable the concept of
windows compatibility in this BIOS, and checks for
LNUX are limited to init-time.