[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4b5c673c2858470a8b6d0af43a2cd250@ausx13mpc120.AMER.DELL.COM>
Date: Mon, 18 Sep 2017 21:29:06 +0000
From: <Mario.Limonciello@...l.com>
To: <jerome.debretagne@...il.com>,
<platform-driver-x86@...r.kernel.org>
CC: <dvhart@...radead.org>, <linux-kernel@...r.kernel.org>,
<linux-acpi@...r.kernel.org>, <rjw@...ysocki.net>,
<andy.shevchenko@...il.com>, <alex.hung@...onical.com>
Subject: RE: [PATCH] platform/x86: intel-hid: Power button suspend on Dell
Latitude 7275
> -----Original Message-----
> From: Jérôme de Bretagne [mailto:jerome.debretagne@...il.com]
> Sent: Sunday, September 17, 2017 5:57 PM
> To: platform-driver-x86@...r.kernel.org
> Cc: Darren Hart <dvhart@...radead.org>; LKML <linux-kernel@...r.kernel.org>;
> Linux ACPI <linux-acpi@...r.kernel.org>; Rafael J. Wysocki <rjw@...ysocki.net>;
> Andy Shevchenko <andy.shevchenko@...il.com>; Limonciello, Mario
> <Mario_Limonciello@...l.com>; Alex Hung <alex.hung@...onical.com>
> Subject: [PATCH] platform/x86: intel-hid: Power button suspend on Dell Latitude
> 7275
>
> From: Jérôme de Bretagne <jerome.debretagne@...il.com>
>
> 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@...il.com>
> Signed-off-by: Jérôme de Bretagne <jerome.debretagne@...il.com>
> ---
> 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@...l.com>
Powered by blists - more mailing lists