From: Lesly A M <[email protected]>

omap3: pm: re-program the sleep state of TRITON resources by modifying the 
REMAP register

Removed the warning print with checking order of scripts, since the order
is not important. Only the values configured in the register, which is pointing 
to
the starting address of each sequence should be correct.

Signed-off-by: Lesly A M <[email protected]>
Cc: Nishanth Menon <[email protected]>
Cc: David Derrick <[email protected]>
Cc: Samuel Ortiz <[email protected]>

---
 drivers/mfd/twl4030-power.c |   30 +++++++++++++++++++++++-------
 1 file changed, 23 insertions(+), 7 deletions(-)

Index: linux-omap-pm/drivers/mfd/twl4030-power.c
===================================================================
--- linux-omap-pm.orig/drivers/mfd/twl4030-power.c      2010-01-19 
19:18:56.000000000 +0530
+++ linux-omap-pm/drivers/mfd/twl4030-power.c   2010-01-19 19:19:02.000000000 
+0530
@@ -416,14 +416,35 @@
                return err;
        }
 
-       return 0;
+
+       /* Set the remap sleep cmd */
+       err = twl_i2c_read_u8(TWL4030_MODULE_PM_RECEIVER, &remap,
+                                       rconfig_addr + REMAP_OFFSET);
+       if (err < 0) {
+               printk(KERN_ERR "TWL4030 Resource %d remap could not read\n",
+                                                       rconfig->resource);
+               return err;
+       }
+
+       if (rconfig->remap_sleep >= 0) {
+               remap &= ~SLEEP_STATE_MASK;
+               remap |= rconfig->remap_sleep;
+       }
+
+       err = twl_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, remap,
+                               rconfig_addr + REMAP_OFFSET);
+       if (err < 0) {
+               pr_err("TWL4030 failed to program remap sleep cmd \n");
+               return err;
+       }
+
+       return err;
 }
 
 static int __init load_twl4030_script(struct twl4030_script *tscript,
               u8 address)
 {
        int err;
-       static int order;
 
        /* Make sure the script isn't going beyond last valid address (0x3f) */
        if ((address + tscript->size) > END_OF_SCRIPT) {
@@ -444,7 +465,6 @@
                err = twl4030_config_wakeup12_sequence(address);
                if (err)
                        goto out;
-               order = 1;
        }
        if (tscript->flags & TWL4030_WAKEUP3_SCRIPT) {
                err = twl4030_config_wakeup3_sequence(address);
@@ -452,10 +472,6 @@
                        goto out;
        }
        if (tscript->flags & TWL4030_SLEEP_SCRIPT)
-               if (order)
-                       pr_warning("TWL4030: Bad order of scripts (sleep "\
-                                       "script before wakeup) Leads to boot"\
-                                       "failure on some boards\n");
                err = twl4030_config_sleep_sequence(address);
 out:
        return err;
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to