OMAP3: PM: fix IO daisy chain enable to use PM_WKEN reg
authorKevin Hilman <khilman@deeprootsystems.com>
Wed, 9 Jun 2010 10:53:09 +0000 (13:53 +0300)
committerTony Lindgren <tony@atomide.com>
Thu, 10 Jun 2010 12:37:41 +0000 (15:37 +0300)
Checking to se if the IO daisy chain is enabled should be checking the
PM_WKEN register, not the PM_WKST register.  Reading PM_WKST tells us
if an event occurred, not whether or not it is enabled.

Apparently, we've been lucky until now in that a pending event has not
been there during enable.  However, on 3630/Zoom3, I noticed because
of the WARN that this timeout was always happening.

Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/pm34xx.c

index 2e967716cc3fd27bb368951b6ee0599897b2b490..b88737fd6cfe7a434f6254e81dad7f90d8e3cd1a 100644 (file)
@@ -99,7 +99,7 @@ static void omap3_enable_io_chain(void)
                /* Do a readback to assure write has been done */
                prm_read_mod_reg(WKUP_MOD, PM_WKEN);
 
-               while (!(prm_read_mod_reg(WKUP_MOD, PM_WKST) &
+               while (!(prm_read_mod_reg(WKUP_MOD, PM_WKEN) &
                         OMAP3430_ST_IO_CHAIN_MASK)) {
                        timeout++;
                        if (timeout > 1000) {
@@ -108,7 +108,7 @@ static void omap3_enable_io_chain(void)
                                return;
                        }
                        prm_set_mod_reg_bits(OMAP3430_ST_IO_CHAIN_MASK,
-                                            WKUP_MOD, PM_WKST);
+                                            WKUP_MOD, PM_WKEN);
                }
        }
 }