From: Jagadeesh Bhaskar Pakaravoor <j-pakaravoor@xxxxxx> Save and restore should include OMAP_I2C_SYSC_REG. Signed-off-by: Jagadeesh Bhaskar Pakaravoor <j-pakaravoor@xxxxxx> CC: Jouni Hogander <jouni.hogander@xxxxxxxxx> --- Index: linux-omap-2.6/drivers/i2c/busses/i2c-omap.c =================================================================== --- linux-omap-2.6.orig/drivers/i2c/busses/i2c-omap.c 2009-01-22 12:11:12.000000000 +0530 +++ linux-omap-2.6/drivers/i2c/busses/i2c-omap.c 2009-01-22 12:44:12.202367296 +0530 @@ -182,6 +182,7 @@ struct omap_i2c_dev { u16 scllstate; u16 sclhstate; u16 bufstate; + u16 syscstate; }; static inline void omap_i2c_write_reg(struct omap_i2c_dev *i2c_dev, @@ -240,6 +241,7 @@ static void omap_i2c_unidle(struct omap_ omap_i2c_write_reg(dev, OMAP_I2C_SCLL_REG, dev->scllstate); omap_i2c_write_reg(dev, OMAP_I2C_SCLH_REG, dev->sclhstate); omap_i2c_write_reg(dev, OMAP_I2C_BUF_REG, dev->bufstate); + omap_i2c_write_reg(dev, OMAP_I2C_SYSC_REG, dev->syscstate); } dev->idle = 0; omap_i2c_write_reg(dev, OMAP_I2C_IE_REG, dev->iestate); @@ -300,14 +302,15 @@ static int omap_i2c_init(struct omap_i2c } else if (dev->rev >= OMAP_I2C_REV_ON_3430) { u32 v; - v = SYSC_AUTOIDLE_MASK; - v |= SYSC_ENAWAKEUP_MASK; - v |= (SYSC_IDLEMODE_SMART << + dev->syscstate = SYSC_AUTOIDLE_MASK; + dev->syscstate |= SYSC_ENAWAKEUP_MASK; + dev->syscstate |= (SYSC_IDLEMODE_SMART << __ffs(SYSC_SIDLEMODE_MASK)); - v |= (SYSC_CLOCKACTIVITY_FCLK << + dev->syscstate |= (SYSC_CLOCKACTIVITY_FCLK << __ffs(SYSC_CLOCKACTIVITY_MASK)); - omap_i2c_write_reg(dev, OMAP_I2C_SYSC_REG, v); + omap_i2c_write_reg(dev, OMAP_I2C_SYSC_REG, + dev->syscstate); /* * Enabling all wakup sources to stop I2C freezing on * WFI instruction. -- With Regards, Jagadeesh Bhaskar P ---------------------------- Some men see things as they are and say why - I dream things that never were and say why not. - George Bernard Shaw ---------------------------- -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html