diff mbox series

HID: usbhid: enable remote wakeup for mouse

Message ID 20240522092257.19373-1-huanglei814@163.com (mailing list archive)
State New
Delegated to: Jiri Kosina
Headers show
Series HID: usbhid: enable remote wakeup for mouse | expand

Commit Message

huanglei May 22, 2024, 9:22 a.m. UTC
From: huanglei <huanglei@kylinos.cn>

This patch enables remote wakeup by default for USB mouse
devices.  Mouse can used to be wakeup devices, but the correct
place to enable it depends on the device's bus; no single
approach will work for all mouse devices.  In particular, this
covers only USB mouse (and then only those supporting the boot
protocol).

Signed-off-by: huanglei <huanglei@kylinos.cn>
---
 drivers/hid/usbhid/hid-core.c | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Oliver Neukum May 22, 2024, 10 a.m. UTC | #1
On 22.05.24 11:22, huanglei814 wrote:
> From: huanglei <huanglei@kylinos.cn>
> 
> This patch enables remote wakeup by default for USB mouse
> devices.  Mouse can used to be wakeup devices, but the correct
> place to enable it depends on the device's bus; no single
> approach will work for all mouse devices.  In particular, this
> covers only USB mouse (and then only those supporting the boot
> protocol).

Hi,

could you explain in the log why you want this to depend
on support for the boot protocol?

	Regards
		Oliver
Greg Kroah-Hartman May 22, 2024, 11:23 a.m. UTC | #2
On Wed, May 22, 2024 at 05:22:57PM +0800, huanglei814 wrote:
> From: huanglei <huanglei@kylinos.cn>
> 
> This patch enables remote wakeup by default for USB mouse
> devices.

That is not a good idea.  Please see the mailing list archives for the
past 20+ years for why this is the way it is.

If you know your device can support this, please set it in userspace,
but we can not change the default value at this point in time, sorry.

> Mouse can used to be wakeup devices, but the correct
> place to enable it depends on the device's bus; no single
> approach will work for all mouse devices.  In particular, this
> covers only USB mouse (and then only those supporting the boot
> protocol).

And that is really not a wise choice, boot protocol mice have no
requirement that they support remote wakeup.  So restricting it like
this really will not help, sorry.

Again, do this in userspace, that's why the interface is there to do so.

greg k-h
huanglei May 24, 2024, 3:14 a.m. UTC | #3
Just wanted to support mouse  wake up.

Set it in userspace will be a better choice, Now,canceled the patch.



在 2024/5/22 18:00, Oliver Neukum 写道:
> On 22.05.24 11:22, huanglei814 wrote:
>> From: huanglei <huanglei@kylinos.cn>
>>
>> This patch enables remote wakeup by default for USB mouse
>> devices.  Mouse can used to be wakeup devices, but the correct
>> place to enable it depends on the device's bus; no single
>> approach will work for all mouse devices.  In particular, this
>> covers only USB mouse (and then only those supporting the boot
>> protocol).
>
> Hi,
>
> could you explain in the log why you want this to depend
> on support for the boot protocol?
>
>     Regards
>         Oliver
diff mbox series

Patch

diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index a90ed2ceae84..7ed3ab36426d 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -1189,6 +1189,15 @@  static int usbhid_start(struct hid_device *hid)
 		device_set_wakeup_enable(&dev->dev, 1);
 	}
 
+	/* 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;