hid: enable hid device to suspend/resume asynchronously
PATCH v2 1/1 hid: enable hid device to suspend/resume asynchronously
Now, PM core supports asynchronous suspend/resume mode for devices during system suspend/resume, and the power state transition of one device may be completed in separate kernel thread. PM core ensures all power state transition timing dependency between devices. This patch enables hid devices to suspend/resume asynchronously. This will take advantage of multicore and improve system suspend/resume speed.
---
Changes in v2:
- Amend commit message.
drivers/hid/hid-core.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
drivers/hid/hid-core.c +1 -0
@@ -2652,6 +2652,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
Hi Jiri,
Any comments about this patch?
After enabling the HID devices suspend/resume asynchronously on ASUS T100TA(Baytrail-T platform), the system suspend-to-idle/resume time is reduced about 20ms. Although this improvement is not very significant. But, if the suspend/resume operation of HID devices is very time-consuming on some other platforms, this patch can improve significantly system suspend/resume speed on these platforms.
Thanks,
Zhonghui
Quoted 30 lines · Zhonghui
Now, PM core supports asynchronous suspend/resume mode for devices during system suspend/resume, and the power state transition of one device may be completed in separate kernel thread. PM core ensures all power state transition timing dependency between devices. This patch enables hid devices to suspend/resume asynchronously. This will take advantage of multicore and improve system suspend/resume speed.
Signed-off-by Zhonghui Fu <[email protected]>---
Changes in v2:
- Amend commit message.drivers/hid/hid-core.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)drivers/hid/hid-core.c +1
-1@@ -2652,6 +2652,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
Jiri Kosina
maintainerQuoted 11 lines · Zhonghui
Hi Jiri,
Any comments about this patch?
After enabling the HID devices suspend/resume asynchronously on ASUS T100TA(Baytrail-T platform), the system suspend-to-idle/resume time is reduced about 20ms. Although this improvement is not very significant. But, if the suspend/resume operation of HID devices is very time-consuming on some other platforms, this patch can improve significantly system suspend/resume speed on these platforms.
Hi,
I don't think the question I've raised at
http://lkml.kernel.org/r/[email protected]
has ever been answered or at least discussed ... ?
Signature · 2 lines
Jiri Kosina SUSE Labs
Quoted 12 lines · Jiri Kosina
Quoted 10 lines · Zhonghui
Hi Jiri,
Any comments about this patch?
After enabling the HID devices suspend/resume asynchronously on ASUS T100TA(Baytrail-T platform), the system suspend-to-idle/resume time is reduced about 20ms. Although this improvement is not very significant. But, if the suspend/resume operation of HID devices is very time-consuming on some other platforms, this patch can improve significantly system suspend/resume speed on these platforms.
Quoted 7 lines
Hi,
I don't think the question I've raised at
http://lkml.kernel.org/r/[email protected]has ever been answered or at least discussed ... ?
Sorry for missing this mail.
At present, the file(/sys/.../power/async) can be used to enable one device suspend/resume asynchronously. My patch only changes the default value of this file from "disabled" to "enabled".
The sole difference of asynchronous suspend/resume mode is that the suspend/resume operation of one device is carried out in a separate kernel thread, and PM core ensures all related dependency. I have verified this patch on some platforms, such as ASUS T100TA. Actually, many other devices have used this feature for a long time.
Thanks,
Zhonghui
Quoted 1 line
Quoted 21 lines · Zhonghui
Now, PM core supports asynchronous suspend/resume mode for devices during system suspend/resume, and the power state transition of one device may be completed in separate kernel thread. PM core ensures all power state transition timing dependency between devices. This patch enables hid devices to suspend/resume asynchronously. This will take advantage of multicore and improve system suspend/resume speed.
Signed-off-by Zhonghui Fu <[email protected]>---
Changes in v2:
- Amend commit message.drivers/hid/hid-core.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)drivers/hid/hid-core.c +0
-0
drivers/hid/hid-core.c struct hid_device *hid_allocate_device(void) · line 2655
Quoted 4 lines
drivers/hid/hid-core.c +1
-0@@ -2652,6 +2652,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);
Applied to for-4.5/async-suspend branch.
Signature · 2 lines
Jiri Kosina SUSE Labs