Message ID | 1368006896-24468-1-git-send-email-coelho@ti.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On Wed, 2013-05-08 at 12:54 +0300, Luciano Coelho wrote: > In some R&D chips, the device may be left untrimmed and with the MAC > address missing from fuse ROM. In order to support those devices, > apply a random locally administered MAC address instead. > > Signed-off-by: Luciano Coelho <coelho@ti.com> > --- > > In v2: > > * use eth_random_addr() to generate the locally assigned address, > instead of hardcoding it. (thanks Johannes) Applied. -- Luca. -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/wireless/ti/wl18xx/main.c b/drivers/net/wireless/ti/wl18xx/main.c index ae85ae4..7aa0eb8 100644 --- a/drivers/net/wireless/ti/wl18xx/main.c +++ b/drivers/net/wireless/ti/wl18xx/main.c @@ -23,6 +23,7 @@ #include <linux/platform_device.h> #include <linux/ip.h> #include <linux/firmware.h> +#include <linux/etherdevice.h> #include "../wlcore/wlcore.h" #include "../wlcore/debug.h" @@ -1318,6 +1319,16 @@ static int wl18xx_get_mac(struct wl1271 *wl) ((mac1 & 0xff000000) >> 24); wl->fuse_nic_addr = (mac1 & 0xffffff); + if (!wl->fuse_oui_addr && !wl->fuse_nic_addr) { + u8 mac[ETH_ALEN]; + + eth_random_addr(mac); + + wl->fuse_oui_addr = (mac[0] << 16) + (mac[1] << 8) + mac[2]; + wl->fuse_nic_addr = (mac[3] << 16) + (mac[4] << 8) + mac[5]; + wl1271_warning("MAC address from fuse not available, using random locally administered addresses."); + } + ret = wlcore_set_partition(wl, &wl->ptable[PART_DOWN]); out:
In some R&D chips, the device may be left untrimmed and with the MAC address missing from fuse ROM. In order to support those devices, apply a random locally administered MAC address instead. Signed-off-by: Luciano Coelho <coelho@ti.com> --- In v2: * use eth_random_addr() to generate the locally assigned address, instead of hardcoding it. (thanks Johannes) drivers/net/wireless/ti/wl18xx/main.c | 11 +++++++++++ 1 file changed, 11 insertions(+)