]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
I2C: mv64xxx: remove I2C_M_NOSTART code
authorRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 16 May 2013 20:37:11 +0000 (21:37 +0100)
committerWolfram Sang <wsa@the-dreams.de>
Wed, 5 Jun 2013 21:06:47 +0000 (23:06 +0200)
As this driver does not advertise protocol mangling support
(I2C_FUNC_PROTOCOL_MANGLING is not set), having code to act on
I2C_M_NOSTART is illogical, and in any case isn't supportable on
anything but the first message - which makes no sense.  Remove
the I2C_M_NOSTART code.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Mark A. Greer <mgreer@animalcreek.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-mv64xxx.c

index 4b45c7363501b374413ff41c443df299a2e25da0..f11cb25c3295f0767a52421c1c42647e88808ef7 100644 (file)
@@ -419,28 +419,12 @@ mv64xxx_i2c_execute_msg(struct mv64xxx_i2c_data *drv_data, struct i2c_msg *msg,
        spin_lock_irqsave(&drv_data->lock, flags);
        mv64xxx_i2c_prepare_for_io(drv_data, msg);
 
-       if (unlikely(msg->flags & I2C_M_NOSTART)) { /* Skip start/addr phases */
-               if (drv_data->msg->flags & I2C_M_RD) {
-                       /* No action to do, wait for slave to send a byte */
-                       drv_data->action = MV64XXX_I2C_ACTION_CONTINUE;
-                       drv_data->state =
-                               MV64XXX_I2C_STATE_WAITING_FOR_SLAVE_DATA;
-               } else {
-                       drv_data->action = MV64XXX_I2C_ACTION_SEND_DATA;
-                       drv_data->state =
-                               MV64XXX_I2C_STATE_WAITING_FOR_SLAVE_ACK;
-                       drv_data->bytes_left--;
-               }
+       if (is_first) {
+               drv_data->action = MV64XXX_I2C_ACTION_SEND_START;
+               drv_data->state = MV64XXX_I2C_STATE_WAITING_FOR_START_COND;
        } else {
-               if (is_first) {
-                       drv_data->action = MV64XXX_I2C_ACTION_SEND_START;
-                       drv_data->state =
-                               MV64XXX_I2C_STATE_WAITING_FOR_START_COND;
-               } else {
-                       drv_data->action = MV64XXX_I2C_ACTION_SEND_ADDR_1;
-                       drv_data->state =
-                               MV64XXX_I2C_STATE_WAITING_FOR_ADDR_1_ACK;
-               }
+               drv_data->action = MV64XXX_I2C_ACTION_SEND_ADDR_1;
+               drv_data->state = MV64XXX_I2C_STATE_WAITING_FOR_ADDR_1_ACK;
        }
 
        drv_data->send_stop = is_last;