lkml.org 
[lkml]   [2017]   [Apr]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: [PATCH] acer-wmi: setup accelerometer when appropriate acpi device was found
On Fri, Apr 28, 2017 at 11:23 AM, Lee, Chun-Yi <joeyli.kernel@gmail.com> wrote:
> The 98d610c3739a patch was introduced since v4.11-rc1 that it causes
> that the accelerometer input device will not be created on workable
> machines because the HID string comparing logic is wrong.
>
> And, the patch doesn't prevent that the accelerometer input device
> be created on the machines that have no BST0001. That's because
> the acpi_get_devices() returns success even it didn't find any
> match device.
>
> This patch fixed the HID string comparing logic of BST0001 device.
> And, it also makes sure that the acpi_get_devices() returns
> acpi_handle for BST0001.
>

Pushed to testing, thanks.

> Fixes: 98d610c3739a ("acer-wmi: setup accelerometer when machine has appropriate notify event")
> Reference: https://bugzilla.kernel.org/show_bug.cgi?id=193761
> Reported-by: Samuel Sieb <samuel-kbugs@sieb.net>
> Signed-off-by: "Lee, Chun-Yi" <jlee@suse.com>
> ---
> drivers/platform/x86/acer-wmi.c | 9 ++++-----
> 1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
> index dac0fbe..dbb4e6e 100644
> --- a/drivers/platform/x86/acer-wmi.c
> +++ b/drivers/platform/x86/acer-wmi.c
> @@ -1896,7 +1896,7 @@ static acpi_status __init acer_wmi_get_handle_cb(acpi_handle ah, u32 level,
> if (!strcmp(ctx, "SENR")) {
> if (acpi_bus_get_device(ah, &dev))
> return AE_OK;
> - if (!strcmp(ACER_WMID_ACCEL_HID, acpi_device_hid(dev)))
> + if (strcmp(ACER_WMID_ACCEL_HID, acpi_device_hid(dev)))
> return AE_OK;
> } else
> return AE_OK;
> @@ -1917,8 +1917,7 @@ static int __init acer_wmi_get_handle(const char *name, const char *prop,
> handle = NULL;
> status = acpi_get_devices(prop, acer_wmi_get_handle_cb,
> (void *)name, &handle);
> -
> - if (ACPI_SUCCESS(status)) {
> + if (ACPI_SUCCESS(status) && handle) {
> *ah = handle;
> return 0;
> } else {
> @@ -2290,8 +2289,8 @@ static int __init acer_wmi_init(void)
> if (err)
> return err;
> err = acer_wmi_accel_setup();
> - if (err)
> - return err;
> + if (err && err != -ENODEV)
> + pr_warn("Cannot enable accelerometer\n");
> }
>
> err = platform_driver_register(&acer_platform_driver);
> --
> 2.6.2
>



--
With Best Regards,
Andy Shevchenko

\
 
 \ /
  Last update: 2017-04-28 20:59    [W:0.064 / U:0.152 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site