diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/cpufreq/Kconfig | 11 | ||||
-rw-r--r-- | drivers/cpufreq/cpufreq_pegasusq.c | 4 |
2 files changed, 15 insertions, 0 deletions
diff --git a/drivers/cpufreq/Kconfig b/drivers/cpufreq/Kconfig index 8112af3..9d4b5dd 100644 --- a/drivers/cpufreq/Kconfig +++ b/drivers/cpufreq/Kconfig @@ -17,6 +17,17 @@ 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 c44af54..aa172a1 100644 --- a/drivers/cpufreq/cpufreq_pegasusq.c +++ b/drivers/cpufreq/cpufreq_pegasusq.c @@ -155,7 +155,11 @@ 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) |