• Len Brown's avatar
    ACPI: Make _OSI(Linux) a special case · f507654d
    Len Brown authored
    _OSI("Linux") is like _OS("Linux"), it is ill-defined and
    virtually no BIOS vendors test interaction with it.
    As a result, it can do more damage than good because
    it causes the BIOS to follow un-tested paths.
    
    Recently, several machines have turned up that erroneously
    test this string in a way which causes them to _not_ test other
    compatibility strings, including the ZI9 and Toshiba.
    So it appears that this bad code has made it into
    a BIOS vendor's reference BIOS.
    
    Linux has no choice but to stop advertising compatibility
    with _OSI string "Linux" - as there are an unbounded
    number of possible incompatibilities going forward.
    
    But some BIOSes have already shipped which do use it
    for things like conditionally re-enabling video on resume
    from S3.  (Too bad they didn't do that unconditionally)
    
    Add special case code for _OSI(Linux)
    Squawk to dmesg if _OSI(Linux) is requested
    Add DMI list both to enable and disable _OSI(Linux)
    But for now, keep the default enabled via
    #define OSI_LINUX_ENABLED.
    
    http://bugzilla.kernel.org/show_bug.cgi?id=7787Signed-off-by: default avatarLen Brown <len.brown@intel.com>
    f507654d
uteval.c 20.6 KB