Skip to contentSkip to conversation

acpi: Add "acpi_osi=" for ASUS X200MA to enable brightness

PATCH Superseded Dmitry Tunin 1 participant 3 messages Dec 7, 2014 – Dec 10, 2014

Subsystems (3)

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 acpi: Add "acpi_osi=" for ASUS X200MA to enable brightness

Add "acpi_osi=" quirk for ASUS X200MA
More information can be found in UX302LA bugreport
https://bugzilla.kernel.org/show_bug.cgi?id=70241

I reported it to launchpad too
https://bugs.launchpad.net/ubuntu/bug/1400068

---
 drivers/acpi/blacklist.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
drivers/acpi/blacklist.c +20 -0
index 7556e7c..f78ed08 100644
@@ -162,6 +162,17 @@ static int __init dmi_disable_osi_win8(const struct dmi_system_id *d)
 	acpi_osi_setup("!Windows 2012");
 	return 0;
 }
+/*
+ * Some ASUS models firmware declares 16 devices instead of 8
+ * 'acpi_osi=' kernel parameter fixes it
+ * Without this parameters brightness keys Fn+F5 and F6 do not work
+ */
+static int __init dmi_disable_osi_all(const struct dmi_system_id *d)
+{
+	printk(KERN_NOTICE PREFIX "DMI detected: %s\n", d->ident);
+	acpi_osi_setup("");
+	return 0;
+}
 
 static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
 	{
@@ -371,6 +382,15 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
 		     DMI_MATCH(DMI_PRODUCT_NAME, "1015PX"),
 		},
 	},
+	/* Without this brightness keys do not work */	
+	{
+	.callback = dmi_disable_osi_all,
+	.ident = "ASUSTeK COMPUTER INC. X200MA",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+		     DMI_MATCH(DMI_PRODUCT_NAME, "X200MA"),
+		},
+	},
 	{}
 };
 
Signature · 1 line
1.9.1
#1 lore raw

Add "acpi_osi=" quirk for ASUS X200MA
More information can be found in UX302LA bugreport
https://bugzilla.kernel.org/show_bug.cgi?id=70241

I reported it to launchpad too
https://bugs.launchpad.net/ubuntu/bug/1400068

---
 drivers/acpi/blacklist.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
drivers/acpi/blacklist.c +20 -0
index 7556e7c..f78ed08 100644
@@ -162,6 +162,17 @@ static int __init dmi_disable_osi_win8(const struct dmi_system_id *d)
 	acpi_osi_setup("!Windows 2012");
 	return 0;
 }
+/*
+ * Some ASUS models firmware declares 16 devices instead of 8
+ * 'acpi_osi=' kernel parameter fixes it
+ * Without this parameters brightness keys Fn+F5 and F6 do not work
+ */
+static int __init dmi_disable_osi_all(const struct dmi_system_id *d)
+{
+	printk(KERN_NOTICE PREFIX "DMI detected: %s\n", d->ident);
+	acpi_osi_setup("");
+	return 0;
+}
 
 static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
 	{
@@ -371,6 +382,15 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
 		     DMI_MATCH(DMI_PRODUCT_NAME, "1015PX"),
 		},
 	},
+	/* Without this brightness keys do not work */	
+	{
+	.callback = dmi_disable_osi_all,
+	.ident = "ASUSTeK COMPUTER INC. X200MA",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+		     DMI_MATCH(DMI_PRODUCT_NAME, "X200MA"),
+		},
+	},
 	{}
 };
 
Signature · 1 line
1.9.1
#2 lore raw

This patch is only a temporary hack. This issue should be fixed by other ways. See https://bugzilla.kernel.org/show_bug.cgi?id=70241#c70

07.12.2014 17:35, Dmitry Tunin пишет:

Quoted 51 lines

Add "acpi_osi=" quirk for ASUS X200MA
More information can be found in UX302LA bugreport
https://bugzilla.kernel.org/show_bug.cgi?id=70241

I reported it to launchpad too
https://bugs.launchpad.net/ubuntu/bug/1400068

---
  drivers/acpi/blacklist.c | 20 ++++++++++++++++++++
  1 file changed, 20 insertions(+)
drivers/acpi/blacklist.c +20 -0
index 7556e7c..f78ed08 100644
@@ -162,6 +162,17 @@ static int __init dmi_disable_osi_win8(const struct dmi_system_id *d)
      acpi_osi_setup("!Windows 2012");
      return 0;
  }
+/*
+ * Some ASUS models firmware declares 16 devices instead of 8
+ * 'acpi_osi=' kernel parameter fixes it
+ * Without this parameters brightness keys Fn+F5 and F6 do not work
+ */
+static int __init dmi_disable_osi_all(const struct dmi_system_id *d)
+{
+    printk(KERN_NOTICE PREFIX "DMI detected: %s\n", d->ident);
+    acpi_osi_setup("");
+    return 0;
+}
 
  static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
      {
@@ -371,6 +382,15 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
               DMI_MATCH(DMI_PRODUCT_NAME, "1015PX"),
          },
      },
+    /* Without this brightness keys do not work */
+    {
+    .callback = dmi_disable_osi_all,
+    .ident = "ASUSTeK COMPUTER INC. X200MA",
+    .matches = {
+             DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+             DMI_MATCH(DMI_PRODUCT_NAME, "X200MA"),
+        },
+    },
      {}
  };