> -----Original Message-----
> From: platform-driver-x86-ow...@vger.kernel.org <platform-driver-x86-
> ow...@vger.kernel.org> On Behalf Of Jérôme de Bretagne
> Sent: Sunday, January 6, 2019 11:57 AM
> To: Alex Hung
> Cc: platform-driver-...@vger.kernel.org; Andy Shevchenko; Darren Hart;
> Limonciello, Mario; Rafael J. Wysocki; Chih-Wei Huang; Tristian Celestin; 
> linux-
> ker...@vger.kernel.org
> Subject: [PATCH] platform/x86: intel-hid: Missing power button release on some
> Dell models
> 
> 
> [EXTERNAL EMAIL]
> 
> Power button suspend for some Dell models was added in:
> 
> commit 821b85366284 (intel-hid: Power button suspend on Dell Latitude 7275)
> 
> by checking against the power button press notification (0xCE) to report
> the power button press event. The corresponding power button release
> notification (0xCF) was caught and ignored to stop it from being reported
> as an "unknown event" in the logs.
> 
> The missing button release event is creating issues on Android-x86, as
> reported on the project mailing list for a Dell Latitude 5175 model, since
> the events are expected in down/up pairs.
> 
> Report the power button release event to fix this issue.
> 
> Link: https://groups.google.com/forum/#!topic/android-x86/aSwZK9Nf9Ro
> Tested-by: Tristian Celestin <tristian.celes...@outlook.com>
> Tested-by: Jérôme de Bretagne <jerome.debreta...@gmail.com>
> Signed-off-by: Jérôme de Bretagne <jerome.debreta...@gmail.com>
> ---
>  drivers/platform/x86/intel-hid.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/platform/x86/intel-hid.c 
> b/drivers/platform/x86/intel-hid.c
> index e28bcf61b126..bc0d55a59015 100644
> --- a/drivers/platform/x86/intel-hid.c
> +++ b/drivers/platform/x86/intel-hid.c
> @@ -363,7 +363,7 @@ static void notify_handler(acpi_handle handle, u32 event,
> void *context)
>        * the 5-button array, but still send notifies with power button
>        * event code to this device object on power button actions.
>        *
> -      * Report the power button press; catch and ignore the button release.
> +      * Report the power button press and release.
>        */
>       if (!priv->array) {
>               if (event == 0xce) {
> @@ -372,8 +372,11 @@ static void notify_handler(acpi_handle handle, u32 event,
> void *context)
>                       return;
>               }
> 
> -             if (event == 0xcf)
> +             if (event == 0xcf) {
> +                     input_report_key(priv->input_dev, KEY_POWER, 0);
> +                     input_sync(priv->input_dev);
>                       return;
> +             }
>       }
> 
>       /* 0xC0 is for HID events, other values are for 5 button array */
> --
> 2.11.0

Reviewed-by: Mario Limonciello <mario.limoncie...@dell.com>

Reply via email to