diff options
author | imoseyon <imoseyon@gmail.com> | 2012-05-09 22:43:05 -0700 |
---|---|---|
committer | Ziyann <jaraidaniel@gmail.com> | 2014-11-19 21:08:16 +0100 |
commit | d52b494780a66d4ac3b3180e73f0b5cf694bf4e6 (patch) | |
tree | 69f262d3c1b5180befa50d2312990e0a07dd93e8 | |
parent | 060fd9ae45a69570a3b333edb0745238dc273371 (diff) | |
download | kernel_samsung_tuna-d52b494780a66d4ac3b3180e73f0b5cf694bf4e6.zip kernel_samsung_tuna-d52b494780a66d4ac3b3180e73f0b5cf694bf4e6.tar.gz kernel_samsung_tuna-d52b494780a66d4ac3b3180e73f0b5cf694bf4e6.tar.bz2 |
tuna-wifi: do not randomize MAC if bootloader doesn't pass it
Calculate MAC from SOC die_id which hopefully is unique enough.
Change-Id: Ib7adce2f1b45d59efc0009697039f69085f436e8
-rw-r--r-- | arch/arm/mach-omap2/board-tuna-wifi.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/board-tuna-wifi.c b/arch/arm/mach-omap2/board-tuna-wifi.c index 65d4fbd..8e3076f 100644 --- a/arch/arm/mach-omap2/board-tuna-wifi.c +++ b/arch/arm/mach-omap2/board-tuna-wifi.c @@ -31,6 +31,7 @@ #include <linux/random.h> #include <linux/jiffies.h> +#include <mach/id.h> #include "hsmmc.h" #include "control.h" #include "mux.h" @@ -288,6 +289,7 @@ static int tuna_wifi_get_mac_addr(unsigned char *buf) { int type = omap4_tuna_get_type(); uint rand_mac; + struct omap_die_id oid; if (type != TUNA_TYPE_TORO) return -EINVAL; @@ -296,8 +298,8 @@ static int tuna_wifi_get_mac_addr(unsigned char *buf) return -EFAULT; if ((tuna_mac_addr[4] == 0) && (tuna_mac_addr[5] == 0)) { - srandom32((uint)jiffies); - rand_mac = random32(); + omap_get_die_id(&oid); + rand_mac = (uint)oid.id_3; // id_3 or id_1 ? tuna_mac_addr[3] = (unsigned char)rand_mac; tuna_mac_addr[4] = (unsigned char)(rand_mac >> 8); tuna_mac_addr[5] = (unsigned char)(rand_mac >> 16); |