Skip to contentSkip to conversation

hid: enable hid device to suspend/resume asynchronously

PATCH In review Fu, Zhonghui 2 participants 5 messages Aug 17, 2015 – Sep 25, 2015 HID

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 hid: enable hid device to suspend/resume asynchronously

Enable hid device to suspend/resume asynchronously. This can improve system suspend/resume speed.

---
 drivers/hid/hid-core.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
drivers/hid/hid-core.c +1 -0
index e6fce23..27ac160 100644
@@ -2627,6 +2627,7 @@ struct hid_device *hid_allocate_device(void)
 	device_initialize(&hdev->dev);
 	hdev->dev.release = hid_device_release;
 	hdev->dev.bus = &hid_bus_type;
+	device_enable_async_suspend(&hdev->dev);
 
 	hid_close_report(hdev);
 

-- 1.7.1

#1 lore raw

Hi,

Any comments are welcome.

Thanks,
Zhonghui

Quoted 22 lines · Zhonghui

Enable hid device to suspend/resume asynchronously. This can improve system suspend/resume speed.

---
 drivers/hid/hid-core.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
drivers/hid/hid-core.c +1 -1
index e6fce23..27ac160 100644
@@ -2627,6 +2627,7 @@ struct hid_device *hid_allocate_device(void)
 	device_initialize(&hdev->dev);
 	hdev->dev.release = hid_device_release;
 	hdev->dev.bus = &hid_bus_type;
+	device_enable_async_suspend(&hdev->dev);
 
 	hid_close_report(hdev);
 
-- 1.7.1
maintainer
#2 lore raw
In reply to Fu, Zhonghui
Quoted 2 lines · Zhonghui

Enable hid device to suspend/resume asynchronously. This can improve system suspend/resume speed.

How well was this tested?

Power management is notorious for not being really in excellent shape on many HID devices.

So I'd like to be careful.

Thanks,

Signature · 2 lines
Jiri Kosina
SUSE Labs
#3 lore raw
Quoted 10 lines · Jiri Kosina
Quoted 2 lines · Zhonghui

Enable hid device to suspend/resume asynchronously. This can improve system suspend/resume speed.

How well was this tested?

Power management is notorious for not being really in excellent shape on many HID devices.

So I'd like to be careful.

I were on leave these days, so sorry for late reply.

This can reduce system suspend/resume time about 20ms, from 1030ms to 1010ms on ASUS T100TA machine. Although the improvement is not very significant, but this can let your parent/child device suspend/resume more asynchronously and take advantage of multicore to improve overall system suspend/resume speed.

I have resent this patch with updated commit message - "[PATCH v2] hid: enable hid device to suspend/resume asynchronously".

Thanks,
Zhonghui

Quoted 3 lines

Thanks,

maintainer
#4 lore raw
Quoted 10 lines · Zhonghui
Quoted 8 lines
Quoted 2 lines

Enable hid device to suspend/resume asynchronously. This can improve system suspend/resume speed.

How well was this tested?

Power management is notorious for not being really in excellent shape on many HID devices.

So I'd like to be careful.

I were on leave these days, so sorry for late reply.

Quoted 8 lines

This can reduce system suspend/resume time about 20ms, from 1030ms to 1010ms on ASUS T100TA machine. Although the improvement is not very significant, but this can let your parent/child device suspend/resume more asynchronously and take advantage of multicore to improve overall system suspend/resume speed.

I have resent this patch with updated commit message - "[PATCH v2] hid:
enable hid device to suspend/resume asynchronously".

Is there any reason why not enable this from userspace via sysfs instead, based on whitelist on known-to-be-well-behaved devices, from udev?

I am really careful when it comes to enabling features like this (especially given the state of PM support on some low-end devices) globally.

Thanks,

Signature · 2 lines
Jiri Kosina
SUSE Labs