summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSangwook Lee <sangwook.lee@linaro.org>2012-05-08 11:45:26 +0100
committerTushar Behera <tushar.behera@linaro.org>2012-06-11 14:54:23 +0530
commit7c1b4bf080f6bab62c3109934eda8e42290a3814 (patch)
treefe983215416b1632829d0371eb09c571ca6f8fd5
parente0703a02e96b23758ff8a8004d1d61ec850e52b6 (diff)
downloadlinux-topics-7c1b4bf080f6bab62c3109934eda8e42290a3814.tar.gz
ARM: EXYNOS: Add initial value of G3D power domain on Origen board
This patch adds the flag in order not to run G3D PD at the runtime. If it is running, Mali MMU setting will be destoried and the access to Mali MMU registers will cause kernel panic as showing following errors: MMU idle, activating page directory 0x6D884000 on MMU Mali-400 MMU for GP mali_mmu_register_write addr:0x0008 val:0x00000002 Signed-off-by: Sangwook Lee <sangwook.lee@linaro.org>
-rw-r--r--arch/arm/mach-exynos/mach-origen.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c
index 9eddb8a46b5..4d6abf8b1b7 100644
--- a/arch/arm/mach-exynos/mach-origen.c
+++ b/arch/arm/mach-exynos/mach-origen.c
@@ -24,6 +24,7 @@
#include <linux/rfkill-gpio.h>
#include <linux/ath6kl.h>
#include <linux/delay.h>
+#include <linux/pm_domain.h>
#include <asm/mach/arch.h>
#include <asm/hardware/gic.h>
@@ -902,6 +903,25 @@ static void __init origen_machine_init(void)
ath6kl_set_platform_data(&origen_wlan_data);
}
+/**
+ * This function will wait for platform device to be
+ * added and then change status. So subsys_initcall is used
+ */
+static __init int origen_pm_late_initcall(void)
+{
+ struct generic_pm_domain *p;
+
+ p = pd_to_genpd(s5p_device_g3d.dev.pm_domain);
+
+ /* This is flag not to call power_off callback */
+ /* pm_genpd_dev_always_on doesn't work with Mali */
+
+ p->status = GPD_STATE_WAIT_MASTER;
+
+ return 0;
+}
+subsys_initcall(origen_pm_late_initcall);
+
MACHINE_START(ORIGEN, "ORIGEN")
/* Maintainer: JeongHyeon Kim <jhkim@insignal.co.kr> */
.atag_offset = 0x100,