kernel: bump 4.14 to 4.14.108
[openwrt/staging/mkresin.git] / target / linux / brcm2708 / patches-4.14 / 950-0033-i2c-bcm2835-Add-debug-support.patch
index f740fb5871de22b04478c35dfb86725a19225b43..47bb41f3d9d3945640ab474a7ef504db054694b7 100644 (file)
@@ -142,8 +142,8 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
 +      bcm2835_debug_add(i2c_dev, ~0);
  }
  
- /*
-@@ -206,6 +289,7 @@ static irqreturn_t bcm2835_i2c_isr(int t
+ static void bcm2835_i2c_finish_transfer(struct bcm2835_i2c_dev *i2c_dev)
+@@ -215,6 +298,7 @@ static irqreturn_t bcm2835_i2c_isr(int t
        u32 val, err;
  
        val = bcm2835_i2c_readl(i2c_dev, BCM2835_I2C_S);
@@ -151,7 +151,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
  
        err = val & (BCM2835_I2C_S_CLKT | BCM2835_I2C_S_ERR);
        if (err) {
-@@ -272,6 +356,13 @@ static int bcm2835_i2c_xfer(struct i2c_a
+@@ -281,6 +365,13 @@ static int bcm2835_i2c_xfer(struct i2c_a
        unsigned long time_left;
        int i, ret;
  
@@ -165,18 +165,19 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
        for (i = 0; i < (num - 1); i++)
                if (msgs[i].flags & I2C_M_RD) {
                        dev_warn_once(i2c_dev->dev,
-@@ -291,6 +382,10 @@ static int bcm2835_i2c_xfer(struct i2c_a
+@@ -301,6 +392,11 @@ static int bcm2835_i2c_xfer(struct i2c_a
        time_left = wait_for_completion_timeout(&i2c_dev->completion,
                                                adap->timeout);
 +      if (debug > 1 || (debug && (!time_left || i2c_dev->msg_err)))
 +              bcm2835_debug_print(i2c_dev);
 +      i2c_dev->debug_num_msgs = 0;
 +      i2c_dev->debug_num = 0;
++
+       bcm2835_i2c_finish_transfer(i2c_dev);
        if (!time_left) {
-               bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C,
-                                  BCM2835_I2C_C_CLEAR);
-@@ -301,7 +396,9 @@ static int bcm2835_i2c_xfer(struct i2c_a
+@@ -313,7 +409,9 @@ static int bcm2835_i2c_xfer(struct i2c_a
        if (!i2c_dev->msg_err)
                return num;