]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
Merge branch 'for-2638/i2c/omap' into for-linus/i2c-2638
authorBen Dooks <ben-linux@fluff.org>
Wed, 12 Jan 2011 22:24:36 +0000 (22:24 +0000)
committerBen Dooks <ben-linux@fluff.org>
Wed, 12 Jan 2011 22:24:36 +0000 (22:24 +0000)
drivers/i2c/busses/i2c-omap.c

index 9d090833e245a7a6cbe48dceedb2de60343ef58a..b605ff3a1fa05703d8fbbaf12df90aaa1c125813 100644 (file)
@@ -598,12 +598,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;
@@ -654,12 +650,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;