[PATCH v8] ARM: EXYNOS: Use MCPM call-backs to support S2R on Exynos5420
Javier Martinez Canillas
javier at dowhile0.org
Mon Oct 6 04:59:24 PDT 2014
Hello Abhilash,
On Mon, Oct 6, 2014 at 11:08 AM, Abhilash Kesavan
<kesavan.abhilash at gmail.com> wrote:
>>>> diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c
>>>> index adb36a8..222aa3c 100644
>>>> --- a/arch/arm/mach-exynos/platsmp.c
>>>> +++ b/arch/arm/mach-exynos/platsmp.c
>>>> @@ -137,6 +137,18 @@ void exynos_cpu_power_down(int cpu)
>>>> */
>>>> void exynos_cpu_power_up(int cpu)
>>>> {
>>>> + if (cpu == 0 && (of_machine_is_compatible("samsung,exynos5420") ||
>>>> + of_machine_is_compatible("samsung,exynos5800"))) {
>>>> + /*
>>>> + * Bypass power down for CPU0 during suspend. Check for
>>>> + * the SYS_PWR_REG value to decide if we are suspending
>>>> + * the system.
>>>> + */
>>>> + int val = __raw_readl(pmu_base_addr +
>>>> + EXYNOS5_ARM_CORE0_SYS_PWR_REG);
>>>> + if (!(val & S5P_CORE_LOCAL_PWR_EN))
>>>> + return;
>>>> + }
>>>> pmu_raw_writel(S5P_CORE_LOCAL_PWR_EN,
>>>> EXYNOS_ARM_CORE_CONFIGURATION(cpu));
>>>> }
>>>
>>> The above block of code should be in exynos_cpu_power_down(). Can you
>>> re-test s2r after modifying it ? I have to convert a __raw_readl to
>>> pmu_raw_readl in this patch as well. Once Vikas re-works the base s2r
>>> patch I will re-post a v9.
>>>
>>
>> Thanks, for the information but unfortunately even after this change I
>> still have the issue reported in [0]. I also removed the lines from
>> exynos5420_pm_resume() that you asked Vikash [1].
>
> I have just tested this on the 5420 that I have and it resumes fine.
> The difference could be in the bootloader we are using. I'll send out
> details of my current setup so that you can cross-check if everything
> is the same.
Thanks a lot for sending me the patches you are using to test.
But after looking at the differences I noticed that your patches are
not removing the lines that set the CPU0 low power states at the start
of exynos5420_pm_resume() as you asked Vikas [1] but instead your
version of this patch does not have the code that does the same
operation after the early_wakeup label like is made in $subject.
IOW, this [2] is what I had to change on top of $subject to have s2r
working. After that change, both suspending to ram and resuming due
the RTC IRQ alarm being triggered and the core pm_test case works well
on my Exynos5420 Peach Pit.
>
> Regards,
> Abhilash
Best regards,
Javier
[0]: http://www.spinics.net/lists/arm-kernel/msg367615.html
[1]: http://www.spinics.net/lists/linux-samsung-soc/msg37561.html
[2]: http://pastebin.com/raw.php?i=XSxJH3Ys
More information about the linux-arm-kernel
mailing list