lkml.org 
[lkml]   [2015]   [Jan]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v5 05/13] pm: at91: move the copying the sram function to the sram initializationi phase
Hello.

On 1/29/2015 9:38 AM, Wenyou Yang wrote:

> To decrease the suspend time, move the copying the sram function
> to the sram initialization phase, instead of every time go to suspend.

> In the meanwhile, if there is no sram allocated for PM, the PM is not supported.

> Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
> Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> ---
> arch/arm/mach-at91/pm.c | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)

> diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
> index daa998d..6df0152 100644
> --- a/arch/arm/mach-at91/pm.c
> +++ b/arch/arm/mach-at91/pm.c
> @@ -163,10 +163,6 @@ static int at91_pm_enter(suspend_state_t state)
> * turning off the main oscillator; reverse on wakeup.
> */
> if (slow_clock) {
> -#ifdef CONFIG_AT91_SLOW_CLOCK
> - /* copy slow_clock handler to SRAM, and call it */
> - memcpy(slow_clock, at91_slow_clock, at91_slow_clock_sz);
> -#endif
> slow_clock(at91_pmc_base, at91_ramc_base[0],
> at91_ramc_base[1],
> at91_pm_data.memctrl);
> @@ -311,6 +307,9 @@ static void __init at91_pm_sram_init(void)
> sram_pbase = gen_pool_virt_to_phys(sram_pool, sram_base);
> slow_clock = __arm_ioremap_exec(sram_pbase, at91_slow_clock_sz, false);
>
> + /* Copy the slow_clock handler to SRAM */
> + memcpy(slow_clock, at91_slow_clock, at91_slow_clock_sz);

AFAIU (looking at the code above and below), __arm_ioremap_exec() can
return NULL and in this case memcpy() will cause kernel oops.

> @@ -328,7 +327,10 @@ static void __init at91_pm_init(void)
> if (at91_cpuidle_device.dev.platform_data)
> platform_device_register(&at91_cpuidle_device);
>
> - suspend_set_ops(&at91_pm_ops);
> + if (slow_clock)
> + suspend_set_ops(&at91_pm_ops);
> + else
> + pr_info("AT91: PM : Not supported, due to no sram allocated\n");

I'd suggest upper-casing "sram". And removing of colon after "PM".

[...]

WBR, Sergei



\
 
 \ /
  Last update: 2015-01-29 11:21    [W:0.175 / U:0.712 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site