diff options
Diffstat (limited to 'drivers/i2c')
-rw-r--r-- | drivers/i2c/busses/i2c-rcar.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c index f2cbb8a7d0ba..828b519146fc 100644 --- a/drivers/i2c/busses/i2c-rcar.c +++ b/drivers/i2c/busses/i2c-rcar.c | |||
@@ -294,15 +294,6 @@ static int rcar_i2c_recv(struct rcar_i2c_priv *priv) | |||
294 | 294 | ||
295 | static int rcar_i2c_send(struct rcar_i2c_priv *priv) | 295 | static int rcar_i2c_send(struct rcar_i2c_priv *priv) |
296 | { | 296 | { |
297 | int ret; | ||
298 | |||
299 | /* | ||
300 | * It should check bus status when send case | ||
301 | */ | ||
302 | ret = rcar_i2c_bus_barrier(priv); | ||
303 | if (ret < 0) | ||
304 | return ret; | ||
305 | |||
306 | rcar_i2c_set_addr(priv, 0); | 297 | rcar_i2c_set_addr(priv, 0); |
307 | rcar_i2c_status_clear(priv); | 298 | rcar_i2c_status_clear(priv); |
308 | rcar_i2c_write(priv, ICMCR, RCAR_BUS_PHASE_START); | 299 | rcar_i2c_write(priv, ICMCR, RCAR_BUS_PHASE_START); |
@@ -508,7 +499,10 @@ static int rcar_i2c_master_xfer(struct i2c_adapter *adap, | |||
508 | spin_unlock_irqrestore(&priv->lock, flags); | 499 | spin_unlock_irqrestore(&priv->lock, flags); |
509 | /*-------------- spin unlock -----------------*/ | 500 | /*-------------- spin unlock -----------------*/ |
510 | 501 | ||
511 | ret = -EINVAL; | 502 | ret = rcar_i2c_bus_barrier(priv); |
503 | if (ret < 0) | ||
504 | goto out; | ||
505 | |||
512 | for (i = 0; i < num; i++) { | 506 | for (i = 0; i < num; i++) { |
513 | /* This HW can't send STOP after address phase */ | 507 | /* This HW can't send STOP after address phase */ |
514 | if (msgs[i].len == 0) { | 508 | if (msgs[i].len == 0) { |
@@ -569,7 +563,7 @@ static int rcar_i2c_master_xfer(struct i2c_adapter *adap, | |||
569 | 563 | ||
570 | ret = i + 1; /* The number of transfer */ | 564 | ret = i + 1; /* The number of transfer */ |
571 | } | 565 | } |
572 | 566 | out: | |
573 | pm_runtime_put(dev); | 567 | pm_runtime_put(dev); |
574 | 568 | ||
575 | if (ret < 0 && ret != -ENXIO) | 569 | if (ret < 0 && ret != -ENXIO) |