This enables the async suspend property for i2c devices. This reduces the suspend/resume time considerably on platforms with multiple i2c devices (such as a trackpad or touchscreen). (am from https://patchwork.ozlabs.org/patch/949922/) Signed-off-by: Derek Basehore <dbasehore@xxxxxxxxxxxx> Reviewed-on: https://chromium-review.googlesource.com/1152411 Tested-by: Venkateswarlu V Vinjamuri <venkateswarlu.v.vinjamuri@xxxxxxxxx> Reviewed-by: Venkateswarlu V Vinjamuri <venkateswarlu.v.vinjamuri@xxxxxxxxx> Reviewed-by: Justin TerAvest <teravest@xxxxxxxxxxxx> Signed-off-by: Guenter Roeck <groeck@xxxxxxxxxxxx> Signed-off-by: Ricardo Cañuelo <ricardo.canuelo@xxxxxxxxxxxxx> --- This patch was originally created for chromeos some time ago and I'm evaluating if it's a good candidate for upstreaming. By the looks of it I think it was done with chromebooks in mind, but AFAICT this would impact every i2c client in every platform, so I'd like to know your opinion about it. As far as I know there was no further investigation or testing on it, so I don't know if it was tested on any other hardware. Best, Ricardo 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 cefad0881942..643bc0fe0281 100644 --- a/drivers/i2c/i2c-core-base.c +++ b/drivers/i2c/i2c-core-base.c @@ -769,6 +769,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->properties) { -- 2.18.0