42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 | |
| +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
 | |
| @@ -911,6 +911,7 @@ static struct platform_device bcm63xx_gp
 | |
|  int __init board_register_devices(void)
 | |
|  {
 | |
|  	int button_count = 0;
 | |
| +	int led_count = 0;
 | |
|  
 | |
|  	if (board.has_uart0)
 | |
|  		bcm63xx_uart_register(0);
 | |
| @@ -962,10 +963,16 @@ int __init board_register_devices(void)
 | |
|  
 | |
|  	bcm63xx_flash_register();
 | |
|  
 | |
| -	bcm63xx_led_data.num_leds = ARRAY_SIZE(board.leds);
 | |
| -	bcm63xx_led_data.leds = board.leds;
 | |
| +	/* count number of LEDs defined by this device */
 | |
| +	while (led_count < ARRAY_SIZE(board.leds) && board.leds[led_count].name)
 | |
| +		led_count++;
 | |
| +
 | |
| +	if (led_count) {
 | |
| +		bcm63xx_led_data.num_leds = led_count;
 | |
| +		bcm63xx_led_data.leds = board.leds;
 | |
|  
 | |
| -	platform_device_register(&bcm63xx_gpio_leds);
 | |
| +		platform_device_register(&bcm63xx_gpio_leds);
 | |
| +	}
 | |
|  
 | |
|  	if (board.ephy_reset_gpio && board.ephy_reset_gpio_flags)
 | |
|  		gpio_request_one(board.ephy_reset_gpio,
 | |
| --- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
 | |
| +++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
 | |
| @@ -47,7 +47,7 @@ struct board_info {
 | |
|  	struct bcm63xx_dsp_platform_data dsp;
 | |
|  
 | |
|  	/* GPIO LEDs */
 | |
| -	struct gpio_led leds[5];
 | |
| +	struct gpio_led leds[14];
 | |
|  
 | |
|  	/* Buttons */
 | |
|  	struct gpio_keys_button buttons[4];
 |