aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-exynos
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-exynos')
-rw-r--r--arch/arm/mach-exynos/asv-4x12.c8
-rw-r--r--arch/arm/mach-exynos/asv.c6
-rw-r--r--arch/arm/mach-exynos/include/mach/asv.h13
-rw-r--r--arch/arm/mach-exynos/include/mach/regs-sysmmu.h1
4 files changed, 27 insertions, 1 deletions
diff --git a/arch/arm/mach-exynos/asv-4x12.c b/arch/arm/mach-exynos/asv-4x12.c
index 5eeaf20..4953af7 100644
--- a/arch/arm/mach-exynos/asv-4x12.c
+++ b/arch/arm/mach-exynos/asv-4x12.c
@@ -33,10 +33,18 @@
#define MOD_SG_OFFSET 21
#define MOD_SG_MASK 0x7
+#define LOCKING_OFFSET 7
+#define LOCKING_MASK 0x1F
+
+#define EMA_OFFSET 6
+#define EMA_MASK 0x1
+
#define DEFAULT_ASV_GROUP 1
#define CHIP_ID_REG (S5P_VA_CHIPID + 0x4)
+unsigned int exynos_armclk_max;
+
struct asv_judge_table exynos4x12_limit[] = {
/* HPM, IDS */
{ 0, 0}, /* Reserved Group */
diff --git a/arch/arm/mach-exynos/asv.c b/arch/arm/mach-exynos/asv.c
index 4a58ad0..7812009 100644
--- a/arch/arm/mach-exynos/asv.c
+++ b/arch/arm/mach-exynos/asv.c
@@ -25,14 +25,18 @@
static struct samsung_asv *exynos_asv;
unsigned int exynos_result_of_asv;
+unsigned int exynos_special_flag;
+bool exynos_dynamic_ema;
static int __init exynos4_asv_init(void)
{
int ret = -EINVAL;
exynos_asv = kzalloc(sizeof(struct samsung_asv), GFP_KERNEL);
- if (!exynos_asv)
+ if (!exynos_asv) {
+ ret = -ENOMEM;
goto out1;
+ }
if (soc_is_exynos4210())
ret = exynos4210_asv_init(exynos_asv);
diff --git a/arch/arm/mach-exynos/include/mach/asv.h b/arch/arm/mach-exynos/include/mach/asv.h
index 6fda670..ded531b 100644
--- a/arch/arm/mach-exynos/include/mach/asv.h
+++ b/arch/arm/mach-exynos/include/mach/asv.h
@@ -24,7 +24,20 @@
#define LOOP_CNT 10
+#define MIF_LOCK_FLAG 0
+#define INT_LOCK_FLAG 1
+#define G3D_LOCK_FLAG 2
+#define ARM_LOCK_FLAG 3
+
extern unsigned int exynos_result_of_asv;
+extern unsigned int exynos_armclk_max;
+extern unsigned int exynos_special_flag;
+extern bool exynos_dynamic_ema;
+
+static inline unsigned int is_special_flag(void)
+{
+ return exynos_special_flag;
+}
enum exynos4x12_abb_member {
ABB_INT,
diff --git a/arch/arm/mach-exynos/include/mach/regs-sysmmu.h b/arch/arm/mach-exynos/include/mach/regs-sysmmu.h
index a0626fa..4c2292b 100644
--- a/arch/arm/mach-exynos/include/mach/regs-sysmmu.h
+++ b/arch/arm/mach-exynos/include/mach/regs-sysmmu.h
@@ -17,6 +17,7 @@
#define S5P_MMU_CFG 0x004
#define S5P_MMU_STATUS 0x008
#define S5P_MMU_FLUSH 0x00C
+#define S5P_MMU_FLUSH_ENTRY 0x010
#define S5P_PT_BASE_ADDR 0x014
#define S5P_INT_STATUS 0x018
#define S5P_INT_CLEAR 0x01C