Samu Onkalo <samu.p.onkalo@xxxxxxxxx> writes: > Ordinary I2C read consist of two messages. First a write operation > to tell register address and then read operation to get data. > CPU wake up latency is set and removed twice in read case. > Set latency requirement before the message processing loop > and remove the requirement after the loop to remove latency > adjustment operations between the messages. > > Signed-off-by: Samu Onkalo <samu.p.onkalo@xxxxxxxxx> Acked-by: Kevin Hilman <khilman@xxxxxxxxxxxxxxxxxxx> Samu, Can you collect the acks and repost to linux-i2c@xxxxxxxxxxxxxxx and Cc Ben Dooks <ben-linux@xxxxxxxxx>. This one should go upstream via Ben. Thanks, Kevin > --- > drivers/i2c/busses/i2c-omap.c | 10 ++++++---- > 1 files changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c > index b33c785..3e9323e 100644 > --- a/drivers/i2c/busses/i2c-omap.c > +++ b/drivers/i2c/busses/i2c-omap.c > @@ -616,12 +616,8 @@ static int omap_i2c_xfer_msg(struct i2c_adapter *adap, > * REVISIT: We should abort the transfer on signals, but the bus goes > * into arbitration and we're currently unable to recover from it. > */ > - if (dev->set_mpu_wkup_lat != NULL) > - dev->set_mpu_wkup_lat(dev->dev, dev->latency); > r = wait_for_completion_timeout(&dev->cmd_complete, > OMAP_I2C_TIMEOUT); > - if (dev->set_mpu_wkup_lat != NULL) > - dev->set_mpu_wkup_lat(dev->dev, -1); > dev->buf_len = 0; > if (r < 0) > return r; > @@ -672,12 +668,18 @@ omap_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num) > if (r < 0) > goto out; > > + if (dev->set_mpu_wkup_lat != NULL) > + dev->set_mpu_wkup_lat(dev->dev, dev->latency); > + > for (i = 0; i < num; i++) { > r = omap_i2c_xfer_msg(adap, &msgs[i], (i == (num - 1))); > if (r != 0) > break; > } > > + if (dev->set_mpu_wkup_lat != NULL) > + dev->set_mpu_wkup_lat(dev->dev, -1); > + > if (r == 0) > r = num; -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html