Commit 5601df35 authored by Wolfram Sang's avatar Wolfram Sang Committed by Wolfram Sang
Browse files

i2c: zx2967: use core helper to mark adapter suspended



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: default avatarWolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: default avatarShawn Guo <shawnguo@kernel.org>
Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
parent f2e0d28c
Loading
Loading
Loading
Loading
+2 −6
Original line number Diff line number Diff line
@@ -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;
}