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>
This commit is contained in:
Ajay Singh 2018-09-25 11:53:31 +05:30 committed by Greg Kroah-Hartman
parent 540aa64d4e
commit de11f709df
3 changed files with 17 additions and 12 deletions

View File

@ -159,9 +159,9 @@ static void deinit_irq(struct net_device *dev)
void wilc_mac_indicate(struct wilc *wilc)
{
int status;
s8 status;
wilc_wlan_cfg_get_val(WID_STATUS, (unsigned char *)&status, 4);
wilc_wlan_cfg_get_val(WID_STATUS, &status, 1);
if (wilc->mac_status == MAC_STATUS_INIT) {
wilc->mac_status = status;
complete(&wilc->sync_event);

View File

@ -155,7 +155,7 @@ struct wilc_vif {
struct wilc {
const struct wilc_hif_func *hif_func;
int io_type;
int mac_status;
s8 mac_status;
struct gpio_desc *gpio_irq;
bool initialized;
int dev_irq_num;

View File

@ -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 {