Commit f94e369f authored by Jérôme de Bretagne's avatar Jérôme de Bretagne Committed by Greg Kroah-Hartman

platform/x86: intel-hid: Missing power button release on some Dell models

[ Upstream commit e97a3456 ]

Power button suspend for some Dell models was added in:

commit 821b8536 ("platform/x86: 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/aSwZK9Nf9RoTested-by: default avatarTristian Celestin <tristian.celestin@outlook.com>
Tested-by: default avatarJérôme de Bretagne <jerome.debretagne@gmail.com>
Signed-off-by: default avatarJérôme de Bretagne <jerome.debretagne@gmail.com>
Reviewed-by: default avatarMario Limonciello <mario.limonciello@dell.com>
[dvhart: corrected commit reference format per checkpatch]
Signed-off-by: default avatarDarren Hart (VMware) <dvhart@infradead.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 1e55e3f6
......@@ -373,7 +373,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) {
......@@ -382,9 +382,12 @@ 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 */
if (event != 0xc0) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment