Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 202738
b: refs/heads/master
c: a7da74f
h: refs/heads/master
v: v3
  • Loading branch information
Juuso Oikarinen authored and John W. Linville committed Jun 2, 2010
1 parent a4bcd63 commit 90a8398
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: eb70eb723b489dd4e233e22e47d993f59858cdd8
refs/heads/master: a7da74fc88bff6f82f8255f2def49907f82f4c61
9 changes: 8 additions & 1 deletion trunk/drivers/net/wireless/wl12xx/wl1271_cmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -238,13 +238,20 @@ int wl1271_cmd_radio_parms(struct wl1271 *wl)

radio_parms->test.id = TEST_CMD_INI_FILE_RADIO_PARAM;

/* 2.4GHz parameters */
memcpy(&radio_parms->static_params_2, &wl->nvs->stat_radio_params_2,
sizeof(struct wl1271_ini_band_params_2));
memcpy(&radio_parms->dyn_params_2,
&wl->nvs->dyn_radio_params_2[rparam->fem].params,
sizeof(struct wl1271_ini_fem_params_2));

/* FIXME: current NVS is missing 5GHz parameters */
/* 5GHz parameters */
memcpy(&radio_parms->static_params_5,
&wl->nvs->stat_radio_params_5,
sizeof(struct wl1271_ini_band_params_5));
memcpy(&radio_parms->dyn_params_5,
&wl->nvs->dyn_radio_params_5[rparam->fem].params,
sizeof(struct wl1271_ini_fem_params_5));

wl1271_dump(DEBUG_CMD, "TEST_CMD_INI_FILE_RADIO_PARAM: ",
radio_parms, sizeof(*radio_parms));
Expand Down
11 changes: 8 additions & 3 deletions trunk/drivers/net/wireless/wl12xx/wl1271_ini.h
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,10 @@ struct wl1271_ini_fem_params_5 {

/* NVS data structure */
#define WL1271_INI_NVS_SECTION_SIZE 468
#define WL1271_INI_SPARE_SIZE 124
#define WL1271_INI_FEM_MODULE_COUNT 2

#define WL1271_INI_LEGACY_NVS_FILE_SIZE 800

struct wl1271_nvs_file {
/* NVS section */
u8 nvs[WL1271_INI_NVS_SECTION_SIZE];
Expand All @@ -111,8 +112,12 @@ struct wl1271_nvs_file {
struct wl1271_ini_fem_params_2 params;
u8 padding;
} dyn_radio_params_2[WL1271_INI_FEM_MODULE_COUNT];

u8 ini_spare[WL1271_INI_SPARE_SIZE];
struct wl1271_ini_band_params_5 stat_radio_params_5;
u8 padding3;
struct {
struct wl1271_ini_fem_params_5 params;
u8 padding;
} dyn_radio_params_5[WL1271_INI_FEM_MODULE_COUNT];
} __attribute__ ((packed));

#endif
13 changes: 10 additions & 3 deletions trunk/drivers/net/wireless/wl12xx/wl1271_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -566,22 +566,29 @@ static int wl1271_fetch_nvs(struct wl1271 *wl)
return ret;
}

if (fw->size != sizeof(struct wl1271_nvs_file)) {
/*
* FIXME: the LEGACY NVS image support (NVS's missing the 5GHz band
* configurations) can be removed when those NVS files stop floating
* around.
*/
if (fw->size != sizeof(struct wl1271_nvs_file) &&
(fw->size != WL1271_INI_LEGACY_NVS_FILE_SIZE ||
wl1271_11a_enabled())) {
wl1271_error("nvs size is not as expected: %zu != %zu",
fw->size, sizeof(struct wl1271_nvs_file));
ret = -EILSEQ;
goto out;
}

wl->nvs = kmalloc(sizeof(struct wl1271_nvs_file), GFP_KERNEL);
wl->nvs = kzalloc(sizeof(struct wl1271_nvs_file), GFP_KERNEL);

if (!wl->nvs) {
wl1271_error("could not allocate memory for the nvs file");
ret = -ENOMEM;
goto out;
}

memcpy(wl->nvs, fw->data, sizeof(struct wl1271_nvs_file));
memcpy(wl->nvs, fw->data, fw->size);

out:
release_firmware(fw);
Expand Down
11 changes: 9 additions & 2 deletions trunk/drivers/net/wireless/wl12xx/wl1271_testmode.c
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,14 @@ static int wl1271_tm_cmd_nvs_push(struct wl1271 *wl, struct nlattr *tb[])
buf = nla_data(tb[WL1271_TM_ATTR_DATA]);
len = nla_len(tb[WL1271_TM_ATTR_DATA]);

if (len != sizeof(struct wl1271_nvs_file)) {
/*
* FIXME: the LEGACY NVS image support (NVS's missing the 5GHz band
* configurations) can be removed when those NVS files stop floating
* around.
*/
if (len != sizeof(struct wl1271_nvs_file) &&
(len != WL1271_INI_LEGACY_NVS_FILE_SIZE ||
wl1271_11a_enabled())) {
wl1271_error("nvs size is not as expected: %zu != %zu",
len, sizeof(struct wl1271_nvs_file));
return -EMSGSIZE;
Expand All @@ -209,7 +216,7 @@ static int wl1271_tm_cmd_nvs_push(struct wl1271 *wl, struct nlattr *tb[])

kfree(wl->nvs);

wl->nvs = kmalloc(sizeof(struct wl1271_nvs_file), GFP_KERNEL);
wl->nvs = kzalloc(sizeof(struct wl1271_nvs_file), GFP_KERNEL);
if (!wl->nvs) {
wl1271_error("could not allocate memory for the nvs file");
ret = -ENOMEM;
Expand Down

0 comments on commit 90a8398

Please sign in to comment.