aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Hutchings <ben@decadent.org.uk>2017-02-17 02:37:50 +0000
committerBen Hutchings <ben@decadent.org.uk>2017-02-17 02:37:50 +0000
commit31532f08512b6a12e7d25492aad69da2163706d2 (patch)
tree22f42263c9ef14165a419c14f40cf9fa5451a006
parentfdd44fecbac8164ac082c9521948f64c593650b7 (diff)
downloadkernel_replicant_linux-31532f08512b6a12e7d25492aad69da2163706d2.tar.gz
kernel_replicant_linux-31532f08512b6a12e7d25492aad69da2163706d2.tar.bz2
kernel_replicant_linux-31532f08512b6a12e7d25492aad69da2163706d2.zip
[x86] platform: acer-wmi: setup accelerometer when machine has appropriate notify event (Closes: #853067)
-rw-r--r--debian/changelog2
-rw-r--r--debian/patches/bugfix/x86/platform-x86-acer-wmi-setup-accelerometer-when-machi.patch79
-rw-r--r--debian/patches/series1
3 files changed, 82 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 7a3710bd51ce..bde2abb4d4ff 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 000000000000..4c7805c5deae
--- /dev/null
+++ b/debian/patches/bugfix/x86/platform-x86-acer-wmi-setup-accelerometer-when-machi.patch
@@ -0,0 +1,79 @@
+From: "Lee, Chun-Yi" <joeyli.kernel@gmail.com>
+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 <bjorn@mork.no>
+Cc: Darren Hart <dvhart@infradead.org>
+Signed-off-by: Lee, Chun-Yi <jlee@suse.com>
+[andy: slightly massage commit message]
+Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+---
+ 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 454a19f898fb..4afea7e48b77 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