]> git.sur5r.net Git - u-boot/commitdiff
mvtwsi: Fix breakage introduced by "Fix mvtwsi not working on sun6i and newer sunxi...
authorHans de Goede <hdegoede@redhat.com>
Tue, 26 Jan 2016 15:51:14 +0000 (16:51 +0100)
committerHans de Goede <hdegoede@redhat.com>
Tue, 26 Jan 2016 16:58:02 +0000 (17:58 +0100)
"Fix mvtwsi not working on sun6i and newer sunxi SoCs" includes the following:

@@ -189,7 +200,8 @@ static int twsi_start(struct i2c_adapter *adap, int expected_status)
  /* globally set TWSIEN in case it was not */
  twsi_control_flags |= MVTWSI_CONTROL_TWSIEN;
  /* assert START */
- writel(twsi_control_flags | MVTWSI_CONTROL_START, &twsi->control);
+ twsi_control_flags |= MVTWSI_CONTROL_START | MVTWSI_CONTROL_CLEAR_IFLG;
+ writel(twsi_control_flags, &twsi->control);
  /* wait for controller to process START */
  return twsi_wait(adap, expected_status);
 }

The modification of twsi_control_flags done here was introduced while
merging to fix a line > 80 chars, but twsi_control_flags is a global variable
and should not be modified like this here, this commit fixes this, restoring
mvtwsi functionality.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/i2c/mvtwsi.c

index 5f993b99052360b406860bc2098b67e68cfeb57c..221ff4fe7afa02b39c56a5cd12a1cf359ae975ac 100644 (file)
@@ -204,8 +204,8 @@ static int twsi_start(struct i2c_adapter *adap, int expected_status)
        /* globally set TWSIEN in case it was not */
        twsi_control_flags |= MVTWSI_CONTROL_TWSIEN;
        /* assert START */
-       twsi_control_flags |= MVTWSI_CONTROL_START | MVTWSI_CONTROL_CLEAR_IFLG;
-       writel(twsi_control_flags, &twsi->control);
+       writel(twsi_control_flags | MVTWSI_CONTROL_START |
+                                   MVTWSI_CONTROL_CLEAR_IFLG, &twsi->control);
        /* wait for controller to process START */
        return twsi_wait(adap, expected_status);
 }