summaryrefslogtreecommitdiffstats
path: root/drivers/staging/wilc1000/wilc_wlan_cfg.c
diff options
context:
space:
mode:
authorAjay Singh2018-09-25 08:23:31 +0200
committerGreg Kroah-Hartman2018-09-25 20:53:57 +0200
commitde11f709dfaf267658c3478361b2a2822b5263c5 (patch)
treea98bd90feac1c0cae09be65ed54e0899ec8c855b /drivers/staging/wilc1000/wilc_wlan_cfg.c
parentstaging: wilc1000: remove unused wid from cfg struct (diff)
downloadkernel-qcow2-linux-de11f709dfaf267658c3478361b2a2822b5263c5.tar.gz
kernel-qcow2-linux-de11f709dfaf267658c3478361b2a2822b5263c5.tar.xz
kernel-qcow2-linux-de11f709dfaf267658c3478361b2a2822b5263c5.zip
staging: wilc1000: refactor code to remove 'mac_status' from 'wilc_mac_cfg' struct
Refactor the code by removing use of 'mac_status' from 'wilc_mac_cfg' and only have the string type configuration values in 'wilc_mac_cfg' struct. Now fetch the value 'WID_STATUS' configuration from 'g_cfg_byte' array. Signed-off-by: Ajay Singh <ajay.kathat@microchip.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/wilc1000/wilc_wlan_cfg.c')
-rw-r--r--drivers/staging/wilc1000/wilc_wlan_cfg.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.c b/drivers/staging/wilc1000/wilc_wlan_cfg.c
index 541251b2fe0d..4434976fa90a 100644
--- a/drivers/staging/wilc1000/wilc_wlan_cfg.c
+++ b/drivers/staging/wilc1000/wilc_wlan_cfg.c
@@ -18,7 +18,6 @@ enum cfg_cmd_type {
};
struct wilc_mac_cfg {
- int mac_status;
u8 mac_address[7];
u8 firmware_version[129];
u8 assoc_rsp[256];
@@ -251,15 +250,26 @@ static void wilc_wlan_parse_response_frame(u8 *info, int size)
static void wilc_wlan_parse_info_frame(u8 *info)
{
- struct wilc_mac_cfg *pd = &g_mac;
u32 wid, len;
wid = info[0] | (info[1] << 8);
len = info[2];
- if (len == 1 && wid == WID_STATUS)
- pd->mac_status = info[3];
+ if (len == 1 && wid == WID_STATUS) {
+ int i = 0;
+
+ do {
+ if (g_cfg_byte[i].id == WID_NIL)
+ break;
+
+ if (g_cfg_byte[i].id == wid) {
+ g_cfg_byte[i].val = info[3];
+ break;
+ }
+ i++;
+ } while (1);
+ }
}
/********************************************
@@ -323,11 +333,6 @@ int wilc_wlan_cfg_get_wid_value(u16 wid, u8 *buffer, u32 buffer_size)
u32 type = (wid >> 12) & 0xf;
int i, ret = 0;
- if (wid == WID_STATUS) {
- *((u32 *)buffer) = g_mac.mac_status;
- return 4;
- }
-
i = 0;
if (type == CFG_BYTE_CMD) {
do {