i2c: enable async suspend/resume on i2c client devices
authorDerek Basehore <dbasehore@chromium.org>
Mon, 25 Oct 2021 21:35:31 +0000 (14:35 -0700)
committerWolfram Sang <wsa@kernel.org>
Mon, 29 Nov 2021 16:50:34 +0000 (17:50 +0100)
This enables the async suspend for i2c client devices. This reduces
the suspend/resume time considerably on platforms where i2c devices
can take a lot of time (hundreds of ms) to resume.

Signed-off-by: Derek Basehore <dbasehore@chromium.org>
Signed-off-by: Rajat Jain <rajatja@google.com>
Tested-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/i2c-core-base.c

index 457504a..1072a47 100644 (file)
@@ -1048,6 +1048,7 @@ i2c_new_client_device(struct i2c_adapter *adap, struct i2c_board_info const *inf
        client->dev.of_node = of_node_get(info->of_node);
        client->dev.fwnode = info->fwnode;
 
+       device_enable_async_suspend(&client->dev);
        i2c_dev_set_name(adap, client, info);
 
        if (info->swnode) {