> --- a/drivers/i2c/busses/i2c-mv64xxx.c
> +++ b/drivers/i2c/busses/i2c-mv64xxx.c
> @@ -461,8 +461,15 @@ mv64xxx_i2c_do_action(struct mv64xxx_i2c_data *drv_data)
>       case MV64XXX_I2C_ACTION_OFFLOAD_SEND_START:
>               if (!mv64xxx_i2c_offload_msg(drv_data))
>                       break;
> -             else
> +             else {

Here you break the coding style...

>                       drv_data->action = MV64XXX_I2C_ACTION_SEND_START;
> +                     /*
> +                      * Switch to the standard path, so we finally need to
> +                      * prepare the io that have not been done in
> +                      * mv64xxx_i2c_execute_msg
> +                      */
> +                     mv64xxx_i2c_prepare_for_io(drv_data, drv_data->msgs);
> +             }

... but more importantly, NACK. The code is already hard to follow which
is the cause for this bug. This snipplet makes the code even harder to
read, so it needs some simplification IMO. I'll fire up a counterpatch
in a minute to explain what I mean.

>               /* FALLTHRU */
>       case MV64XXX_I2C_ACTION_SEND_START:
>               writel(drv_data->cntl_bits | MV64XXX_I2C_REG_CONTROL_START,
> -- 
> 1.8.1.2
> 

Attachment: signature.asc
Description: Digital signature

Reply via email to