From: Kukjin Kim <kgene.kim@samsung.com>
To: 'Abhilash Kesavan' <a.kesavan@samsung.com>,
linux-samsung-soc@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, t.figa@samsung.com
Cc: daniel.lezcano@linaro.org
Subject: RE: [PATCH] arm: exynos: Modify pm code to check for cortex A9 rather than the SoC
Date: Tue, 17 Jun 2014 11:50:22 +0900 [thread overview]
Message-ID: <00ef01cf89d6$e248eb30$a6dac190$@samsung.com> (raw)
In-Reply-To: <1400814061-12813-1-git-send-email-a.kesavan@samsung.com>
Abhilash Kesavan wrote:
>
> We have an soc check to ensure that the scu and certain A9 specific
> registers are not accessed on Exynos5250 (which is A15 based).
> Rather than adding another soc specific check for 5420 let us test
> for the Cortex A9 primary part number.
>
> This resolves the below crash seen on exynos5420 during core switching
> after the CPUIdle consolidation series was merged.
>
> [ 155.975589] [<c0013174>] (scu_enable) from [<c001b0dc>]
> (exynos_cpu_pm_notifier+0x80/0xc4)
> [ 155.983833] [<c001b0dc>] (exynos_cpu_pm_notifier) from [<c003c1b0>]
> (notifier_call_chain+0x44/0x84)
> [ 155.992851] [<c003c1b0>] (notifier_call_chain) from [<c007a49c>]
> (cpu_pm_notify+0x20/0x3c)
> [ 156.001089] [<c007a49c>] (cpu_pm_notify) from [<c007a564>] (cpu_pm_exit+0x20/0x38)
> [ 156.008635] [<c007a564>] (cpu_pm_exit) from [<c0019e98>]
> (bL_switcher_thread+0x298/0x40c)
> [ 156.016788] [<c0019e98>] (bL_switcher_thread) from [<c003842c>] (kthread+0xcc/0xe8)
> [ 156.024426] [<c003842c>] (kthread) from [<c000e438>] (ret_from_fork+0x14/0x3c)
> [ 156.031621] Code: ea017fec c0530a00 c052e3f8 c0012dcc (e5903000
>
> Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
> ---
> arch/arm/mach-exynos/pm.c | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm/mach-exynos/pm.c b/arch/arm/mach-exynos/pm.c
> index d10c351..6dd4a11 100644
> --- a/arch/arm/mach-exynos/pm.c
> +++ b/arch/arm/mach-exynos/pm.c
> @@ -300,7 +300,7 @@ static int exynos_pm_suspend(void)
> tmp = (S5P_USE_STANDBY_WFI0 | S5P_USE_STANDBY_WFE0);
> __raw_writel(tmp, S5P_CENTRAL_SEQ_OPTION);
>
> - if (!soc_is_exynos5250())
> + if (read_cpuid_part_number() == ARM_CPU_PART_CORTEX_A9)
> exynos_cpu_save_register();
>
> return 0;
> @@ -334,7 +334,7 @@ static void exynos_pm_resume(void)
> if (exynos_pm_central_resume())
> goto early_wakeup;
>
> - if (!soc_is_exynos5250())
> + if (read_cpuid_part_number() == ARM_CPU_PART_CORTEX_A9)
> exynos_cpu_restore_register();
>
> /* For release retention */
> @@ -353,7 +353,7 @@ static void exynos_pm_resume(void)
>
> s3c_pm_do_restore_core(exynos_core_save, ARRAY_SIZE(exynos_core_save));
>
> - if (!soc_is_exynos5250())
> + if (read_cpuid_part_number() == ARM_CPU_PART_CORTEX_A9)
> scu_enable(S5P_VA_SCU);
>
> early_wakeup:
> @@ -440,15 +440,18 @@ static int exynos_cpu_pm_notifier(struct notifier_block *self,
> case CPU_PM_ENTER:
> if (cpu == 0) {
> exynos_pm_central_suspend();
> - exynos_cpu_save_register();
> + if (read_cpuid_part_number() == ARM_CPU_PART_CORTEX_A9)
> + exynos_cpu_save_register();
> }
> break;
>
> case CPU_PM_EXIT:
> if (cpu == 0) {
> - if (!soc_is_exynos5250())
> + if (read_cpuid_part_number() ==
> + ARM_CPU_PART_CORTEX_A9) {
> scu_enable(S5P_VA_SCU);
> - exynos_cpu_restore_register();
> + exynos_cpu_restore_register();
> + }
> exynos_pm_central_resume();
> }
> break;
> --
> 1.7.9.5
Yes, looks good to me.
I've applied this into fixes for 3.16.
Thanks,
Kukjin
prev parent reply other threads:[~2014-06-17 2:50 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-23 3:01 [PATCH] arm: exynos: Modify pm code to check for cortex A9 rather than the SoC Abhilash Kesavan
2014-06-16 4:07 ` Abhilash Kesavan
2014-06-24 16:11 ` Russell King - ARM Linux
2014-06-24 16:20 ` Russell King - ARM Linux
2014-06-24 16:20 ` Tomasz Figa
2014-06-24 16:30 ` Russell King - ARM Linux
2014-06-24 17:16 ` Tomasz Figa
2014-06-24 18:12 ` Russell King - ARM Linux
2014-06-25 5:00 ` Abhilash Kesavan
2014-06-25 11:02 ` Kukjin Kim
2014-06-25 11:18 ` Russell King - ARM Linux
2014-06-17 2:50 ` Kukjin Kim [this message]
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='00ef01cf89d6$e248eb30$a6dac190$@samsung.com' \
--to=kgene.kim@samsung.com \
--cc=a.kesavan@samsung.com \
--cc=daniel.lezcano@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=t.figa@samsung.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