From f0190e5f80638444d95a06f3bdab5b850ab467e6 Mon Sep 17 00:00:00 2001 From: andip71 Date: Wed, 22 May 2013 10:57:35 +0200 Subject: Revert "tick: Cleanup NOHZ per cpu data on cpu down" andip71: This was a bug introduced in upstream to 3.0.79 which impacts CPU frequency scaling This reverts commit b9cbfd27308999d2ae56d1d341a3a77f91d04a19. Change-Id: I20aec7487cd7e426d52ce1724ee6216e594ba199 --- kernel/time/tick-sched.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index c0be5f2..c473ce2 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c @@ -811,7 +811,7 @@ void tick_cancel_sched_timer(int cpu) hrtimer_cancel(&ts->sched_timer); # endif - memset(ts, 0, sizeof(*ts)); + ts->nohz_mode = NOHZ_MODE_INACTIVE; } #endif -- cgit v1.1 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 --- arch/arm/configs/cyanogenmod_i9300_defconfig | 1 - drivers/cpufreq/Kconfig | 11 ----------- drivers/cpufreq/cpufreq_pegasusq.c | 4 ---- 3 files changed, 16 deletions(-) diff --git a/arch/arm/configs/cyanogenmod_i9300_defconfig b/arch/arm/configs/cyanogenmod_i9300_defconfig index fac25af..bfacadb 100644 --- a/arch/arm/configs/cyanogenmod_i9300_defconfig +++ b/arch/arm/configs/cyanogenmod_i9300_defconfig @@ -714,7 +714,6 @@ CONFIG_CMDLINE_EXTEND=y # CPU Frequency scaling # CONFIG_CPU_FREQ=y -CONFIG_HAS_BLUETOOTH_DEADLOCKS=y CONFIG_CPU_FREQ_TABLE=y CONFIG_CPU_FREQ_STAT=y # CONFIG_CPU_FREQ_STAT_DETAILS is not set 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 daa49a63ced8e1a3f7e2ddc94cd04fadd4bd0d80 Mon Sep 17 00:00:00 2001 From: Lanchon Date: Tue, 12 Jan 2016 02:44:18 -0300 Subject: IsoRec: Isolated Recovery for the Exynos 4210 family IsoRec aims to be a standard by which the monolithic kernel/recovery binaries of the S2 family of devices can invoke an alternate recovery optionally flashed separately by the user. The alternate recovery is flashed to the RECOVERY partition (/dev/block/mmcblk0p6), a seemingly vestigial partition without any real use. Only the lzop-compressed, cpio-formatted recovery ramdrive is stored there; the standard kernel image is used to run this recovery. The lzop-compressed image of the ramdrive is stored raw in the RECOVERY partition. Behavior of patch: -skip all this if not booting into recovery. -if the raw recovery partition contains valid lzop-compressed data, -and if said data is a valid cpio archive, -then use that cpio archive as the recovery ramdrive; -else use the default recovery ramdrive bundled with the kernel. More information here: http://forum.xda-developers.com/galaxy-s2/orig-development/isorec-isolated-recovery-galaxy-s2-t3291176 Change-Id: I2fa1b764b52915262374124ea28f5a2585314891 --- usr/galaxys2_initramfs_files/init | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/usr/galaxys2_initramfs_files/init b/usr/galaxys2_initramfs_files/init index 32eacfb..cb3da8e 100755 --- a/usr/galaxys2_initramfs_files/init +++ b/usr/galaxys2_initramfs_files/init @@ -12,8 +12,24 @@ busybox mount -t sysfs sysfs /sys load_image=/stage1/boot.cpio if busybox grep -q bootmode=2 /proc/cmdline ; then - # recovery boot - load_image=/stage1/recovery.cpio + + # recovery boot + + # default to recovery ramdisk bundled with kernel + load_image=/stage1/recovery.cpio + + # attempt isorec (isolated recovery) boot + + # if the raw /dev/block/platform/dw_mmc/by-name/RECOVERY + # partition contains valid lzop-compressed data + if busybox lzop -dc /dev/block/mmcblk0p6 > /stage1/isorec.cpio ; then + # and if said data is a valid cpio archive + if busybox cpio -t < /stage1/isorec.cpio ; then + # then use it as the recovery ramdisk + load_image=/stage1/isorec.cpio + fi + fi + fi busybox cpio -i < ${load_image} -- 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(-) 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 From be3d845ee40c30b52b56a7fb44013674ccab03fd Mon Sep 17 00:00:00 2001 From: rINanDO Date: Sat, 7 Nov 2015 23:55:16 +0100 Subject: smdk4210: Set CONFIG_MMC_BLOCK_MINORS=12 Allow vold to process all partitions on MMC Change-Id: I3dc38e5554ffa56b65dd0c80cbc41b49c18df062 --- arch/arm/configs/cyanogenmod_d710_defconfig | 2 +- arch/arm/configs/cyanogenmod_i777_defconfig | 2 +- arch/arm/configs/cyanogenmod_i9100_defconfig | 2 +- arch/arm/configs/cyanogenmod_n7000_defconfig | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm/configs/cyanogenmod_d710_defconfig b/arch/arm/configs/cyanogenmod_d710_defconfig index c396f95..e5945d3 100644 --- a/arch/arm/configs/cyanogenmod_d710_defconfig +++ b/arch/arm/configs/cyanogenmod_d710_defconfig @@ -2493,7 +2493,7 @@ CONFIG_MMC_EMBEDDED_SDIO=y # MMC/SD/SDIO Card Drivers # CONFIG_MMC_BLOCK=y -CONFIG_MMC_BLOCK_MINORS=8 +CONFIG_MMC_BLOCK_MINORS=12 CONFIG_MMC_BLOCK_BOUNCE=y # CONFIG_MMC_BLOCK_DEFERRED_RESUME is not set # CONFIG_SDIO_UART is not set diff --git a/arch/arm/configs/cyanogenmod_i777_defconfig b/arch/arm/configs/cyanogenmod_i777_defconfig index b3969ee..49d5e4d 100644 --- a/arch/arm/configs/cyanogenmod_i777_defconfig +++ b/arch/arm/configs/cyanogenmod_i777_defconfig @@ -2522,7 +2522,7 @@ CONFIG_MMC_EMBEDDED_SDIO=y # MMC/SD/SDIO Card Drivers # CONFIG_MMC_BLOCK=y -CONFIG_MMC_BLOCK_MINORS=8 +CONFIG_MMC_BLOCK_MINORS=12 CONFIG_MMC_BLOCK_BOUNCE=y # CONFIG_MMC_BLOCK_DEFERRED_RESUME is not set # CONFIG_SDIO_UART is not set diff --git a/arch/arm/configs/cyanogenmod_i9100_defconfig b/arch/arm/configs/cyanogenmod_i9100_defconfig index 5804d5b..1fe48b3 100644 --- a/arch/arm/configs/cyanogenmod_i9100_defconfig +++ b/arch/arm/configs/cyanogenmod_i9100_defconfig @@ -2521,7 +2521,7 @@ CONFIG_MMC_EMBEDDED_SDIO=y # MMC/SD/SDIO Card Drivers # CONFIG_MMC_BLOCK=y -CONFIG_MMC_BLOCK_MINORS=8 +CONFIG_MMC_BLOCK_MINORS=12 CONFIG_MMC_BLOCK_BOUNCE=y # CONFIG_MMC_BLOCK_DEFERRED_RESUME is not set # CONFIG_SDIO_UART is not set diff --git a/arch/arm/configs/cyanogenmod_n7000_defconfig b/arch/arm/configs/cyanogenmod_n7000_defconfig index 7e233d1..0ac33a0 100644 --- a/arch/arm/configs/cyanogenmod_n7000_defconfig +++ b/arch/arm/configs/cyanogenmod_n7000_defconfig @@ -2541,7 +2541,7 @@ CONFIG_MMC_PARANOID_SD_INIT=y # MMC/SD/SDIO Card Drivers # CONFIG_MMC_BLOCK=y -CONFIG_MMC_BLOCK_MINORS=8 +CONFIG_MMC_BLOCK_MINORS=12 CONFIG_MMC_BLOCK_BOUNCE=y # CONFIG_MMC_BLOCK_DEFERRED_RESUME is not set # CONFIG_SDIO_UART is not set -- cgit v1.1