OMAP3: PM: fix io chain setup
authorGrazvydas Ignotas <notasas@gmail.com>
Sat, 28 May 2016 21:29:16 +0000 (00:29 +0300)
committerGrazvydas Ignotas <notasas@gmail.com>
Sun, 3 Jul 2016 00:23:25 +0000 (03:23 +0300)
seems like wrong register was read

arch/arm/mach-omap2/pm34xx.c

index 717c594..78993ef 100644 (file)
@@ -100,19 +100,19 @@ static void omap3_enable_io_chain(void)
 
        omap2_prm_set_mod_reg_bits(OMAP3430_EN_IO_CHAIN_MASK, WKUP_MOD,
                                   PM_WKEN);
-       /* Do a readback to assure write has been done */
-       omap2_prm_read_mod_reg(WKUP_MOD, PM_WKEN);
 
-       while (!(omap2_prm_read_mod_reg(WKUP_MOD, PM_WKEN) &
+       while (!(omap2_prm_read_mod_reg(WKUP_MOD, PM_WKST) &
                 OMAP3430_ST_IO_CHAIN_MASK)) {
                timeout++;
-               if (timeout > 1000) {
+               if (timeout > 100) {
                        pr_err("Wake up daisy chain activation failed.\n");
                        return;
                }
-               omap2_prm_set_mod_reg_bits(OMAP3430_ST_IO_CHAIN_MASK,
-                                          WKUP_MOD, PM_WKEN);
+               udelay(1);
        }
+
+       omap2_prm_set_mod_reg_bits(OMAP3430_ST_IO_CHAIN_MASK, WKUP_MOD,
+                                  PM_WKST);
 }
 
 static void omap3_disable_io_chain(void)