lantiq: fix breakage introduced in 3.1 bump
[openwrt.git] / target / linux / lantiq / patches / 810-fix-mach-easy98000.patch
1 --- a/arch/mips/lantiq/falcon/mach-easy98000.c
2 +++ b/arch/mips/lantiq/falcon/mach-easy98000.c
3 @@ -17,10 +17,11 @@
4  #include <linux/spi/eeprom.h>
5  #include <falcon/lantiq_soc.h>
6  
7 +#include <dev-gpio-leds.h>
8 +
9  #include "../machtypes.h"
10  
11  #include "devices.h"
12 -#include "dev-leds-gpio.h"
13  
14  #define EASY98000_GPIO_LED_0 9
15  #define EASY98000_GPIO_LED_1 10
16 @@ -29,7 +30,16 @@
17  #define EASY98000_GPIO_LED_4 13
18  #define EASY98000_GPIO_LED_5 14
19  
20 -extern unsigned char ltq_ethaddr[6];
21 +static unsigned char ltq_ethaddr[6] = {0};
22 +
23 +static int __init falcon_set_ethaddr(char *str)
24 +{
25 +       sscanf(str, "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx",
26 +               &ltq_ethaddr[0], &ltq_ethaddr[1], &ltq_ethaddr[2],
27 +               &ltq_ethaddr[3], &ltq_ethaddr[4], &ltq_ethaddr[5]);
28 +       return 0;
29 +}
30 +__setup("ethaddr=", falcon_set_ethaddr);
31  
32  static struct mtd_partition easy98000_nor_partitions[] =
33  {
34 @@ -70,7 +80,7 @@ static struct spi_board_info easy98000_s
35         .platform_data          = &easy98000_spi_flash_platform_data
36  };
37  
38 -static struct gpio_led easy98000_leds_gpio[] __initdata = {
39 +static struct gpio_led easy98000_gpio_leds[] __initdata = {
40         {
41                 .name           = "easy98000:green:0",
42                 .gpio           = EASY98000_GPIO_LED_0,
43 @@ -104,12 +114,11 @@ static struct gpio_led easy98000_leds_gp
44  
45  static struct dm9000_plat_data dm9000_plat_data = {
46         .flags = DM9000_PLATF_8BITONLY,
47 -       //.dev_addr = { }, /* possibility to provide an ethernet address for the chip */
48  };
49  
50  static struct resource dm9000_resources[] = {
51 -       MEM_RES("dm9000_io", DM9000_IO, DM9000_IO),
52 -       MEM_RES("dm9000_data", DM9000_DATA, DM9000_DATA),
53 +       MEM_RES("dm9000_io", DM9000_IO, 1),
54 +       MEM_RES("dm9000_data", DM9000_DATA, 1),
55         [2] = {
56                 /* with irq (210 -> gpio 110) the driver is very unreliable */
57                 .start  = -1,           /* use polling */
58 @@ -212,8 +221,8 @@ static void __init easy98000_init_common
59         falcon_register_i2c();
60         platform_device_register(&easy98000_i2c_gpio_device);
61         register_davicom();
62 -       ltq_add_device_leds_gpio(-1, ARRAY_SIZE(easy98000_leds_gpio),
63 -                                       easy98000_leds_gpio);
64 +       ltq_add_device_gpio_leds(-1, ARRAY_SIZE(easy98000_gpio_leds),
65 +                                       easy98000_gpio_leds);
66         register_easy98000_cpld();
67         easy98000_spi_gpio_init();
68  }