From: "Jérôme de Bretagne" <jerome.debretagne@gmail.com>
To: platform-driver-x86@vger.kernel.org
Cc: Darren Hart <dvhart@infradead.org>,
LKML <linux-kernel@vger.kernel.org>,
Linux ACPI <linux-acpi@vger.kernel.org>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
Andy Shevchenko <andy.shevchenko@gmail.com>,
Mario Limonciello <mario.limonciello@dell.com>,
Alex Hung <alex.hung@canonical.com>
Subject: [PATCH] platform/x86: intel-hid: Power button suspend on Dell Latitude 7275
Date: Mon, 18 Sep 2017 00:57:12 +0200 [thread overview]
Message-ID: <20170917225712.12136-1-jerome.debretagne@gmail.com> (raw)
From: Jérôme de Bretagne <jerome.debretagne@gmail.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@gmail.com>
Signed-off-by: Jérôme de Bretagne <jerome.debretagne@gmail.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 ||
next reply other threads:[~2017-09-17 22:58 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-17 22:57 Jérôme de Bretagne [this message]
2017-09-18 21:29 ` [PATCH] platform/x86: intel-hid: Power button suspend on Dell Latitude 7275 Mario.Limonciello
2017-09-18 22:40 ` Jérôme de Bretagne
2017-09-20 20:07 ` Mario.Limonciello
2017-09-22 23:45 ` Darren Hart
2017-09-25 10:57 ` Andy Shevchenko
2017-09-27 7:31 ` Darren Hart
2017-09-27 8:58 ` Andy Shevchenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170917225712.12136-1-jerome.debretagne@gmail.com \
--to=jerome.debretagne@gmail.com \
--cc=alex.hung@canonical.com \
--cc=andy.shevchenko@gmail.com \
--cc=dvhart@infradead.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mario.limonciello@dell.com \
--cc=platform-driver-x86@vger.kernel.org \
--cc=rjw@rjwysocki.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox