RE: [PATCH] [wip] ARM: imx: register "leds-gpio" device using newhelper function

From: H Hartley Sweeten
Date: Tue May 10 2011 - 18:26:35 EST


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@xxxxxxxxxxxxxx>
> ---
> 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
N‹§²æìr¸›yúèšØb²X¬¶ÇvØ^–)Þ{.nÇ+‰·¥Š{±‘êçzX§¶›¡Ü}©ž²ÆzÚ&j:+v‰¨¾«‘êçzZ+€Ê+zf£¢·hšˆ§~†­†Ûiÿûàz¹®w¥¢¸?™¨è­Ú&¢)ßf”ù^jÇy§m…á@A«a¶Úÿ 0¶ìh®å’i