With Windows 8 enabled you're going down this path: If (_OSI (WIN8)) { Local0 = 0x81 } With it blacklisted, you're going down this path: If (_OSI (WIN7)) { Local0 = 0x80 Local1 = _REV /* \_REV */ If ((Local1 == 0x05)) { Local0 = 0x40 } } So your guess about _REV was actually correct - if the OS claims to be Windows 7 and returns 5 to _REV, it'll let Local0 to 0x40. This results in: If ((Local0 == 0x40)) { MIS0 = SMI (0x98, Zero) MIS0 &= 0x13 } MIS0 appears to be involved in various event delivery paths, so my suspicion is that the firmware is deliberately working around a quirk of Linux behaviour in order to deliver events appropriately. If so, your patch won't help in 4.1 because _REV now returns 2, and so we need to root cause the actual problem and fix that instead. -- Matthew Garrett | mjg59@xxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html