Commit d82ad6d6 authored by Andrei Birjukov's avatar Andrei Birjukov Committed by Russell King

[ARM] at91: fix for Atmel AT91 powersaving

We've discovered that our AT91SAM9260 board consumed too much power when
returning from a slowclock low-power mode.  RAM self-refresh is enabled in
a bootloader in our case, this is how we saw a difference.  Estimated ca.
30mA more on 4V battery than the same state before powersaving.

After a small research we found that there seems to be a bogus
sdram_selfrefresh_disable() call at the end of at91_pm_enter() call, which
overwrites the LPR register with uninitialized value.  Please find the
suggested patch attached.

This patch fixes correct restoring of LPR register of the Atmel AT91 SDRAM
controller when returning from a power saving mode.
Signed-off-by: default avatarAndrei Birjukov <andrei.birjukov@artecdesign.ee>
Acked-by: default avatarAndrew Victor <linux@maxim.org.za>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 8cfd9e92
...@@ -332,7 +332,6 @@ static int at91_pm_enter(suspend_state_t state) ...@@ -332,7 +332,6 @@ static int at91_pm_enter(suspend_state_t state)
at91_sys_read(AT91_AIC_IPR) & at91_sys_read(AT91_AIC_IMR)); at91_sys_read(AT91_AIC_IPR) & at91_sys_read(AT91_AIC_IMR));
error: error:
sdram_selfrefresh_disable();
target_state = PM_SUSPEND_ON; target_state = PM_SUSPEND_ON;
at91_irq_resume(); at91_irq_resume();
at91_gpio_resume(); at91_gpio_resume();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment