|
@@ -36,7 +36,6 @@ enum wl1271_tm_commands {
|
|
|
WL1271_TM_CMD_TEST,
|
|
|
WL1271_TM_CMD_INTERROGATE,
|
|
|
WL1271_TM_CMD_CONFIGURE,
|
|
|
- WL1271_TM_CMD_NVS_PUSH,
|
|
|
WL1271_TM_CMD_SET_PLT_MODE,
|
|
|
WL1271_TM_CMD_RECOVER,
|
|
|
|
|
@@ -190,48 +189,6 @@ static int wl1271_tm_cmd_configure(struct wl1271 *wl, struct nlattr *tb[])
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static int wl1271_tm_cmd_nvs_push(struct wl1271 *wl, struct nlattr *tb[])
|
|
|
-{
|
|
|
- int ret = 0;
|
|
|
- size_t len;
|
|
|
- void *buf;
|
|
|
-
|
|
|
- wl1271_debug(DEBUG_TESTMODE, "testmode cmd nvs push");
|
|
|
-
|
|
|
- if (!tb[WL1271_TM_ATTR_DATA])
|
|
|
- return -EINVAL;
|
|
|
-
|
|
|
- buf = nla_data(tb[WL1271_TM_ATTR_DATA]);
|
|
|
- len = nla_len(tb[WL1271_TM_ATTR_DATA]);
|
|
|
-
|
|
|
- mutex_lock(&wl->mutex);
|
|
|
-
|
|
|
- kfree(wl->nvs);
|
|
|
-
|
|
|
- if ((wl->chip.id == CHIP_ID_1283_PG20) &&
|
|
|
- (len != sizeof(struct wl128x_nvs_file)))
|
|
|
- return -EINVAL;
|
|
|
- else if (len != sizeof(struct wl1271_nvs_file))
|
|
|
- return -EINVAL;
|
|
|
-
|
|
|
- wl->nvs = kzalloc(len, GFP_KERNEL);
|
|
|
- if (!wl->nvs) {
|
|
|
- wl1271_error("could not allocate memory for the nvs file");
|
|
|
- ret = -ENOMEM;
|
|
|
- goto out;
|
|
|
- }
|
|
|
-
|
|
|
- memcpy(wl->nvs, buf, len);
|
|
|
- wl->nvs_len = len;
|
|
|
-
|
|
|
- wl1271_debug(DEBUG_TESTMODE, "testmode pushed nvs");
|
|
|
-
|
|
|
-out:
|
|
|
- mutex_unlock(&wl->mutex);
|
|
|
-
|
|
|
- return ret;
|
|
|
-}
|
|
|
-
|
|
|
static int wl1271_tm_cmd_set_plt_mode(struct wl1271 *wl, struct nlattr *tb[])
|
|
|
{
|
|
|
u32 val;
|
|
@@ -288,8 +245,6 @@ int wl1271_tm_cmd(struct ieee80211_hw *hw, void *data, int len)
|
|
|
return wl1271_tm_cmd_interrogate(wl, tb);
|
|
|
case WL1271_TM_CMD_CONFIGURE:
|
|
|
return wl1271_tm_cmd_configure(wl, tb);
|
|
|
- case WL1271_TM_CMD_NVS_PUSH:
|
|
|
- return wl1271_tm_cmd_nvs_push(wl, tb);
|
|
|
case WL1271_TM_CMD_SET_PLT_MODE:
|
|
|
return wl1271_tm_cmd_set_plt_mode(wl, tb);
|
|
|
case WL1271_TM_CMD_RECOVER:
|