|
@@ -247,7 +247,13 @@ static void omap_i2c_unidle(struct omap_i2c_dev *dev)
|
|
omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, OMAP_I2C_CON_EN);
|
|
omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, OMAP_I2C_CON_EN);
|
|
}
|
|
}
|
|
dev->idle = 0;
|
|
dev->idle = 0;
|
|
- omap_i2c_write_reg(dev, OMAP_I2C_IE_REG, dev->iestate);
|
|
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * Don't write to this register if the IE state is 0 as it can
|
|
|
|
+ * cause deadlock.
|
|
|
|
+ */
|
|
|
|
+ if (dev->iestate)
|
|
|
|
+ omap_i2c_write_reg(dev, OMAP_I2C_IE_REG, dev->iestate);
|
|
}
|
|
}
|
|
|
|
|
|
static void omap_i2c_idle(struct omap_i2c_dev *dev)
|
|
static void omap_i2c_idle(struct omap_i2c_dev *dev)
|