diff options
author | Florian Fainelli <florian@openwrt.org> | 2012-10-13 17:46:54 +0000 |
---|---|---|
committer | Florian Fainelli <florian@openwrt.org> | 2012-10-13 17:46:54 +0000 |
commit | a5e7d0948712fff19bcafa3f61dda44a5cb293fd (patch) | |
tree | 53699d35ad662f0d87347601f741492362c5fc5b | |
parent | 9d13de573912e09a58eaa1d58eeb0ce3b8421e45 (diff) | |
download | upstream-a5e7d0948712fff19bcafa3f61dda44a5cb293fd.tar.gz upstream-a5e7d0948712fff19bcafa3f61dda44a5cb293fd.tar.bz2 upstream-a5e7d0948712fff19bcafa3f61dda44a5cb293fd.zip |
acx-mac80211: fetch WLAN MAC address from PROM environment
Patch from Daniel Gimpelevich.
SVN-Revision: 33747
-rw-r--r-- | package/acx-mac80211/patches/200-initial-macaddr.patch | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/package/acx-mac80211/patches/200-initial-macaddr.patch b/package/acx-mac80211/patches/200-initial-macaddr.patch new file mode 100644 index 0000000000..498c72dd85 --- /dev/null +++ b/package/acx-mac80211/patches/200-initial-macaddr.patch @@ -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 */ |