wl1271: upload only the first 468 bytes from the NVS file
authorLuciano Coelho <luciano.coelho@nokia.com>
Fri, 11 Dec 2009 13:40:53 +0000 (15:40 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 28 Dec 2009 21:31:32 +0000 (16:31 -0500)
We were uploading the whole NVS file, but that is wrong, because the same
file also contains the initialization values.  For the latest firmwares, we
should upload only the initial 468 bytes from the file.

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

index 3bec6f3..8dfc9ec 100644 (file)
@@ -111,6 +111,7 @@ enum {
 
 #define WL1271_FW_NAME "wl1271-fw.bin"
 #define WL1271_NVS_NAME "wl1271-nvs.bin"
+#define WL1271_NVS_LEN  468
 
 /*
  * Enable/disable 802.11a support for WL1273
index b7c9645..e803b87 100644 (file)
@@ -225,9 +225,15 @@ static int wl1271_boot_upload_nvs(struct wl1271 *wl)
        if (nvs == NULL)
                return -ENODEV;
 
+       if (wl->nvs_len < WL1271_NVS_LEN)
+               return -EINVAL;
+
        nvs_ptr = nvs;
 
-       nvs_len = wl->nvs_len;
+       /* only the first part of the NVS needs to be uploaded */
+       nvs_len = WL1271_NVS_LEN;
+
+       /* FIXME: read init settings from the remaining part of the NVS */
 
        /* Update the device MAC address into the nvs */
        nvs[11] = wl->mac_addr[0];