2014-12-07 13:09:25

by Dmitry Tunin

[permalink] [raw]
Subject: [PATCH] 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

Cc:[email protected]
Signed-off-by: Dmitry Tunin <[email protected]>
---
drivers/acpi/blacklist.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
index 7556e7c..f78ed08 100644
--- a/drivers/acpi/blacklist.c
+++ b/drivers/acpi/blacklist.c
@@ -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"),
+ },
+ },
{}
};

--
1.9.1


2014-12-07 14:36:06

by Dmitry Tunin

[permalink] [raw]
Subject: Re: [PATCH v2] 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

Cc: [email protected]
Signed-off-by: Dmitry Tunin <[email protected]>
---
drivers/acpi/blacklist.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
index 7556e7c..f78ed08 100644
--- a/drivers/acpi/blacklist.c
+++ b/drivers/acpi/blacklist.c
@@ -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"),
+ },
+ },
{}
};

--
1.9.1

2014-12-10 14:29:22

by Dmitry Tunin

[permalink] [raw]
Subject: Re: [PATCH v2] acpi: Add "acpi_osi=" for ASUS X200MA to enable brightness

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 пишет:
> 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
>
> Cc: [email protected]
> Signed-off-by: Dmitry Tunin <[email protected]>
> ---
> drivers/acpi/blacklist.c | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
> index 7556e7c..f78ed08 100644
> --- a/drivers/acpi/blacklist.c
> +++ b/drivers/acpi/blacklist.c
> @@ -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"),
> + },
> + },
> {}
> };
>