Re: [PATCH] I2C: OMAP: Include OMAP_I2C_SYSC_REG in save and restore

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

 



Hello,

ext Pakaravoor, Jagadeesh wrote:
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;

This local variable is left unused, so you will get a compiler warning.

-                       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

A.
--
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

[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux