--- 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 */
