[PATCH] [wip] ARM: imx: register "leds-gpio" device using new helper function

H Hartley Sweeten hartleys at visionengravers.com
Tue May 10 18:26:18 EDT 2011


On Tuesday, May 10, 2011 1:51 AM, Uwe Kleine-König wrote:
> This converts eukrea_mbimx27-baseboard to the new helper function.
>
> bloat-o-meter reports for this change:
>
>	add/remove: 1/1 grow/shrink: 0/1 up/down: 128/-220 (-92)
>	function                                     old     new   delta
>	gpio_led_register_device                       -     128    +128
>	platform_devices                              28      24      -4
>	leds_gpio                                    216       -    -216
>
> Additionally gpio_led_info (12 bytes) and gpio_leds (32 Bytes) are
> initdata now as is gpio_led_register_device.
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
> ---
> This is just an example and probably doesn't apply to the imx tree as
> is. I will convert all imx machines when there's an agreement for the
> patch providing the helper function.
>
>  arch/arm/mach-imx/Kconfig                    |    1 +
>  arch/arm/mach-imx/eukrea_mbimx27-baseboard.c |   18 +++---------------
>  2 files changed, 4 insertions(+), 15 deletions(-)
>
> diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
> index 56b930a..ef16471 100644
> --- a/arch/arm/mach-imx/Kconfig
> +++ b/arch/arm/mach-imx/Kconfig
> @@ -222,6 +222,7 @@ choice
> 
>  config MACH_EUKREA_MBIMX27_BASEBOARD
>  	bool "Eukrea MBIMX27 development board"
> +	select LEDS_GPIO_REGISTER
>  	select IMX_HAVE_PLATFORM_IMX_FB
>  	select IMX_HAVE_PLATFORM_IMX_KEYPAD
>  	select IMX_HAVE_PLATFORM_IMX_SSI
> diff --git a/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c b/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c
> index fa5288018..3479f66 100644
> --- a/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c
> +++ b/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c
> @@ -113,7 +113,7 @@ eukrea_mbimx27_keymap_data __initconst = {
>  	.keymap_size    = ARRAY_SIZE(eukrea_mbimx27_keymap),
>  };
>  
> -static struct gpio_led gpio_leds[] = {
> +static const struct gpio_led gpio_leds[] __initconst = {
>  	{
>  		.name			= "led1",
>  		.default_trigger	= "heartbeat",
> @@ -128,19 +128,11 @@ static struct gpio_led gpio_leds[] = {
>  	},
>  };
>  
> -static struct gpio_led_platform_data gpio_led_info = {
> +static const struct gpio_led_platform_data gpio_led_info __initconst = {
>  	.leds		= gpio_leds,
>  	.num_leds	= ARRAY_SIZE(gpio_leds),
>  };

Uwe,

Just a note that the 'const' you added to struct gpio_led above will be
discarded in struct gpio_led_platform_data.  You will get something like:

arch/arm/mach-imx/eukrea_mbimx27-baseboard.c:132: warning: initialization discards qualifiers from pointer target type

Regards,
Hartley


More information about the linux-arm-kernel mailing list