2015-11-16 15:18:19

by Fu, Zhonghui

[permalink] [raw]
Subject: Re: [PATCH v2] hid: enable hid device to suspend/resume asynchronously


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



On 9/24/2015 2:06 PM, Fu, Zhonghui wrote:
> 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(-)
>
> diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
> index 70a11ac..357f3a3 100644
> --- a/drivers/hid/hid-core.c
> +++ b/drivers/hid/hid-core.c
> @@ -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
>


2015-11-16 15:26:38

by Jiri Kosina

[permalink] [raw]
Subject: Re: [PATCH v2] hid: enable hid device to suspend/resume asynchronously

On Mon, 16 Nov 2015, Fu, Zhonghui wrote:

>
> 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 ... ?

--
Jiri Kosina
SUSE Labs

2015-11-23 06:03:37

by Fu, Zhonghui

[permalink] [raw]
Subject: Re: [PATCH v2] hid: enable hid device to suspend/resume asynchronously



On 11/16/2015 11:26 PM, Jiri Kosina wrote:
> On Mon, 16 Nov 2015, Fu, Zhonghui wrote:
>
>> 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 ... ?
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
>