[PATCH 04/14] ARM: shmobile: sh73a0: Remove ->init_machine() special case

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri Aug 9 06:47:35 EDT 2013


Hi Magnus,

Thank you for the patch.

On Friday 09 August 2013 18:48:32 Magnus Damm wrote:
> From: Magnus Damm <damm at opensource.se>
> 
> No need to special case sh73a0 ->init_machine(),
> so get rid of undesired cpufreq platform device
> from the generic long term sh73a0 DT support code.
> 
> For short term support on KZM9D the DT reference
> implementation now adds a "cpufreq-cpu0" platform
> device so that can be used for development.

Doesn't this go against the spirit of the -reference platforms that don't use 
DT devices in board code ? I don't see an urgent need for this, how far along 
are the DT cpufreq-related bindings ?

> Signed-off-by: Magnus Damm <damm at opensource.se>
> ---
> 
>  arch/arm/mach-shmobile/board-kzm9g-reference.c |    9 ++++++++-
>  arch/arm/mach-shmobile/include/mach/sh73a0.h   |    2 +- 
>  arch/arm/mach-shmobile/setup-sh73a0.c          |   23  ++++++--------------
>  3 files changed, 15 insertions(+), 19 deletions(-)
> 
> --- 0001/arch/arm/mach-shmobile/board-kzm9g-reference.c
> +++ work/arch/arm/mach-shmobile/board-kzm9g-reference.c	2013-08-08
> 15:56:28.000000000 +0900 @@ -33,7 +33,14 @@
> 
>  static void __init kzm_init(void)
>  {
> -	sh73a0_add_standard_devices_dt();
> +	/* clocks are setup late during boot in the case of DT */
> +	sh73a0_clock_init();
> +
> +	sh73a0_add_dt_devices();
> +
> +	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
> +
> +	platform_device_register_simple("cpufreq-cpu0", -1, NULL, 0);
> 
>  #ifdef CONFIG_CACHE_L2X0
>  	/* Early BRESP enable, Shared attribute override enable, 64K*8way */
> --- 0001/arch/arm/mach-shmobile/include/mach/sh73a0.h
> +++ work/arch/arm/mach-shmobile/include/mach/sh73a0.h	2013-08-08
> 15:54:26.000000000 +0900 @@ -78,7 +78,7 @@ extern void sh73a0_map_io(void);
>  extern void sh73a0_earlytimer_init(void);
>  extern void sh73a0_add_early_devices(void);
>  extern void sh73a0_add_standard_devices(void);
> -extern void sh73a0_add_standard_devices_dt(void);
> +extern void sh73a0_add_dt_devices(void);
>  extern void sh73a0_clock_init(void);
>  extern void sh73a0_pinmux_init(void);
>  extern void sh73a0_pm_init(void);
> --- 0001/arch/arm/mach-shmobile/setup-sh73a0.c
> +++ work/arch/arm/mach-shmobile/setup-sh73a0.c	2013-08-08 
15:57:42.000000000
> +0900 @@ -23,7 +23,6 @@
>  #include <linux/interrupt.h>
>  #include <linux/irq.h>
>  #include <linux/platform_device.h>
> -#include <linux/of_platform.h>
>  #include <linux/delay.h>
>  #include <linux/input.h>
>  #include <linux/io.h>
> @@ -901,6 +900,12 @@ static struct platform_device *sh73a0_la
> 
>  #define SRCR2          IOMEM(0xe61580b0)
> 
> +void __init sh73a0_add_dt_devices(void)
> +{
> +	platform_add_devices(sh73a0_devices_dt,
> +			     ARRAY_SIZE(sh73a0_devices_dt));
> +}
> +
>  void __init sh73a0_add_standard_devices(void)
>  {
>  	/* Clear software reset bit on SY-DMAC module */
> @@ -943,21 +948,6 @@ void __init sh73a0_add_early_devices(voi
> 
>  #ifdef CONFIG_USE_OF
> 
> -void __init sh73a0_add_standard_devices_dt(void)
> -{
> -	struct platform_device_info devinfo = { .name = "cpufreq-cpu0", .id = -1,
> }; -
> -	/* clocks are setup late during boot in the case of DT */
> -	sh73a0_clock_init();
> -
> -	platform_add_devices(sh73a0_devices_dt,
> -			     ARRAY_SIZE(sh73a0_devices_dt));
> -	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
> -
> -	/* Instantiate cpufreq-cpu0 */
> -	platform_device_register_full(&devinfo);
> -}
> -
>  static const char *sh73a0_boards_compat_dt[] __initdata = {
>  	"renesas,sh73a0",
>  	NULL,
> @@ -968,7 +958,6 @@ DT_MACHINE_START(SH73A0_DT, "Generic SH7
>  	.map_io		= sh73a0_map_io,
>  	.init_early	= sh73a0_init_delay,
>  	.nr_irqs	= NR_IRQS_LEGACY,
> -	.init_machine	= sh73a0_add_standard_devices_dt,
>  	.dt_compat	= sh73a0_boards_compat_dt,
>  MACHINE_END
>  #endif /* CONFIG_USE_OF */

-- 
Regards,

Laurent Pinchart




More information about the linux-arm-kernel mailing list