RE: [PATCH] platform/x86: intel-hid: Power button suspend on Dell Latitude 7275
From: Mario.Limonciello
Date: Wed Sep 20 2017 - 16:07:51 EST
> -----Original Message-----
> From: JÃrÃme de Bretagne [mailto:jerome.debretagne@xxxxxxxxx]
> Sent: Monday, September 18, 2017 5:41 PM
> To: Limonciello, Mario <Mario_Limonciello@xxxxxxxx>
> Cc: platform-driver-x86@xxxxxxxxxxxxxxx; Darren Hart <dvhart@xxxxxxxxxxxxx>;
> LKML <linux-kernel@xxxxxxxxxxxxxxx>; ACPI Devel Maling List <linux-
> acpi@xxxxxxxxxxxxxxx>; Rafael J. Wysocki <rjw@xxxxxxxxxxxxx>; Andy Shevchenko
> <andy.shevchenko@xxxxxxxxx>; Alex Hung <alex.hung@xxxxxxxxxxxxx>
> Subject: Re: [PATCH] platform/x86: intel-hid: Power button suspend on Dell
> Latitude 7275
>
> 2017-09-18 23:29 GMT+02:00 <Mario.Limonciello@xxxxxxxx>:
> >> -----Original Message-----
> >> From: JÃrÃme de Bretagne [mailto:jerome.debretagne@xxxxxxxxx]
> >> Sent: Sunday, September 17, 2017 5:57 PM
> >> To: platform-driver-x86@xxxxxxxxxxxxxxx
> >> Cc: Darren Hart <dvhart@xxxxxxxxxxxxx>; LKML <linux-kernel@xxxxxxxxxxxxxxx>;
> >> Linux ACPI <linux-acpi@xxxxxxxxxxxxxxx>; Rafael J. Wysocki
> <rjw@xxxxxxxxxxxxx>;
> >> Andy Shevchenko <andy.shevchenko@xxxxxxxxx>; Limonciello, Mario
> >> <Mario_Limonciello@xxxxxxxx>; Alex Hung <alex.hung@xxxxxxxxxxxxx>
> >> Subject: [PATCH] platform/x86: intel-hid: Power button suspend on Dell Latitude
> >> 7275
> >>
> >> From: JÃrÃme de Bretagne <jerome.debretagne@xxxxxxxxx>
> >>
> >> On Dell Latitude 7275 the 5-button array is not exposed in the
> >> ACPI tables, but still notifies are sent to the Intel HID device
> >> object (device ID INT33D5) in response to power button actions.
> >> They were ignored as the intel-hid driver was not prepared to
> >> take care of them until recently.
> >>
> >> Power button wakeup from suspend-to-idle was added in:
> >> 635173a17b03 ("intel-hid: Wake up Dell Latitude 7275 from
> >> suspend-to-idle"). However power button suspend doesn't work
> >> yet on this platform so it would be good to add it also.
> >>
> >> On the affected platform (for which priv->array is NULL), add
> >> a new upfront check against the power button press notification
> >> (0xCE) to notify_handler(), outside the wakeup mode this time,
> >> which allows to report the power button press event and
> >> trigger the suspend. Also catch and ignore the corresponding
> >> power button release notification (0xCF) to stop it from being
> >> reported as an "unknown event" in the logs.
> >>
> >> Link: https://bugzilla.kernel.org/show_bug.cgi?id=196115
> >> Tested-by: JÃrÃme de Bretagne <jerome.debretagne@xxxxxxxxx>
> >> Signed-off-by: JÃrÃme de Bretagne <jerome.debretagne@xxxxxxxxx>
> >> ---
> >> drivers/platform/x86/intel-hid.c | 16 ++++++++++++++++
> >> 1 file changed, 16 insertions(+)
> >>
> >> diff --git a/drivers/platform/x86/intel-hid.c b/drivers/platform/x86/intel-hid.c
> >> index a782c78e7c63..b19f8dcf9d8c 100644
> >> --- a/drivers/platform/x86/intel-hid.c
> >> +++ b/drivers/platform/x86/intel-hid.c
> >> @@ -226,6 +226,22 @@ static void notify_handler(acpi_handle handle, u32
> event,
> >> void *context)
> >> return;
> >> }
> >>
> >> + /*
> >> + * Needed for suspend to work on some platforms that don't expose
> >> + * 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.
> >> + */
> >> + if (!priv->array) {
> >> + if (event == 0xce) {
> >> + input_report_key(priv->input_dev, KEY_POWER, 1);
> >> + input_sync(priv->input_dev);
> >> + return;
> >> + } else if (event == 0xcf)
> >> + return;
> >> + }
> >> +
> >> /* 0xC0 is for HID events, other values are for 5 button array */
> >> if (event != 0xc0) {
> >> if (!priv->array ||
> >
> > LGTM, it's improved from what you posted to that bug already.
> >
> > Acked-By: Mario Limonciello <mario.limonciello@xxxxxxxx>
>
> Thanks Mario.
>
> In fact, I updated my initial fix proposal on the 12th in [1] and
> this patch matches exactly the updated version. You didn't receive
> the update notification from Bugzilla?
>
> [1] https://bugzilla.kernel.org/show_bug.cgi?id=196115#c12
No I didn't get one (or some enterprise spam filter helpfully avoided
letting it into my inbox).