summaryrefslogtreecommitdiffstats
path: root/drivers/hid
diff options
context:
space:
mode:
authorJiri Kosina <jkosina@suse.cz>2022-12-13 14:37:43 +0100
committerJiri Kosina <jkosina@suse.cz>2022-12-13 14:37:43 +0100
commit54dcc80e7d7cf012f7e9f0801430890fe0ecc72a (patch)
treeadca3a496e9dcf05396e5b67166bca70f66c177c /drivers/hid
parentMerge branch 'for-6.2/mcp2221' into for-linus (diff)
parentHID: i2c: let RMI devices decide what constitutes wakeup event (diff)
downloadlinux-54dcc80e7d7cf012f7e9f0801430890fe0ecc72a.tar.xz
linux-54dcc80e7d7cf012f7e9f0801430890fe0ecc72a.zip
Merge branch 'for-6.2/rmi' into for-linus
- wakeup event handling fix for RMI driver (Dmitry Torokhov)
Diffstat (limited to 'drivers/hid')
-rw-r--r--drivers/hid/hid-rmi.c2
-rw-r--r--drivers/hid/i2c-hid/i2c-hid-core.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c
index bb1f423f4ace..84e7ba5314d3 100644
--- a/drivers/hid/hid-rmi.c
+++ b/drivers/hid/hid-rmi.c
@@ -326,6 +326,8 @@ static int rmi_input_event(struct hid_device *hdev, u8 *data, int size)
if (!(test_bit(RMI_STARTED, &hdata->flags)))
return 0;
+ pm_wakeup_event(hdev->dev.parent, 0);
+
local_irq_save(flags);
rmi_set_attn_data(rmi_dev, data[1], &data[2], size - 2);
diff --git a/drivers/hid/i2c-hid/i2c-hid-core.c b/drivers/hid/i2c-hid/i2c-hid-core.c
index 0667b6022c3b..a9428b7f34a4 100644
--- a/drivers/hid/i2c-hid/i2c-hid-core.c
+++ b/drivers/hid/i2c-hid/i2c-hid-core.c
@@ -554,7 +554,8 @@ static void i2c_hid_get_input(struct i2c_hid *ihid)
i2c_hid_dbg(ihid, "input: %*ph\n", ret_size, ihid->inbuf);
if (test_bit(I2C_HID_STARTED, &ihid->flags)) {
- pm_wakeup_event(&ihid->client->dev, 0);
+ if (ihid->hid->group != HID_GROUP_RMI)
+ pm_wakeup_event(&ihid->client->dev, 0);
hid_input_report(ihid->hid, HID_INPUT_REPORT,
ihid->inbuf + sizeof(__le16),