diff options
author | Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> | 2016-02-03 13:15:11 +0100 |
---|---|---|
committer | Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> | 2016-02-03 13:15:11 +0100 |
commit | af90aa3080dd6af491f0131165a58beedb9e6217 (patch) | |
tree | d4a76180397fd7c2dd3c6ef6060bdc55be37cbe1 | |
parent | 4fb23ca1a553ad49a02e0fffc0474f615a72660e (diff) | |
parent | be3d845ee40c30b52b56a7fb44013674ccab03fd (diff) | |
download | kernel_samsung_smdk4412-af90aa3080dd6af491f0131165a58beedb9e6217.zip kernel_samsung_smdk4412-af90aa3080dd6af491f0131165a58beedb9e6217.tar.gz kernel_samsung_smdk4412-af90aa3080dd6af491f0131165a58beedb9e6217.tar.bz2 |
Merge branch 'cm-13.0' of https://github.com/CyanogenMod/android_kernel_samsung_smdk4412 into replicant-6.0replicant-6.0-alpha-0002replicant-6.0-old
Signed-off-by: Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de>
Conflicts:
usr/galaxys2_initramfs_files/init
-rw-r--r-- | arch/arm/configs/cyanogenmod_d710_defconfig | 2 | ||||
-rw-r--r-- | arch/arm/configs/cyanogenmod_i777_defconfig | 2 | ||||
-rw-r--r-- | arch/arm/configs/cyanogenmod_i9100_defconfig | 2 | ||||
-rw-r--r-- | arch/arm/configs/cyanogenmod_i9300_defconfig | 1 | ||||
-rw-r--r-- | arch/arm/configs/cyanogenmod_n7000_defconfig | 2 | ||||
-rw-r--r-- | drivers/cpufreq/Kconfig | 11 | ||||
-rw-r--r-- | drivers/cpufreq/cpufreq_pegasusq.c | 4 | ||||
-rw-r--r-- | drivers/gpu/mali400/r3p2/mali/platform/pegasus-m400/exynos4_pmm.c | 28 | ||||
-rw-r--r-- | kernel/time/tick-sched.c | 2 | ||||
-rwxr-xr-x | usr/galaxys2_initramfs_files/init | 42 |
10 files changed, 67 insertions, 29 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_i9300_defconfig b/arch/arm/configs/cyanogenmod_i9300_defconfig index 2743d3a..a493382 100644 --- a/arch/arm/configs/cyanogenmod_i9300_defconfig +++ b/arch/arm/configs/cyanogenmod_i9300_defconfig @@ -712,7 +712,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/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 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) 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 <linux/workqueue.h> #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 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 diff --git a/usr/galaxys2_initramfs_files/init b/usr/galaxys2_initramfs_files/init new file mode 100755 index 0000000..cb3da8e --- /dev/null +++ b/usr/galaxys2_initramfs_files/init @@ -0,0 +1,42 @@ +#!/stage1/busybox sh +_PATH="$PATH" +export PATH=/stage1 + +busybox cd / +busybox date >>boot.txt +exec >>boot.txt 2>&1 +busybox rm init +busybox mount -t proc proc /proc +busybox mount -t sysfs sysfs /sys + +load_image=/stage1/boot.cpio + +if busybox grep -q bootmode=2 /proc/cmdline ; then + + # 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} + +busybox umount /sys +busybox umount /proc +busybox date >>boot.txt +busybox rm -fr /stage1 /dev/* +export PATH="${_PATH}" +exec /init |