| 1 | --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c |
| 2 | +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c |
| 3 | @@ -871,6 +871,7 @@ int __init board_register_devices(void) |
| 4 | { |
| 5 | u32 val; |
| 6 | int button_count = 0; |
| 7 | + int led_count = 0; |
| 8 | |
| 9 | if (board.has_uart0) |
| 10 | bcm63xx_uart_register(0); |
| 11 | @@ -907,7 +908,11 @@ int __init board_register_devices(void) |
| 12 | |
| 13 | platform_device_register(&mtd_dev); |
| 14 | |
| 15 | - bcm63xx_led_data.num_leds = ARRAY_SIZE(board.leds); |
| 16 | + /* count number of LEDs defined by this device */ |
| 17 | + while (led_count < ARRAY_SIZE(board.leds) && board.leds[led_count].name) |
| 18 | + led_count++; |
| 19 | + |
| 20 | + bcm63xx_led_data.num_leds = led_count; |
| 21 | bcm63xx_led_data.leds = board.leds; |
| 22 | |
| 23 | platform_device_register(&bcm63xx_gpio_leds); |
| 24 | |