You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
freifunkist-firmware/package/kernel/acx-mac80211/patches/200-initial-macaddr.patch

30 lines
923 B

--- a/cardsetting.c
+++ b/cardsetting.c
@@ -715,10 +715,25 @@ int acx1xx_get_station_id(acx_device_t *
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 */