From 31532f08512b6a12e7d25492aad69da2163706d2 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Fri, 17 Feb 2017 02:37:50 +0000 Subject: [PATCH] [x86] platform: acer-wmi: setup accelerometer when machine has appropriate notify event (Closes: #853067) --- debian/changelog | 2 + ...r-wmi-setup-accelerometer-when-machi.patch | 79 +++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 82 insertions(+) create mode 100644 debian/patches/bugfix/x86/platform-x86-acer-wmi-setup-accelerometer-when-machi.patch diff --git a/debian/changelog b/debian/changelog index 7a3710bd5..bde2abb4d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -255,6 +255,8 @@ linux (4.9.10-1) UNRELEASED; urgency=medium * [m68k] Change MAC8390, MAC_SCSI from built-in to modules (Closes: #826614) - udeb: Add mac8390 to nic-shared-modules * udeb: Add bcache to md-modules (Closes: #718548) + * [x86] platform: acer-wmi: setup accelerometer when machine has appropriate + notify event (Closes: #853067) [ Roger Shimizu ] * [armel] ARM: dts: orion5x-lschl: Fix model name diff --git a/debian/patches/bugfix/x86/platform-x86-acer-wmi-setup-accelerometer-when-machi.patch b/debian/patches/bugfix/x86/platform-x86-acer-wmi-setup-accelerometer-when-machi.patch new file mode 100644 index 000000000..4c7805c5d --- /dev/null +++ b/debian/patches/bugfix/x86/platform-x86-acer-wmi-setup-accelerometer-when-machi.patch @@ -0,0 +1,79 @@ +From: "Lee, Chun-Yi" +Date: Thu, 3 Nov 2016 08:18:52 +0800 +Subject: platform/x86: acer-wmi: setup accelerometer when machine has + appropriate notify event +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Origin: https://git.kernel.org/linus/98d610c3739ac354319a6590b915f4624d9151e6 +Bug-Debian: https://bugs.debian.org/853067 + +The accelerometer event relies on the ACERWMID_EVENT_GUID notify. +So, this patch changes the codes to setup accelerometer input device +when detected ACERWMID_EVENT_GUID. It avoids that the accel input +device created on every Acer machines. + +In addition, patch adds a clearly parsing logic of accelerometer hid +to acer_wmi_get_handle_cb callback function. It is positive matching +the "SENR" name with "BST0001" device to avoid non-supported hardware. + +Reported-by: Bjørn Mork +Cc: Darren Hart +Signed-off-by: Lee, Chun-Yi +[andy: slightly massage commit message] +Signed-off-by: Andy Shevchenko +--- + drivers/platform/x86/acer-wmi.c | 22 ++++++++++++++++++---- + 1 file changed, 18 insertions(+), 4 deletions(-) + +--- a/drivers/platform/x86/acer-wmi.c ++++ b/drivers/platform/x86/acer-wmi.c +@@ -1808,11 +1808,24 @@ static int __init acer_wmi_enable_lm(voi + return status; + } + ++#define ACER_WMID_ACCEL_HID "BST0001" ++ + static acpi_status __init acer_wmi_get_handle_cb(acpi_handle ah, u32 level, + void *ctx, void **retval) + { ++ struct acpi_device *dev; ++ ++ if (!strcmp(ctx, "SENR")) { ++ if (acpi_bus_get_device(ah, &dev)) ++ return AE_OK; ++ if (!strcmp(ACER_WMID_ACCEL_HID, acpi_device_hid(dev))) ++ return AE_OK; ++ } else ++ return AE_OK; ++ + *(acpi_handle *)retval = ah; +- return AE_OK; ++ ++ return AE_CTRL_TERMINATE; + } + + static int __init acer_wmi_get_handle(const char *name, const char *prop, +@@ -1839,7 +1852,7 @@ static int __init acer_wmi_accel_setup(v + { + int err; + +- err = acer_wmi_get_handle("SENR", "BST0001", &gsensor_handle); ++ err = acer_wmi_get_handle("SENR", ACER_WMID_ACCEL_HID, &gsensor_handle); + if (err) + return err; + +@@ -2177,10 +2190,11 @@ static int __init acer_wmi_init(void) + err = acer_wmi_input_setup(); + if (err) + return err; ++ err = acer_wmi_accel_setup(); ++ if (err) ++ return err; + } + +- acer_wmi_accel_setup(); +- + err = platform_driver_register(&acer_platform_driver); + if (err) { + pr_err("Unable to register platform driver\n"); diff --git a/debian/patches/series b/debian/patches/series index 454a19f89..4afea7e48 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -48,6 +48,7 @@ debian/fanotify-taint-on-use-of-fanotify_access_permissions.patch # Arch bug fixes bugfix/x86/asoc-intel-select-dw_dmac_core-since-it-s-mandatory.patch +bugfix/x86/platform-x86-acer-wmi-setup-accelerometer-when-machi.patch # Arch features features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch