i2c: rk3x: report number of messages transmitted
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 20 Apr 2015 22:14:47 +0000 (15:14 -0700)
committerWolfram Sang <wsa@the-dreams.de>
Thu, 23 Apr 2015 17:35:28 +0000 (19:35 +0200)
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
drivers/i2c/busses/i2c-rk3x.c

index 5f96b1b3e3a5a30e2163098e4afe94fc4a06deeb..019d5426fe529edeead3f4f86f0bde9f388f1803 100644 (file)
@@ -833,7 +833,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)