From: Huang, Tao Date: Tue, 2 Jun 2015 03:25:34 +0000 (+0800) Subject: Merge tag 'lsk-v3.10-15.05-android' into develop-3.10 X-Git-Tag: firefly_0821_release~4091 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=3ca9efa2f84503d67046ce2583470618b0faba24;p=firefly-linux-kernel-4.4.55.git Merge tag 'lsk-v3.10-15.05-android' into develop-3.10 --- 3ca9efa2f84503d67046ce2583470618b0faba24 diff --cc arch/arm64/kernel/psci.c index d356b8d4531c,fc457d0fee9c..bfcf55da61b3 --- a/arch/arm64/kernel/psci.c +++ b/arch/arm64/kernel/psci.c @@@ -102,49 -104,14 +105,15 @@@ static u32 psci_power_state_pack(struc static void psci_power_state_unpack(u32 power_state, struct psci_power_state *state) { - state->id = (power_state >> PSCI_0_2_POWER_STATE_ID_SHIFT) - & PSCI_0_2_POWER_STATE_ID_MASK; - state->type = (power_state >> PSCI_0_2_POWER_STATE_TYPE_SHIFT) - & PSCI_0_2_POWER_STATE_TYPE_MASK; - state->affinity_level = (power_state >> PSCI_0_2_POWER_STATE_AFFL_SHIFT) - & PSCI_0_2_POWER_STATE_AFFL_MASK; + state->id = (power_state & PSCI_0_2_POWER_STATE_ID_MASK) >> + PSCI_0_2_POWER_STATE_ID_SHIFT; + state->type = (power_state & PSCI_0_2_POWER_STATE_TYPE_MASK) >> + PSCI_0_2_POWER_STATE_TYPE_SHIFT; + state->affinity_level = + (power_state & PSCI_0_2_POWER_STATE_AFFL_MASK) >> + PSCI_0_2_POWER_STATE_AFFL_SHIFT; } - /* - * The following two functions are invoked via the invoke_psci_fn pointer - * and will not be inlined, allowing us to piggyback on the AAPCS. - */ - static noinline int __invoke_psci_fn_hvc(u64 function_id, u64 arg0, u64 arg1, - u64 arg2) - { - asm volatile( - __asmeq("%0", "x0") - __asmeq("%1", "x1") - __asmeq("%2", "x2") - __asmeq("%3", "x3") - "hvc #0\n" - : "+r" (function_id) - : "r" (arg0), "r" (arg1), "r" (arg2)); - - return function_id; - } - - static noinline int __invoke_psci_fn_smc(u64 function_id, u64 arg0, u64 arg1, - u64 arg2) - { - asm volatile( - __asmeq("%0", "x0") - __asmeq("%1", "x1") - __asmeq("%2", "x2") - __asmeq("%3", "x3") - "smc #0\n" - : "+r" (function_id) - : "r" (arg0), "r" (arg1), "r" (arg2)); - - return function_id; - } - static int psci_get_version(void) { int err; diff --cc drivers/cpufreq/cpufreq_interactive.c index 3b4d68546f56,cb477d6a21d6..23faa5e36713 --- a/drivers/cpufreq/cpufreq_interactive.c +++ b/drivers/cpufreq/cpufreq_interactive.c @@@ -375,22 -364,10 +375,22 @@@ static void cpufreq_interactive_timer(u spin_lock_irqsave(&pcpu->target_freq_lock, flags); do_div(cputime_speedadj, delta_time); loadadjfreq = (unsigned int)cputime_speedadj * 100; - cpu_load = loadadjfreq / pcpu->target_freq; + cpu_load = loadadjfreq / pcpu->policy->cur; tunables->boosted = tunables->boost_val || now < tunables->boostpulse_endtime; +#ifdef CONFIG_ARCH_ROCKCHIP + pcpu->target_freq = pcpu->policy->cur; + tunables->boosted |= now < tunables->touchboostpulse_endtime; +#endif + if (cpu_load >= tunables->go_hispeed_load || tunables->boosted) { +#ifdef CONFIG_ARCH_ROCKCHIP + if (now < tunables->touchboostpulse_endtime) { + new_freq = choose_freq(pcpu, loadadjfreq); + if (new_freq < tunables->touchboost_freq) + new_freq = tunables->touchboost_freq; + } else +#endif if (pcpu->target_freq < tunables->hispeed_freq) { new_freq = tunables->hispeed_freq; } else { diff --cc drivers/i2c/i2c-core.c index c1f8ccd40b15,c12299fd8cca..e3a4f744a791 mode 100755,100644..100755 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c diff --cc drivers/mmc/card/block.c index 6df820652d6d,d813cb9a3666..355c18f4aa39 mode 100755,100644..100755 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c diff --cc drivers/staging/android/fiq_debugger/fiq_debugger.c index b02cfe89eb0c,1d733624d70a..d2b069f0b4c6 mode 100755,100644..100755 --- a/drivers/staging/android/fiq_debugger/fiq_debugger.c +++ b/drivers/staging/android/fiq_debugger/fiq_debugger.c diff --cc drivers/usb/core/hub.c index 2260781b50af,11a073cda1d6..da1fe23c1f0a mode 100755,100644..100755 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c diff --cc drivers/usb/gadget/Kconfig index 0ef3cdf97e6a,9de2eb28085e..7b899e1db5f7 mode 100755,100644..100755 --- a/drivers/usb/gadget/Kconfig +++ b/drivers/usb/gadget/Kconfig