i2c: rk3x: report number of messages transmitted
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 20 Apr 2015 22:14:47 +0000 (15:14 -0700)
committerSasha Levin <sasha.levin@oracle.com>
Sun, 17 May 2015 23:12:23 +0000 (19:12 -0400)
[ Upstream commit c6cbfb91b878224e78408a2e15901c79de77115a ]

master_xfer() method should return number of i2c messages transferred,
but on Rockchip we were usually returning just 1, which caused trouble
with users that actually check number of transferred messages vs.
checking for negative error codes.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Cc: stable@kernel.org
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
drivers/i2c/busses/i2c-rk3x.c

index f486d0eac4d0202e3933f58a87f0537a587ee5ae..3ba933396c25494a2dfc6a0d19446735303d5d88 100644 (file)
@@ -588,7 +588,7 @@ static int rk3x_i2c_xfer(struct i2c_adapter *adap,
        clk_disable(i2c->clk);
        spin_unlock_irqrestore(&i2c->lock, flags);
 
-       return ret;
+       return ret < 0 ? ret : num;
 }
 
 static u32 rk3x_i2c_func(struct i2c_adapter *adap)