openwrtv4/package/kernel/acx-mac80211/patches/200-initial-macaddr.patch

30 lines
924 B
Diff
Raw Normal View History

--- a/cardsetting.c
+++ b/cardsetting.c
@@ -710,10 +710,25 @@ static int acx1xx_get_station_id(acx_dev
u8 *stationID = adev->ie_cmd_buf;;
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 */