Subject: [RESEND PATCH] ARM: EXYNOS: Fix failed second suspend on Exynos4

From: [email-masked] (Bartlomiej Zolnierkiewicz)
Date: Tue, 03 Mar 2015 12:28:17 +0100

Hi Kukjin,

It has been a month since this regression fix was originally posted:
	https://lkml.org/lkml/2015/2/3/481

Could you please review/apply it?  Thank you.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

On Monday, February 23, 2015 05:25:48 PM Bartlomiej Zolnierkiewicz wrote:
> 
> Hi,
> 
> On Wednesday, February 18, 2015 11:45:25 AM Krzysztof Kozlowski wrote:
> > On Exynos4412 boards (Trats2, Odroid U3) after enabling L2 cache in
> > 56b60b8bce4a ("ARM: 8265/1: dts: exynos4: Add nodes for L2 cache
> > controller") the second suspend to RAM failed. First suspend worked fine
> > but the next one hang just after powering down of secondary CPUs (system
> > consumed energy as it would be running but was not responsive).
> > 
> > The issue was caused by enabling delayed reset assertion for CPU0 just
> > after issuing power down of cores. This was introduced for Exynos4 in
> > 13cfa6c4f7fa ("ARM: EXYNOS: Fix CPU idle clock down after CPU off").
> > 
> > The whole behavior is not well documented but after checking with vendor
> > code this should be done like this (on Exynos4):
> > 1. Enable delayed reset assertion when system is running (for all CPUs).
> > 2. Disable delayed reset assertion before suspending the system.
> >    This can be done after powering off secondary CPUs.
> > 3. Re-enable the delayed reset assertion when system is resumed.
> > 
> > Signed-off-by: Krzysztof Kozlowski <[email-masked]>
> > Fixes: 13cfa6c4f7fa ("ARM: EXYNOS: Fix CPU idle clock down after CPU off")
> > Cc: <[email-masked]>
> 
> It turned out that this patch is also needed to fix cpuidle AFTR mode
> hang on Trats2.
> 
> Tested-by: Bartlomiej Zolnierkiewicz <[email-masked]>
> 
> Best regards,
> --
> Bartlomiej Zolnierkiewicz
> Samsung R&D Institute Poland
> Samsung Electronics