From 0fc62e6cd3d3f5d56b50adebd3153e00ddcf5bac Mon Sep 17 00:00:00 2001 From: Simon Shields Date: Thu, 14 Jan 2016 00:04:31 +1100 Subject: smdk4412: revert old a2dp fixes Revert "cpufreq: pegasusq: allow keeping at least two cores awake", and revert "i9300: we have bluetooth deadlocks" This reverts commits 73bb47e7f14bb1d88b70cc46e532b2ec71d66049 and 008e15d4745c3a359ee01ed76529dee2366bac10. Change-Id: I6ecc5fc2bec9a68d80c9c3cf8d23d4ec448e1c73 --- drivers/cpufreq/Kconfig | 11 ----------- drivers/cpufreq/cpufreq_pegasusq.c | 4 ---- 2 files changed, 15 deletions(-) (limited to 'drivers') diff --git a/drivers/cpufreq/Kconfig b/drivers/cpufreq/Kconfig index 9d4b5dd..8112af3 100644 --- a/drivers/cpufreq/Kconfig +++ b/drivers/cpufreq/Kconfig @@ -17,17 +17,6 @@ config CPU_FREQ if CPU_FREQ -config HAS_BLUETOOTH_DEADLOCKS - bool "System has bluetooth deadlocks" - depends on BT_BCM4334 - default y - help - It seems that Android Lollipop introduced a bug which causes an - event listener to deadlock when A2DP is used and governor forces - only one core to stay awake. This hack prevents such situation by - always leaving at least two cores online. I wish we could get rid - of this at some point. - config CPU_FREQ_TABLE tristate diff --git a/drivers/cpufreq/cpufreq_pegasusq.c b/drivers/cpufreq/cpufreq_pegasusq.c index aa172a1..c44af54 100644 --- a/drivers/cpufreq/cpufreq_pegasusq.c +++ b/drivers/cpufreq/cpufreq_pegasusq.c @@ -155,11 +155,7 @@ static unsigned int get_nr_run_avg(void) #define MAX_HOTPLUG_RATE (40u) #define DEF_MAX_CPU_LOCK (0) -#ifdef CONFIG_HAS_BLUETOOTH_DEADLOCKS -#define DEF_MIN_CPU_LOCK (2) -#else #define DEF_MIN_CPU_LOCK (0) -#endif #define DEF_CPU_UP_FREQ (500000) #define DEF_CPU_DOWN_FREQ (200000) #define DEF_UP_NR_CPUS (1) -- cgit v1.1 From 6b99703cce6bd49c5f18bbab54871e6d4e14e064 Mon Sep 17 00:00:00 2001 From: Andrew Dodd Date: Sat, 5 Dec 2015 12:04:48 +0100 Subject: mali: 3-step gpu DVFS control for Exynos 4210 https://github.com/CyanogenMod/android_kernel_samsung_smdk4210/blob/cm-10.1/drivers/media/video/samsung/mali/platform/orion-m400/mali_platform_dvfs.c#L77 Change-Id: I07c4dbd99d5adce880616162674f6ef2e4ece4fd --- .../r3p2/mali/platform/pegasus-m400/exynos4_pmm.c | 28 +++++++++++++++------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'drivers') diff --git a/drivers/gpu/mali400/r3p2/mali/platform/pegasus-m400/exynos4_pmm.c b/drivers/gpu/mali400/r3p2/mali/platform/pegasus-m400/exynos4_pmm.c index 65acaa6..d2b919e 100644 --- a/drivers/gpu/mali400/r3p2/mali/platform/pegasus-m400/exynos4_pmm.c +++ b/drivers/gpu/mali400/r3p2/mali/platform/pegasus-m400/exynos4_pmm.c @@ -38,7 +38,7 @@ #include #ifdef CONFIG_CPU_EXYNOS4210 -#define MALI_DVFS_STEPS 2 +#define MALI_DVFS_STEPS 3 #define MALI_DVFS_WATING 10 /* msec */ #define MALI_DVFS_DEFAULT_STEP 0 #else @@ -87,7 +87,11 @@ typedef struct mali_runtime_resumeTag{ unsigned int step; }mali_runtime_resume_table; -mali_runtime_resume_table mali_runtime_resume = {266, 900000, 1}; +#if defined(CONFIG_CPU_EXYNOS4212) || defined(CONFIG_CPU_EXYNOS4412) +mali_runtime_resume_table mali_runtime_resume = {266, 900000, 1}; /* step 1 */ +#else +mali_runtime_resume_table mali_runtime_resume = {160, 950000, 1}; /* step 1 */ +#endif /* dvfs table */ mali_dvfs_table mali_dvfs[MALI_DVFS_STEPS]={ @@ -98,8 +102,10 @@ mali_dvfs_table mali_dvfs[MALI_DVFS_STEPS]={ /* step 3 */{440 ,1000000 ,1025000 ,85 , 90}, /* step 4 */{533 ,1000000 ,1075000 ,95 ,100} }; #else - /* step 0 */{134 ,1000000 , 950000 ,85 , 90}, - /* step 1 */{267 ,1000000 ,1050000 ,85 ,100} }; + /* step 0 */{100 ,1000000 , 950000 ,0 , 85}, + /* step 1 */{160 ,1000000 , 950000 ,80 ,90}, + /* step 2 */{267 ,1000000 ,1000000 ,80 ,100}, + }; #endif #ifdef EXYNOS4_ASV_ENABLED @@ -166,16 +172,22 @@ static unsigned int asv_3d_volt_4212_9_table[MALI_DVFS_STEPS][ASV_LEVEL_PD] = { #else static unsigned int asv_3d_volt_4210_12_table[MALI_DVFS_STEPS][ASV_LEVEL_4210_12] = { - { 1000000, 1000000, 1000000, 950000, 950000, 950000, 950000, 950000}, /* L1(134Mhz) */ + { 1000000, 1000000, 1000000, 950000, 950000, 950000, 950000, 950000}, /* L2(100Mhz) */ #if (MALI_DVFS_STEPS > 1) - { 1100000, 1100000, 1100000, 1000000, 1000000, 1000000, 1000000, 950000}, /* L0(266Mhz) */ + { 1000000, 1000000, 1000000, 950000, 950000, 950000, 950000, 950000}, /* L1(160Mhz) */ +#if (MALI_DVFS_STEPS > 2) + { 1100000, 1100000, 1100000, 1000000, 1000000, 1000000, 1000000, 950000}, /* L0(267Mhz) */ +#endif #endif }; static unsigned int asv_3d_volt_4210_14_table[MALI_DVFS_STEPS][ASV_LEVEL_4210_14] = { - { 1000000, 1000000, 950000, 950000, 950000}, /* L1(134Mhz) */ + { 1000000, 1000000, 950000, 950000, 950000}, /* L2(100Mhz) */ #if (MALI_DVFS_STEPS > 1) - { 1100000, 1100000, 1000000, 1000000, 950000}, /* L0(266Mhz) */ + { 1000000, 1000000, 950000, 950000, 950000}, /* L1(160Mhz) */ +#if (MALI_DVFS_STEPS > 2) + { 1100000, 1100000, 1000000, 1000000, 950000}, /* L0(267Mhz) */ +#endif #endif }; #endif -- cgit v1.1