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 3bec6f3b1c7f44d2a155e0ef0e135420dc67fdb9..8dfc9ec9590de2a5d37136ced35212373697e03f 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 b7c96454cca3444147054d64797993662701600f..e803b876f3f03cb7efa71807024b3d2d44938f52 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];