On Saturday 24 December 2016 19:17:30 Pavel Machek wrote:
Hi!
quoted
In case there is no valid MAC address kernel generates random one.
This patch propagate this generated MAC address back to NVS data
which will be uploaded to wl1251 chip. So HW would have same MAC
address as linux kernel uses.
return 0;
}
+static int wl1251_write_nvs_mac(struct wl1251 *wl)
+{
The name is quite confusing, this sounds like writing into
non-volatile storage.
quoted
+ int i;
+
+ if (wl->nvs_len < 0x24)
+ return -ENODATA;
+
+ /* length is 2 and data address is 0x546c (mask is 0xfffe) */
You don't actually check for the mask.
It is quite complicated. { 0x6d, 0x54 } (= 0x546d) in data represent
address 0x546c and content are data. You need to apply mask 0xfffe for
0x546d and you get address where data will be written (so 0x546c).
quoted
+ if (wl->nvs[0x19] != 2 || wl->nvs[0x1a] != 0x6d || wl->nvs[0x1b]
!= 0x54) + return -EINVAL;
You have two copies of these. Does it make sense to move it to helper
function?
I'm thinking if checks is really needed. But probably moving it to
separate function is good idea.
--
Pali Rohár
pali.rohar@gmail.com