--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c @@ -881,6 +881,7 @@ int __init board_register_devices(void) { u32 val; int button_count = 0; + int led_count = 0; if (board.has_uart0) bcm63xx_uart_register(0); @@ -922,7 +923,11 @@ int __init board_register_devices(void) platform_device_register_simple("GPIODEV", 0, &gpiodev_resource, 1); - bcm63xx_led_data.num_leds = ARRAY_SIZE(board.leds); + /* count number of LEDs defined by this device */ + while (led_count < ARRAY_SIZE(board.leds) && board.leds[led_count].name) + led_count++; + + bcm63xx_led_data.num_leds = led_count; bcm63xx_led_data.leds = board.leds; platform_device_register(&bcm63xx_gpio_leds);