Skip to content

Commit cb7a386

Browse files
felipecrafaeljw
authored andcommitted
ACPI: blacklist win8 OSI for ASUS Zenbook Prime UX31A
Since v3.7 the ACPI backlight driver doesn't work at all on this machine, because presumably the backlight AML code in the ACPI tables contains a code path that triggers when the OS identifies itself as compatible with Windows 8 (which the kernel started to do in 3.7). That code path is never used by Windows and on this particular machine it turns out to be unusable at all. Work around this problem by blacklisting the win8 OSI, so we are back to v3.6 behavior (that is, we don't tell the BIOS that we are compatible with Windows 8). Since v3.7, users have been forced to work around the initial regression by modifying the boot arguments [1]. [1] https://wiki.archlinux.org/index.php/ASUS_Zenbook_Prime_UX31A [rjw: Changelog] Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
1 parent d8648ca commit cb7a386

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

drivers/acpi/blacklist.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,12 @@ static int __init dmi_disable_osi_win7(const struct dmi_system_id *d)
192192
acpi_osi_setup("!Windows 2009");
193193
return 0;
194194
}
195+
static int __init dmi_disable_osi_win8(const struct dmi_system_id *d)
196+
{
197+
printk(KERN_NOTICE PREFIX "DMI detected: %s\n", d->ident);
198+
acpi_osi_setup("!Windows 2012");
199+
return 0;
200+
}
195201

196202
static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
197203
{
@@ -267,6 +273,14 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
267273
DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P305D"),
268274
},
269275
},
276+
{
277+
.callback = dmi_disable_osi_win8,
278+
.ident = "ASUS Zenbook Prime UX31A",
279+
.matches = {
280+
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
281+
DMI_MATCH(DMI_PRODUCT_NAME, "UX31A"),
282+
},
283+
},
270284

271285
/*
272286
* BIOS invocation of _OSI(Linux) is almost always a BIOS bug.

0 commit comments

Comments
 (0)