Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1513079 > unrolled thread

[PATCH] acer-wmi: only supports AMW0_GUID1 on acer family

Started by"Lee, Chun-Yi" <joeyli.kernel@gmail.com>
First post2016-11-01 05:40 +0100
Last post2016-11-05 19:30 +0100
Articles 4 — 4 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] acer-wmi: only supports AMW0_GUID1 on acer family "Lee, Chun-Yi" <joeyli.kernel@gmail.com> - 2016-11-01 05:40 +0100
    Re: [PATCH] acer-wmi: only supports AMW0_GUID1 on acer family Anthony Wong <ypwong@gmail.com> - 2016-11-03 04:50 +0100
      Re: [PATCH] acer-wmi: only supports AMW0_GUID1 on acer family joeyli <jlee@suse.com> - 2016-11-03 05:20 +0100
      Re: [PATCH] acer-wmi: only supports AMW0_GUID1 on acer family Darren Hart <dvhart@infradead.org> - 2016-11-05 19:30 +0100

#1513079 — [PATCH] acer-wmi: only supports AMW0_GUID1 on acer family

From"Lee, Chun-Yi" <joeyli.kernel@gmail.com>
Date2016-11-01 05:40 +0100
Subject[PATCH] acer-wmi: only supports AMW0_GUID1 on acer family
Message-ID<syz1D-3My-7@gated-at.bofh.it>
The AMW0_GUID1 wmi is not only found on Acer family but also other
machines like Lenovo, Fujitsu and Medion. In the past days, acer-wmi
driver handled those non-Acer machines by quirks list.

But actually acer-wmi driver was loaded on any machines that have
AMW0_GUID1. This behavior is strange because those machines should
be supported by appropriate wmi drivers. e.g. fujitsu-laptop,
ideapad-laptop.

So, This patch adds the logic to check the machine that has AMW0_GUID1
should be in Acer/Packard Bell/Gateway white list. But, it still keeps
the quirk list of those supported non-acer machines for backward
compatible.

Tested-by: Bjørn Mork <bjorn@mork.no>
Cc: Darren Hart <dvhart@infradead.org>
Signed-off-by: Lee, Chun-Yi <jlee@suse.com>
---
 drivers/platform/x86/acer-wmi.c | 56 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
index 3bb3162..734f0da 100644
--- a/drivers/platform/x86/acer-wmi.c
+++ b/drivers/platform/x86/acer-wmi.c
@@ -355,6 +355,32 @@ static const struct dmi_system_id acer_blacklist[] __initconst = {
 	{}
 };
 
+static const struct dmi_system_id amw0_whitelist[] __initconst = {
+	{
+		.ident = "Acer",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+		},
+	},
+	{
+		.ident = "Gateway",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Gateway"),
+		},
+	},
+	{
+		.ident = "Packard Bell",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Packard Bell"),
+		},
+	},
+	{}
+};
+
+/*
+ * This quirk table is only for Acer/Gateway/Packard Bell family
+ * that those machines are supported by acer-wmi driver.
+ */
 static const struct dmi_system_id acer_quirks[] __initconst = {
 	{
 		.callback = dmi_matched,
@@ -464,6 +490,17 @@ static const struct dmi_system_id acer_quirks[] __initconst = {
 		},
 		.driver_data = &quirk_acer_travelmate_2490,
 	},
+	{}
+};
+
+/*
+ * This quirk list is for those non-acer machines that have AMW0_GUID1
+ * but supported by acer-wmi in past days. Keeping this quirk list here
+ * is only for backward compatible. Please do not add new machine to
+ * here anymore. Those non-acer machines should be supported by
+ * appropriate wmi drivers.
+ */
+static const struct dmi_system_id non_acer_quirks[] __initconst = {
 	{
 		.callback = dmi_matched,
 		.ident = "Fujitsu Siemens Amilo Li 1718",
@@ -598,6 +635,7 @@ static void __init find_quirks(void)
 {
 	if (!force_series) {
 		dmi_check_system(acer_quirks);
+		dmi_check_system(non_acer_quirks);
 	} else if (force_series == 2490) {
 		quirks = &quirk_acer_travelmate_2490;
 	}
@@ -2121,6 +2159,24 @@ static int __init acer_wmi_init(void)
 	find_quirks();
 
 	/*
+	 * The AMW0_GUID1 wmi is not only found on Acer family but also other
+	 * machines like Lenovo, Fujitsu and Medion. In the past days,
+	 * acer-wmi driver handled those non-Acer machines by quirks list.
+	 * But actually acer-wmi driver was loaded on any machines that have
+	 * AMW0_GUID1. This behavior is strange because those machines should
+	 * be supported by appropriate wmi drivers. e.g. fujitsu-laptop,
+	 * ideapad-laptop. So, here checks the machine that has AMW0_GUID1
+	 * should be in Acer/Gateway/Packard Bell white list, or it's already
+	 * in the past quirk list.
+	 */
+	if (wmi_has_guid(AMW0_GUID1) &&
+	    !dmi_check_system(amw0_whitelist) &&
+	    quirks == &quirk_unknown) {
+		pr_err("Unsupported machine has AMW0_GUID1, unable to load\n");
+		return -ENODEV;
+	}
+
+	/*
 	 * Detect which ACPI-WMI interface we're using.
 	 */
 	if (wmi_has_guid(AMW0_GUID1) && wmi_has_guid(WMID_GUID1))
-- 
2.1.4

[toc] | [next] | [standalone]


#1514271

FromAnthony Wong <ypwong@gmail.com>
Date2016-11-03 04:50 +0100
Message-ID<szhcl-6S9-3@gated-at.bofh.it>
In reply to#1513079
On 1 November 2016 at 12:30, Lee, Chun-Yi <joeyli.kernel@gmail.com> wrote:
>
> The AMW0_GUID1 wmi is not only found on Acer family but also other
> machines like Lenovo, Fujitsu and Medion. In the past days, acer-wmi
> driver handled those non-Acer machines by quirks list.
>
> But actually acer-wmi driver was loaded on any machines that have
> AMW0_GUID1. This behavior is strange because those machines should
> be supported by appropriate wmi drivers. e.g. fujitsu-laptop,
> ideapad-laptop.
>
> So, This patch adds the logic to check the machine that has AMW0_GUID1
> should be in Acer/Packard Bell/Gateway white list. But, it still keeps
> the quirk list of those supported non-acer machines for backward
> compatible.
>
> Tested-by: Bjørn Mork <bjorn@mork.no>
> Cc: Darren Hart <dvhart@infradead.org>
> Signed-off-by: Lee, Chun-Yi <jlee@suse.com>

Xiaomi Air 13.3 notebook suffers from the same issue, acer-wmi
basically has no use on this machine. With your patch, acer-wmi no
longer loads.

Tested-by: Anthony Wong <anthony@ypwong.org>

Thanks,
Anthony

[toc] | [prev] | [next] | [standalone]


#1514275

Fromjoeyli <jlee@suse.com>
Date2016-11-03 05:20 +0100
Message-ID<szhFn-7jx-1@gated-at.bofh.it>
In reply to#1514271
On Thu, Nov 03, 2016 at 11:40:15AM +0800, Anthony Wong wrote:
> On 1 November 2016 at 12:30, Lee, Chun-Yi <joeyli.kernel@gmail.com> wrote:
> >
> > The AMW0_GUID1 wmi is not only found on Acer family but also other
> > machines like Lenovo, Fujitsu and Medion. In the past days, acer-wmi
> > driver handled those non-Acer machines by quirks list.
> >
> > But actually acer-wmi driver was loaded on any machines that have
> > AMW0_GUID1. This behavior is strange because those machines should
> > be supported by appropriate wmi drivers. e.g. fujitsu-laptop,
> > ideapad-laptop.
> >
> > So, This patch adds the logic to check the machine that has AMW0_GUID1
> > should be in Acer/Packard Bell/Gateway white list. But, it still keeps
> > the quirk list of those supported non-acer machines for backward
> > compatible.
> >
> > Tested-by: Bjørn Mork <bjorn@mork.no>
> > Cc: Darren Hart <dvhart@infradead.org>
> > Signed-off-by: Lee, Chun-Yi <jlee@suse.com>
> 
> Xiaomi Air 13.3 notebook suffers from the same issue, acer-wmi
> basically has no use on this machine. With your patch, acer-wmi no
> longer loads.
> 
> Tested-by: Anthony Wong <anthony@ypwong.org>
> 
> Thanks,
> Anthony

Thanks for your testing!
Joey Lee

[toc] | [prev] | [next] | [standalone]


#1515601

FromDarren Hart <dvhart@infradead.org>
Date2016-11-05 19:30 +0100
Message-ID<sAdT4-2WL-21@gated-at.bofh.it>
In reply to#1514271
On Thu, Nov 03, 2016 at 11:40:15AM +0800, Anthony Wong wrote:
> On 1 November 2016 at 12:30, Lee, Chun-Yi <joeyli.kernel@gmail.com> wrote:
> >
> > The AMW0_GUID1 wmi is not only found on Acer family but also other
> > machines like Lenovo, Fujitsu and Medion. In the past days, acer-wmi
> > driver handled those non-Acer machines by quirks list.
> >
> > But actually acer-wmi driver was loaded on any machines that have
> > AMW0_GUID1. This behavior is strange because those machines should
> > be supported by appropriate wmi drivers. e.g. fujitsu-laptop,
> > ideapad-laptop.
> >
> > So, This patch adds the logic to check the machine that has AMW0_GUID1
> > should be in Acer/Packard Bell/Gateway white list. But, it still keeps
> > the quirk list of those supported non-acer machines for backward
> > compatible.
> >
> > Tested-by: Bjørn Mork <bjorn@mork.no>
> > Cc: Darren Hart <dvhart@infradead.org>
> > Signed-off-by: Lee, Chun-Yi <jlee@suse.com>
> 
> Xiaomi Air 13.3 notebook suffers from the same issue, acer-wmi
> basically has no use on this machine. With your patch, acer-wmi no
> longer loads.
> 
> Tested-by: Anthony Wong <anthony@ypwong.org>

I've already pushed this to -next, but thank you for the confirmation.

-- 
Darren Hart
Intel Open Source Technology Center

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web