aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-exynos/cpufreq.c
diff options
context:
space:
mode:
authorWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2015-12-06 17:07:15 +0100
committerWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2015-12-06 17:07:15 +0100
commit68ee93f3d058ff58f994d08be00d3aad9ec20970 (patch)
tree5fb2d14340332062e416246c5759adcaa64a2340 /arch/arm/mach-exynos/cpufreq.c
parent17021fd920fb5bc97a8c81a20b208c5b38f1b0e8 (diff)
parentb99374450c03bf5081b88995d91d34fb9b2fd040 (diff)
downloadkernel_samsung_smdk4412-68ee93f3d058ff58f994d08be00d3aad9ec20970.zip
kernel_samsung_smdk4412-68ee93f3d058ff58f994d08be00d3aad9ec20970.tar.gz
kernel_samsung_smdk4412-68ee93f3d058ff58f994d08be00d3aad9ec20970.tar.bz2
Merge branch 'master' of fossencdi.org:kernel_samsung_smdk4412
Diffstat (limited to 'arch/arm/mach-exynos/cpufreq.c')
-rw-r--r--arch/arm/mach-exynos/cpufreq.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/arch/arm/mach-exynos/cpufreq.c b/arch/arm/mach-exynos/cpufreq.c
index cdfec03..b592651 100644
--- a/arch/arm/mach-exynos/cpufreq.c
+++ b/arch/arm/mach-exynos/cpufreq.c
@@ -709,6 +709,8 @@ static struct notifier_block exynos_cpufreq_policy_notifier = {
static int exynos_cpufreq_cpu_init(struct cpufreq_policy *policy)
{
+ int ret;
+
policy->cur = policy->min = policy->max = exynos_getspeed(policy->cpu);
cpufreq_frequency_table_get_attr(exynos_info->freq_table, policy->cpu);
@@ -729,9 +731,26 @@ static int exynos_cpufreq_cpu_init(struct cpufreq_policy *policy)
cpumask_setall(policy->cpus);
}
- return cpufreq_frequency_table_cpuinfo(policy, exynos_info->freq_table);
+ ret = cpufreq_frequency_table_cpuinfo(policy, exynos_info->freq_table);
+ if (ret)
+ return ret;
+
+ cpufreq_frequency_table_get_attr(exynos_info->freq_table, policy->cpu);
+
+ return 0;
+}
+
+static int exynos_cpufreq_cpu_exit(struct cpufreq_policy *policy)
+{
+ cpufreq_frequency_table_put_attr(policy->cpu);
+ return 0;
}
+static struct freq_attr *exynos_cpufreq_attr[] = {
+ &cpufreq_freq_attr_scaling_available_freqs,
+ NULL,
+};
+
static int exynos_cpufreq_reboot_notifier_call(struct notifier_block *this,
unsigned long code, void *_cmd)
{
@@ -755,7 +774,9 @@ static struct cpufreq_driver exynos_driver = {
.target = exynos_target,
.get = exynos_getspeed,
.init = exynos_cpufreq_cpu_init,
+ .exit = exynos_cpufreq_cpu_exit,
.name = "exynos_cpufreq",
+ .attr = exynos_cpufreq_attr,
#ifdef CONFIG_PM
.suspend = exynos_cpufreq_suspend,
.resume = exynos_cpufreq_resume,