]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
i2c: zx2967: use core helper to mark adapter suspended
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Wed, 19 Dec 2018 16:48:21 +0000 (17:48 +0100)
committerWolfram Sang <wsa@the-dreams.de>
Tue, 8 Jan 2019 20:02:49 +0000 (21:02 +0100)
Rejecting transfers should be handled by the core. Also, this will
ensure proper locking which was forgotten in this open coded version
and make sure resume mark is set after enabling clocks (not before).

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: Shawn Guo <shawnguo@kernel.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-zx2967.c

index b8f9e020d80e6a1049ff0328788073b628f6777c..7b98d97da3c6e99eb1a0047cff83fd556cd839a0 100644 (file)
@@ -66,7 +66,6 @@ struct zx2967_i2c {
        int                     msg_rd;
        u8                      *cur_trans;
        u8                      access_cnt;
-       bool                    is_suspended;
        int                     error;
 };
 
@@ -313,9 +312,6 @@ static int zx2967_i2c_xfer(struct i2c_adapter *adap,
        int ret;
        int i;
 
-       if (i2c->is_suspended)
-               return -EBUSY;
-
        zx2967_set_addr(i2c, msgs->addr);
 
        for (i = 0; i < num; i++) {
@@ -470,7 +466,7 @@ static int __maybe_unused zx2967_i2c_suspend(struct device *dev)
 {
        struct zx2967_i2c *i2c = dev_get_drvdata(dev);
 
-       i2c->is_suspended = true;
+       i2c_mark_adapter_suspended(&i2c->adap);
        clk_disable_unprepare(i2c->clk);
 
        return 0;
@@ -480,8 +476,8 @@ static int __maybe_unused zx2967_i2c_resume(struct device *dev)
 {
        struct zx2967_i2c *i2c = dev_get_drvdata(dev);
 
-       i2c->is_suspended = false;
        clk_prepare_enable(i2c->clk);
+       i2c_mark_adapter_resumed(&i2c->adap);
 
        return 0;
 }