HID: i2c_hid: enable i2c-hid devices to suspend/resume asynchronously
authorFu, Zhonghui <zhonghui.fu@linux.intel.com>
Thu, 19 May 2016 02:46:24 +0000 (10:46 +0800)
committerJiri Kosina <jkosina@suse.cz>
Mon, 6 Jun 2016 08:40:59 +0000 (10:40 +0200)
i2c-hid devices' suspend/resume are usually time-consuming process.
For example, the touch controller(i2c-ATML1000:00) on ASUS T100 tablet
takes about 160ms for suspending and 120ms for resuming. This patch
enables i2c-hid devices to suspend/resume asynchronously. This will
take advantage of multicore and speed up system suspend/resume process.

Signed-off-by: Zhonghui Fu <zhonghui.fu@linux.intel.com>
Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/i2c-hid/i2c-hid.c

index 2e021ba8ff052eacdf1dda7bf68af24d9d628543..cc41e1ef8255df625dbad4ed17265aa2d287d522 100644 (file)
@@ -1020,6 +1020,7 @@ static int i2c_hid_probe(struct i2c_client *client,
        pm_runtime_get_noresume(&client->dev);
        pm_runtime_set_active(&client->dev);
        pm_runtime_enable(&client->dev);
+       device_enable_async_suspend(&client->dev);
 
        ret = i2c_hid_fetch_hid_descriptor(ihid);
        if (ret < 0)