From: Michael Wu <michael@allwinnertech.com>
To: jikos@kernel.org, benjamin.tissoires@redhat.com
Cc: linux-usb@vger.kernel.org, linux-input@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH] HID: usbhid: enable remote wakeup for mice
Date: Wed, 22 Feb 2023 09:39:44 +0800 [thread overview]
Message-ID: <20230222013944.31095-1-michael@allwinnertech.com> (raw)
This patch fixes a problem that USB mouse can't wake up the device that
enters standby.
At present, the kernel only checks whether certain USB manufacturers
support wake-up, which will easily cause inconvenience to the
development work of other manufacturers and add unnecessary work to the
maintenance of kernel.
The USB protocol supports judging whether a usb supports the wake-up
function, so it should be more reasonable to add a wake-up source by
directly checking the settings from the USB protocol.
There was a similar issue on the keyboard before, which was fixed by
this patch (3d61510f4eca), but now the problem happened on the mouse.
This patch uses a similar idea to fix this problem.
Signed-off-by: Michael Wu <michael@allwinnertech.com>
---
drivers/hid/usbhid/hid-core.c | 8 ++++++++
drivers/hid/usbhid/usbmouse.c | 1 +
2 files changed, 9 insertions(+)
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index be4c731aaa65..d3a6755cca09 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -1189,6 +1189,14 @@ static int usbhid_start(struct hid_device *hid)
device_set_wakeup_enable(&dev->dev, 1);
}
+ /**
+ * NOTE: enable remote wakeup by default for all mouse devices
+ * supporting the boot protocol.
+ */
+ if (interface->desc.bInterfaceSubClass == USB_INTERFACE_SUBCLASS_BOOT &&
+ interface->desc.bInterfaceProtocol == USB_INTERFACE_PROTOCOL_MOUSE)
+ device_set_wakeup_enable(&dev->dev, 1);
+
mutex_unlock(&usbhid->mutex);
return 0;
diff --git a/drivers/hid/usbhid/usbmouse.c b/drivers/hid/usbhid/usbmouse.c
index 3fd93c2e4f4a..2fbc3f49e420 100644
--- a/drivers/hid/usbhid/usbmouse.c
+++ b/drivers/hid/usbhid/usbmouse.c
@@ -188,6 +188,7 @@ static int usb_mouse_probe(struct usb_interface *intf, const struct usb_device_i
goto fail3;
usb_set_intfdata(intf, mouse);
+ device_set_wakeup_enable(&dev->dev, 1);
return 0;
fail3:
--
2.29.0
next reply other threads:[~2023-02-22 1:39 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-22 1:39 Michael Wu [this message]
2023-02-22 6:04 ` [PATCH] HID: usbhid: enable remote wakeup for mice Greg KH
2023-02-22 19:50 ` Limonciello, Mario
2023-02-23 11:41 ` Oliver Neukum
2023-02-23 11:18 ` Michael Wu
2023-02-23 11:23 ` Greg KH
2023-02-23 12:01 ` Oliver Neukum
2023-02-23 19:41 ` Limonciello, Mario
2023-02-28 9:03 ` Oliver Neukum
2023-02-28 18:50 ` Limonciello, Mario
2023-02-28 19:05 ` Greg KH
2023-02-28 19:07 ` Limonciello, Mario
2023-02-24 7:02 ` Michael Wu
2023-02-22 8:59 ` Sergei Shtylyov
2023-02-23 4:01 ` Michael Wu
2023-02-22 9:34 ` Oliver Neukum
2023-02-23 11:22 ` Michael Wu
2023-02-23 11:47 ` Oliver Neukum
-- strict thread matches above, loose matches on Subject: below --
2011-10-14 7:54 Benson Leung
2011-10-14 8:18 ` Oliver Neukum
2011-10-14 13:56 ` Alan Stern
2011-10-14 13:56 ` Alan Stern
2011-10-14 14:00 ` Jiri Kosina
2011-10-14 14:58 ` Benson Leung
2011-10-14 14:58 ` Benson Leung
2011-10-14 15:09 ` Alan Stern
2011-10-14 15:09 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1110141106270.2036-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2011-10-15 9:43 ` Oliver Neukum
2011-10-15 9:43 ` Oliver Neukum
2011-10-15 19:07 ` Alan Stern
2011-10-15 19:07 ` Alan Stern
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=20230222013944.31095-1-michael@allwinnertech.com \
--to=michael@allwinnertech.com \
--cc=benjamin.tissoires@redhat.com \
--cc=jikos@kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.