Loading drivers/cpufreq/Kconfig.arm +3 −3 Original line number Diff line number Diff line Loading @@ -44,10 +44,10 @@ config ARM_DT_BL_CPUFREQ config ARM_SCPI_CPUFREQ tristate "SCPI based CPUfreq driver" depends on ARM_BIG_LITTLE_CPUFREQ && ARM_SCPI_PROTOCOL && COMMON_CLK_SCPI depends on ARM_SCPI_PROTOCOL && COMMON_CLK_SCPI help This adds the CPUfreq driver support for ARM big.LITTLE platforms using SCPI protocol for CPU power management. This adds the CPUfreq driver support for ARM platforms using SCPI protocol for CPU power management. This driver uses SCPI Message Protocol driver to interact with the firmware providing the CPU DVFS functionality. Loading drivers/cpufreq/s3c24xx-cpufreq.c +7 −1 Original line number Diff line number Diff line Loading @@ -351,7 +351,13 @@ struct clk *s3c_cpufreq_clk_get(struct device *dev, const char *name) static int s3c_cpufreq_init(struct cpufreq_policy *policy) { policy->clk = clk_arm; return cpufreq_generic_init(policy, ftab, cpu_cur.info->latency); policy->cpuinfo.transition_latency = cpu_cur.info->latency; if (ftab) return cpufreq_table_validate_and_show(policy, ftab); return 0; } static int __init s3c_cpufreq_initclks(void) Loading drivers/cpufreq/scpi-cpufreq.c +12 −4 Original line number Diff line number Diff line Loading @@ -51,15 +51,23 @@ static unsigned int scpi_cpufreq_get_rate(unsigned int cpu) static int scpi_cpufreq_set_target(struct cpufreq_policy *policy, unsigned int index) { unsigned long freq = policy->freq_table[index].frequency; struct scpi_data *priv = policy->driver_data; u64 rate = policy->freq_table[index].frequency * 1000; u64 rate = freq * 1000; int ret; ret = clk_set_rate(priv->clk, rate); if (!ret && (clk_get_rate(priv->clk) != rate)) ret = -EIO; if (ret) return ret; if (clk_get_rate(priv->clk) != rate) return -EIO; arch_set_freq_scale(policy->related_cpus, freq, policy->cpuinfo.max_freq); return 0; } static int Loading Loading
drivers/cpufreq/Kconfig.arm +3 −3 Original line number Diff line number Diff line Loading @@ -44,10 +44,10 @@ config ARM_DT_BL_CPUFREQ config ARM_SCPI_CPUFREQ tristate "SCPI based CPUfreq driver" depends on ARM_BIG_LITTLE_CPUFREQ && ARM_SCPI_PROTOCOL && COMMON_CLK_SCPI depends on ARM_SCPI_PROTOCOL && COMMON_CLK_SCPI help This adds the CPUfreq driver support for ARM big.LITTLE platforms using SCPI protocol for CPU power management. This adds the CPUfreq driver support for ARM platforms using SCPI protocol for CPU power management. This driver uses SCPI Message Protocol driver to interact with the firmware providing the CPU DVFS functionality. Loading
drivers/cpufreq/s3c24xx-cpufreq.c +7 −1 Original line number Diff line number Diff line Loading @@ -351,7 +351,13 @@ struct clk *s3c_cpufreq_clk_get(struct device *dev, const char *name) static int s3c_cpufreq_init(struct cpufreq_policy *policy) { policy->clk = clk_arm; return cpufreq_generic_init(policy, ftab, cpu_cur.info->latency); policy->cpuinfo.transition_latency = cpu_cur.info->latency; if (ftab) return cpufreq_table_validate_and_show(policy, ftab); return 0; } static int __init s3c_cpufreq_initclks(void) Loading
drivers/cpufreq/scpi-cpufreq.c +12 −4 Original line number Diff line number Diff line Loading @@ -51,15 +51,23 @@ static unsigned int scpi_cpufreq_get_rate(unsigned int cpu) static int scpi_cpufreq_set_target(struct cpufreq_policy *policy, unsigned int index) { unsigned long freq = policy->freq_table[index].frequency; struct scpi_data *priv = policy->driver_data; u64 rate = policy->freq_table[index].frequency * 1000; u64 rate = freq * 1000; int ret; ret = clk_set_rate(priv->clk, rate); if (!ret && (clk_get_rate(priv->clk) != rate)) ret = -EIO; if (ret) return ret; if (clk_get_rate(priv->clk) != rate) return -EIO; arch_set_freq_scale(policy->related_cpus, freq, policy->cpuinfo.max_freq); return 0; } static int Loading