Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'pm-4.16-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull power management fixes from Rafael Wysocki:
"These fix three issues in cpufreq drivers: one recent regression, one
leftover Kconfig dependency and one old but "stable" material.

Specifics:

- Make the task scheduler load and utilization signals be
frequency-invariant again after recent changes in the SCPI cpufreq
driver (Dietmar Eggemann).

- Drop an unnecessary leftover Kconfig dependency from the SCPI
cpufreq driver (Sudeep Holla).

- Fix the initialization of the s3c24xx cpufreq driver (Viresh
Kumar)"

* tag 'pm-4.16-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
cpufreq: s3c24xx: Fix broken s3c_cpufreq_init()
cpufreq: scpi: Fix incorrect arm_big_little config dependency
cpufreq: scpi: invoke frequency-invariance setter function

+22 -8
+3 -3
drivers/cpufreq/Kconfig.arm
··· 44 44 45 45 config ARM_SCPI_CPUFREQ 46 46 tristate "SCPI based CPUfreq driver" 47 - depends on ARM_BIG_LITTLE_CPUFREQ && ARM_SCPI_PROTOCOL && COMMON_CLK_SCPI 47 + depends on ARM_SCPI_PROTOCOL && COMMON_CLK_SCPI 48 48 help 49 - This adds the CPUfreq driver support for ARM big.LITTLE platforms 50 - using SCPI protocol for CPU power management. 49 + This adds the CPUfreq driver support for ARM platforms using SCPI 50 + protocol for CPU power management. 51 51 52 52 This driver uses SCPI Message Protocol driver to interact with the 53 53 firmware providing the CPU DVFS functionality.
+7 -1
drivers/cpufreq/s3c24xx-cpufreq.c
··· 351 351 static int s3c_cpufreq_init(struct cpufreq_policy *policy) 352 352 { 353 353 policy->clk = clk_arm; 354 - return cpufreq_generic_init(policy, ftab, cpu_cur.info->latency); 354 + 355 + policy->cpuinfo.transition_latency = cpu_cur.info->latency; 356 + 357 + if (ftab) 358 + return cpufreq_table_validate_and_show(policy, ftab); 359 + 360 + return 0; 355 361 } 356 362 357 363 static int __init s3c_cpufreq_initclks(void)
+12 -4
drivers/cpufreq/scpi-cpufreq.c
··· 51 51 static int 52 52 scpi_cpufreq_set_target(struct cpufreq_policy *policy, unsigned int index) 53 53 { 54 + unsigned long freq = policy->freq_table[index].frequency; 54 55 struct scpi_data *priv = policy->driver_data; 55 - u64 rate = policy->freq_table[index].frequency * 1000; 56 + u64 rate = freq * 1000; 56 57 int ret; 57 58 58 59 ret = clk_set_rate(priv->clk, rate); 59 - if (!ret && (clk_get_rate(priv->clk) != rate)) 60 - ret = -EIO; 61 60 62 - return ret; 61 + if (ret) 62 + return ret; 63 + 64 + if (clk_get_rate(priv->clk) != rate) 65 + return -EIO; 66 + 67 + arch_set_freq_scale(policy->related_cpus, freq, 68 + policy->cpuinfo.max_freq); 69 + 70 + return 0; 63 71 } 64 72 65 73 static int