From: Viresh Kumar <viresh.kumar@linaro.org> To: rjw@sisk.pl Cc: linaro-kernel@lists.linaro.org, patches@linaro.org, cpufreq@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Viresh Kumar <viresh.kumar@linaro.org> Subject: [PATCH 01/35] cpufreq: Add new helper cpufreq_table_validate_and_show() Date: Thu, 8 Aug 2013 19:18:03 +0530 [thread overview] Message-ID: <8adda0413f007dd3d4ab6dac934c074c205ada8d.1375964117.git.viresh.kumar@linaro.org> (raw) In-Reply-To: <cover.1375964117.git.viresh.kumar@linaro.org> In-Reply-To: <cover.1375964117.git.viresh.kumar@linaro.org> Almost every cpufreq driver is required to validate its frequency table with: cpufreq_frequency_table_cpuinfo() and then expose it to cpufreq core with: cpufreq_frequency_table_get_attr(). This patch creates another helper routine cpufreq_table_validate_and_show() that will do both these steps in a single call and will return 0 for success, error otherwise. This also fixes potential bugs in cpufreq drivers where people have called cpufreq_frequency_table_get_attr() before calling cpufreq_frequency_table_cpuinfo(), as the later may fail. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> --- drivers/cpufreq/freq_table.c | 12 ++++++++++++ include/linux/cpufreq.h | 2 ++ 2 files changed, 14 insertions(+) diff --git a/drivers/cpufreq/freq_table.c b/drivers/cpufreq/freq_table.c index f111454a..11f6fa9 100644 --- a/drivers/cpufreq/freq_table.c +++ b/drivers/cpufreq/freq_table.c @@ -219,6 +219,18 @@ void cpufreq_frequency_table_put_attr(unsigned int cpu) } EXPORT_SYMBOL_GPL(cpufreq_frequency_table_put_attr); +int cpufreq_table_validate_and_show(struct cpufreq_policy *policy, + struct cpufreq_frequency_table *table) +{ + int ret = cpufreq_frequency_table_cpuinfo(policy, table); + + if (!ret) + cpufreq_frequency_table_get_attr(table, policy->cpu); + + return ret; +} +EXPORT_SYMBOL_GPL(cpufreq_table_validate_and_show); + void cpufreq_frequency_table_update_policy_cpu(struct cpufreq_policy *policy) { pr_debug("Updating show_table for new_cpu %u from last_cpu %u\n", diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h index d568f39..c0297a6 100644 --- a/include/linux/cpufreq.h +++ b/include/linux/cpufreq.h @@ -411,5 +411,7 @@ extern struct freq_attr cpufreq_freq_attr_scaling_available_freqs; void cpufreq_frequency_table_get_attr(struct cpufreq_frequency_table *table, unsigned int cpu); void cpufreq_frequency_table_put_attr(unsigned int cpu); +int cpufreq_table_validate_and_show(struct cpufreq_policy *policy, + struct cpufreq_frequency_table *table); #endif /* _LINUX_CPUFREQ_H */ -- 1.7.12.rc2.18.g61b472e
WARNING: multiple messages have this Message-ID (diff)
From: viresh.kumar@linaro.org (Viresh Kumar) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 01/35] cpufreq: Add new helper cpufreq_table_validate_and_show() Date: Thu, 8 Aug 2013 19:18:03 +0530 [thread overview] Message-ID: <8adda0413f007dd3d4ab6dac934c074c205ada8d.1375964117.git.viresh.kumar@linaro.org> (raw) In-Reply-To: <cover.1375964117.git.viresh.kumar@linaro.org> Almost every cpufreq driver is required to validate its frequency table with: cpufreq_frequency_table_cpuinfo() and then expose it to cpufreq core with: cpufreq_frequency_table_get_attr(). This patch creates another helper routine cpufreq_table_validate_and_show() that will do both these steps in a single call and will return 0 for success, error otherwise. This also fixes potential bugs in cpufreq drivers where people have called cpufreq_frequency_table_get_attr() before calling cpufreq_frequency_table_cpuinfo(), as the later may fail. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> --- drivers/cpufreq/freq_table.c | 12 ++++++++++++ include/linux/cpufreq.h | 2 ++ 2 files changed, 14 insertions(+) diff --git a/drivers/cpufreq/freq_table.c b/drivers/cpufreq/freq_table.c index f111454a..11f6fa9 100644 --- a/drivers/cpufreq/freq_table.c +++ b/drivers/cpufreq/freq_table.c @@ -219,6 +219,18 @@ void cpufreq_frequency_table_put_attr(unsigned int cpu) } EXPORT_SYMBOL_GPL(cpufreq_frequency_table_put_attr); +int cpufreq_table_validate_and_show(struct cpufreq_policy *policy, + struct cpufreq_frequency_table *table) +{ + int ret = cpufreq_frequency_table_cpuinfo(policy, table); + + if (!ret) + cpufreq_frequency_table_get_attr(table, policy->cpu); + + return ret; +} +EXPORT_SYMBOL_GPL(cpufreq_table_validate_and_show); + void cpufreq_frequency_table_update_policy_cpu(struct cpufreq_policy *policy) { pr_debug("Updating show_table for new_cpu %u from last_cpu %u\n", diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h index d568f39..c0297a6 100644 --- a/include/linux/cpufreq.h +++ b/include/linux/cpufreq.h @@ -411,5 +411,7 @@ extern struct freq_attr cpufreq_freq_attr_scaling_available_freqs; void cpufreq_frequency_table_get_attr(struct cpufreq_frequency_table *table, unsigned int cpu); void cpufreq_frequency_table_put_attr(unsigned int cpu); +int cpufreq_table_validate_and_show(struct cpufreq_policy *policy, + struct cpufreq_frequency_table *table); #endif /* _LINUX_CPUFREQ_H */ -- 1.7.12.rc2.18.g61b472e
next prev parent reply other threads:[~2013-08-08 13:49 UTC|newest] Thread overview: 113+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-08-08 13:48 [PATCH 00/35] cpufreq: Introduce cpufreq_table_validate_and_show() Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar [this message] 2013-08-08 13:48 ` [PATCH 01/35] cpufreq: Add new helper cpufreq_table_validate_and_show() Viresh Kumar 2013-08-08 13:48 ` [PATCH 02/35] cpufreq: pxa: call cpufreq_frequency_table_get_attr() Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 03/35] cpufreq: s3cx4xx: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 04/35] cpufreq: sparc: " Viresh Kumar 2013-08-08 14:00 ` Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 05/35] cpufreq: acpi-cpufreq: use cpufreq_table_validate_and_show() Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 06/35] cpufreq: arm_big_little: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 07/35] cpufreq: blackfin: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 08/35] cpufreq: cpufreq-cpu0: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-12 7:35 ` Shawn Guo 2013-08-12 7:35 ` Shawn Guo 2013-08-12 7:35 ` Shawn Guo 2013-08-12 7:49 ` Viresh Kumar 2013-08-12 7:49 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 09/35] cpufreq: cris: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 10/35] cpufreq: davinci: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 11/35] cpufreq: dbx500: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-14 19:36 ` Linus Walleij 2013-08-14 19:36 ` Linus Walleij 2013-08-14 19:36 ` Linus Walleij 2013-08-08 13:48 ` [PATCH 12/35] cpufreq: e_powersaver: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 13/35] cpufreq: elanfreq: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 14/35] cpufreq: exynos: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 15/35] cpufreq: ia64-acpi: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 16/35] cpufreq: imx6q: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 17/35] cpufreq: kirkwood: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 14:16 ` Andrew Lunn 2013-08-08 14:16 ` Andrew Lunn 2013-08-08 13:48 ` [PATCH 18/35] cpufreq: longhaul: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 19/35] cpufreq: loongson2: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 20/35] cpufreq: maple: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 21/35] cpufreq: omap: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 14:19 ` Santosh Shilimkar 2013-08-08 14:19 ` Santosh Shilimkar 2013-08-08 14:19 ` Santosh Shilimkar 2013-08-08 13:48 ` [PATCH 22/35] cpufreq: p4-clockmod: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 23/35] cpufreq: pasemi: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 24/35] cpufreq: pmac: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 25/35] cpufreq: powernow: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 26/35] cpufreq: ppc: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 27/35] cpufreq: pxa: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 28/35] cpufreq: s3cx4xx: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 29/35] cpufreq: s5pv210: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 30/35] cpufreq: sc520: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 31/35] cpufreq: sh: " Viresh Kumar 2013-08-08 13:54 ` Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 32/35] cpufreq: sparc: " Viresh Kumar 2013-08-08 13:54 ` Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 33/35] cpufreq: spear: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 34/35] cpufreq: speedstep: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 13:48 ` [PATCH 35/35] cpufreq: tegra: " Viresh Kumar 2013-08-08 13:48 ` Viresh Kumar 2013-08-08 15:44 ` Stephen Warren 2013-08-08 15:44 ` Stephen Warren 2013-08-08 16:07 ` Viresh Kumar 2013-08-08 16:07 ` Viresh Kumar 2013-08-09 4:04 ` Viresh Kumar 2013-08-09 4:04 ` Viresh Kumar 2013-08-09 16:19 ` Stephen Warren 2013-08-09 16:19 ` Stephen Warren 2013-08-09 17:09 ` Viresh Kumar 2013-08-09 17:09 ` Viresh Kumar 2013-08-09 22:08 ` Stephen Warren 2013-08-09 22:08 ` Stephen Warren 2013-08-10 2:53 ` Viresh Kumar 2013-08-10 2:53 ` Viresh Kumar 2013-08-12 16:33 ` Stephen Warren 2013-08-12 16:33 ` Stephen Warren 2013-08-12 17:01 ` Viresh Kumar 2013-08-12 17:01 ` Viresh Kumar 2013-08-08 14:00 ` [PATCH 00/35] cpufreq: Introduce cpufreq_table_validate_and_show() Rafael J. Wysocki 2013-08-08 14:00 ` Rafael J. Wysocki 2013-08-08 13:53 ` Viresh Kumar 2013-08-08 13:53 ` Viresh Kumar 2013-08-08 14:06 ` Rafael J. Wysocki 2013-08-08 14:06 ` Rafael J. Wysocki
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=8adda0413f007dd3d4ab6dac934c074c205ada8d.1375964117.git.viresh.kumar@linaro.org \ --to=viresh.kumar@linaro.org \ --cc=cpufreq@vger.kernel.org \ --cc=linaro-kernel@lists.linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pm@vger.kernel.org \ --cc=patches@linaro.org \ --cc=rjw@sisk.pl \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.