ARM: rockchip: enable ARM_ERRATA_821420 for RK3288
authorHuang, Tao <huangtao@rock-chips.com>
Tue, 6 Jan 2015 04:23:57 +0000 (12:23 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Tue, 6 Jan 2015 04:25:21 +0000 (12:25 +0800)
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
arch/arm/mach-rockchip/Kconfig
arch/arm/mach-rockchip/pm-rk3288.c

index 5ecf911bdfd823a9eaa2bae06d6068868a06298e..24b25bc5cf9551d55ed18102edaaccaa3b243e27 100755 (executable)
@@ -21,6 +21,7 @@ config ARCH_ROCKCHIP
        select PL330_DMA
        select FIQ_GLUE
        select ARM_ERRATA_818325
+       select ARM_ERRATA_821420
 
 if ARCH_ROCKCHIP
 
index d2f98c5857f8cd54c887bd30e972167743d4178a..fcb6a7aa0c7bba145df2805773272bce1c646d6f 100755 (executable)
@@ -1290,6 +1290,14 @@ static void rkpm_save_setting(u32 ctrbits)
 }
 static void rkpm_save_setting_resume(void)
 {
+#ifdef CONFIG_ARM_ERRATA_821420
+       u32 v;
+
+       asm volatile("mrc p15, 0, %0, c15, c0, 2" : "=r" (v));
+       v |= 1 << 1;
+       asm volatile("mcr p15, 0, %0, c15, c0, 2" : : "r" (v));
+       isb();
+#endif
 
         #if 0
         rkpm_ddr_printascii("l2&arm_errata--");