Re: [PATCHV2 3/5] OMAP: I2C: Remove the reset in the init path

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thursday 21 July 2011 04:57 PM, Santosh Shilimkar wrote:
Thanks for your review.
On 7/21/2011 4:39 PM, Shubhrajyoti D wrote:

<snip>
+        /*
+         * Enabling all wakup sources to stop I2C freezing on
+         * WFI instruction.
+         * REVISIT: Some wkup sources might not be needed.
+         */
Surely not related to your patch. But the 'REVISIT:' caught
my attention. Is the comment still valid.

Yes I will look and optimise the settings. Obviously all of them may not be needed.
Will get back on this.

Also I see that we are not writing it for " < OMAP_I2C_REV_ON_3530_4430"
I will send a patch correcting the same.


+        dev->westate = OMAP_I2C_WE_ALL;
+        if (dev->rev<  OMAP_I2C_REV_ON_3530_4430)
Space if (dev->rev <  OMAP_I2C_REV_ON_3530_4430)
+            omap_i2c_write_reg(dev, OMAP_I2C_WE_REG,
+                            dev->westate);
      }
      omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, 0);

@@ -612,6 +572,11 @@ static int omap_i2c_xfer_msg(struct i2c_adapter *adap,
          return r;
      if (r == 0) {
          dev_err(dev->dev, "controller timed out\n");
+        if (dev->device_reset != NULL) {
+            r = dev->device_reset(dev->dev);
+            if (r<  0)
ditto
+                dev_err(dev->dev, "reset failed\n");
+        }
          omap_i2c_init(dev);
          return -ETIMEDOUT;
      }
@@ -622,6 +587,11 @@ static int omap_i2c_xfer_msg(struct i2c_adapter *adap,
      /* We have an error */
      if (dev->cmd_err&  (OMAP_I2C_STAT_AL | OMAP_I2C_STAT_ROVR |
You can fix this one as well.
                  OMAP_I2C_STAT_XUDF)) {
+        if (dev->device_reset != NULL) {
+            r = dev->device_reset(dev->dev);
+            if (r<  0)
here too.
+                dev_err(dev->dev, "reset failed\n");
+        }
          omap_i2c_init(dev);
          return -EIO;
      }
@@ -1024,6 +994,7 @@ omap_i2c_probe(struct platform_device *pdev)
      if (pdata != NULL) {
          speed = pdata->clkrate;
          dev->set_mpu_wkup_lat = pdata->set_mpu_wkup_lat;
+        dev->device_reset = pdata->device_reset;
      } else {
          speed = 100;    /* Default speed */
          dev->set_mpu_wkup_lat = NULL;

Regards
Santosh

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux