]> git.baikalelectronics.ru Git - kernel.git/commit
ARM: EXYNOS: Fix coupled CPU idle freeze on Exynos4210
authorMarek Szyprowski <m.szyprowski@samsung.com>
Wed, 21 Mar 2018 09:45:05 +0000 (10:45 +0100)
committerKrzysztof Kozlowski <krzk@kernel.org>
Wed, 21 Mar 2018 17:50:02 +0000 (18:50 +0100)
commit4c393ecc8a678fe768afbfe29ee6b30b458d2adf
tree8e7a75e3418905b5b5fa83d925aae0d786a75760
parent6c488d046c9c98f237d174bd2e6b88de310aa522
ARM: EXYNOS: Fix coupled CPU idle freeze on Exynos4210

Since commit 3864158de553 ("irqchip/gic: Make locking a BL_SWITCHER only
feature") coupled CPU idle freezes from time to time on Exynos4210. Later
commit 72dbe5c2e922 ("PM / CPU: replace raw_notifier with atomic_notifier")
changed the context in which the CPU idle code is executed, what results
in fully reproducible freeze all the time. However, almost the same coupled
CPU idle code works fine on Exynos3250 regardless of the changes made in
the mentioned commits.

It turned out that the IPI call used on Exynos4210 is conflicting with the
change done in the first mentioned commit in GIC. Fix this by using the
same code path as for Exynos3250, instead of the IPI call for
synchronization with second CPU core, call dsb_sev() directly.

Tested on Exynos4210-based Trats and Origen boards.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
CC: <stable@vger.kernel.org> # v4.13+
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
arch/arm/mach-exynos/pm.c