diff options
Diffstat (limited to 'arch/arm/mach-exynos')
-rw-r--r-- | arch/arm/mach-exynos/asv-4x12.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-exynos/asv.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-exynos/include/mach/asv.h | 13 | ||||
-rw-r--r-- | arch/arm/mach-exynos/include/mach/regs-sysmmu.h | 1 |
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 |