wl1271: skip 3 unused bytes from the NVS
authorLuciano Coelho <luciano.coelho@nokia.com>
Thu, 18 Feb 2010 11:25:45 +0000 (13:25 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 19 Feb 2010 20:52:44 +0000 (15:52 -0500)
Our NVS uploading mechanism had a bug that was causing it to pass three extra
zeros at the start of the NVS.  This may be a problem in the NVS generation
application, but for now we fix it in the driver.

Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/wl12xx/wl1271_boot.c

index 57ba78d83e87447a720cc676319da9add1978ad1..fb3090c3ed1561f4c3a77c709d52172eb1201ddf 100644 (file)
@@ -277,9 +277,14 @@ static int wl1271_boot_upload_nvs(struct wl1271 *wl)
        wl1271_set_partition(wl, &part_table[PART_WORK]);
 
        /* Copy the NVS tables to a new block to ensure alignment */
-       nvs_aligned = kmemdup(nvs_ptr, nvs_len, GFP_KERNEL);
-       if (!nvs_aligned)
-               return -ENOMEM;
+       /* FIXME: We jump 3 more bytes before uploading the NVS.  It seems
+       that our NVS files have three extra zeros here.  I'm not sure whether
+       the problem is in our NVS generation or we should really jumpt these
+       3 bytes here */
+       nvs_ptr += 3;
+
+       nvs_aligned = kmemdup(nvs_ptr, nvs_len, GFP_KERNEL); if
+       (!nvs_aligned) return -ENOMEM;
 
        /* And finally we upload the NVS tables */
        /* FIXME: In wl1271, we upload everything at once.