From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
To: Wenyou Yang <wenyou.yang@atmel.com>,
nicolas.ferre@atmel.com, linux@arm.linux.org.uk
Cc: linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org,
alexandre.belloni@free-electrons.com,
sylvain.rochet@finsecur.com, peda@axentia.se, linux@maxim.org.za
Subject: Re: [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=alexandre.belloni@free-electrons.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=linux@maxim.org.za \
--cc=nicolas.ferre@atmel.com \
--cc=peda@axentia.se \
--cc=sylvain.rochet@finsecur.com \
--cc=wenyou.yang@atmel.com \
/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