From: sergei.shtylyov@cogentembedded.com (Sergei Shtylyov)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 05/13] pm: at91: move the copying the sram function to the sram initializationi phase
Date: Thu, 29 Jan 2015 13:11:05 +0300	[thread overview]
Message-ID: <54CA0739.2030101@cogentembedded.com> (raw)
In-Reply-To: <1422513535-23885-1-git-send-email-wenyou.yang@atmel.com>
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
next prev parent reply	other threads:[~2015-01-29 10:11 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-29  6:35 [PATCH v5 00/13] AT91 pm cleanup for 3.20 Wenyou Yang
2015-01-29  6:36 ` [PATCH v5 01/13] pm: at91: pm_slowclock: fix suspend/resume hang up in timeouts Wenyou Yang
2015-01-29  6:36 ` [PATCH v5 02/13] pm: at91: pm_slowclock: remove clocks which are already stopped when entering slow clock mode Wenyou Yang
2015-01-29  6:37 ` [PATCH v5 03/13] pm: at91: Workaround DDRSDRC self-refresh bug with LPDDR1 memories Wenyou Yang
2015-01-29  6:38 ` [PATCH v5 04/13] pm: at91: pm_slowclock: remove the unused code related with SLOWDOWN_MASTER_CLOCK Wenyou Yang
2015-01-29  6:38 ` [PATCH v5 05/13] pm: at91: move the copying the sram function to the sram initializationi phase Wenyou Yang
2015-01-29 10:11   ` Sergei Shtylyov [this message]
2015-01-30  6:54     ` Yang, Wenyou
2015-01-30 11:20       ` Sergei Shtylyov
2015-01-29  6:39 ` [PATCH v5 06/13] ARM: at91: move select SRAM to ARCH_AT91 Wenyou Yang
2015-01-29  6:40 ` [PATCH v5 07/13] pm: at91: remove the config item CONFIG_AT91_SLOW_CLOCK Wenyou Yang
2015-01-29  6:41 ` [PATCH v5 08/13] pm: at91: the standby mode uses the same sram function as the suspend to memory mode Wenyou Yang
2015-01-29  6:41 ` [PATCH v5 09/13] pm: at91: rename file name: pm_slowclock.S -->pm_suspend.S Wenyou Yang
2015-01-29  6:42 ` [PATCH v5 10/13] pm: at91: rename function name: at91_slow_clock()-->at91_pm_suspend_sram_fn Wenyou Yang
2015-01-29  6:43 ` [PATCH v5 11/13] pm: at91: remove the at91_xxx_standby() function definitions in the pm.h Wenyou Yang
2015-01-29  6:44 ` [PATCH v5 12/13] pm: at91: remove the data member at91_xxx_standby() of struct ramc_ids Wenyou Yang
2015-01-29  6:44 ` [PATCH v5 13/13] pm: at91: amend the pm_suspend entry for at91_cpuidle_device Wenyou Yang
2015-01-29 13:08 ` [PATCH v5 00/13] AT91 pm cleanup for 3.20 Nicolas Ferre
2015-01-30  7:35   ` Yang, Wenyou
2015-01-31 11:02   ` Alexandre Belloni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox
  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):
  git send-email \
    --in-reply-to=54CA0739.2030101@cogentembedded.com \
    --to=sergei.shtylyov@cogentembedded.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY
  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
  Be sure your reply has a Subject: header at the top and a blank line
  before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).