aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorimoseyon <imoseyon@gmail.com>2012-05-09 22:43:05 -0700
committerZiyann <jaraidaniel@gmail.com>2014-11-19 21:08:16 +0100
commitd52b494780a66d4ac3b3180e73f0b5cf694bf4e6 (patch)
tree69f262d3c1b5180befa50d2312990e0a07dd93e8
parent060fd9ae45a69570a3b333edb0745238dc273371 (diff)
downloadkernel_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.c6
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);