Message ID | ab29df38f70453e67089e3f3dbb9085336eef1c2.1461228081.git.viresh.kumar@linaro.org (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Simon Horman |
Headers | show |
Hi Viresh, On Thu, Apr 21, 2016 at 10:43 AM, Viresh Kumar <viresh.kumar@linaro.org> wrote: > --- a/drivers/cpufreq/cpufreq-dt-platdev.c > +++ b/drivers/cpufreq/cpufreq-dt-platdev.c > @@ -29,6 +29,18 @@ static const struct of_device_id machines[] = { > { .compatible = "samsung,exynos5800", }, > #endif > I think an #ifdef CONFIG_ARCH_RENESAS block wouldn't hurt, likewise for the other SoCs. Soon you'll have this file filled with lots of compatible values for random\ SoCs... > + { .compatible = "renesas,emev2", }, > + { .compatible = "renesas,r7s72100", }, > + { .compatible = "renesas,r8a73a4", }, > + { .compatible = "renesas,r8a7740", }, > + { .compatible = "renesas,r8a7778", }, > + { .compatible = "renesas,r8a7779", }, > + { .compatible = "renesas,r8a7790", }, > + { .compatible = "renesas,r8a7791", }, > + { .compatible = "renesas,r8a7793", }, > + { .compatible = "renesas,r8a7794", }, > + { .compatible = "renesas,sh73a0", }, > + > { .compatible = "rockchip,rk2928", }, > { .compatible = "rockchip,rk3066a", }, > { .compatible = "rockchip,rk3066b", }, Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
On 21-04-16, 15:04, Geert Uytterhoeven wrote: > Hi Viresh, > > On Thu, Apr 21, 2016 at 10:43 AM, Viresh Kumar <viresh.kumar@linaro.org> wrote: > > --- a/drivers/cpufreq/cpufreq-dt-platdev.c > > +++ b/drivers/cpufreq/cpufreq-dt-platdev.c > > @@ -29,6 +29,18 @@ static const struct of_device_id machines[] = { > > { .compatible = "samsung,exynos5800", }, > > #endif > > > > I think an #ifdef CONFIG_ARCH_RENESAS block wouldn't hurt, likewise > for the other SoCs. > Soon you'll have this file filled with lots of compatible values for random\ > SoCs... This is going to be done once per boot and this shouldn't hurt. And for new platforms we may do things differently as they are going to use opp-v2 bindings. And, so I am not really in favor of ifdef hackery :)
Hi Viresh, On Fri, Apr 22, 2016 at 5:21 AM, Viresh Kumar <viresh.kumar@linaro.org> wrote: > On 21-04-16, 15:04, Geert Uytterhoeven wrote: >> On Thu, Apr 21, 2016 at 10:43 AM, Viresh Kumar <viresh.kumar@linaro.org> wrote: >> > --- a/drivers/cpufreq/cpufreq-dt-platdev.c >> > +++ b/drivers/cpufreq/cpufreq-dt-platdev.c >> > @@ -29,6 +29,18 @@ static const struct of_device_id machines[] = { >> > { .compatible = "samsung,exynos5800", }, >> > #endif >> > >> >> I think an #ifdef CONFIG_ARCH_RENESAS block wouldn't hurt, likewise >> for the other SoCs. >> Soon you'll have this file filled with lots of compatible values for random\ >> SoCs... > > This is going to be done once per boot and this shouldn't hurt. And for new > platforms we may do things differently as they are going to use opp-v2 bindings. I was mainly thinking about kernel size. If this is done once per boot, the array should be __initconst, (looking at the code in next) which is fine as cpufreq_dt_platdev_init() is already __init. Thanks! Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
On 22-04-16, 08:41, Geert Uytterhoeven wrote: > I was mainly thinking about kernel size. Ahh, I see.. > If this is done once per boot, the array should be __initconst, > (looking at the code > in next) which is fine as cpufreq_dt_platdev_init() is already __init. Sure, makes sense.. I will do that as a separate patch. Though just to correct what I earlier said, if cpufreq-dt is developed as a module, its done once per module insertion :)
diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile index a65c80ac9009..c9ea0e6ff4f9 100644 --- a/arch/arm/mach-shmobile/Makefile +++ b/arch/arm/mach-shmobile/Makefile @@ -38,7 +38,6 @@ smp-$(CONFIG_ARCH_EMEV2) += smp-emev2.o headsmp-scu.o platsmp-scu.o # PM objects obj-$(CONFIG_SUSPEND) += suspend.o -obj-$(CONFIG_CPU_FREQ) += cpufreq.o obj-$(CONFIG_PM_RCAR) += pm-rcar.o obj-$(CONFIG_PM_RMOBILE) += pm-rmobile.o obj-$(CONFIG_ARCH_RCAR_GEN2) += pm-rcar-gen2.o diff --git a/arch/arm/mach-shmobile/common.h b/arch/arm/mach-shmobile/common.h index 5464b7a75e30..3b562d87826d 100644 --- a/arch/arm/mach-shmobile/common.h +++ b/arch/arm/mach-shmobile/common.h @@ -25,16 +25,9 @@ static inline int shmobile_suspend_init(void) { return 0; } static inline void shmobile_smp_apmu_suspend_init(void) { } #endif -#ifdef CONFIG_CPU_FREQ -int shmobile_cpufreq_init(void); -#else -static inline int shmobile_cpufreq_init(void) { return 0; } -#endif - static inline void __init shmobile_init_late(void) { shmobile_suspend_init(); - shmobile_cpufreq_init(); } #endif /* __ARCH_MACH_COMMON_H */ diff --git a/arch/arm/mach-shmobile/cpufreq.c b/arch/arm/mach-shmobile/cpufreq.c deleted file mode 100644 index 634d701c56a7..000000000000 --- a/arch/arm/mach-shmobile/cpufreq.c +++ /dev/null @@ -1,19 +0,0 @@ -/* - * CPUFreq support code for SH-Mobile ARM - * - * Copyright (C) 2014 Gaku Inami - * - * This file is subject to the terms and conditions of the GNU General Public - * License. See the file "COPYING" in the main directory of this archive - * for more details. - */ - -#include <linux/platform_device.h> - -#include "common.h" - -int __init shmobile_cpufreq_init(void) -{ - platform_device_register_simple("cpufreq-dt", -1, NULL, 0); - return 0; -} diff --git a/drivers/cpufreq/cpufreq-dt-platdev.c b/drivers/cpufreq/cpufreq-dt-platdev.c index b831f1463227..05ac0ea25c49 100644 --- a/drivers/cpufreq/cpufreq-dt-platdev.c +++ b/drivers/cpufreq/cpufreq-dt-platdev.c @@ -29,6 +29,18 @@ static const struct of_device_id machines[] = { { .compatible = "samsung,exynos5800", }, #endif + { .compatible = "renesas,emev2", }, + { .compatible = "renesas,r7s72100", }, + { .compatible = "renesas,r8a73a4", }, + { .compatible = "renesas,r8a7740", }, + { .compatible = "renesas,r8a7778", }, + { .compatible = "renesas,r8a7779", }, + { .compatible = "renesas,r8a7790", }, + { .compatible = "renesas,r8a7791", }, + { .compatible = "renesas,r8a7793", }, + { .compatible = "renesas,r8a7794", }, + { .compatible = "renesas,sh73a0", }, + { .compatible = "rockchip,rk2928", }, { .compatible = "rockchip,rk3066a", }, { .compatible = "rockchip,rk3066b", },
The cpufreq-dt-platdev driver supports creation of cpufreq-dt platform device now, reuse that and remove similar code from platform code. Cc: Simon Horman <horms@verge.net.au> Cc: Magnus Damm <magnus.damm@gmail.com> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> --- arch/arm/mach-shmobile/Makefile | 1 - arch/arm/mach-shmobile/common.h | 7 ------- arch/arm/mach-shmobile/cpufreq.c | 19 ------------------- drivers/cpufreq/cpufreq-dt-platdev.c | 12 ++++++++++++ 4 files changed, 12 insertions(+), 27 deletions(-) delete mode 100644 arch/arm/mach-shmobile/cpufreq.c