[PATCH 3/3] i2c: enable async suspend/resume on i2c client devices

From: Rajat Jain
Date: Mon Oct 25 2021 - 17:35:49 EST


From: Derek Basehore <dbasehore@xxxxxxxxxxxx>

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@xxxxxxxxxxxx>
Signed-off-by: Rajat Jain <rajatja@xxxxxxxxxx>
Tested-by: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx>
---
v2: Add Jarkko's tested by

drivers/i2c/i2c-core-base.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c
index 8d4f2be54e17..70d32efb68ef 100644
--- a/drivers/i2c/i2c-core-base.c
+++ b/drivers/i2c/i2c-core-base.c
@@ -1047,6 +1047,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) {
--
2.33.0.1079.g6e70778dc9-goog