acx-mac80211: fetch WLAN MAC address from PROM environment

Patch from Daniel Gimpelevich.

SVN-Revision: 33747
lede-17.01
Florian Fainelli 2012-10-13 17:46:54 +00:00
parent 9d13de5739
commit a5e7d09487
1 changed files with 31 additions and 0 deletions

View File

@ -0,0 +1,31 @@
--- a/cardsetting.c 2012-07-03 16:21:25.934102662 -0700
+++ b/cardsetting.c 2012-07-03 16:49:26.910438174 -0700
@@ -710,12 +710,27 @@
u8 stationID[4 + acx_ie_descs[ACX1xx_IE_DOT11_STATION_ID].len];
const u8 *paddr;
int i, res;
+ const char *prom_addr;
+ char *prom_getenv(const char *name);
res = acx_interrogate(adev, &stationID, ACX1xx_IE_DOT11_STATION_ID);
paddr = &stationID[4];
- for (i = 0; i < ETH_ALEN; i++) {
+ prom_addr = NULL;
+#ifdef CONFIG_VLYNQ
+ prom_addr = prom_getenv("macwlan");
+ if (prom_addr == NULL)
+ prom_addr = prom_getenv("mac_ap");
+#endif
+ if (prom_addr)
+ sscanf(prom_addr, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", adev->dev_addr,
+ adev->dev_addr + 1,
+ adev->dev_addr + 2,
+ adev->dev_addr + 3,
+ adev->dev_addr + 4,
+ adev->dev_addr + 5);
+ else for (i = 0; i < ETH_ALEN; i++) {
/* we copy the MAC address (reversed in the card) to
* the netdevice's MAC address, and on ifup it will be
* copied into iwadev->dev_addr */