diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mfd/twl4030-power.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/mfd/twl4030-power.c b/drivers/mfd/twl4030-power.c index e7688b041264..5284c7c169a5 100644 --- a/drivers/mfd/twl4030-power.c +++ b/drivers/mfd/twl4030-power.c | |||
@@ -379,6 +379,7 @@ static int __init load_twl4030_script(struct twl4030_script *tscript, | |||
379 | u8 address) | 379 | u8 address) |
380 | { | 380 | { |
381 | int err; | 381 | int err; |
382 | static int order; | ||
382 | 383 | ||
383 | /* Make sure the script isn't going beyond last valid address (0x3f) */ | 384 | /* Make sure the script isn't going beyond last valid address (0x3f) */ |
384 | if ((address + tscript->size) > END_OF_SCRIPT) { | 385 | if ((address + tscript->size) > END_OF_SCRIPT) { |
@@ -399,6 +400,7 @@ static int __init load_twl4030_script(struct twl4030_script *tscript, | |||
399 | err = twl4030_config_wakeup12_sequence(address); | 400 | err = twl4030_config_wakeup12_sequence(address); |
400 | if (err) | 401 | if (err) |
401 | goto out; | 402 | goto out; |
403 | order = 1; | ||
402 | } | 404 | } |
403 | if (tscript->flags & TWL4030_WAKEUP3_SCRIPT) { | 405 | if (tscript->flags & TWL4030_WAKEUP3_SCRIPT) { |
404 | err = twl4030_config_wakeup3_sequence(address); | 406 | err = twl4030_config_wakeup3_sequence(address); |
@@ -406,6 +408,10 @@ static int __init load_twl4030_script(struct twl4030_script *tscript, | |||
406 | goto out; | 408 | goto out; |
407 | } | 409 | } |
408 | if (tscript->flags & TWL4030_SLEEP_SCRIPT) | 410 | if (tscript->flags & TWL4030_SLEEP_SCRIPT) |
411 | if (order) | ||
412 | pr_warning("TWL4030: Bad order of scripts (sleep "\ | ||
413 | "script before wakeup) Leads to boot"\ | ||
414 | "failure on some boards\n"); | ||
409 | err = twl4030_config_sleep_sequence(address); | 415 | err = twl4030_config_sleep_sequence(address); |
410 | out: | 416 | out: |
411 | return err; | 417 | return err; |