i2c: i801: use i2c_mark_adapter_suspended/resumed
authorHeiner Kallweit <hkallweit1@gmail.com>
Wed, 20 Sep 2023 07:29:28 +0000 (09:29 +0200)
committerWolfram Sang <wsa@kernel.org>
Fri, 22 Sep 2023 09:39:42 +0000 (11:39 +0200)
When entering the suspend callback, at first we should ensure that
transfers are finished and I2C core can't start further transfers.
Use i2c_mark_adapter_suspended() for this purpose, and complement it
with a call to i2c_mark_adapter_resumed() in the resume path.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Reviewed-by: Andi Shyti <andi.shyti@kernel.org>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/busses/i2c-i801.c

index 6d02a8b886a6b7db1a53ec970a9e02fd4a315c4c..26f13227742c0ab4e3e049bc7b7eb0b670f312b1 100644 (file)
@@ -1818,6 +1818,7 @@ static int i801_suspend(struct device *dev)
 {
        struct i801_priv *priv = dev_get_drvdata(dev);
 
+       i2c_mark_adapter_suspended(&priv->adapter);
        i801_restore_regs(priv);
 
        return 0;
@@ -1829,6 +1830,7 @@ static int i801_resume(struct device *dev)
 
        i801_setup_hstcfg(priv);
        i801_enable_host_notify(&priv->adapter);
+       i2c_mark_adapter_resumed(&priv->adapter);
 
        return 0;
 }