Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1513079 > unrolled thread
| Started by | "Lee, Chun-Yi" <joeyli.kernel@gmail.com> |
|---|---|
| First post | 2016-11-01 05:40 +0100 |
| Last post | 2016-11-05 19:30 +0100 |
| Articles | 4 — 4 participants |
Back to article view | Back to linux.kernel
[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
| From | "Lee, Chun-Yi" <joeyli.kernel@gmail.com> |
|---|---|
| Date | 2016-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]
| From | Anthony Wong <ypwong@gmail.com> |
|---|---|
| Date | 2016-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]
| From | joeyli <jlee@suse.com> |
|---|---|
| Date | 2016-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]
| From | Darren Hart <dvhart@infradead.org> |
|---|---|
| Date | 2016-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