diff options
-rw-r--r-- | arch/mips/momentum/jaguar_atx/platform.c | 20 | ||||
-rw-r--r-- | arch/mips/momentum/ocelot_3/platform.c | 20 | ||||
-rw-r--r-- | arch/mips/momentum/ocelot_c/platform.c | 12 | ||||
-rw-r--r-- | drivers/net/mv643xx_eth.c | 2 | ||||
-rw-r--r-- | include/linux/mv643xx.h | 2 |
5 files changed, 12 insertions, 44 deletions
diff --git a/arch/mips/momentum/jaguar_atx/platform.c b/arch/mips/momentum/jaguar_atx/platform.c index 3df36eda75af..771e55f39875 100644 --- a/arch/mips/momentum/jaguar_atx/platform.c +++ b/arch/mips/momentum/jaguar_atx/platform.c | |||
@@ -47,11 +47,7 @@ static struct resource mv64x60_eth0_resources[] = { | |||
47 | }, | 47 | }, |
48 | }; | 48 | }; |
49 | 49 | ||
50 | static char eth0_mac_addr[ETH_ALEN]; | ||
51 | |||
52 | static struct mv643xx_eth_platform_data eth0_pd = { | 50 | static struct mv643xx_eth_platform_data eth0_pd = { |
53 | .mac_addr = eth0_mac_addr, | ||
54 | |||
55 | .tx_sram_addr = MV_SRAM_BASE_ETH0, | 51 | .tx_sram_addr = MV_SRAM_BASE_ETH0, |
56 | .tx_sram_size = MV_SRAM_TXRING_SIZE, | 52 | .tx_sram_size = MV_SRAM_TXRING_SIZE, |
57 | .tx_queue_size = MV_SRAM_TXRING_SIZE / 16, | 53 | .tx_queue_size = MV_SRAM_TXRING_SIZE / 16, |
@@ -80,11 +76,7 @@ static struct resource mv64x60_eth1_resources[] = { | |||
80 | }, | 76 | }, |
81 | }; | 77 | }; |
82 | 78 | ||
83 | static char eth1_mac_addr[ETH_ALEN]; | ||
84 | |||
85 | static struct mv643xx_eth_platform_data eth1_pd = { | 79 | static struct mv643xx_eth_platform_data eth1_pd = { |
86 | .mac_addr = eth1_mac_addr, | ||
87 | |||
88 | .tx_sram_addr = MV_SRAM_BASE_ETH1, | 80 | .tx_sram_addr = MV_SRAM_BASE_ETH1, |
89 | .tx_sram_size = MV_SRAM_TXRING_SIZE, | 81 | .tx_sram_size = MV_SRAM_TXRING_SIZE, |
90 | .tx_queue_size = MV_SRAM_TXRING_SIZE / 16, | 82 | .tx_queue_size = MV_SRAM_TXRING_SIZE / 16, |
@@ -113,11 +105,7 @@ static struct resource mv64x60_eth2_resources[] = { | |||
113 | }, | 105 | }, |
114 | }; | 106 | }; |
115 | 107 | ||
116 | static char eth2_mac_addr[ETH_ALEN]; | 108 | static struct mv643xx_eth_platform_data eth2_pd; |
117 | |||
118 | static struct mv643xx_eth_platform_data eth2_pd = { | ||
119 | .mac_addr = eth2_mac_addr, | ||
120 | }; | ||
121 | 109 | ||
122 | static struct platform_device eth2_device = { | 110 | static struct platform_device eth2_device = { |
123 | .name = MV643XX_ETH_NAME, | 111 | .name = MV643XX_ETH_NAME, |
@@ -200,9 +188,9 @@ static int __init mv643xx_eth_add_pds(void) | |||
200 | int ret; | 188 | int ret; |
201 | 189 | ||
202 | get_mac(mac); | 190 | get_mac(mac); |
203 | eth_mac_add(eth0_mac_addr, mac, 0); | 191 | eth_mac_add(eth0_pd.mac_addr, mac, 0); |
204 | eth_mac_add(eth1_mac_addr, mac, 1); | 192 | eth_mac_add(eth1_pd.mac_addr, mac, 1); |
205 | eth_mac_add(eth2_mac_addr, mac, 2); | 193 | eth_mac_add(eth2_pd.mac_addr, mac, 2); |
206 | ret = platform_add_devices(mv643xx_eth_pd_devs, | 194 | ret = platform_add_devices(mv643xx_eth_pd_devs, |
207 | ARRAY_SIZE(mv643xx_eth_pd_devs)); | 195 | ARRAY_SIZE(mv643xx_eth_pd_devs)); |
208 | 196 | ||
diff --git a/arch/mips/momentum/ocelot_3/platform.c b/arch/mips/momentum/ocelot_3/platform.c index 024aef25f372..b80733f0c66d 100644 --- a/arch/mips/momentum/ocelot_3/platform.c +++ b/arch/mips/momentum/ocelot_3/platform.c | |||
@@ -47,11 +47,7 @@ static struct resource mv64x60_eth0_resources[] = { | |||
47 | }, | 47 | }, |
48 | }; | 48 | }; |
49 | 49 | ||
50 | static char eth0_mac_addr[ETH_ALEN]; | ||
51 | |||
52 | static struct mv643xx_eth_platform_data eth0_pd = { | 50 | static struct mv643xx_eth_platform_data eth0_pd = { |
53 | .mac_addr = eth0_mac_addr, | ||
54 | |||
55 | .tx_sram_addr = MV_SRAM_BASE_ETH0, | 51 | .tx_sram_addr = MV_SRAM_BASE_ETH0, |
56 | .tx_sram_size = MV_SRAM_TXRING_SIZE, | 52 | .tx_sram_size = MV_SRAM_TXRING_SIZE, |
57 | .tx_queue_size = MV_SRAM_TXRING_SIZE / 16, | 53 | .tx_queue_size = MV_SRAM_TXRING_SIZE / 16, |
@@ -80,11 +76,7 @@ static struct resource mv64x60_eth1_resources[] = { | |||
80 | }, | 76 | }, |
81 | }; | 77 | }; |
82 | 78 | ||
83 | static char eth1_mac_addr[ETH_ALEN]; | ||
84 | |||
85 | static struct mv643xx_eth_platform_data eth1_pd = { | 79 | static struct mv643xx_eth_platform_data eth1_pd = { |
86 | .mac_addr = eth1_mac_addr, | ||
87 | |||
88 | .tx_sram_addr = MV_SRAM_BASE_ETH1, | 80 | .tx_sram_addr = MV_SRAM_BASE_ETH1, |
89 | .tx_sram_size = MV_SRAM_TXRING_SIZE, | 81 | .tx_sram_size = MV_SRAM_TXRING_SIZE, |
90 | .tx_queue_size = MV_SRAM_TXRING_SIZE / 16, | 82 | .tx_queue_size = MV_SRAM_TXRING_SIZE / 16, |
@@ -113,11 +105,7 @@ static struct resource mv64x60_eth2_resources[] = { | |||
113 | }, | 105 | }, |
114 | }; | 106 | }; |
115 | 107 | ||
116 | static char eth2_mac_addr[ETH_ALEN]; | 108 | static struct mv643xx_eth_platform_data eth2_pd; |
117 | |||
118 | static struct mv643xx_eth_platform_data eth2_pd = { | ||
119 | .mac_addr = eth2_mac_addr, | ||
120 | }; | ||
121 | 109 | ||
122 | static struct platform_device eth2_device = { | 110 | static struct platform_device eth2_device = { |
123 | .name = MV643XX_ETH_NAME, | 111 | .name = MV643XX_ETH_NAME, |
@@ -200,9 +188,9 @@ static int __init mv643xx_eth_add_pds(void) | |||
200 | int ret; | 188 | int ret; |
201 | 189 | ||
202 | get_mac(mac); | 190 | get_mac(mac); |
203 | eth_mac_add(eth0_mac_addr, mac, 0); | 191 | eth_mac_add(eth0_pd.mac_addr, mac, 0); |
204 | eth_mac_add(eth1_mac_addr, mac, 1); | 192 | eth_mac_add(eth1_pd.mac_addr, mac, 1); |
205 | eth_mac_add(eth2_mac_addr, mac, 2); | 193 | eth_mac_add(eth2_pd.mac_addr, mac, 2); |
206 | ret = platform_add_devices(mv643xx_eth_pd_devs, | 194 | ret = platform_add_devices(mv643xx_eth_pd_devs, |
207 | ARRAY_SIZE(mv643xx_eth_pd_devs)); | 195 | ARRAY_SIZE(mv643xx_eth_pd_devs)); |
208 | 196 | ||
diff --git a/arch/mips/momentum/ocelot_c/platform.c b/arch/mips/momentum/ocelot_c/platform.c index fac8b2499387..f7cd303f3eba 100644 --- a/arch/mips/momentum/ocelot_c/platform.c +++ b/arch/mips/momentum/ocelot_c/platform.c | |||
@@ -46,11 +46,7 @@ static struct resource mv64x60_eth0_resources[] = { | |||
46 | }, | 46 | }, |
47 | }; | 47 | }; |
48 | 48 | ||
49 | static char eth0_mac_addr[ETH_ALEN]; | ||
50 | |||
51 | static struct mv643xx_eth_platform_data eth0_pd = { | 49 | static struct mv643xx_eth_platform_data eth0_pd = { |
52 | .mac_addr = eth0_mac_addr, | ||
53 | |||
54 | .tx_sram_addr = MV_SRAM_BASE_ETH0, | 50 | .tx_sram_addr = MV_SRAM_BASE_ETH0, |
55 | .tx_sram_size = MV_SRAM_TXRING_SIZE, | 51 | .tx_sram_size = MV_SRAM_TXRING_SIZE, |
56 | .tx_queue_size = MV_SRAM_TXRING_SIZE / 16, | 52 | .tx_queue_size = MV_SRAM_TXRING_SIZE / 16, |
@@ -79,11 +75,7 @@ static struct resource mv64x60_eth1_resources[] = { | |||
79 | }, | 75 | }, |
80 | }; | 76 | }; |
81 | 77 | ||
82 | static char eth1_mac_addr[ETH_ALEN]; | ||
83 | |||
84 | static struct mv643xx_eth_platform_data eth1_pd = { | 78 | static struct mv643xx_eth_platform_data eth1_pd = { |
85 | .mac_addr = eth1_mac_addr, | ||
86 | |||
87 | .tx_sram_addr = MV_SRAM_BASE_ETH1, | 79 | .tx_sram_addr = MV_SRAM_BASE_ETH1, |
88 | .tx_sram_size = MV_SRAM_TXRING_SIZE, | 80 | .tx_sram_size = MV_SRAM_TXRING_SIZE, |
89 | .tx_queue_size = MV_SRAM_TXRING_SIZE / 16, | 81 | .tx_queue_size = MV_SRAM_TXRING_SIZE / 16, |
@@ -174,8 +166,8 @@ static int __init mv643xx_eth_add_pds(void) | |||
174 | int ret; | 166 | int ret; |
175 | 167 | ||
176 | get_mac(mac); | 168 | get_mac(mac); |
177 | eth_mac_add(eth0_mac_addr, mac, 0); | 169 | eth_mac_add(eth0_pd.mac_addr, mac, 0); |
178 | eth_mac_add(eth1_mac_addr, mac, 1); | 170 | eth_mac_add(eth1_pd.mac_addr, mac, 1); |
179 | ret = platform_add_devices(mv643xx_eth_pd_devs, | 171 | ret = platform_add_devices(mv643xx_eth_pd_devs, |
180 | ARRAY_SIZE(mv643xx_eth_pd_devs)); | 172 | ARRAY_SIZE(mv643xx_eth_pd_devs)); |
181 | 173 | ||
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c index 3e045a695dbc..be2ddbb6ef56 100644 --- a/drivers/net/mv643xx_eth.c +++ b/drivers/net/mv643xx_eth.c | |||
@@ -1380,7 +1380,7 @@ static int mv643xx_eth_probe(struct platform_device *pdev) | |||
1380 | 1380 | ||
1381 | pd = pdev->dev.platform_data; | 1381 | pd = pdev->dev.platform_data; |
1382 | if (pd) { | 1382 | if (pd) { |
1383 | if (pd->mac_addr) | 1383 | if (is_valid_ether_addr(pd->mac_addr)) |
1384 | memcpy(dev->dev_addr, pd->mac_addr, 6); | 1384 | memcpy(dev->dev_addr, pd->mac_addr, 6); |
1385 | 1385 | ||
1386 | if (pd->phy_addr || pd->force_phy_addr) | 1386 | if (pd->phy_addr || pd->force_phy_addr) |
diff --git a/include/linux/mv643xx.h b/include/linux/mv643xx.h index aff25c000abf..e7d4da1cc9fa 100644 --- a/include/linux/mv643xx.h +++ b/include/linux/mv643xx.h | |||
@@ -1288,7 +1288,6 @@ struct mv64xxx_i2c_pdata { | |||
1288 | #define MV643XX_ETH_NAME "mv643xx_eth" | 1288 | #define MV643XX_ETH_NAME "mv643xx_eth" |
1289 | 1289 | ||
1290 | struct mv643xx_eth_platform_data { | 1290 | struct mv643xx_eth_platform_data { |
1291 | char *mac_addr; /* pointer to mac address */ | ||
1292 | u16 force_phy_addr; /* force override if phy_addr == 0 */ | 1291 | u16 force_phy_addr; /* force override if phy_addr == 0 */ |
1293 | u16 phy_addr; | 1292 | u16 phy_addr; |
1294 | 1293 | ||
@@ -1303,6 +1302,7 @@ struct mv643xx_eth_platform_data { | |||
1303 | u32 tx_sram_size; | 1302 | u32 tx_sram_size; |
1304 | u32 rx_sram_addr; | 1303 | u32 rx_sram_addr; |
1305 | u32 rx_sram_size; | 1304 | u32 rx_sram_size; |
1305 | u8 mac_addr[6]; /* mac address if non-zero*/ | ||
1306 | }; | 1306 | }; |
1307 | 1307 | ||
1308 | #endif /* __ASM_MV643XX_H */ | 1308 | #endif /* __ASM_MV643XX_H */ |