|
@@ -455,8 +455,8 @@ static irqreturn_t rcar_i2c_irq(int irq, void *ptr)
|
|
|
|
|
|
/* Nack */
|
|
|
if (msr & MNR) {
|
|
|
- /* go to stop phase */
|
|
|
- rcar_i2c_write(priv, ICMCR, RCAR_BUS_PHASE_STOP);
|
|
|
+ /* HW automatically sends STOP after received NACK */
|
|
|
+ rcar_i2c_write(priv, ICMCR, RCAR_BUS_PHASE_DATA);
|
|
|
rcar_i2c_write(priv, ICMIER, RCAR_IRQ_STOP);
|
|
|
rcar_i2c_flags_set(priv, ID_NACK);
|
|
|
goto out;
|