diff options
Diffstat (limited to 'drivers/staging/rtl8712')
31 files changed, 698 insertions, 940 deletions
diff --git a/drivers/staging/rtl8712/drv_types.h b/drivers/staging/rtl8712/drv_types.h index 9ae86631fa8b..0c4325073c63 100644 --- a/drivers/staging/rtl8712/drv_types.h +++ b/drivers/staging/rtl8712/drv_types.h @@ -148,14 +148,9 @@ struct _adapter { bool driver_stopped; bool surprise_removed; bool suspended; - u32 IsrContent; - u32 ImrContent; - u8 EepromAddressSize; + u8 eeprom_address_size; u8 hw_init_completed; - struct task_struct *cmdThread; - pid_t evtThread; - struct task_struct *xmitThread; - pid_t recvThread; + struct task_struct *cmd_thread; uint (*dvobj_init)(struct _adapter *adapter); void (*dvobj_deinit)(struct _adapter *adapter); struct net_device *pnetdev; @@ -163,9 +158,9 @@ struct _adapter { struct net_device_stats stats; struct iw_statistics iwstats; int pid; /*process id from UI*/ - struct work_struct wkFilterRxFF0; + struct work_struct wk_filter_rx_ff0; u8 blnEnableRxFF0Filter; - spinlock_t lockRxFF0Filter; + spinlock_t lock_rx_ff0_filter; const struct firmware *fw; struct usb_interface *pusb_intf; struct mutex mutex_start; diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c index 401f0e442bcf..40145c0338e4 100644 --- a/drivers/staging/rtl8712/hal_init.c +++ b/drivers/staging/rtl8712/hal_init.c @@ -31,21 +31,21 @@ static void rtl871x_load_fw_cb(const struct firmware *firmware, void *context) { - struct _adapter *padapter = context; + struct _adapter *adapter = context; - complete(&padapter->rtl8712_fw_ready); + complete(&adapter->rtl8712_fw_ready); if (!firmware) { - struct usb_device *udev = padapter->dvobjpriv.pusbdev; - struct usb_interface *pusb_intf = padapter->pusb_intf; + struct usb_device *udev = adapter->dvobjpriv.pusbdev; + struct usb_interface *usb_intf = adapter->pusb_intf; dev_err(&udev->dev, "r8712u: Firmware request failed\n"); usb_put_dev(udev); - usb_set_intfdata(pusb_intf, NULL); + usb_set_intfdata(usb_intf, NULL); return; } - padapter->fw = firmware; + adapter->fw = firmware; /* firmware available - start netdev */ - register_netdev(padapter->pnetdev); + register_netdev(adapter->pnetdev); } static const char firmware_file[] = "rtlwifi/rtl8712u.bin"; @@ -65,47 +65,47 @@ int rtl871x_load_fw(struct _adapter *padapter) } MODULE_FIRMWARE("rtlwifi/rtl8712u.bin"); -static u32 rtl871x_open_fw(struct _adapter *padapter, const u8 **ppmappedfw) +static u32 rtl871x_open_fw(struct _adapter *adapter, const u8 **mappedfw) { - const struct firmware **praw = &padapter->fw; + const struct firmware **raw = &adapter->fw; - if (padapter->fw->size > 200000) { - dev_err(&padapter->pnetdev->dev, "r8172u: Badfw->size of %d\n", - (int)padapter->fw->size); + if (adapter->fw->size > 200000) { + dev_err(&adapter->pnetdev->dev, "r8172u: Badfw->size of %d\n", + (int)adapter->fw->size); return 0; } - *ppmappedfw = (*praw)->data; - return (*praw)->size; + *mappedfw = (*raw)->data; + return (*raw)->size; } -static void fill_fwpriv(struct _adapter *padapter, struct fw_priv *pfwpriv) +static void fill_fwpriv(struct _adapter *adapter, struct fw_priv *fwpriv) { - struct dvobj_priv *pdvobj = &padapter->dvobjpriv; - struct registry_priv *pregpriv = &padapter->registrypriv; + struct dvobj_priv *dvobj = &adapter->dvobjpriv; + struct registry_priv *regpriv = &adapter->registrypriv; - memset(pfwpriv, 0, sizeof(struct fw_priv)); + memset(fwpriv, 0, sizeof(struct fw_priv)); /* todo: check if needs endian conversion */ - pfwpriv->hci_sel = RTL8712_HCI_TYPE_72USB; - pfwpriv->usb_ep_num = (u8)pdvobj->nr_endpoint; - pfwpriv->bw_40MHz_en = pregpriv->cbw40_enable; - switch (pregpriv->rf_config) { + fwpriv->hci_sel = RTL8712_HCI_TYPE_72USB; + fwpriv->usb_ep_num = (u8)dvobj->nr_endpoint; + fwpriv->bw_40MHz_en = regpriv->cbw40_enable; + switch (regpriv->rf_config) { case RTL8712_RF_1T1R: - pfwpriv->rf_config = RTL8712_RFC_1T1R; + fwpriv->rf_config = RTL8712_RFC_1T1R; break; case RTL8712_RF_2T2R: - pfwpriv->rf_config = RTL8712_RFC_2T2R; + fwpriv->rf_config = RTL8712_RFC_2T2R; break; case RTL8712_RF_1T2R: default: - pfwpriv->rf_config = RTL8712_RFC_1T2R; + fwpriv->rf_config = RTL8712_RFC_1T2R; } - pfwpriv->mp_mode = (pregpriv->mp_mode == 1) ? 1 : 0; + fwpriv->mp_mode = (regpriv->mp_mode == 1) ? 1 : 0; /* 0:off 1:on 2:auto */ - pfwpriv->vcs_type = pregpriv->vrtl_carrier_sense; - pfwpriv->vcs_mode = pregpriv->vcs_type; /* 1:RTS/CTS 2:CTS to self */ + fwpriv->vcs_type = regpriv->vrtl_carrier_sense; + fwpriv->vcs_mode = regpriv->vcs_type; /* 1:RTS/CTS 2:CTS to self */ /* default enable turbo_mode */ - pfwpriv->turbo_mode = ((pregpriv->wifi_test == 1) ? 0 : 1); - pfwpriv->low_power_mode = pregpriv->low_power; + fwpriv->turbo_mode = ((regpriv->wifi_test == 1) ? 0 : 1); + fwpriv->low_power_mode = regpriv->low_power; } static void update_fwhdr(struct fw_hdr *pfwhdr, const u8 *pmappedfw) @@ -141,7 +141,7 @@ static u8 chk_fwhdr(struct fw_hdr *pfwhdr, u32 ulfilelength) return _SUCCESS; } -static u8 rtl8712_dl_fw(struct _adapter *padapter) +static u8 rtl8712_dl_fw(struct _adapter *adapter) { sint i; u8 tmp8, tmp8_a; @@ -150,56 +150,56 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter) uint dump_imem_sz, imem_sz, dump_emem_sz, emem_sz; /* max = 49152; */ struct fw_hdr fwhdr; u32 ulfilelength; /* FW file size */ - const u8 *pmappedfw = NULL; - u8 *ptmpchar = NULL, *ppayload, *ptr; - struct tx_desc *ptx_desc; + const u8 *mappedfw = NULL; + u8 *tmpchar = NULL, *payload, *ptr; + struct tx_desc *txdesc; u32 txdscp_sz = sizeof(struct tx_desc); u8 ret = _FAIL; - ulfilelength = rtl871x_open_fw(padapter, &pmappedfw); - if (pmappedfw && (ulfilelength > 0)) { - update_fwhdr(&fwhdr, pmappedfw); + ulfilelength = rtl871x_open_fw(adapter, &mappedfw); + if (mappedfw && (ulfilelength > 0)) { + update_fwhdr(&fwhdr, mappedfw); if (chk_fwhdr(&fwhdr, ulfilelength) == _FAIL) return ret; - fill_fwpriv(padapter, &fwhdr.fwpriv); + fill_fwpriv(adapter, &fwhdr.fwpriv); /* firmware check ok */ maxlen = (fwhdr.img_IMEM_size > fwhdr.img_SRAM_size) ? fwhdr.img_IMEM_size : fwhdr.img_SRAM_size; maxlen += txdscp_sz; - ptmpchar = kmalloc(maxlen + FWBUFF_ALIGN_SZ, GFP_KERNEL); - if (!ptmpchar) + tmpchar = kmalloc(maxlen + FWBUFF_ALIGN_SZ, GFP_KERNEL); + if (!tmpchar) return ret; - ptx_desc = (struct tx_desc *)(ptmpchar + FWBUFF_ALIGN_SZ - - ((addr_t)(ptmpchar) & (FWBUFF_ALIGN_SZ - 1))); - ppayload = (u8 *)(ptx_desc) + txdscp_sz; - ptr = (u8 *)pmappedfw + FIELD_OFFSET(struct fw_hdr, fwpriv) + + txdesc = (struct tx_desc *)(tmpchar + FWBUFF_ALIGN_SZ - + ((addr_t)(tmpchar) & (FWBUFF_ALIGN_SZ - 1))); + payload = (u8 *)(txdesc) + txdscp_sz; + ptr = (u8 *)mappedfw + FIELD_OFFSET(struct fw_hdr, fwpriv) + fwhdr.fw_priv_sz; /* Download FirmWare */ /* 1. determine IMEM code size and Load IMEM Code Section */ imem_sz = fwhdr.img_IMEM_size; do { - memset(ptx_desc, 0, TXDESC_SIZE); + memset(txdesc, 0, TXDESC_SIZE); if (imem_sz > MAX_DUMP_FWSZ/*49152*/) { dump_imem_sz = MAX_DUMP_FWSZ; } else { dump_imem_sz = imem_sz; - ptx_desc->txdw0 |= cpu_to_le32(BIT(28)); + txdesc->txdw0 |= cpu_to_le32(BIT(28)); } - ptx_desc->txdw0 |= cpu_to_le32(dump_imem_sz & + txdesc->txdw0 |= cpu_to_le32(dump_imem_sz & 0x0000ffff); - memcpy(ppayload, ptr, dump_imem_sz); - r8712_write_mem(padapter, RTL8712_DMA_VOQ, + memcpy(payload, ptr, dump_imem_sz); + r8712_write_mem(adapter, RTL8712_DMA_VOQ, dump_imem_sz + TXDESC_SIZE, - (u8 *)ptx_desc); + (u8 *)txdesc); ptr += dump_imem_sz; imem_sz -= dump_imem_sz; } while (imem_sz > 0); i = 10; - tmp16 = r8712_read16(padapter, TCR); + tmp16 = r8712_read16(adapter, TCR); while (((tmp16 & _IMEM_CODE_DONE) == 0) && (i > 0)) { usleep_range(10, 1000); - tmp16 = r8712_read16(padapter, TCR); + tmp16 = r8712_read16(adapter, TCR); i--; } if (i == 0 || (tmp16 & _IMEM_CHK_RPT) == 0) @@ -208,94 +208,94 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter) /* 2.Download EMEM code size and Load EMEM Code Section */ emem_sz = fwhdr.img_SRAM_size; do { - memset(ptx_desc, 0, TXDESC_SIZE); + memset(txdesc, 0, TXDESC_SIZE); if (emem_sz > MAX_DUMP_FWSZ) { /* max=48k */ dump_emem_sz = MAX_DUMP_FWSZ; } else { dump_emem_sz = emem_sz; - ptx_desc->txdw0 |= cpu_to_le32(BIT(28)); + txdesc->txdw0 |= cpu_to_le32(BIT(28)); } - ptx_desc->txdw0 |= cpu_to_le32(dump_emem_sz & + txdesc->txdw0 |= cpu_to_le32(dump_emem_sz & 0x0000ffff); - memcpy(ppayload, ptr, dump_emem_sz); - r8712_write_mem(padapter, RTL8712_DMA_VOQ, + memcpy(payload, ptr, dump_emem_sz); + r8712_write_mem(adapter, RTL8712_DMA_VOQ, dump_emem_sz + TXDESC_SIZE, - (u8 *)ptx_desc); + (u8 *)txdesc); ptr += dump_emem_sz; emem_sz -= dump_emem_sz; } while (emem_sz > 0); i = 5; - tmp16 = r8712_read16(padapter, TCR); + tmp16 = r8712_read16(adapter, TCR); while (((tmp16 & _EMEM_CODE_DONE) == 0) && (i > 0)) { usleep_range(10, 1000); - tmp16 = r8712_read16(padapter, TCR); + tmp16 = r8712_read16(adapter, TCR); i--; } if (i == 0 || (tmp16 & _EMEM_CHK_RPT) == 0) goto exit_fail; /* 3.Enable CPU */ - tmp8 = r8712_read8(padapter, SYS_CLKR); - r8712_write8(padapter, SYS_CLKR, tmp8 | BIT(2)); - tmp8_a = r8712_read8(padapter, SYS_CLKR); + tmp8 = r8712_read8(adapter, SYS_CLKR); + r8712_write8(adapter, SYS_CLKR, tmp8 | BIT(2)); + tmp8_a = r8712_read8(adapter, SYS_CLKR); if (tmp8_a != (tmp8 | BIT(2))) goto exit_fail; - tmp8 = r8712_read8(padapter, SYS_FUNC_EN + 1); - r8712_write8(padapter, SYS_FUNC_EN + 1, tmp8 | BIT(2)); - tmp8_a = r8712_read8(padapter, SYS_FUNC_EN + 1); + tmp8 = r8712_read8(adapter, SYS_FUNC_EN + 1); + r8712_write8(adapter, SYS_FUNC_EN + 1, tmp8 | BIT(2)); + tmp8_a = r8712_read8(adapter, SYS_FUNC_EN + 1); if (tmp8_a != (tmp8 | BIT(2))) goto exit_fail; - r8712_read32(padapter, TCR); + r8712_read32(adapter, TCR); /* 4.polling IMEM Ready */ i = 100; - tmp16 = r8712_read16(padapter, TCR); + tmp16 = r8712_read16(adapter, TCR); while (((tmp16 & _IMEM_RDY) == 0) && (i > 0)) { msleep(20); - tmp16 = r8712_read16(padapter, TCR); + tmp16 = r8712_read16(adapter, TCR); i--; } if (i == 0) { - r8712_write16(padapter, 0x10250348, 0xc000); - r8712_write16(padapter, 0x10250348, 0xc001); - r8712_write16(padapter, 0x10250348, 0x2000); - r8712_write16(padapter, 0x10250348, 0x2001); - r8712_write16(padapter, 0x10250348, 0x2002); - r8712_write16(padapter, 0x10250348, 0x2003); + r8712_write16(adapter, 0x10250348, 0xc000); + r8712_write16(adapter, 0x10250348, 0xc001); + r8712_write16(adapter, 0x10250348, 0x2000); + r8712_write16(adapter, 0x10250348, 0x2001); + r8712_write16(adapter, 0x10250348, 0x2002); + r8712_write16(adapter, 0x10250348, 0x2003); goto exit_fail; } /* 5.Download DMEM code size and Load EMEM Code Section */ - memset(ptx_desc, 0, TXDESC_SIZE); - ptx_desc->txdw0 |= cpu_to_le32(fwhdr.fw_priv_sz & 0x0000ffff); - ptx_desc->txdw0 |= cpu_to_le32(BIT(28)); - memcpy(ppayload, &fwhdr.fwpriv, fwhdr.fw_priv_sz); - r8712_write_mem(padapter, RTL8712_DMA_VOQ, - fwhdr.fw_priv_sz + TXDESC_SIZE, (u8 *)ptx_desc); + memset(txdesc, 0, TXDESC_SIZE); + txdesc->txdw0 |= cpu_to_le32(fwhdr.fw_priv_sz & 0x0000ffff); + txdesc->txdw0 |= cpu_to_le32(BIT(28)); + memcpy(payload, &fwhdr.fwpriv, fwhdr.fw_priv_sz); + r8712_write_mem(adapter, RTL8712_DMA_VOQ, + fwhdr.fw_priv_sz + TXDESC_SIZE, (u8 *)txdesc); /* polling dmem code done */ i = 100; - tmp16 = r8712_read16(padapter, TCR); + tmp16 = r8712_read16(adapter, TCR); while (((tmp16 & _DMEM_CODE_DONE) == 0) && (i > 0)) { msleep(20); - tmp16 = r8712_read16(padapter, TCR); + tmp16 = r8712_read16(adapter, TCR); i--; } if (i == 0) goto exit_fail; - tmp8 = r8712_read8(padapter, 0x1025000A); + tmp8 = r8712_read8(adapter, 0x1025000A); if (tmp8 & BIT(4)) /* When boot from EEPROM, * & FW need more time to read EEPROM */ i = 60; else /* boot from EFUSE */ i = 30; - tmp16 = r8712_read16(padapter, TCR); + tmp16 = r8712_read16(adapter, TCR); while (((tmp16 & _FWRDY) == 0) && (i > 0)) { msleep(100); - tmp16 = r8712_read16(padapter, TCR); + tmp16 = r8712_read16(adapter, TCR); i--; } if (i == 0) @@ -306,7 +306,7 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter) ret = _SUCCESS; exit_fail: - kfree(ptmpchar); + kfree(tmpchar); return ret; } diff --git a/drivers/staging/rtl8712/ieee80211.c b/drivers/staging/rtl8712/ieee80211.c index 4cca7390c8ef..b4a099169c7c 100644 --- a/drivers/staging/rtl8712/ieee80211.c +++ b/drivers/staging/rtl8712/ieee80211.c @@ -156,13 +156,13 @@ static uint r8712_get_rateset_len(u8 *rateset) return i; } -int r8712_generate_ie(struct registry_priv *pregistrypriv) +int r8712_generate_ie(struct registry_priv *registrypriv) { int rate_len; uint sz = 0; - struct wlan_bssid_ex *pdev_network = &pregistrypriv->dev_network; - u8 *ie = pdev_network->IEs; - u16 beaconPeriod = (u16)pdev_network->Configuration.BeaconPeriod; + struct wlan_bssid_ex *dev_network = ®istrypriv->dev_network; + u8 *ie = dev_network->IEs; + u16 beaconPeriod = (u16)dev_network->Configuration.BeaconPeriod; /*timestamp will be inserted by hardware*/ sz += 8; @@ -174,65 +174,65 @@ int r8712_generate_ie(struct registry_priv *pregistrypriv) /*capability info*/ *(u16 *)ie = 0; *(__le16 *)ie |= cpu_to_le16(cap_IBSS); - if (pregistrypriv->preamble == PREAMBLE_SHORT) + if (registrypriv->preamble == PREAMBLE_SHORT) *(__le16 *)ie |= cpu_to_le16(cap_ShortPremble); - if (pdev_network->Privacy) + if (dev_network->Privacy) *(__le16 *)ie |= cpu_to_le16(cap_Privacy); sz += 2; ie += 2; /*SSID*/ - ie = r8712_set_ie(ie, _SSID_IE_, pdev_network->Ssid.SsidLength, - pdev_network->Ssid.Ssid, &sz); + ie = r8712_set_ie(ie, _SSID_IE_, dev_network->Ssid.SsidLength, + dev_network->Ssid.Ssid, &sz); /*supported rates*/ - set_supported_rate(pdev_network->rates, pregistrypriv->wireless_mode); - rate_len = r8712_get_rateset_len(pdev_network->rates); + set_supported_rate(dev_network->rates, registrypriv->wireless_mode); + rate_len = r8712_get_rateset_len(dev_network->rates); if (rate_len > 8) { ie = r8712_set_ie(ie, _SUPPORTEDRATES_IE_, 8, - pdev_network->rates, &sz); + dev_network->rates, &sz); ie = r8712_set_ie(ie, _EXT_SUPPORTEDRATES_IE_, (rate_len - 8), - (pdev_network->rates + 8), &sz); + (dev_network->rates + 8), &sz); } else { ie = r8712_set_ie(ie, _SUPPORTEDRATES_IE_, - rate_len, pdev_network->rates, &sz); + rate_len, dev_network->rates, &sz); } /*DS parameter set*/ ie = r8712_set_ie(ie, _DSSET_IE_, 1, - (u8 *)&pdev_network->Configuration.DSConfig, &sz); + (u8 *)&dev_network->Configuration.DSConfig, &sz); /*IBSS Parameter Set*/ ie = r8712_set_ie(ie, _IBSS_PARA_IE_, 2, - (u8 *)&pdev_network->Configuration.ATIMWindow, &sz); + (u8 *)&dev_network->Configuration.ATIMWindow, &sz); return sz; } -unsigned char *r8712_get_wpa_ie(unsigned char *pie, uint *wpa_ie_len, int limit) +unsigned char *r8712_get_wpa_ie(unsigned char *ie, uint *wpa_ie_len, int limit) { u32 len; u16 val16; unsigned char wpa_oui_type[] = {0x00, 0x50, 0xf2, 0x01}; - u8 *pbuf = pie; + u8 *buf = ie; while (1) { - pbuf = r8712_get_ie(pbuf, _WPA_IE_ID_, &len, limit); - if (pbuf) { + buf = r8712_get_ie(buf, _WPA_IE_ID_, &len, limit); + if (buf) { /*check if oui matches...*/ - if (memcmp((pbuf + 2), wpa_oui_type, + if (memcmp((buf + 2), wpa_oui_type, sizeof(wpa_oui_type))) goto check_next_ie; /*check version...*/ - memcpy((u8 *)&val16, (pbuf + 6), sizeof(val16)); + memcpy((u8 *)&val16, (buf + 6), sizeof(val16)); le16_to_cpus(&val16); if (val16 != 0x0001) goto check_next_ie; - *wpa_ie_len = *(pbuf + 1); - return pbuf; + *wpa_ie_len = *(buf + 1); + return buf; } *wpa_ie_len = 0; return NULL; check_next_ie: - limit = limit - (pbuf - pie) - 2 - len; + limit = limit - (buf - ie) - 2 - len; if (limit <= 0) break; - pbuf += (2 + len); + buf += (2 + len); } *wpa_ie_len = 0; return NULL; @@ -283,12 +283,12 @@ int r8712_parse_wpa_ie(u8 *wpa_ie, int wpa_ie_len, int *group_cipher, if (wpa_ie_len <= 0) { /* No WPA IE - fail silently */ - return _FAIL; + return -EINVAL; } if ((*wpa_ie != _WPA_IE_ID_) || (*(wpa_ie + 1) != (u8)(wpa_ie_len - 2)) || (memcmp(wpa_ie + 2, (void *)WPA_OUI_TYPE, WPA_SELECTOR_LEN))) - return _FAIL; + return -EINVAL; pos = wpa_ie; pos += 8; left = wpa_ie_len - 8; @@ -298,7 +298,7 @@ int r8712_parse_wpa_ie(u8 *wpa_ie, int wpa_ie_len, int *group_cipher, pos += WPA_SELECTOR_LEN; left -= WPA_SELECTOR_LEN; } else if (left > 0) { - return _FAIL; + return -EINVAL; } /*pairwise_cipher*/ if (left >= 2) { @@ -306,16 +306,16 @@ int r8712_parse_wpa_ie(u8 *wpa_ie, int wpa_ie_len, int *group_cipher, pos += 2; left -= 2; if (count == 0 || left < count * WPA_SELECTOR_LEN) - return _FAIL; + return -EINVAL; for (i = 0; i < count; i++) { *pairwise_cipher |= r8712_get_wpa_cipher_suite(pos); pos += WPA_SELECTOR_LEN; left -= WPA_SELECTOR_LEN; } } else if (left == 1) { - return _FAIL; + return -EINVAL; } - return _SUCCESS; + return 0; } int r8712_parse_wpa2_ie(u8 *rsn_ie, int rsn_ie_len, int *group_cipher, @@ -327,11 +327,11 @@ int r8712_parse_wpa2_ie(u8 *rsn_ie, int rsn_ie_len, int *group_cipher, if (rsn_ie_len <= 0) { /* No RSN IE - fail silently */ - return _FAIL; + return -EINVAL; } if ((*rsn_ie != _WPA2_IE_ID_) || (*(rsn_ie + 1) != (u8)(rsn_ie_len - 2))) - return _FAIL; + return -EINVAL; pos = rsn_ie; pos += 4; left = rsn_ie_len - 4; @@ -341,7 +341,7 @@ int r8712_parse_wpa2_ie(u8 *rsn_ie, int rsn_ie_len, int *group_cipher, pos += RSN_SELECTOR_LEN; left -= RSN_SELECTOR_LEN; } else if (left > 0) { - return _FAIL; + return -EINVAL; } /*pairwise_cipher*/ if (left >= 2) { @@ -349,16 +349,16 @@ int r8712_parse_wpa2_ie(u8 *rsn_ie, int rsn_ie_len, int *group_cipher, pos += 2; left -= 2; if (count == 0 || left < count * RSN_SELECTOR_LEN) - return _FAIL; + return -EINVAL; for (i = 0; i < count; i++) { *pairwise_cipher |= r8712_get_wpa2_cipher_suite(pos); pos += RSN_SELECTOR_LEN; left -= RSN_SELECTOR_LEN; } } else if (left == 1) { - return _FAIL; + return -EINVAL; } - return _SUCCESS; + return 0; } int r8712_get_sec_ie(u8 *in_ie, uint in_len, u8 *rsn_ie, u16 *rsn_len, diff --git a/drivers/staging/rtl8712/mlme_linux.c b/drivers/staging/rtl8712/mlme_linux.c index 4d473f008aa4..b9f5104f3bf7 100644 --- a/drivers/staging/rtl8712/mlme_linux.c +++ b/drivers/staging/rtl8712/mlme_linux.c @@ -60,22 +60,22 @@ static void wdg_timeout_handler (struct timer_list *t) struct _adapter *adapter = from_timer(adapter, t, mlmepriv.wdg_timer); - _r8712_wdg_timeout_handler(adapter); + r8712_wdg_wk_cmd(adapter); mod_timer(&adapter->mlmepriv.wdg_timer, jiffies + msecs_to_jiffies(2000)); } -void r8712_init_mlme_timer(struct _adapter *padapter) +void r8712_init_mlme_timer(struct _adapter *adapter) { - struct mlme_priv *pmlmepriv = &padapter->mlmepriv; + struct mlme_priv *mlmepriv = &adapter->mlmepriv; - timer_setup(&pmlmepriv->assoc_timer, join_timeout_handler, 0); - timer_setup(&pmlmepriv->sitesurveyctrl.sitesurvey_ctrl_timer, + timer_setup(&mlmepriv->assoc_timer, join_timeout_handler, 0); + timer_setup(&mlmepriv->sitesurveyctrl.sitesurvey_ctrl_timer, sitesurvey_ctrl_handler, 0); - timer_setup(&pmlmepriv->scan_to_timer, _scan_timeout_handler, 0); - timer_setup(&pmlmepriv->dhcp_timer, dhcp_timeout_handler, 0); - timer_setup(&pmlmepriv->wdg_timer, wdg_timeout_handler, 0); + timer_setup(&mlmepriv->scan_to_timer, _scan_timeout_handler, 0); + timer_setup(&mlmepriv->dhcp_timer, dhcp_timeout_handler, 0); + timer_setup(&mlmepriv->wdg_timer, wdg_timeout_handler, 0); } void r8712_os_indicate_connect(struct _adapter *adapter) @@ -119,16 +119,16 @@ void r8712_os_indicate_disconnect(struct _adapter *adapter) adapter->securitypriv.btkip_countermeasure = backupTKIPCountermeasure; } else { /*reset values in securitypriv*/ - struct security_priv *psec_priv = &adapter->securitypriv; - - psec_priv->AuthAlgrthm = 0; /*open system*/ - psec_priv->PrivacyAlgrthm = _NO_PRIVACY_; - psec_priv->PrivacyKeyIndex = 0; - psec_priv->XGrpPrivacy = _NO_PRIVACY_; - psec_priv->XGrpKeyid = 1; - psec_priv->ndisauthtype = Ndis802_11AuthModeOpen; - psec_priv->ndisencryptstatus = Ndis802_11WEPDisabled; - psec_priv->wps_phase = false; + struct security_priv *sec_priv = &adapter->securitypriv; + + sec_priv->AuthAlgrthm = 0; /*open system*/ + sec_priv->PrivacyAlgrthm = _NO_PRIVACY_; + sec_priv->PrivacyKeyIndex = 0; + sec_priv->XGrpPrivacy = _NO_PRIVACY_; + sec_priv->XGrpKeyid = 1; + sec_priv->ndisauthtype = Ndis802_11AuthModeOpen; + sec_priv->ndisencryptstatus = Ndis802_11WEPDisabled; + sec_priv->wps_phase = false; } } diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c index c962696c9822..b554cf8bd679 100644 --- a/drivers/staging/rtl8712/os_intfs.c +++ b/drivers/staging/rtl8712/os_intfs.c @@ -221,9 +221,9 @@ struct net_device *r8712_init_netdev(void) static u32 start_drv_threads(struct _adapter *padapter) { - padapter->cmdThread = kthread_run(r8712_cmd_thread, padapter, "%s", + padapter->cmd_thread = kthread_run(r8712_cmd_thread, padapter, "%s", padapter->pnetdev->name); - if (IS_ERR(padapter->cmdThread)) + if (IS_ERR(padapter->cmd_thread)) return _FAIL; return _SUCCESS; } @@ -235,7 +235,7 @@ void r8712_stop_drv_threads(struct _adapter *padapter) /*Below is to terminate r8712_cmd_thread & event_thread...*/ complete(&padapter->cmdpriv.cmd_queue_comp); - if (padapter->cmdThread) + if (padapter->cmd_thread) wait_for_completion_interruptible(completion); padapter->cmdpriv.cmd_seq = 1; } @@ -297,10 +297,10 @@ static u8 init_default_value(struct _adapter *padapter) u8 r8712_init_drv_sw(struct _adapter *padapter) { - if ((r8712_init_cmd_priv(&padapter->cmdpriv)) == _FAIL) + if (r8712_init_cmd_priv(&padapter->cmdpriv)) return _FAIL; padapter->cmdpriv.padapter = padapter; - if ((r8712_init_evt_priv(&padapter->evtpriv)) == _FAIL) + if (r8712_init_evt_priv(&padapter->evtpriv)) return _FAIL; if (r8712_init_mlme_priv(padapter) == _FAIL) return _FAIL; @@ -310,7 +310,8 @@ u8 r8712_init_drv_sw(struct _adapter *padapter) sizeof(struct security_priv)); timer_setup(&padapter->securitypriv.tkip_timer, r8712_use_tkipkey_handler, 0); - _r8712_init_sta_priv(&padapter->stapriv); + if (_r8712_init_sta_priv(&padapter->stapriv)) + return _FAIL; padapter->stapriv.padapter = padapter; r8712_init_bcmc_stainfo(padapter); r8712_init_pwrctrl_priv(padapter); diff --git a/drivers/staging/rtl8712/recv_linux.c b/drivers/staging/rtl8712/recv_linux.c index 4e20cbafa9fb..84c4c8580f9a 100644 --- a/drivers/staging/rtl8712/recv_linux.c +++ b/drivers/staging/rtl8712/recv_linux.c @@ -72,11 +72,11 @@ int r8712_os_recvbuf_resource_free(struct _adapter *padapter, return _SUCCESS; } -void r8712_handle_tkip_mic_err(struct _adapter *padapter, u8 bgroup) +void r8712_handle_tkip_mic_err(struct _adapter *adapter, u8 bgroup) { union iwreq_data wrqu; struct iw_michaelmicfailure ev; - struct mlme_priv *pmlmepriv = &padapter->mlmepriv; + struct mlme_priv *mlmepriv = &adapter->mlmepriv; memset(&ev, 0x00, sizeof(ev)); if (bgroup) @@ -84,54 +84,54 @@ void r8712_handle_tkip_mic_err(struct _adapter *padapter, u8 bgroup) else ev.flags |= IW_MICFAILURE_PAIRWISE; ev.src_addr.sa_family = ARPHRD_ETHER; - ether_addr_copy(ev.src_addr.sa_data, &pmlmepriv->assoc_bssid[0]); + ether_addr_copy(ev.src_addr.sa_data, &mlmepriv->assoc_bssid[0]); memset(&wrqu, 0x00, sizeof(wrqu)); wrqu.data.length = sizeof(ev); - wireless_send_event(padapter->pnetdev, IWEVMICHAELMICFAILURE, &wrqu, + wireless_send_event(adapter->pnetdev, IWEVMICHAELMICFAILURE, &wrqu, (char *)&ev); } -void r8712_recv_indicatepkt(struct _adapter *padapter, - union recv_frame *precv_frame) +void r8712_recv_indicatepkt(struct _adapter *adapter, + union recv_frame *recvframe) { - struct recv_priv *precvpriv; - struct __queue *pfree_recv_queue; + struct recv_priv *recvpriv; + struct __queue *free_recv_queue; _pkt *skb; - struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib; + struct rx_pkt_attrib *attrib = &recvframe->u.hdr.attrib; - precvpriv = &padapter->recvpriv; - pfree_recv_queue = &precvpriv->free_recv_queue; - skb = precv_frame->u.hdr.pkt; + recvpriv = &adapter->recvpriv; + free_recv_queue = &recvpriv->free_recv_queue; + skb = recvframe->u.hdr.pkt; if (!skb) goto _recv_indicatepkt_drop; - skb->data = precv_frame->u.hdr.rx_data; - skb->len = precv_frame->u.hdr.len; + skb->data = recvframe->u.hdr.rx_data; + skb->len = recvframe->u.hdr.len; skb_set_tail_pointer(skb, skb->len); - if ((pattrib->tcpchk_valid == 1) && (pattrib->tcp_chkrpt == 1)) + if ((attrib->tcpchk_valid == 1) && (attrib->tcp_chkrpt == 1)) skb->ip_summed = CHECKSUM_UNNECESSARY; else skb->ip_summed = CHECKSUM_NONE; - skb->dev = padapter->pnetdev; - skb->protocol = eth_type_trans(skb, padapter->pnetdev); + skb->dev = adapter->pnetdev; + skb->protocol = eth_type_trans(skb, adapter->pnetdev); netif_rx(skb); - precv_frame->u.hdr.pkt = NULL; /* pointers to NULL before + recvframe->u.hdr.pkt = NULL; /* pointers to NULL before * r8712_free_recvframe() */ - r8712_free_recvframe(precv_frame, pfree_recv_queue); + r8712_free_recvframe(recvframe, free_recv_queue); return; _recv_indicatepkt_drop: /*enqueue back to free_recv_queue*/ - if (precv_frame) - r8712_free_recvframe(precv_frame, pfree_recv_queue); - precvpriv->rx_drop++; + if (recvframe) + r8712_free_recvframe(recvframe, free_recv_queue); + recvpriv->rx_drop++; } static void _r8712_reordering_ctrl_timeout_handler (struct timer_list *t) { - struct recv_reorder_ctrl *preorder_ctrl = - from_timer(preorder_ctrl, t, reordering_ctrl_timer); + struct recv_reorder_ctrl *reorder_ctrl = + from_timer(reorder_ctrl, t, reordering_ctrl_timer); - r8712_reordering_ctrl_timeout_handler(preorder_ctrl); + r8712_reordering_ctrl_timeout_handler(reorder_ctrl); } void r8712_init_recv_timer(struct recv_reorder_ctrl *preorder_ctrl) diff --git a/drivers/staging/rtl8712/rtl8712_efuse.c b/drivers/staging/rtl8712/rtl8712_efuse.c index 00babd011a62..4f3b54a7c3be 100644 --- a/drivers/staging/rtl8712/rtl8712_efuse.c +++ b/drivers/staging/rtl8712/rtl8712_efuse.c @@ -23,7 +23,7 @@ /* reserve 3 bytes for HW stop read */ static int efuse_available_max_size = EFUSE_MAX_SIZE - 3 /*0x1FD*/; -static void efuse_reg_ctrl(struct _adapter *padapter, u8 bPowerOn) +static void efuse_reg_ctrl(struct _adapter *adapter, u8 bPowerOn) { u8 tmpu8 = 0; @@ -31,53 +31,53 @@ static void efuse_reg_ctrl(struct _adapter *padapter, u8 bPowerOn) /* -----------------e-fuse pwr & clk reg ctrl --------------- * Enable LDOE25 Macro Block */ - tmpu8 = r8712_read8(padapter, EFUSE_TEST + 3); + tmpu8 = r8712_read8(adapter, EFUSE_TEST + 3); tmpu8 |= 0x80; - r8712_write8(padapter, EFUSE_TEST + 3, tmpu8); + r8712_write8(adapter, EFUSE_TEST + 3, tmpu8); msleep(20); /* for some platform , need some delay time */ /* Change Efuse Clock for write action to 40MHZ */ - r8712_write8(padapter, EFUSE_CLK_CTRL, 0x03); + r8712_write8(adapter, EFUSE_CLK_CTRL, 0x03); msleep(20); /* for some platform , need some delay time */ } else { /* -----------------e-fuse pwr & clk reg ctrl ----------------- * Disable LDOE25 Macro Block */ - tmpu8 = r8712_read8(padapter, EFUSE_TEST + 3); + tmpu8 = r8712_read8(adapter, EFUSE_TEST + 3); tmpu8 &= 0x7F; - r8712_write8(padapter, EFUSE_TEST + 3, tmpu8); + r8712_write8(adapter, EFUSE_TEST + 3, tmpu8); /* Change Efuse Clock for write action to 500K */ - r8712_write8(padapter, EFUSE_CLK_CTRL, 0x02); + r8712_write8(adapter, EFUSE_CLK_CTRL, 0x02); } } /* * Before write E-Fuse, this function must be called. */ -u8 r8712_efuse_reg_init(struct _adapter *padapter) +u8 r8712_efuse_reg_init(struct _adapter *adapter) { return true; } -void r8712_efuse_reg_uninit(struct _adapter *padapter) +void r8712_efuse_reg_uninit(struct _adapter *adapter) { - efuse_reg_ctrl(padapter, false); + efuse_reg_ctrl(adapter, false); } -static u8 efuse_one_byte_read(struct _adapter *padapter, u16 addr, u8 *data) +static u8 efuse_one_byte_read(struct _adapter *adapter, u16 addr, u8 *data) { u8 tmpidx = 0, bResult; /* -----------------e-fuse reg ctrl --------------------------------- */ - r8712_write8(padapter, EFUSE_CTRL + 1, (u8)(addr & 0xFF)); /* address */ - r8712_write8(padapter, EFUSE_CTRL + 2, ((u8)((addr >> 8) & 0x03)) | - (r8712_read8(padapter, EFUSE_CTRL + 2) & 0xFC)); - r8712_write8(padapter, EFUSE_CTRL + 3, 0x72); /* read cmd */ + r8712_write8(adapter, EFUSE_CTRL + 1, (u8)(addr & 0xFF)); /* address */ + r8712_write8(adapter, EFUSE_CTRL + 2, ((u8)((addr >> 8) & 0x03)) | + (r8712_read8(adapter, EFUSE_CTRL + 2) & 0xFC)); + r8712_write8(adapter, EFUSE_CTRL + 3, 0x72); /* read cmd */ /* wait for complete */ - while (!(0x80 & r8712_read8(padapter, EFUSE_CTRL + 3)) && + while (!(0x80 & r8712_read8(adapter, EFUSE_CTRL + 3)) && (tmpidx < 100)) tmpidx++; if (tmpidx < 100) { - *data = r8712_read8(padapter, EFUSE_CTRL); + *data = r8712_read8(adapter, EFUSE_CTRL); bResult = true; } else { *data = 0xff; @@ -86,18 +86,18 @@ static u8 efuse_one_byte_read(struct _adapter *padapter, u16 addr, u8 *data) return bResult; } -static u8 efuse_one_byte_write(struct _adapter *padapter, u16 addr, u8 data) +static u8 efuse_one_byte_write(struct _adapter *adapter, u16 addr, u8 data) { u8 tmpidx = 0, bResult; /* -----------------e-fuse reg ctrl -------------------------------- */ - r8712_write8(padapter, EFUSE_CTRL + 1, (u8)(addr & 0xFF)); /* address */ - r8712_write8(padapter, EFUSE_CTRL + 2, ((u8)((addr >> 8) & 0x03)) | - (r8712_read8(padapter, EFUSE_CTRL + 2) & 0xFC)); - r8712_write8(padapter, EFUSE_CTRL, data); /* data */ - r8712_write8(padapter, EFUSE_CTRL + 3, 0xF2); /* write cmd */ + r8712_write8(adapter, EFUSE_CTRL + 1, (u8)(addr & 0xFF)); /* address */ + r8712_write8(adapter, EFUSE_CTRL + 2, ((u8)((addr >> 8) & 0x03)) | + (r8712_read8(adapter, EFUSE_CTRL + 2) & 0xFC)); + r8712_write8(adapter, EFUSE_CTRL, data); /* data */ + r8712_write8(adapter, EFUSE_CTRL + 3, 0xF2); /* write cmd */ /* wait for complete */ - while ((0x80 & r8712_read8(padapter, EFUSE_CTRL + 3)) && + while ((0x80 & r8712_read8(adapter, EFUSE_CTRL + 3)) && (tmpidx < 100)) tmpidx++; if (tmpidx < 100) @@ -107,32 +107,32 @@ static u8 efuse_one_byte_write(struct _adapter *padapter, u16 addr, u8 data) return bResult; } -static u8 efuse_one_byte_rw(struct _adapter *padapter, u8 bRead, u16 addr, +static u8 efuse_one_byte_rw(struct _adapter *adapter, u8 bRead, u16 addr, u8 *data) { u8 tmpidx = 0, tmpv8 = 0, bResult; /* -----------------e-fuse reg ctrl --------------------------------- */ - r8712_write8(padapter, EFUSE_CTRL + 1, (u8)(addr & 0xFF)); /* address */ + r8712_write8(adapter, EFUSE_CTRL + 1, (u8)(addr & 0xFF)); /* address */ tmpv8 = ((u8)((addr >> 8) & 0x03)) | - (r8712_read8(padapter, EFUSE_CTRL + 2) & 0xFC); - r8712_write8(padapter, EFUSE_CTRL + 2, tmpv8); + (r8712_read8(adapter, EFUSE_CTRL + 2) & 0xFC); + r8712_write8(adapter, EFUSE_CTRL + 2, tmpv8); if (bRead) { - r8712_write8(padapter, EFUSE_CTRL + 3, 0x72); /* read cmd */ - while (!(0x80 & r8712_read8(padapter, EFUSE_CTRL + 3)) && + r8712_write8(adapter, EFUSE_CTRL + 3, 0x72); /* read cmd */ + while (!(0x80 & r8712_read8(adapter, EFUSE_CTRL + 3)) && (tmpidx < 100)) tmpidx++; if (tmpidx < 100) { - *data = r8712_read8(padapter, EFUSE_CTRL); + *data = r8712_read8(adapter, EFUSE_CTRL); bResult = true; } else { *data = 0; bResult = false; } } else { - r8712_write8(padapter, EFUSE_CTRL, *data); /* data */ - r8712_write8(padapter, EFUSE_CTRL + 3, 0xF2); /* write cmd */ - while ((0x80 & r8712_read8(padapter, EFUSE_CTRL + 3)) && + r8712_write8(adapter, EFUSE_CTRL, *data); /* data */ + r8712_write8(adapter, EFUSE_CTRL + 3, 0xF2); /* write cmd */ + while ((0x80 & r8712_read8(adapter, EFUSE_CTRL + 3)) && (tmpidx < 100)) tmpidx++; if (tmpidx < 100) @@ -143,12 +143,12 @@ static u8 efuse_one_byte_rw(struct _adapter *padapter, u8 bRead, u16 addr, return bResult; } -static u8 efuse_is_empty(struct _adapter *padapter, u8 *empty) +static u8 efuse_is_empty(struct _adapter *adapter, u8 *empty) { u8 value, ret = true; /* read one byte to check if E-Fuse is empty */ - if (efuse_one_byte_rw(padapter, true, 0, &value)) { + if (efuse_one_byte_rw(adapter, true, 0, &value)) { if (value == 0xFF) *empty = true; else @@ -159,7 +159,7 @@ static u8 efuse_is_empty(struct _adapter *padapter, u8 *empty) return ret; } -void r8712_efuse_change_max_size(struct _adapter *padapter) +void r8712_efuse_change_max_size(struct _adapter *adapter) { u16 pre_pg_data_saddr = 0x1FB; u16 i; @@ -167,7 +167,7 @@ void r8712_efuse_change_max_size(struct _adapter *padapter) u8 pre_pg_data[5]; for (i = 0; i < pre_pg_data_size; i++) - efuse_one_byte_read(padapter, pre_pg_data_saddr + i, + efuse_one_byte_read(adapter, pre_pg_data_saddr + i, &pre_pg_data[i]); if ((pre_pg_data[0] == 0x03) && (pre_pg_data[1] == 0x00) && (pre_pg_data[2] == 0x00) && (pre_pg_data[3] == 0x00) && @@ -175,7 +175,7 @@ void r8712_efuse_change_max_size(struct _adapter *padapter) efuse_available_max_size -= pre_pg_data_size; } -int r8712_efuse_get_max_size(struct _adapter *padapter) +int r8712_efuse_get_max_size(struct _adapter *adapter) { return efuse_available_max_size; } @@ -206,14 +206,14 @@ static void pgpacket_copy_data(const u8 word_en, const u8 *sourdata, } } -u16 r8712_efuse_get_current_size(struct _adapter *padapter) +u16 r8712_efuse_get_current_size(struct _adapter *adapter) { int bContinual = true; u16 efuse_addr = 0; u8 hworden = 0; u8 efuse_data, word_cnts = 0; - while (bContinual && efuse_one_byte_read(padapter, efuse_addr, + while (bContinual && efuse_one_byte_read(adapter, efuse_addr, &efuse_data) && (efuse_addr < efuse_available_max_size)) { if (efuse_data != 0xFF) { hworden = efuse_data & 0x0F; @@ -227,7 +227,7 @@ u16 r8712_efuse_get_current_size(struct _adapter *padapter) return efuse_addr; } -u8 r8712_efuse_pg_packet_read(struct _adapter *padapter, u8 offset, u8 *data) +u8 r8712_efuse_pg_packet_read(struct _adapter *adapter, u8 offset, u8 *data) { u8 hoffset = 0, hworden = 0, word_cnts = 0; u16 efuse_addr = 0; @@ -242,7 +242,7 @@ u8 r8712_efuse_pg_packet_read(struct _adapter *padapter, u8 offset, u8 *data) return false; memset(data, 0xFF, sizeof(u8) * PGPKT_DATA_SIZE); while (efuse_addr < efuse_available_max_size) { - if (efuse_one_byte_read(padapter, efuse_addr, &efuse_data)) { + if (efuse_one_byte_read(adapter, efuse_addr, &efuse_data)) { if (efuse_data == 0xFF) break; hoffset = (efuse_data >> 4) & 0x0F; @@ -252,7 +252,7 @@ u8 r8712_efuse_pg_packet_read(struct _adapter *padapter, u8 offset, u8 *data) memset(tmpdata, 0xFF, PGPKT_DATA_SIZE); for (tmpidx = 0; tmpidx < word_cnts * 2; tmpidx++) { - if (efuse_one_byte_read(padapter, + if (efuse_one_byte_read(adapter, efuse_addr + 1 + tmpidx, &efuse_data)) { tmpdata[tmpidx] = efuse_data; @@ -271,7 +271,7 @@ u8 r8712_efuse_pg_packet_read(struct _adapter *padapter, u8 offset, u8 *data) return ret; } -static u8 fix_header(struct _adapter *padapter, u8 header, u16 header_addr) +static u8 fix_header(struct _adapter *adapter, u8 header, u16 header_addr) { struct PGPKT_STRUCT pkt; u8 offset, word_en, value; @@ -287,7 +287,7 @@ static u8 fix_header(struct _adapter *padapter, u8 header, u16 header_addr) /* retrieve original data */ addr = 0; while (addr < header_addr) { - if (!efuse_one_byte_read(padapter, addr++, &value)) { + if (!efuse_one_byte_read(adapter, addr++, &value)) { ret = false; break; } @@ -301,13 +301,13 @@ static u8 fix_header(struct _adapter *padapter, u8 header, u16 header_addr) if (BIT(i) & word_en) { if (BIT(i) & pkt.word_en) { if (efuse_one_byte_read( - padapter, addr, + adapter, addr, &value)) pkt.data[i * 2] = value; else return false; if (efuse_one_byte_read( - padapter, + adapter, addr + 1, &value)) pkt.data[i * 2 + 1] = @@ -325,24 +325,24 @@ static u8 fix_header(struct _adapter *padapter, u8 header, u16 header_addr) /* fill original data */ for (i = 0; i < PGPKG_MAX_WORDS; i++) { if (BIT(i) & pkt.word_en) { - efuse_one_byte_write(padapter, addr, pkt.data[i * 2]); - efuse_one_byte_write(padapter, addr + 1, + efuse_one_byte_write(adapter, addr, pkt.data[i * 2]); + efuse_one_byte_write(adapter, addr + 1, pkt.data[i * 2 + 1]); /* additional check */ - if (!efuse_one_byte_read(padapter, addr, &value)) { + if (!efuse_one_byte_read(adapter, addr, &value)) { ret = false; } else if (pkt.data[i * 2] != value) { ret = false; if (value == 0xFF) /* write again */ - efuse_one_byte_write(padapter, addr, + efuse_one_byte_write(adapter, addr, pkt.data[i * 2]); } - if (!efuse_one_byte_read(padapter, addr + 1, &value)) { + if (!efuse_one_byte_read(adapter, addr + 1, &value)) { ret = false; } else if (pkt.data[i * 2 + 1] != value) { ret = false; if (value == 0xFF) /* write again */ - efuse_one_byte_write(padapter, addr + 1, + efuse_one_byte_write(adapter, addr + 1, pkt.data[i * 2 + 1]); } @@ -352,7 +352,7 @@ static u8 fix_header(struct _adapter *padapter, u8 header, u16 header_addr) return ret; } -u8 r8712_efuse_pg_packet_write(struct _adapter *padapter, const u8 offset, +u8 r8712_efuse_pg_packet_write(struct _adapter *adapter, const u8 offset, const u8 word_en, const u8 *data) { u8 pg_header = 0; @@ -363,7 +363,7 @@ u8 r8712_efuse_pg_packet_write(struct _adapter *padapter, const u8 offset, u8 bResult = true; /* check if E-Fuse Clock Enable and E-Fuse Clock is 40M */ - efuse_data = r8712_read8(padapter, EFUSE_CLK_CTRL); + efuse_data = r8712_read8(adapter, EFUSE_CLK_CTRL); if (efuse_data != 0x03) return false; pg_header = MAKE_EFUSE_HEADER(offset, word_en); @@ -371,15 +371,15 @@ u8 r8712_efuse_pg_packet_write(struct _adapter *padapter, const u8 offset, repeat_times = 0; efuse_addr = 0; while (efuse_addr < efuse_available_max_size) { - curr_size = r8712_efuse_get_current_size(padapter); + curr_size = r8712_efuse_get_current_size(adapter); if ((curr_size + 1 + target_word_cnts * 2) > efuse_available_max_size) return false; /*target_word_cnts + pg header(1 byte)*/ efuse_addr = curr_size; /* current size is also the last addr*/ - efuse_one_byte_write(padapter, efuse_addr, pg_header); /*hdr*/ + efuse_one_byte_write(adapter, efuse_addr, pg_header); /*hdr*/ sub_repeat = 0; /* check if what we read is what we write */ - while (!efuse_one_byte_read(padapter, efuse_addr, + while (!efuse_one_byte_read(adapter, efuse_addr, &efuse_data)) { if (++sub_repeat > _REPEAT_THRESHOLD_) { bResult = false; /* continue to blind write */ @@ -394,10 +394,10 @@ u8 r8712_efuse_pg_packet_write(struct _adapter *padapter, const u8 offset, /* go to next address */ efuse_addr++; for (i = 0; i < target_word_cnts * 2; i++) { - efuse_one_byte_write(padapter, + efuse_one_byte_write(adapter, efuse_addr + i, *(data + i)); - if (!efuse_one_byte_read(padapter, + if (!efuse_one_byte_read(adapter, efuse_addr + i, &efuse_data)) bResult = false; @@ -411,7 +411,7 @@ u8 r8712_efuse_pg_packet_write(struct _adapter *padapter, const u8 offset, if (efuse_data == 0xFF) return bResult; /* nothing damaged. */ /* call rescue procedure */ - if (!fix_header(padapter, efuse_data, efuse_addr)) + if (!fix_header(adapter, efuse_data, efuse_addr)) return false; /* rescue fail */ if (++repeat_times > _REPEAT_THRESHOLD_) /* fail */ @@ -421,7 +421,7 @@ u8 r8712_efuse_pg_packet_write(struct _adapter *padapter, const u8 offset, return bResult; } -u8 r8712_efuse_access(struct _adapter *padapter, u8 bRead, u16 start_addr, +u8 r8712_efuse_access(struct _adapter *adapter, u8 bRead, u16 start_addr, u16 cnts, u8 *data) { int i; @@ -432,7 +432,7 @@ u8 r8712_efuse_access(struct _adapter *padapter, u8 bRead, u16 start_addr, if (!bRead && ((start_addr + cnts) > efuse_available_max_size)) return false; - if (!bRead && !r8712_efuse_reg_init(padapter)) + if (!bRead && !r8712_efuse_reg_init(adapter)) return false; /* -----------------e-fuse one byte read / write ---------------------*/ for (i = 0; i < cnts; i++) { @@ -440,17 +440,17 @@ u8 r8712_efuse_access(struct _adapter *padapter, u8 bRead, u16 start_addr, res = false; break; } - res = efuse_one_byte_rw(padapter, bRead, start_addr + i, + res = efuse_one_byte_rw(adapter, bRead, start_addr + i, data + i); if (!bRead && !res) break; } if (!bRead) - r8712_efuse_reg_uninit(padapter); + r8712_efuse_reg_uninit(adapter); return res; } -u8 r8712_efuse_map_read(struct _adapter *padapter, u16 addr, u16 cnts, u8 *data) +u8 r8712_efuse_map_read(struct _adapter *adapter, u16 addr, u16 cnts, u8 *data) { u8 offset, ret = true; u8 pktdata[PGPKT_DATA_SIZE]; @@ -458,13 +458,13 @@ u8 r8712_efuse_map_read(struct _adapter *padapter, u16 addr, u16 cnts, u8 *data) if ((addr + cnts) > EFUSE_MAP_MAX_SIZE) return false; - if (efuse_is_empty(padapter, &offset) && offset) { + if (efuse_is_empty(adapter, &offset) && offset) { for (i = 0; i < cnts; i++) data[i] = 0xFF; return ret; } offset = (addr >> 3) & 0xF; - ret = r8712_efuse_pg_packet_read(padapter, offset, pktdata); + ret = r8712_efuse_pg_packet_read(adapter, offset, pktdata); i = addr & 0x7; /* pktdata index */ idx = 0; /* data index */ @@ -475,14 +475,14 @@ u8 r8712_efuse_map_read(struct _adapter *padapter, u16 addr, u16 cnts, u8 *data) return ret; } offset++; - if (!r8712_efuse_pg_packet_read(padapter, offset, pktdata)) + if (!r8712_efuse_pg_packet_read(adapter, offset, pktdata)) ret = false; i = 0; } while (1); return ret; } -u8 r8712_efuse_map_write(struct _adapter *padapter, u16 addr, u16 cnts, +u8 r8712_efuse_map_write(struct _adapter *adapter, u16 addr, u16 cnts, u8 *data) { u8 offset, word_en, empty; @@ -492,10 +492,10 @@ u8 r8712_efuse_map_write(struct _adapter *padapter, u16 addr, u16 cnts, if ((addr + cnts) > EFUSE_MAP_MAX_SIZE) return false; /* check if E-Fuse Clock Enable and E-Fuse Clock is 40M */ - empty = r8712_read8(padapter, EFUSE_CLK_CTRL); + empty = r8712_read8(adapter, EFUSE_CLK_CTRL); if (empty != 0x03) return false; - if (efuse_is_empty(padapter, &empty)) { + if (efuse_is_empty(adapter, &empty)) { if (empty) memset(pktdata, 0xFF, PGPKT_DATA_SIZE); } else { @@ -503,7 +503,7 @@ u8 r8712_efuse_map_write(struct _adapter *padapter, u16 addr, u16 cnts, } offset = (addr >> 3) & 0xF; if (!empty) - if (!r8712_efuse_pg_packet_read(padapter, offset, pktdata)) + if (!r8712_efuse_pg_packet_read(adapter, offset, pktdata)) return false; word_en = 0xF; memset(newdata, 0xFF, PGPKT_DATA_SIZE); @@ -546,14 +546,14 @@ u8 r8712_efuse_map_write(struct _adapter *padapter, u16 addr, u16 cnts, } if (word_en != 0xF) - if (!r8712_efuse_pg_packet_write(padapter, offset, + if (!r8712_efuse_pg_packet_write(adapter, offset, word_en, newdata)) return false; if (idx == cnts) break; offset++; if (!empty) - if (!r8712_efuse_pg_packet_read(padapter, offset, + if (!r8712_efuse_pg_packet_read(adapter, offset, pktdata)) return false; i = 0; diff --git a/drivers/staging/rtl8712/rtl8712_xmit.c b/drivers/staging/rtl8712/rtl8712_xmit.c index 7574a4b569a4..307b0e292976 100644 --- a/drivers/staging/rtl8712/rtl8712_xmit.c +++ b/drivers/staging/rtl8712/rtl8712_xmit.c @@ -419,7 +419,7 @@ static void update_txdesc(struct xmit_frame *pxmitframe, uint *pmem, int sz) struct cmd_priv *pcmdpriv = &padapter->cmdpriv; #endif u8 blnSetTxDescOffset; - sint bmcst = IS_MCAST(pattrib->ra); + bool bmcst = is_multicast_ether_addr(pattrib->ra); struct ht_priv *phtpriv = &pmlmepriv->htpriv; struct tx_desc txdesc_mp; diff --git a/drivers/staging/rtl8712/rtl871x_cmd.c b/drivers/staging/rtl8712/rtl871x_cmd.c index 05a78ac24987..26b618008fcf 100644 --- a/drivers/staging/rtl8712/rtl871x_cmd.c +++ b/drivers/staging/rtl8712/rtl871x_cmd.c @@ -43,7 +43,7 @@ * No irqsave is necessary. */ -static sint _init_cmd_priv(struct cmd_priv *pcmdpriv) +int r8712_init_cmd_priv(struct cmd_priv *pcmdpriv) { init_completion(&pcmdpriv->cmd_queue_comp); init_completion(&pcmdpriv->terminate_cmdthread_comp); @@ -55,7 +55,7 @@ static sint _init_cmd_priv(struct cmd_priv *pcmdpriv) pcmdpriv->cmd_allocated_buf = kmalloc(MAX_CMDSZ + CMDBUFF_ALIGN_SZ, GFP_ATOMIC); if (!pcmdpriv->cmd_allocated_buf) - return _FAIL; + return -ENOMEM; pcmdpriv->cmd_buf = pcmdpriv->cmd_allocated_buf + CMDBUFF_ALIGN_SZ - ((addr_t)(pcmdpriv->cmd_allocated_buf) & (CMDBUFF_ALIGN_SZ - 1)); @@ -63,36 +63,36 @@ static sint _init_cmd_priv(struct cmd_priv *pcmdpriv) if (!pcmdpriv->rsp_allocated_buf) { kfree(pcmdpriv->cmd_allocated_buf); pcmdpriv->cmd_allocated_buf = NULL; - return _FAIL; + return -ENOMEM; } pcmdpriv->rsp_buf = pcmdpriv->rsp_allocated_buf + 4 - ((addr_t)(pcmdpriv->rsp_allocated_buf) & 3); pcmdpriv->cmd_issued_cnt = 0; pcmdpriv->cmd_done_cnt = 0; pcmdpriv->rsp_cnt = 0; - return _SUCCESS; + return 0; } -static sint _init_evt_priv(struct evt_priv *pevtpriv) +int r8712_init_evt_priv(struct evt_priv *pevtpriv) { /* allocate DMA-able/Non-Page memory for cmd_buf and rsp_buf */ pevtpriv->event_seq = 0; pevtpriv->evt_allocated_buf = kmalloc(MAX_EVTSZ + 4, GFP_ATOMIC); if (!pevtpriv->evt_allocated_buf) - return _FAIL; + return -ENOMEM; pevtpriv->evt_buf = pevtpriv->evt_allocated_buf + 4 - ((addr_t)(pevtpriv->evt_allocated_buf) & 3); pevtpriv->evt_done_cnt = 0; - return _SUCCESS; + return 0; } -static void _free_evt_priv(struct evt_priv *pevtpriv) +void r8712_free_evt_priv(struct evt_priv *pevtpriv) { kfree(pevtpriv->evt_allocated_buf); } -static void _free_cmd_priv(struct cmd_priv *pcmdpriv) +void r8712_free_cmd_priv(struct cmd_priv *pcmdpriv) { if (pcmdpriv) { kfree(pcmdpriv->cmd_allocated_buf); @@ -103,26 +103,30 @@ static void _free_cmd_priv(struct cmd_priv *pcmdpriv) /* * Calling Context: * - * _enqueue_cmd can only be called between kernel thread, + * r8712_enqueue_cmd can only be called between kernel thread, * since only spin_lock is used. * * ISR/Call-Back functions can't call this sub-function. * */ -static sint _enqueue_cmd(struct __queue *queue, struct cmd_obj *obj) +void r8712_enqueue_cmd(struct cmd_priv *pcmdpriv, struct cmd_obj *obj) { + struct __queue *queue; unsigned long irqL; + if (pcmdpriv->padapter->eeprompriv.bautoload_fail_flag) + return; if (!obj) - return _SUCCESS; + return; + queue = &pcmdpriv->cmd_queue; spin_lock_irqsave(&queue->lock, irqL); list_add_tail(&obj->list, &queue->queue); spin_unlock_irqrestore(&queue->lock, irqL); - return _SUCCESS; + complete(&pcmdpriv->cmd_queue_comp); } -static struct cmd_obj *_dequeue_cmd(struct __queue *queue) +struct cmd_obj *r8712_dequeue_cmd(struct __queue *queue) { unsigned long irqL; struct cmd_obj *obj; @@ -136,57 +140,20 @@ static struct cmd_obj *_dequeue_cmd(struct __queue *queue) return obj; } -u32 r8712_init_cmd_priv(struct cmd_priv *pcmdpriv) -{ - return _init_cmd_priv(pcmdpriv); -} - -u32 r8712_init_evt_priv(struct evt_priv *pevtpriv) -{ - return _init_evt_priv(pevtpriv); -} - -void r8712_free_evt_priv(struct evt_priv *pevtpriv) -{ - _free_evt_priv(pevtpriv); -} - -void r8712_free_cmd_priv(struct cmd_priv *pcmdpriv) -{ - _free_cmd_priv(pcmdpriv); -} - -u32 r8712_enqueue_cmd(struct cmd_priv *pcmdpriv, struct cmd_obj *obj) -{ - int res; - - if (pcmdpriv->padapter->eeprompriv.bautoload_fail_flag) - return _FAIL; - res = _enqueue_cmd(&pcmdpriv->cmd_queue, obj); - complete(&pcmdpriv->cmd_queue_comp); - return res; -} - -u32 r8712_enqueue_cmd_ex(struct cmd_priv *pcmdpriv, struct cmd_obj *obj) +void r8712_enqueue_cmd_ex(struct cmd_priv *pcmdpriv, struct cmd_obj *obj) { unsigned long irqL; struct __queue *queue; if (!obj) - return _SUCCESS; + return; if (pcmdpriv->padapter->eeprompriv.bautoload_fail_flag) - return _FAIL; + return; queue = &pcmdpriv->cmd_queue; spin_lock_irqsave(&queue->lock, irqL); list_add_tail(&obj->list, &queue->queue); spin_unlock_irqrestore(&queue->lock, irqL); complete(&pcmdpriv->cmd_queue_comp); - return _SUCCESS; -} - -struct cmd_obj *r8712_dequeue_cmd(struct __queue *queue) -{ - return _dequeue_cmd(queue); } void r8712_free_cmd_obj(struct cmd_obj *pcmd) @@ -242,7 +209,7 @@ u8 r8712_sitesurvey_cmd(struct _adapter *padapter, return _SUCCESS; } -u8 r8712_setdatarate_cmd(struct _adapter *padapter, u8 *rateset) +int r8712_setdatarate_cmd(struct _adapter *padapter, u8 *rateset) { struct cmd_obj *ph2c; struct setdatarate_parm *pbsetdataratepara; @@ -250,21 +217,21 @@ u8 r8712_setdatarate_cmd(struct _adapter *padapter, u8 *rateset) ph2c = kmalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) - return _FAIL; + return -ENOMEM; pbsetdataratepara = kmalloc(sizeof(*pbsetdataratepara), GFP_ATOMIC); if (!pbsetdataratepara) { kfree(ph2c); - return _FAIL; + return -ENOMEM; } init_h2fwcmd_w_parm_no_rsp(ph2c, pbsetdataratepara, GEN_CMD_CODE(_SetDataRate)); pbsetdataratepara->mac_id = 5; memcpy(pbsetdataratepara->datarates, rateset, NumRates); r8712_enqueue_cmd(pcmdpriv, ph2c); - return _SUCCESS; + return 0; } -u8 r8712_set_chplan_cmd(struct _adapter *padapter, int chplan) +void r8712_set_chplan_cmd(struct _adapter *padapter, int chplan) { struct cmd_obj *ph2c; struct SetChannelPlan_param *psetchplanpara; @@ -272,81 +239,19 @@ u8 r8712_set_chplan_cmd(struct _adapter *padapter, int chplan) ph2c = kmalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) - return _FAIL; + return; psetchplanpara = kmalloc(sizeof(*psetchplanpara), GFP_ATOMIC); if (!psetchplanpara) { kfree(ph2c); - return _FAIL; + return; } init_h2fwcmd_w_parm_no_rsp(ph2c, psetchplanpara, GEN_CMD_CODE(_SetChannelPlan)); psetchplanpara->ChannelPlan = chplan; r8712_enqueue_cmd(pcmdpriv, ph2c); - return _SUCCESS; -} - -u8 r8712_setbasicrate_cmd(struct _adapter *padapter, u8 *rateset) -{ - struct cmd_obj *ph2c; - struct setbasicrate_parm *pssetbasicratepara; - struct cmd_priv *pcmdpriv = &padapter->cmdpriv; - - ph2c = kmalloc(sizeof(*ph2c), GFP_ATOMIC); - if (!ph2c) - return _FAIL; - pssetbasicratepara = kmalloc(sizeof(*pssetbasicratepara), GFP_ATOMIC); - if (!pssetbasicratepara) { - kfree(ph2c); - return _FAIL; - } - init_h2fwcmd_w_parm_no_rsp(ph2c, pssetbasicratepara, - _SetBasicRate_CMD_); - memcpy(pssetbasicratepara->basicrates, rateset, NumRates); - r8712_enqueue_cmd(pcmdpriv, ph2c); - return _SUCCESS; -} - -u8 r8712_setfwdig_cmd(struct _adapter *padapter, u8 type) -{ - struct cmd_obj *ph2c; - struct writePTM_parm *pwriteptmparm; - struct cmd_priv *pcmdpriv = &padapter->cmdpriv; - - ph2c = kmalloc(sizeof(*ph2c), GFP_ATOMIC); - if (!ph2c) - return _FAIL; - pwriteptmparm = kmalloc(sizeof(*pwriteptmparm), GFP_ATOMIC); - if (!pwriteptmparm) { - kfree(ph2c); - return _FAIL; - } - init_h2fwcmd_w_parm_no_rsp(ph2c, pwriteptmparm, GEN_CMD_CODE(_SetDIG)); - pwriteptmparm->type = type; - r8712_enqueue_cmd(pcmdpriv, ph2c); - return _SUCCESS; -} - -u8 r8712_setfwra_cmd(struct _adapter *padapter, u8 type) -{ - struct cmd_obj *ph2c; - struct writePTM_parm *pwriteptmparm; - struct cmd_priv *pcmdpriv = &padapter->cmdpriv; - - ph2c = kmalloc(sizeof(*ph2c), GFP_ATOMIC); - if (!ph2c) - return _FAIL; - pwriteptmparm = kmalloc(sizeof(*pwriteptmparm), GFP_ATOMIC); - if (!pwriteptmparm) { - kfree(ph2c); - return _FAIL; - } - init_h2fwcmd_w_parm_no_rsp(ph2c, pwriteptmparm, GEN_CMD_CODE(_SetRA)); - pwriteptmparm->type = type; - r8712_enqueue_cmd(pcmdpriv, ph2c); - return _SUCCESS; } -u8 r8712_setrfreg_cmd(struct _adapter *padapter, u8 offset, u32 val) +int r8712_setrfreg_cmd(struct _adapter *padapter, u8 offset, u32 val) { struct cmd_obj *ph2c; struct writeRF_parm *pwriterfparm; @@ -354,20 +259,20 @@ u8 r8712_setrfreg_cmd(struct _adapter *padapter, u8 offset, u32 val) ph2c = kmalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) - return _FAIL; + return -ENOMEM; pwriterfparm = kmalloc(sizeof(*pwriterfparm), GFP_ATOMIC); if (!pwriterfparm) { kfree(ph2c); - return _FAIL; + return -ENOMEM; } init_h2fwcmd_w_parm_no_rsp(ph2c, pwriterfparm, GEN_CMD_CODE(_SetRFReg)); pwriterfparm->offset = offset; pwriterfparm->value = val; r8712_enqueue_cmd(pcmdpriv, ph2c); - return _SUCCESS; + return 0; } -u8 r8712_getrfreg_cmd(struct _adapter *padapter, u8 offset, u8 *pval) +int r8712_getrfreg_cmd(struct _adapter *padapter, u8 offset, u8 *pval) { struct cmd_obj *ph2c; struct readRF_parm *prdrfparm; @@ -375,11 +280,11 @@ u8 r8712_getrfreg_cmd(struct _adapter *padapter, u8 offset, u8 *pval) ph2c = kmalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) - return _FAIL; + return -ENOMEM; prdrfparm = kmalloc(sizeof(*prdrfparm), GFP_ATOMIC); if (!prdrfparm) { kfree(ph2c); - return _FAIL; + return -ENOMEM; } INIT_LIST_HEAD(&ph2c->list); ph2c->cmdcode = GEN_CMD_CODE(_GetRFReg); @@ -389,7 +294,7 @@ u8 r8712_getrfreg_cmd(struct _adapter *padapter, u8 offset, u8 *pval) ph2c->rspsz = sizeof(struct readRF_rsp); prdrfparm->offset = offset; r8712_enqueue_cmd(pcmdpriv, ph2c); - return _SUCCESS; + return 0; } void r8712_getbbrfreg_cmdrsp_callback(struct _adapter *padapter, @@ -409,7 +314,7 @@ void r8712_readtssi_cmdrsp_callback(struct _adapter *padapter, padapter->mppriv.workparam.bcompleted = true; } -u8 r8712_createbss_cmd(struct _adapter *padapter) +int r8712_createbss_cmd(struct _adapter *padapter) { struct cmd_obj *pcmd; struct cmd_priv *pcmdpriv = &padapter->cmdpriv; @@ -419,7 +324,7 @@ u8 r8712_createbss_cmd(struct _adapter *padapter) padapter->ledpriv.LedControlHandler(padapter, LED_CTL_START_TO_LINK); pcmd = kmalloc(sizeof(*pcmd), GFP_ATOMIC); if (!pcmd) - return _FAIL; + return -ENOMEM; INIT_LIST_HEAD(&pcmd->list); pcmd->cmdcode = _CreateBss_CMD_; pcmd->parmbuf = (unsigned char *)pdev_network; @@ -431,10 +336,10 @@ u8 r8712_createbss_cmd(struct _adapter *padapter) pdev_network->IELength = pdev_network->IELength; pdev_network->Ssid.SsidLength = pdev_network->Ssid.SsidLength; r8712_enqueue_cmd(pcmdpriv, pcmd); - return _SUCCESS; + return 0; } -u8 r8712_joinbss_cmd(struct _adapter *padapter, struct wlan_network *pnetwork) +int r8712_joinbss_cmd(struct _adapter *padapter, struct wlan_network *pnetwork) { struct wlan_bssid_ex *psecnetwork; struct cmd_obj *pcmd; @@ -449,7 +354,7 @@ u8 r8712_joinbss_cmd(struct _adapter *padapter, struct wlan_network *pnetwork) padapter->ledpriv.LedControlHandler(padapter, LED_CTL_START_TO_LINK); pcmd = kmalloc(sizeof(*pcmd), GFP_ATOMIC); if (!pcmd) - return _FAIL; + return -ENOMEM; /* for hidden ap to set fw_state here */ if (check_fwstate(pmlmepriv, WIFI_STATION_STATE | WIFI_ADHOC_STATE) != @@ -468,10 +373,6 @@ u8 r8712_joinbss_cmd(struct _adapter *padapter, struct wlan_network *pnetwork) } } psecnetwork = &psecuritypriv->sec_bss; - if (!psecnetwork) { - kfree(pcmd); - return _FAIL; - } memcpy(psecnetwork, &pnetwork->network, sizeof(*psecnetwork)); psecuritypriv->authenticator_ie[0] = (unsigned char) psecnetwork->IELength; @@ -570,10 +471,10 @@ u8 r8712_joinbss_cmd(struct _adapter *padapter, struct wlan_network *pnetwork) pcmd->rsp = NULL; pcmd->rspsz = 0; r8712_enqueue_cmd(pcmdpriv, pcmd); - return _SUCCESS; + return 0; } -u8 r8712_disassoc_cmd(struct _adapter *padapter) /* for sta_mode */ +void r8712_disassoc_cmd(struct _adapter *padapter) /* for sta_mode */ { struct cmd_obj *pdisconnect_cmd; struct disconnect_parm *pdisconnect; @@ -581,19 +482,18 @@ u8 r8712_disassoc_cmd(struct _adapter *padapter) /* for sta_mode */ pdisconnect_cmd = kmalloc(sizeof(*pdisconnect_cmd), GFP_ATOMIC); if (!pdisconnect_cmd) - return _FAIL; + return; pdisconnect = kmalloc(sizeof(*pdisconnect), GFP_ATOMIC); if (!pdisconnect) { kfree(pdisconnect_cmd); - return _FAIL; + return; } init_h2fwcmd_w_parm_no_rsp(pdisconnect_cmd, pdisconnect, _DisConnect_CMD_); r8712_enqueue_cmd(pcmdpriv, pdisconnect_cmd); - return _SUCCESS; } -u8 r8712_setopmode_cmd(struct _adapter *padapter, +void r8712_setopmode_cmd(struct _adapter *padapter, enum NDIS_802_11_NETWORK_INFRASTRUCTURE networktype) { struct cmd_obj *ph2c; @@ -603,19 +503,18 @@ u8 r8712_setopmode_cmd(struct _adapter *padapter, ph2c = kmalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) - return _FAIL; + return; psetop = kmalloc(sizeof(*psetop), GFP_ATOMIC); if (!psetop) { kfree(ph2c); - return _FAIL; + return; } init_h2fwcmd_w_parm_no_rsp(ph2c, psetop, _SetOpMode_CMD_); psetop->mode = (u8)networktype; r8712_enqueue_cmd(pcmdpriv, ph2c); - return _SUCCESS; } -u8 r8712_setstakey_cmd(struct _adapter *padapter, u8 *psta, u8 unicast_key) +void r8712_setstakey_cmd(struct _adapter *padapter, u8 *psta, u8 unicast_key) { struct cmd_obj *ph2c; struct set_stakey_parm *psetstakey_para; @@ -627,17 +526,17 @@ u8 r8712_setstakey_cmd(struct _adapter *padapter, u8 *psta, u8 unicast_key) ph2c = kmalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) - return _FAIL; + return; psetstakey_para = kmalloc(sizeof(*psetstakey_para), GFP_ATOMIC); if (!psetstakey_para) { kfree(ph2c); - return _FAIL; + return; } psetstakey_rsp = kmalloc(sizeof(*psetstakey_rsp), GFP_ATOMIC); if (!psetstakey_rsp) { kfree(ph2c); kfree(psetstakey_para); - return _FAIL; + return; } init_h2fwcmd_w_parm_no_rsp(ph2c, psetstakey_para, _SetStaKey_CMD_); ph2c->rsp = (u8 *) psetstakey_rsp; @@ -656,53 +555,9 @@ u8 r8712_setstakey_cmd(struct _adapter *padapter, u8 *psta, u8 unicast_key) &psecuritypriv->XGrpKey[ psecuritypriv->XGrpKeyid - 1]. skey, 16); r8712_enqueue_cmd(pcmdpriv, ph2c); - return _SUCCESS; -} - -u8 r8712_setrfintfs_cmd(struct _adapter *padapter, u8 mode) -{ - struct cmd_obj *ph2c; - struct setrfintfs_parm *psetrfintfsparm; - struct cmd_priv *pcmdpriv = &padapter->cmdpriv; - - ph2c = kmalloc(sizeof(*ph2c), GFP_ATOMIC); - if (!ph2c) - return _FAIL; - psetrfintfsparm = kmalloc(sizeof(*psetrfintfsparm), GFP_ATOMIC); - if (!psetrfintfsparm) { - kfree(ph2c); - return _FAIL; - } - init_h2fwcmd_w_parm_no_rsp(ph2c, psetrfintfsparm, - GEN_CMD_CODE(_SetRFIntFs)); - psetrfintfsparm->rfintfs = mode; - r8712_enqueue_cmd(pcmdpriv, ph2c); - return _SUCCESS; -} - -u8 r8712_setrttbl_cmd(struct _adapter *padapter, - struct setratable_parm *prate_table) -{ - struct cmd_obj *ph2c; - struct setratable_parm *psetrttblparm; - struct cmd_priv *pcmdpriv = &padapter->cmdpriv; - - ph2c = kmalloc(sizeof(*ph2c), GFP_ATOMIC); - if (!ph2c) - return _FAIL; - psetrttblparm = kmalloc(sizeof(*psetrttblparm), GFP_ATOMIC); - if (!psetrttblparm) { - kfree(ph2c); - return _FAIL; - } - init_h2fwcmd_w_parm_no_rsp(ph2c, psetrttblparm, - GEN_CMD_CODE(_SetRaTable)); - memcpy(psetrttblparm, prate_table, sizeof(struct setratable_parm)); - r8712_enqueue_cmd(pcmdpriv, ph2c); - return _SUCCESS; } -u8 r8712_setMacAddr_cmd(struct _adapter *padapter, u8 *mac_addr) +void r8712_setMacAddr_cmd(struct _adapter *padapter, u8 *mac_addr) { struct cmd_priv *pcmdpriv = &padapter->cmdpriv; struct cmd_obj *ph2c; @@ -710,49 +565,19 @@ u8 r8712_setMacAddr_cmd(struct _adapter *padapter, u8 *mac_addr) ph2c = kmalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) - return _FAIL; + return; psetMacAddr_para = kmalloc(sizeof(*psetMacAddr_para), GFP_ATOMIC); if (!psetMacAddr_para) { kfree(ph2c); - return _FAIL; + return; } init_h2fwcmd_w_parm_no_rsp(ph2c, psetMacAddr_para, _SetMacAddress_CMD_); ether_addr_copy(psetMacAddr_para->MacAddr, mac_addr); r8712_enqueue_cmd(pcmdpriv, ph2c); - return _SUCCESS; -} - -u8 r8712_setassocsta_cmd(struct _adapter *padapter, u8 *mac_addr) -{ - struct cmd_priv *pcmdpriv = &padapter->cmdpriv; - struct cmd_obj *ph2c; - struct set_assocsta_parm *psetassocsta_para; - struct set_assocsta_rsp *psetassocsta_rsp = NULL; - - ph2c = kmalloc(sizeof(*ph2c), GFP_ATOMIC); - if (!ph2c) - return _FAIL; - psetassocsta_para = kmalloc(sizeof(*psetassocsta_para), GFP_ATOMIC); - if (!psetassocsta_para) { - kfree(ph2c); - return _FAIL; - } - psetassocsta_rsp = kmalloc(sizeof(*psetassocsta_rsp), GFP_ATOMIC); - if (!psetassocsta_rsp) { - kfree(ph2c); - kfree(psetassocsta_para); - return _FAIL; - } - init_h2fwcmd_w_parm_no_rsp(ph2c, psetassocsta_para, _SetAssocSta_CMD_); - ph2c->rsp = (u8 *) psetassocsta_rsp; - ph2c->rspsz = sizeof(struct set_assocsta_rsp); - ether_addr_copy(psetassocsta_para->addr, mac_addr); - r8712_enqueue_cmd(pcmdpriv, ph2c); - return _SUCCESS; } -u8 r8712_addbareq_cmd(struct _adapter *padapter, u8 tid) +void r8712_addbareq_cmd(struct _adapter *padapter, u8 tid) { struct cmd_priv *pcmdpriv = &padapter->cmdpriv; struct cmd_obj *ph2c; @@ -760,20 +585,19 @@ u8 r8712_addbareq_cmd(struct _adapter *padapter, u8 tid) ph2c = kmalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) - return _FAIL; + return; paddbareq_parm = kmalloc(sizeof(*paddbareq_parm), GFP_ATOMIC); if (!paddbareq_parm) { kfree(ph2c); - return _FAIL; + return; } paddbareq_parm->tid = tid; init_h2fwcmd_w_parm_no_rsp(ph2c, paddbareq_parm, GEN_CMD_CODE(_AddBAReq)); r8712_enqueue_cmd_ex(pcmdpriv, ph2c); - return _SUCCESS; } -u8 r8712_wdg_wk_cmd(struct _adapter *padapter) +void r8712_wdg_wk_cmd(struct _adapter *padapter) { struct cmd_obj *ph2c; struct drvint_cmd_parm *pdrvintcmd_param; @@ -781,18 +605,17 @@ u8 r8712_wdg_wk_cmd(struct _adapter *padapter) ph2c = kmalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) - return _FAIL; + return; pdrvintcmd_param = kmalloc(sizeof(*pdrvintcmd_param), GFP_ATOMIC); if (!pdrvintcmd_param) { kfree(ph2c); - return _FAIL; + return; } pdrvintcmd_param->i_cid = WDG_WK_CID; pdrvintcmd_param->sz = 0; pdrvintcmd_param->pbuf = NULL; init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvintcmd_param, _DRV_INT_CMD_); r8712_enqueue_cmd_ex(pcmdpriv, ph2c); - return _SUCCESS; } void r8712_survey_cmd_callback(struct _adapter *padapter, struct cmd_obj *pcmd) @@ -949,7 +772,7 @@ void r8712_setassocsta_cmdrsp_callback(struct _adapter *padapter, r8712_free_cmd_obj(pcmd); } -u8 r8712_disconnectCtrlEx_cmd(struct _adapter *adapter, u32 enableDrvCtrl, +void r8712_disconnectCtrlEx_cmd(struct _adapter *adapter, u32 enableDrvCtrl, u32 tryPktCnt, u32 tryPktInterval, u32 firstStageTO) { struct cmd_obj *ph2c; @@ -958,11 +781,11 @@ u8 r8712_disconnectCtrlEx_cmd(struct _adapter *adapter, u32 enableDrvCtrl, ph2c = kmalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) - return _FAIL; + return; param = kzalloc(sizeof(*param), GFP_ATOMIC); if (!param) { kfree(ph2c); - return _FAIL; + return; } param->EnableDrvCtrl = (unsigned char)enableDrvCtrl; @@ -973,5 +796,4 @@ u8 r8712_disconnectCtrlEx_cmd(struct _adapter *adapter, u32 enableDrvCtrl, init_h2fwcmd_w_parm_no_rsp(ph2c, param, GEN_CMD_CODE(_DisconnectCtrlEx)); r8712_enqueue_cmd(pcmdpriv, ph2c); - return _SUCCESS; } diff --git a/drivers/staging/rtl8712/rtl871x_cmd.h b/drivers/staging/rtl8712/rtl871x_cmd.h index 262984c58efb..98d7fbfce1a5 100644 --- a/drivers/staging/rtl8712/rtl871x_cmd.h +++ b/drivers/staging/rtl8712/rtl871x_cmd.h @@ -79,14 +79,14 @@ do {\ pcmd->rspsz = 0;\ } while (0) -u32 r8712_enqueue_cmd(struct cmd_priv *pcmdpriv, struct cmd_obj *obj); -u32 r8712_enqueue_cmd_ex(struct cmd_priv *pcmdpriv, struct cmd_obj *obj); +void r8712_enqueue_cmd(struct cmd_priv *pcmdpriv, struct cmd_obj *obj); +void r8712_enqueue_cmd_ex(struct cmd_priv *pcmdpriv, struct cmd_obj *obj); struct cmd_obj *r8712_dequeue_cmd(struct __queue *queue); void r8712_free_cmd_obj(struct cmd_obj *pcmd); int r8712_cmd_thread(void *context); -u32 r8712_init_cmd_priv(struct cmd_priv *pcmdpriv); +int r8712_init_cmd_priv(struct cmd_priv *pcmdpriv); void r8712_free_cmd_priv(struct cmd_priv *pcmdpriv); -u32 r8712_init_evt_priv(struct evt_priv *pevtpriv); +int r8712_init_evt_priv(struct evt_priv *pevtpriv); void r8712_free_evt_priv(struct evt_priv *pevtpriv); enum rtl871x_drvint_cid { @@ -708,29 +708,22 @@ struct DisconnectCtrlEx_param { #define H2C_CMD_OVERFLOW 0x06 #define H2C_RESERVED 0x07 -u8 r8712_setMacAddr_cmd(struct _adapter *padapter, u8 *mac_addr); -u8 r8712_setassocsta_cmd(struct _adapter *padapter, u8 *mac_addr); +void r8712_setMacAddr_cmd(struct _adapter *padapter, u8 *mac_addr); u8 r8712_sitesurvey_cmd(struct _adapter *padapter, struct ndis_802_11_ssid *pssid); -u8 r8712_createbss_cmd(struct _adapter *padapter); -u8 r8712_setstakey_cmd(struct _adapter *padapter, u8 *psta, u8 unicast_key); -u8 r8712_joinbss_cmd(struct _adapter *padapter, - struct wlan_network *pnetwork); -u8 r8712_disassoc_cmd(struct _adapter *padapter); -u8 r8712_setopmode_cmd(struct _adapter *padapter, +int r8712_createbss_cmd(struct _adapter *padapter); +void r8712_setstakey_cmd(struct _adapter *padapter, u8 *psta, u8 unicast_key); +int r8712_joinbss_cmd(struct _adapter *padapter, + struct wlan_network *pnetwork); +void r8712_disassoc_cmd(struct _adapter *padapter); +void r8712_setopmode_cmd(struct _adapter *padapter, enum NDIS_802_11_NETWORK_INFRASTRUCTURE networktype); -u8 r8712_setdatarate_cmd(struct _adapter *padapter, u8 *rateset); -u8 r8712_set_chplan_cmd(struct _adapter *padapter, int chplan); -u8 r8712_setbasicrate_cmd(struct _adapter *padapter, u8 *rateset); -u8 r8712_getrfreg_cmd(struct _adapter *padapter, u8 offset, u8 *pval); -u8 r8712_setrfintfs_cmd(struct _adapter *padapter, u8 mode); -u8 r8712_setrfreg_cmd(struct _adapter *padapter, u8 offset, u32 val); -u8 r8712_setrttbl_cmd(struct _adapter *padapter, - struct setratable_parm *prate_table); -u8 r8712_setfwdig_cmd(struct _adapter *padapter, u8 type); -u8 r8712_setfwra_cmd(struct _adapter *padapter, u8 type); -u8 r8712_addbareq_cmd(struct _adapter *padapter, u8 tid); -u8 r8712_wdg_wk_cmd(struct _adapter *padapter); +int r8712_setdatarate_cmd(struct _adapter *padapter, u8 *rateset); +void r8712_set_chplan_cmd(struct _adapter *padapter, int chplan); +int r8712_getrfreg_cmd(struct _adapter *padapter, u8 offset, u8 *pval); +int r8712_setrfreg_cmd(struct _adapter *padapter, u8 offset, u32 val); +void r8712_addbareq_cmd(struct _adapter *padapter, u8 tid); +void r8712_wdg_wk_cmd(struct _adapter *padapter); void r8712_survey_cmd_callback(struct _adapter *padapter, struct cmd_obj *pcmd); void r8712_disassoc_cmd_callback(struct _adapter *padapter, @@ -747,7 +740,7 @@ void r8712_setstaKey_cmdrsp_callback(struct _adapter *padapter, struct cmd_obj *pcmd); void r8712_setassocsta_cmdrsp_callback(struct _adapter *padapter, struct cmd_obj *pcmd); -u8 r8712_disconnectCtrlEx_cmd(struct _adapter *adapter, u32 enableDrvCtrl, +void r8712_disconnectCtrlEx_cmd(struct _adapter *adapter, u32 enableDrvCtrl, u32 tryPktCnt, u32 tryPktInterval, u32 firstStageTO); struct _cmd_callback { diff --git a/drivers/staging/rtl8712/rtl871x_eeprom.c b/drivers/staging/rtl8712/rtl871x_eeprom.c index 0027d8eb22fa..221bf92e1b1c 100644 --- a/drivers/staging/rtl8712/rtl871x_eeprom.c +++ b/drivers/staging/rtl8712/rtl871x_eeprom.c @@ -150,7 +150,7 @@ void r8712_eeprom_write16(struct _adapter *padapter, u16 reg, u16 data) x |= _EEM1 | _EECS; r8712_write8(padapter, EE_9346CR, x); shift_out_bits(padapter, EEPROM_EWEN_OPCODE, 5); - if (padapter->EepromAddressSize == 8) /*CF+ and SDIO*/ + if (padapter->eeprom_address_size == 8) /*CF+ and SDIO*/ shift_out_bits(padapter, 0, 6); else /* USB */ shift_out_bits(padapter, 0, 4); @@ -165,7 +165,7 @@ void r8712_eeprom_write16(struct _adapter *padapter, u16 reg, u16 data) */ shift_out_bits(padapter, EEPROM_WRITE_OPCODE, 3); /* select which word in the EEPROM that we are writing to. */ - shift_out_bits(padapter, reg, padapter->EepromAddressSize); + shift_out_bits(padapter, reg, padapter->eeprom_address_size); /* write the data to the selected EEPROM word. */ shift_out_bits(padapter, data, 16); if (wait_eeprom_cmd_done(padapter)) { @@ -207,7 +207,7 @@ u16 r8712_eeprom_read16(struct _adapter *padapter, u16 reg) /*ReadEEprom*/ * The opcode is 3bits in length, reg is 6 bits long */ shift_out_bits(padapter, EEPROM_READ_OPCODE, 3); - shift_out_bits(padapter, reg, padapter->EepromAddressSize); + shift_out_bits(padapter, reg, padapter->eeprom_address_size); /* Now read the data (16 bits) in from the selected EEPROM word */ data = shift_in_bits(padapter); eeprom_clean(padapter); diff --git a/drivers/staging/rtl8712/rtl871x_io.c b/drivers/staging/rtl8712/rtl871x_io.c index 17dafeffd6f4..87024d6a465e 100644 --- a/drivers/staging/rtl8712/rtl871x_io.c +++ b/drivers/staging/rtl8712/rtl871x_io.c @@ -107,13 +107,11 @@ uint r8712_alloc_io_queue(struct _adapter *adapter) INIT_LIST_HEAD(&pio_queue->processing); INIT_LIST_HEAD(&pio_queue->pending); spin_lock_init(&pio_queue->lock); - pio_queue->pallocated_free_ioreqs_buf = kmalloc(NUM_IOREQ * + pio_queue->pallocated_free_ioreqs_buf = kzalloc(NUM_IOREQ * (sizeof(struct io_req)) + 4, GFP_ATOMIC); if ((pio_queue->pallocated_free_ioreqs_buf) == NULL) goto alloc_io_queue_fail; - memset(pio_queue->pallocated_free_ioreqs_buf, 0, - (NUM_IOREQ * (sizeof(struct io_req)) + 4)); pio_queue->free_ioreqs_buf = pio_queue->pallocated_free_ioreqs_buf + 4 - ((addr_t)(pio_queue->pallocated_free_ioreqs_buf) & 3); diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c index a7230c0c7b23..b08b9a191a34 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c @@ -124,10 +124,91 @@ static inline void handle_group_key(struct ieee_param *param, } } -static noinline_for_stack char *translate_scan(struct _adapter *padapter, - struct iw_request_info *info, - struct wlan_network *pnetwork, - char *start, char *stop) +static noinline_for_stack char *translate_scan_wpa(struct iw_request_info *info, + struct wlan_network *pnetwork, + struct iw_event *iwe, + char *start, char *stop) +{ + /* parsing WPA/WPA2 IE */ + u8 buf[MAX_WPA_IE_LEN]; + u8 wpa_ie[255], rsn_ie[255]; + u16 wpa_len = 0, rsn_len = 0; + int n, i; + + r8712_get_sec_ie(pnetwork->network.IEs, + pnetwork->network.IELength, rsn_ie, &rsn_len, + wpa_ie, &wpa_len); + if (wpa_len > 0) { + memset(buf, 0, MAX_WPA_IE_LEN); + n = sprintf(buf, "wpa_ie="); + for (i = 0; i < wpa_len; i++) { + n += snprintf(buf + n, MAX_WPA_IE_LEN - n, + "%02x", wpa_ie[i]); + if (n >= MAX_WPA_IE_LEN) + break; + } + memset(iwe, 0, sizeof(*iwe)); + iwe->cmd = IWEVCUSTOM; + iwe->u.data.length = (u16)strlen(buf); + start = iwe_stream_add_point(info, start, stop, + iwe, buf); + memset(iwe, 0, sizeof(*iwe)); + iwe->cmd = IWEVGENIE; + iwe->u.data.length = (u16)wpa_len; + start = iwe_stream_add_point(info, start, stop, + iwe, wpa_ie); + } + if (rsn_len > 0) { + memset(buf, 0, MAX_WPA_IE_LEN); + n = sprintf(buf, "rsn_ie="); + for (i = 0; i < rsn_len; i++) { + n += snprintf(buf + n, MAX_WPA_IE_LEN - n, + "%02x", rsn_ie[i]); + if (n >= MAX_WPA_IE_LEN) + break; + } + memset(iwe, 0, sizeof(*iwe)); + iwe->cmd = IWEVCUSTOM; + iwe->u.data.length = strlen(buf); + start = iwe_stream_add_point(info, start, stop, + iwe, buf); + memset(iwe, 0, sizeof(*iwe)); + iwe->cmd = IWEVGENIE; + iwe->u.data.length = rsn_len; + start = iwe_stream_add_point(info, start, stop, iwe, + rsn_ie); + } + + return start; +} + +static noinline_for_stack char *translate_scan_wps(struct iw_request_info *info, + struct wlan_network *pnetwork, + struct iw_event *iwe, + char *start, char *stop) +{ + /* parsing WPS IE */ + u8 wps_ie[512]; + uint wps_ielen; + + if (r8712_get_wps_ie(pnetwork->network.IEs, + pnetwork->network.IELength, + wps_ie, &wps_ielen)) { + if (wps_ielen > 2) { + iwe->cmd = IWEVGENIE; + iwe->u.data.length = (u16)wps_ielen; + start = iwe_stream_add_point(info, start, stop, + iwe, wps_ie); + } + } + + return start; +} + +static char *translate_scan(struct _adapter *padapter, + struct iw_request_info *info, + struct wlan_network *pnetwork, + char *start, char *stop) { struct iw_event iwe; struct ieee80211_ht_cap *pht_capie; @@ -240,73 +321,11 @@ static noinline_for_stack char *translate_scan(struct _adapter *padapter, /* Check if we added any event */ if ((current_val - start) > iwe_stream_lcp_len(info)) start = current_val; - /* parsing WPA/WPA2 IE */ - { - u8 buf[MAX_WPA_IE_LEN]; - u8 wpa_ie[255], rsn_ie[255]; - u16 wpa_len = 0, rsn_len = 0; - int n; - - r8712_get_sec_ie(pnetwork->network.IEs, - pnetwork->network.IELength, rsn_ie, &rsn_len, - wpa_ie, &wpa_len); - if (wpa_len > 0) { - memset(buf, 0, MAX_WPA_IE_LEN); - n = sprintf(buf, "wpa_ie="); - for (i = 0; i < wpa_len; i++) { - n += snprintf(buf + n, MAX_WPA_IE_LEN - n, - "%02x", wpa_ie[i]); - if (n >= MAX_WPA_IE_LEN) - break; - } - memset(&iwe, 0, sizeof(iwe)); - iwe.cmd = IWEVCUSTOM; - iwe.u.data.length = (u16)strlen(buf); - start = iwe_stream_add_point(info, start, stop, - &iwe, buf); - memset(&iwe, 0, sizeof(iwe)); - iwe.cmd = IWEVGENIE; - iwe.u.data.length = (u16)wpa_len; - start = iwe_stream_add_point(info, start, stop, - &iwe, wpa_ie); - } - if (rsn_len > 0) { - memset(buf, 0, MAX_WPA_IE_LEN); - n = sprintf(buf, "rsn_ie="); - for (i = 0; i < rsn_len; i++) { - n += snprintf(buf + n, MAX_WPA_IE_LEN - n, - "%02x", rsn_ie[i]); - if (n >= MAX_WPA_IE_LEN) - break; - } - memset(&iwe, 0, sizeof(iwe)); - iwe.cmd = IWEVCUSTOM; - iwe.u.data.length = strlen(buf); - start = iwe_stream_add_point(info, start, stop, - &iwe, buf); - memset(&iwe, 0, sizeof(iwe)); - iwe.cmd = IWEVGENIE; - iwe.u.data.length = rsn_len; - start = iwe_stream_add_point(info, start, stop, &iwe, - rsn_ie); - } - } - { /* parsing WPS IE */ - u8 wps_ie[512]; - uint wps_ielen; + start = translate_scan_wpa(info, pnetwork, &iwe, start, stop); + + start = translate_scan_wps(info, pnetwork, &iwe, start, stop); - if (r8712_get_wps_ie(pnetwork->network.IEs, - pnetwork->network.IELength, - wps_ie, &wps_ielen)) { - if (wps_ielen > 2) { - iwe.cmd = IWEVGENIE; - iwe.u.data.length = (u16)wps_ielen; - start = iwe_stream_add_point(info, start, stop, - &iwe, wps_ie); - } - } - } /* Add quality statistics */ iwe.cmd = IWEVQUAL; rssi = r8712_signal_scale_mapping(pnetwork->network.Rssi); @@ -478,13 +497,13 @@ static int r871x_set_wpa_ie(struct _adapter *padapter, char *pie, goto exit; } if (r8712_parse_wpa_ie(buf, ielen, &group_cipher, - &pairwise_cipher) == _SUCCESS) { + &pairwise_cipher) == 0) { padapter->securitypriv.AuthAlgrthm = 2; padapter->securitypriv.ndisauthtype = Ndis802_11AuthModeWPAPSK; } if (r8712_parse_wpa2_ie(buf, ielen, &group_cipher, - &pairwise_cipher) == _SUCCESS) { + &pairwise_cipher) == 0) { padapter->securitypriv.AuthAlgrthm = 2; padapter->securitypriv.ndisauthtype = Ndis802_11AuthModeWPA2PSK; @@ -1309,7 +1328,7 @@ static int r8711_wx_set_rate(struct net_device *dev, u32 ratevalue = 0; u8 datarates[NumRates]; u8 mpdatarate[NumRates] = {11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0xff}; - int i, ret = 0; + int i; if (target_rate == -1) { ratevalue = 11; @@ -1367,9 +1386,7 @@ set_rate: datarates[i] = 0xff; } } - if (r8712_setdatarate_cmd(padapter, datarates) != _SUCCESS) - ret = -ENOMEM; - return ret; + return r8712_setdatarate_cmd(padapter, datarates); } static int r8711_wx_get_rate(struct net_device *dev, @@ -1577,7 +1594,7 @@ static int r8711_wx_get_enc(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *keybuf) { - uint key, ret = 0; + uint key; struct _adapter *padapter = netdev_priv(dev); struct iw_point *erq = &(wrqu->encoding); struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); @@ -1633,7 +1650,7 @@ static int r8711_wx_get_enc(struct net_device *dev, erq->flags |= IW_ENCODE_DISABLED; break; } - return ret; + return 0; } static int r8711_wx_get_power(struct net_device *dev, diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_rtl.c b/drivers/staging/rtl8712/rtl871x_ioctl_rtl.c index 2dc20da21679..b78101afc93d 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_rtl.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_rtl.c @@ -429,7 +429,7 @@ uint oid_rt_pro_rf_write_registry_hdl(struct oid_par_priv* return RNDIS_STATUS_NOT_ACCEPTED; if (poid_par_priv->information_buf_len == (sizeof(unsigned long) * 3)) { - if (!r8712_setrfreg_cmd(Adapter, + if (r8712_setrfreg_cmd(Adapter, *(unsigned char *)poid_par_priv->information_buf, (unsigned long)(*((unsigned long *) poid_par_priv->information_buf + 2)))) @@ -467,7 +467,7 @@ uint oid_rt_pro_rf_read_registry_hdl(struct oid_par_priv *poid_par_priv) * RegDataWidth = *((unsigned long *)InformationBuffer+1); * RegDataValue = *((unsigned long *)InformationBuffer+2); */ - if (!r8712_getrfreg_cmd(Adapter, + if (r8712_getrfreg_cmd(Adapter, *(unsigned char *)poid_par_priv->information_buf, (unsigned char *)&Adapter->mppriv.workparam.io_value )) diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_set.c b/drivers/staging/rtl8712/rtl871x_ioctl_set.c index 2622d5e3bff9..f3c0a9348f56 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_set.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_set.c @@ -66,7 +66,7 @@ static u8 do_join(struct _adapter *padapter) } ret = r8712_select_and_join_from_scan(pmlmepriv); - if (ret == _SUCCESS) { + if (!ret) { mod_timer(&pmlmepriv->assoc_timer, jiffies + msecs_to_jiffies(MAX_JOIN_TIMEOUT)); } else { @@ -84,7 +84,7 @@ static u8 do_join(struct _adapter *padapter) sizeof(struct ndis_802_11_ssid)); r8712_update_registrypriv_dev_network(padapter); r8712_generate_random_ibss(pibss); - if (r8712_createbss_cmd(padapter) != _SUCCESS) + if (r8712_createbss_cmd(padapter)) return false; pmlmepriv->to_join = false; } else { diff --git a/drivers/staging/rtl8712/rtl871x_mlme.c b/drivers/staging/rtl8712/rtl871x_mlme.c index 7c7267d0fc9e..0cc879a4d43f 100644 --- a/drivers/staging/rtl8712/rtl871x_mlme.c +++ b/drivers/staging/rtl8712/rtl871x_mlme.c @@ -29,7 +29,7 @@ static void update_ht_cap(struct _adapter *padapter, u8 *pie, uint ie_len); -static sint _init_mlme_priv(struct _adapter *padapter) +int r8712_init_mlme_priv(struct _adapter *padapter) { sint i; u8 *pbuf; @@ -129,8 +129,8 @@ static void free_network_nolock(struct mlme_priv *pmlmepriv, * Shall be called under atomic context... * to avoid possible racing condition... */ -static struct wlan_network *_r8712_find_network(struct __queue *scanned_queue, - u8 *addr) +static struct wlan_network *r8712_find_network(struct __queue *scanned_queue, + u8 *addr) { unsigned long irqL; struct list_head *phead, *plist; @@ -151,7 +151,7 @@ static struct wlan_network *_r8712_find_network(struct __queue *scanned_queue, return pnetwork; } -static void _free_network_queue(struct _adapter *padapter) +void r8712_free_network_queue(struct _adapter *padapter) { unsigned long irqL; struct list_head *phead, *plist; @@ -205,11 +205,6 @@ u8 *r8712_get_capability_from_ie(u8 *ie) return ie + 8 + 2; } -int r8712_init_mlme_priv(struct _adapter *padapter) -{ - return _init_mlme_priv(padapter); -} - void r8712_free_mlme_priv(struct mlme_priv *pmlmepriv) { kfree(pmlmepriv->free_bss_buf); @@ -220,25 +215,6 @@ static struct wlan_network *alloc_network(struct mlme_priv *pmlmepriv) return _r8712_alloc_network(pmlmepriv); } -void r8712_free_network_queue(struct _adapter *dev) -{ - _free_network_queue(dev); -} - -/* - * return the wlan_network with the matching addr - * Shall be called under atomic context... - * to avoid possible racing condition... - */ -static struct wlan_network *r8712_find_network(struct __queue *scanned_queue, - u8 *addr) -{ - struct wlan_network *pnetwork = _r8712_find_network(scanned_queue, - addr); - - return pnetwork; -} - int r8712_is_same_ibss(struct _adapter *adapter, struct wlan_network *pnetwork) { int ret = true; @@ -558,8 +534,7 @@ void r8712_surveydone_event_callback(struct _adapter *adapter, u8 *pbuf) if (!check_fwstate(pmlmepriv, _FW_LINKED)) { set_fwstate(pmlmepriv, _FW_UNDER_LINKING); - if (r8712_select_and_join_from_scan(pmlmepriv) - == _SUCCESS) { + if (!r8712_select_and_join_from_scan(pmlmepriv)) { mod_timer(&pmlmepriv->assoc_timer, jiffies + msecs_to_jiffies(MAX_JOIN_TIMEOUT)); } else { @@ -584,8 +559,7 @@ void r8712_surveydone_event_callback(struct _adapter *adapter, u8 *pbuf) } else { pmlmepriv->to_join = false; set_fwstate(pmlmepriv, _FW_UNDER_LINKING); - if (r8712_select_and_join_from_scan(pmlmepriv) == - _SUCCESS) + if (!r8712_select_and_join_from_scan(pmlmepriv)) mod_timer(&pmlmepriv->assoc_timer, jiffies + msecs_to_jiffies(MAX_JOIN_TIMEOUT)); else @@ -1091,11 +1065,6 @@ void _r8712_dhcp_timeout_handler (struct _adapter *adapter) adapter->registrypriv.smart_ps); } -void _r8712_wdg_timeout_handler(struct _adapter *adapter) -{ - r8712_wdg_wk_cmd(adapter); -} - int r8712_select_and_join_from_scan(struct mlme_priv *pmlmepriv) { struct list_head *phead; @@ -1116,7 +1085,7 @@ int r8712_select_and_join_from_scan(struct mlme_priv *pmlmepriv) pnetwork = pnetwork_max_rssi; goto ask_for_joinbss; } - return _FAIL; + return -EINVAL; } pnetwork = container_of(pmlmepriv->pscanned, struct wlan_network, list); diff --git a/drivers/staging/rtl8712/rtl871x_mlme.h b/drivers/staging/rtl8712/rtl871x_mlme.h index 8a54181f4816..a160107e9801 100644 --- a/drivers/staging/rtl8712/rtl871x_mlme.h +++ b/drivers/staging/rtl8712/rtl871x_mlme.h @@ -172,7 +172,7 @@ void r8712_wpspbc_event_callback(struct _adapter *adapter, u8 *pbuf); void r8712_free_network_queue(struct _adapter *adapter); int r8712_init_mlme_priv(struct _adapter *adapter); void r8712_free_mlme_priv(struct mlme_priv *pmlmepriv); -sint r8712_select_and_join_from_scan(struct mlme_priv *pmlmepriv); +int r8712_select_and_join_from_scan(struct mlme_priv *pmlmepriv); sint r8712_set_key(struct _adapter *adapter, struct security_priv *psecuritypriv, sint keyid); sint r8712_set_auth(struct _adapter *adapter, @@ -195,7 +195,6 @@ void _r8712_sitesurvey_ctrl_handler(struct _adapter *adapter); void _r8712_join_timeout_handler(struct _adapter *adapter); void r8712_scan_timeout_handler(struct _adapter *adapter); void _r8712_dhcp_timeout_handler(struct _adapter *adapter); -void _r8712_wdg_timeout_handler(struct _adapter *adapter); struct wlan_network *_r8712_alloc_network(struct mlme_priv *pmlmepriv); sint r8712_if_up(struct _adapter *padapter); void r8712_joinbss_reset(struct _adapter *padapter); diff --git a/drivers/staging/rtl8712/rtl871x_mp.c b/drivers/staging/rtl8712/rtl871x_mp.c index ba379506da3f..edd3da05fc06 100644 --- a/drivers/staging/rtl8712/rtl871x_mp.c +++ b/drivers/staging/rtl8712/rtl871x_mp.c @@ -709,20 +709,18 @@ static u32 GetPhyRxPktCounts(struct _adapter *pAdapter, u32 selbit) u32 r8712_GetPhyRxPktReceived(struct _adapter *pAdapter) { - u32 OFDM_cnt = 0, CCK_cnt = 0, HT_cnt = 0; + u32 OFDM_cnt = GetPhyRxPktCounts(pAdapter, OFDM_MPDU_OK_BIT); + u32 CCK_cnt = GetPhyRxPktCounts(pAdapter, CCK_MPDU_OK_BIT); + u32 HT_cnt = GetPhyRxPktCounts(pAdapter, HT_MPDU_OK_BIT); - OFDM_cnt = GetPhyRxPktCounts(pAdapter, OFDM_MPDU_OK_BIT); - CCK_cnt = GetPhyRxPktCounts(pAdapter, CCK_MPDU_OK_BIT); - HT_cnt = GetPhyRxPktCounts(pAdapter, HT_MPDU_OK_BIT); return OFDM_cnt + CCK_cnt + HT_cnt; } u32 r8712_GetPhyRxPktCRC32Error(struct _adapter *pAdapter) { - u32 OFDM_cnt = 0, CCK_cnt = 0, HT_cnt = 0; + u32 OFDM_cnt = GetPhyRxPktCounts(pAdapter, OFDM_MPDU_FAIL_BIT); + u32 CCK_cnt = GetPhyRxPktCounts(pAdapter, CCK_MPDU_FAIL_BIT); + u32 HT_cnt = GetPhyRxPktCounts(pAdapter, HT_MPDU_FAIL_BIT); - OFDM_cnt = GetPhyRxPktCounts(pAdapter, OFDM_MPDU_FAIL_BIT); - CCK_cnt = GetPhyRxPktCounts(pAdapter, CCK_MPDU_FAIL_BIT); - HT_cnt = GetPhyRxPktCounts(pAdapter, HT_MPDU_FAIL_BIT); return OFDM_cnt + CCK_cnt + HT_cnt; } diff --git a/drivers/staging/rtl8712/rtl871x_mp_ioctl.c b/drivers/staging/rtl8712/rtl871x_mp_ioctl.c index 588346da1412..aa8f8500cbb2 100644 --- a/drivers/staging/rtl8712/rtl871x_mp_ioctl.c +++ b/drivers/staging/rtl8712/rtl871x_mp_ioctl.c @@ -153,7 +153,7 @@ static int mp_start_test(struct _adapter *padapter) struct sta_info *psta; unsigned long length; unsigned long irqL; - int res = _SUCCESS; + int res = 0; /* 3 1. initialize a new struct wlan_bssid_ex */ memcpy(bssid.MacAddress, pmppriv->network_macaddr, ETH_ALEN); @@ -187,7 +187,7 @@ static int mp_start_test(struct _adapter *padapter) r8712_free_stainfo(padapter, psta); psta = r8712_alloc_stainfo(&padapter->stapriv, bssid.MacAddress); if (psta == NULL) { - res = _FAIL; + res = -ENOMEM; goto end_of_mp_start_test; } /* 3 3. join pseudo AdHoc */ @@ -231,22 +231,6 @@ end_of_mp_stop_test: return _SUCCESS; } -int mp_start_joinbss(struct _adapter *padapter, struct ndis_802_11_ssid *pssid) -{ - struct mp_priv *pmppriv = &padapter->mppriv; - struct mlme_priv *pmlmepriv = &padapter->mlmepriv; - unsigned char res = _SUCCESS; - - if (!check_fwstate(pmlmepriv, WIFI_MP_STATE)) - return _FAIL; - if (!check_fwstate(pmlmepriv, _FW_LINKED)) - return _FAIL; - _clr_fwstate_(pmlmepriv, _FW_LINKED); - res = r8712_setassocsta_cmd(padapter, pmppriv->network_macaddr); - set_fwstate(pmlmepriv, _FW_UNDER_LINKING); - return res; -} - uint oid_rt_pro_set_data_rate_hdl(struct oid_par_priv *poid_par_priv) { @@ -278,7 +262,7 @@ uint oid_rt_pro_start_test_hdl(struct oid_par_priv *poid_par_priv) return RNDIS_STATUS_NOT_ACCEPTED; mode = *((u32 *)poid_par_priv->information_buf); Adapter->mppriv.mode = mode;/* 1 for loopback*/ - if (mp_start_test(Adapter) == _FAIL) + if (mp_start_test(Adapter)) status = RNDIS_STATUS_NOT_ACCEPTED; r8712_write8(Adapter, MSR, 1); /* Link in ad hoc network, 0x1025004C */ r8712_write8(Adapter, RCR, 0); /* RCR : disable all pkt, 0x10250048 */ @@ -661,11 +645,6 @@ uint oid_rt_pro_write_register_hdl(struct oid_par_priv *poid_par_priv) status = RNDIS_STATUS_NOT_ACCEPTED; break; } - - if ((status == RNDIS_STATUS_SUCCESS) && - (RegRWStruct->offset == HIMR) && - (RegRWStruct->width == 4)) - Adapter->ImrContent = RegRWStruct->value; } return status; } diff --git a/drivers/staging/rtl8712/rtl871x_mp_ioctl.h b/drivers/staging/rtl8712/rtl871x_mp_ioctl.h index 44cd911f2aa1..64e2ae436625 100644 --- a/drivers/staging/rtl8712/rtl871x_mp_ioctl.h +++ b/drivers/staging/rtl8712/rtl871x_mp_ioctl.h @@ -71,8 +71,6 @@ struct DR_VARIABLE_STRUCT { u32 variable; }; -int mp_start_joinbss(struct _adapter *padapter, struct ndis_802_11_ssid *pssid); - /* oid_rtl_seg_87_11_00 */ uint oid_rt_pro_read_register_hdl(struct oid_par_priv *poid_par_priv); uint oid_rt_pro_write_register_hdl(struct oid_par_priv *poid_par_priv); diff --git a/drivers/staging/rtl8712/rtl871x_recv.c b/drivers/staging/rtl8712/rtl871x_recv.c index 28f736913292..5298fe603437 100644 --- a/drivers/staging/rtl8712/rtl871x_recv.c +++ b/drivers/staging/rtl8712/rtl871x_recv.c @@ -151,7 +151,7 @@ sint r8712_recvframe_chkmic(struct _adapter *adapter, if (prxattrib->encrypt == _TKIP_) { /* calculate mic code */ if (stainfo != NULL) { - if (IS_MCAST(prxattrib->ra)) { + if (is_multicast_ether_addr(prxattrib->ra)) { iv = precvframe->u.hdr.rx_data + prxattrib->hdrlen; idx = iv[3]; @@ -180,12 +180,12 @@ sint r8712_recvframe_chkmic(struct _adapter *adapter, if (bmic_err) { if (prxattrib->bdecrypted) r8712_handle_tkip_mic_err(adapter, - (u8)IS_MCAST(prxattrib->ra)); + (u8)is_multicast_ether_addr(prxattrib->ra)); res = _FAIL; } else { /* mic checked ok */ if (!psecuritypriv->bcheck_grpkey && - IS_MCAST(prxattrib->ra)) + is_multicast_ether_addr(prxattrib->ra)) psecuritypriv->bcheck_grpkey = true; } recvframe_pull_tail(precvframe, 8); @@ -305,7 +305,7 @@ static sint sta2sta_data_frame(struct _adapter *adapter, u8 *mybssid = get_bssid(pmlmepriv); u8 *myhwaddr = myid(&adapter->eeprompriv); u8 *sta_addr = NULL; - sint bmcast = IS_MCAST(pattrib->dst); + bool bmcast = is_multicast_ether_addr(pattrib->dst); if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) || check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)) { @@ -331,7 +331,7 @@ static sint sta2sta_data_frame(struct _adapter *adapter, /* For AP mode, if DA == MCAST, then BSSID should * be also MCAST */ - if (!IS_MCAST(pattrib->bssid)) + if (!is_multicast_ether_addr(pattrib->bssid)) return _FAIL; } else { /* not mc-frame */ /* For AP mode, if DA is non-MCAST, then it must be @@ -373,7 +373,7 @@ static sint ap2sta_data_frame(struct _adapter *adapter, struct mlme_priv *pmlmepriv = &adapter->mlmepriv; u8 *mybssid = get_bssid(pmlmepriv); u8 *myhwaddr = myid(&adapter->eeprompriv); - sint bmcast = IS_MCAST(pattrib->dst); + bool bmcast = is_multicast_ether_addr(pattrib->dst); if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) && check_fwstate(pmlmepriv, _FW_LINKED)) { @@ -532,7 +532,7 @@ static sint validate_recv_data_frame(struct _adapter *adapter, if (pattrib->privacy) { GET_ENCRY_ALGO(psecuritypriv, psta, pattrib->encrypt, - IS_MCAST(pattrib->ra)); + is_multicast_ether_addr(pattrib->ra)); SET_ICE_IV_LEN(pattrib->iv_len, pattrib->icv_len, pattrib->encrypt); } else { diff --git a/drivers/staging/rtl8712/rtl871x_security.c b/drivers/staging/rtl8712/rtl871x_security.c index f82645011d02..693008bba83e 100644 --- a/drivers/staging/rtl8712/rtl871x_security.c +++ b/drivers/staging/rtl8712/rtl871x_security.c @@ -665,7 +665,7 @@ u32 r8712_tkip_decrypt(struct _adapter *padapter, u8 *precvframe) length = ((union recv_frame *)precvframe)-> u.hdr.len - prxattrib->hdrlen - prxattrib->iv_len; - if (IS_MCAST(prxattrib->ra)) { + if (is_multicast_ether_addr(prxattrib->ra)) { idx = iv[3]; prwskey = &psecuritypriv->XGrpKey[ ((idx >> 6) & 0x3) - 1].skey[0]; @@ -1368,7 +1368,7 @@ u32 r8712_aes_decrypt(struct _adapter *padapter, u8 *precvframe) stainfo = r8712_get_stainfo(&padapter->stapriv, &prxattrib->ta[0]); if (stainfo != NULL) { - if (IS_MCAST(prxattrib->ra)) { + if (is_multicast_ether_addr(prxattrib->ra)) { iv = pframe + prxattrib->hdrlen; idx = iv[3]; prwskey = &psecuritypriv->XGrpKey[ diff --git a/drivers/staging/rtl8712/rtl871x_sta_mgt.c b/drivers/staging/rtl8712/rtl871x_sta_mgt.c index 7c30b9e68e70..653812c5d5a8 100644 --- a/drivers/staging/rtl8712/rtl871x_sta_mgt.c +++ b/drivers/staging/rtl8712/rtl871x_sta_mgt.c @@ -34,7 +34,7 @@ static void _init_stainfo(struct sta_info *psta) INIT_LIST_HEAD(&psta->auth_list); } -u32 _r8712_init_sta_priv(struct sta_priv *pstapriv) +int _r8712_init_sta_priv(struct sta_priv *pstapriv) { struct sta_info *psta; s32 i; @@ -42,7 +42,7 @@ u32 _r8712_init_sta_priv(struct sta_priv *pstapriv) pstapriv->pallocated_stainfo_buf = kmalloc(sizeof(struct sta_info) * NUM_STA + 4, GFP_ATOMIC); if (!pstapriv->pallocated_stainfo_buf) - return _FAIL; + return -ENOMEM; pstapriv->pstainfo_buf = pstapriv->pallocated_stainfo_buf + 4 - ((addr_t)(pstapriv->pallocated_stainfo_buf) & 3); _init_queue(&pstapriv->free_sta_queue); @@ -59,7 +59,7 @@ u32 _r8712_init_sta_priv(struct sta_priv *pstapriv) } INIT_LIST_HEAD(&pstapriv->asoc_list); INIT_LIST_HEAD(&pstapriv->auth_list); - return _SUCCESS; + return 0; } /* this function is used to free the memory of lock || sema for all stainfos */ @@ -77,14 +77,13 @@ static void mfree_all_stainfo(struct sta_priv *pstapriv) spin_unlock_irqrestore(&pstapriv->sta_hash_lock, irqL); } -u32 _r8712_free_sta_priv(struct sta_priv *pstapriv) +void _r8712_free_sta_priv(struct sta_priv *pstapriv) { if (pstapriv) { /* be done before free sta_hash_lock */ mfree_all_stainfo(pstapriv); kfree(pstapriv->pallocated_stainfo_buf); } - return _SUCCESS; } struct sta_info *r8712_alloc_stainfo(struct sta_priv *pstapriv, u8 *hwaddr) diff --git a/drivers/staging/rtl8712/rtl871x_xmit.c b/drivers/staging/rtl8712/rtl871x_xmit.c index f6fe8ea12961..0a26d71e5340 100644 --- a/drivers/staging/rtl8712/rtl871x_xmit.c +++ b/drivers/staging/rtl8712/rtl871x_xmit.c @@ -133,13 +133,14 @@ sint _r8712_init_xmit_priv(struct xmit_priv *pxmitpriv, pxmitbuf->pbuf = pxmitbuf->pallocated_buf + XMITBUF_ALIGN_SZ - ((addr_t) (pxmitbuf->pallocated_buf) & (XMITBUF_ALIGN_SZ - 1)); - r8712_xmit_resource_alloc(padapter, pxmitbuf); + if (r8712_xmit_resource_alloc(padapter, pxmitbuf)) + return _FAIL; list_add_tail(&pxmitbuf->list, &(pxmitpriv->free_xmitbuf_queue.queue)); pxmitbuf++; } pxmitpriv->free_xmitbuf_cnt = NR_XMITBUFF; - INIT_WORK(&padapter->wkFilterRxFF0, r8712_SetFilter); + INIT_WORK(&padapter->wk_filter_rx_ff0, r8712_SetFilter); alloc_hwxmits(padapter); init_hwxmits(pxmitpriv->hwxmits, pxmitpriv->hwxmit_entry); tasklet_init(&pxmitpriv->xmit_tasklet, @@ -181,7 +182,7 @@ sint r8712_update_attrib(struct _adapter *padapter, _pkt *pkt, struct tx_cmd txdesc; - sint bmcast; + bool bmcast; struct sta_priv *pstapriv = &padapter->stapriv; struct security_priv *psecuritypriv = &padapter->securitypriv; struct mlme_priv *pmlmepriv = &padapter->mlmepriv; @@ -257,7 +258,7 @@ sint r8712_update_attrib(struct _adapter *padapter, _pkt *pkt, } } } - bmcast = IS_MCAST(pattrib->ra); + bmcast = is_multicast_ether_addr(pattrib->ra); /* get sta_info*/ if (bmcast) { psta = r8712_get_bcmc_stainfo(padapter); @@ -353,7 +354,7 @@ static sint xmitframe_addmic(struct _adapter *padapter, struct security_priv *psecuritypriv = &padapter->securitypriv; struct xmit_priv *pxmitpriv = &padapter->xmitpriv; u8 priority[4] = {0x0, 0x0, 0x0, 0x0}; - sint bmcst = IS_MCAST(pattrib->ra); + bool bmcst = is_multicast_ether_addr(pattrib->ra); if (pattrib->psta) stainfo = pattrib->psta; @@ -523,7 +524,7 @@ static sint make_wlanhdr(struct _adapter *padapter, u8 *hdr, /* Update Seq Num will be handled by f/w */ { struct sta_info *psta; - sint bmcst = IS_MCAST(pattrib->ra); + bool bmcst = is_multicast_ether_addr(pattrib->ra); if (pattrib->psta) { psta = pattrib->psta; @@ -594,7 +595,7 @@ sint r8712_xmitframe_coalesce(struct _adapter *padapter, _pkt *pkt, struct xmit_priv *pxmitpriv = &padapter->xmitpriv; struct pkt_attrib *pattrib = &pxmitframe->attrib; u8 *pbuf_start; - sint bmcst = IS_MCAST(pattrib->ra); + bool bmcst = is_multicast_ether_addr(pattrib->ra); if (pattrib->psta == NULL) return _FAIL; @@ -903,7 +904,7 @@ sint r8712_xmit_classifier(struct _adapter *padapter, struct pkt_attrib *pattrib = &pxmitframe->attrib; struct sta_priv *pstapriv = &padapter->stapriv; struct mlme_priv *pmlmepriv = &padapter->mlmepriv; - sint bmcst = IS_MCAST(pattrib->ra); + bool bmcst = is_multicast_ether_addr(pattrib->ra); if (pattrib->psta) { psta = pattrib->psta; diff --git a/drivers/staging/rtl8712/rtl871x_xmit.h b/drivers/staging/rtl8712/rtl871x_xmit.h index 3bea2e374f13..4199cb586fb1 100644 --- a/drivers/staging/rtl8712/rtl871x_xmit.h +++ b/drivers/staging/rtl8712/rtl871x_xmit.h @@ -148,8 +148,8 @@ struct xmit_frame { _pkt *pkt; int frame_tag; struct _adapter *padapter; - u8 *buf_addr; - struct xmit_buf *pxmitbuf; + u8 *buf_addr; + struct xmit_buf *pxmitbuf; u8 *mem_addr; u16 sz[8]; struct urb *pxmit_urb[8]; diff --git a/drivers/staging/rtl8712/sta_info.h b/drivers/staging/rtl8712/sta_info.h index 45dbed10295f..d042d900f30c 100644 --- a/drivers/staging/rtl8712/sta_info.h +++ b/drivers/staging/rtl8712/sta_info.h @@ -119,8 +119,8 @@ static inline u32 wifi_mac_hash(u8 *mac) return x; } -u32 _r8712_init_sta_priv(struct sta_priv *pstapriv); -u32 _r8712_free_sta_priv(struct sta_priv *pstapriv); +int _r8712_init_sta_priv(struct sta_priv *pstapriv); +void _r8712_free_sta_priv(struct sta_priv *pstapriv); struct sta_info *r8712_alloc_stainfo(struct sta_priv *pstapriv, u8 *hwaddr); void r8712_free_stainfo(struct _adapter *padapter, struct sta_info *psta); diff --git a/drivers/staging/rtl8712/usb_halinit.c b/drivers/staging/rtl8712/usb_halinit.c index 02e73c2412d4..6cc4a704c3a0 100644 --- a/drivers/staging/rtl8712/usb_halinit.c +++ b/drivers/staging/rtl8712/usb_halinit.c @@ -21,258 +21,258 @@ #include "usb_ops.h" #include "usb_osintf.h" -u8 r8712_usb_hal_bus_init(struct _adapter *padapter) +u8 r8712_usb_hal_bus_init(struct _adapter *adapter) { u8 val8 = 0; u8 ret = _SUCCESS; int PollingCnt = 20; - struct registry_priv *pregistrypriv = &padapter->registrypriv; + struct registry_priv *registrypriv = &adapter->registrypriv; - if (pregistrypriv->chip_version == RTL8712_FPGA) { + if (registrypriv->chip_version == RTL8712_FPGA) { val8 = 0x01; /* switch to 80M clock */ - r8712_write8(padapter, SYS_CLKR, val8); - val8 = r8712_read8(padapter, SPS1_CTRL); + r8712_write8(adapter, SYS_CLKR, val8); + val8 = r8712_read8(adapter, SPS1_CTRL); val8 = val8 | 0x01; /* enable VSPS12 LDO Macro block */ - r8712_write8(padapter, SPS1_CTRL, val8); - val8 = r8712_read8(padapter, AFE_MISC); + r8712_write8(adapter, SPS1_CTRL, val8); + val8 = r8712_read8(adapter, AFE_MISC); val8 = val8 | 0x01; /* Enable AFE Macro Block's Bandgap */ - r8712_write8(padapter, AFE_MISC, val8); - val8 = r8712_read8(padapter, LDOA15_CTRL); + r8712_write8(adapter, AFE_MISC, val8); + val8 = r8712_read8(adapter, LDOA15_CTRL); val8 = val8 | 0x01; /* enable LDOA15 block */ - r8712_write8(padapter, LDOA15_CTRL, val8); - val8 = r8712_read8(padapter, SPS1_CTRL); + r8712_write8(adapter, LDOA15_CTRL, val8); + val8 = r8712_read8(adapter, SPS1_CTRL); val8 = val8 | 0x02; /* Enable VSPS12_SW Macro Block */ - r8712_write8(padapter, SPS1_CTRL, val8); - val8 = r8712_read8(padapter, AFE_MISC); + r8712_write8(adapter, SPS1_CTRL, val8); + val8 = r8712_read8(adapter, AFE_MISC); val8 = val8 | 0x02; /* Enable AFE Macro Block's Mbias */ - r8712_write8(padapter, AFE_MISC, val8); - val8 = r8712_read8(padapter, SYS_ISO_CTRL + 1); + r8712_write8(adapter, AFE_MISC, val8); + val8 = r8712_read8(adapter, SYS_ISO_CTRL + 1); val8 = val8 | 0x08; /* isolate PCIe Analog 1.2V to PCIe 3.3V and PCIE Digital */ - r8712_write8(padapter, SYS_ISO_CTRL + 1, val8); - val8 = r8712_read8(padapter, SYS_ISO_CTRL + 1); + r8712_write8(adapter, SYS_ISO_CTRL + 1, val8); + val8 = r8712_read8(adapter, SYS_ISO_CTRL + 1); val8 = val8 & 0xEF; /* attatch AFE PLL to MACTOP/BB/PCIe Digital */ - r8712_write8(padapter, SYS_ISO_CTRL + 1, val8); - val8 = r8712_read8(padapter, AFE_XTAL_CTRL + 1); + r8712_write8(adapter, SYS_ISO_CTRL + 1, val8); + val8 = r8712_read8(adapter, AFE_XTAL_CTRL + 1); val8 = val8 & 0xFB; /* enable AFE clock */ - r8712_write8(padapter, AFE_XTAL_CTRL + 1, val8); - val8 = r8712_read8(padapter, AFE_PLL_CTRL); + r8712_write8(adapter, AFE_XTAL_CTRL + 1, val8); + val8 = r8712_read8(adapter, AFE_PLL_CTRL); val8 = val8 | 0x01; /* Enable AFE PLL Macro Block */ - r8712_write8(padapter, AFE_PLL_CTRL, val8); + r8712_write8(adapter, AFE_PLL_CTRL, val8); val8 = 0xEE; /* release isolation AFE PLL & MD */ - r8712_write8(padapter, SYS_ISO_CTRL, val8); - val8 = r8712_read8(padapter, SYS_CLKR + 1); + r8712_write8(adapter, SYS_ISO_CTRL, val8); + val8 = r8712_read8(adapter, SYS_CLKR + 1); val8 = val8 | 0x08; /* enable MAC clock */ - r8712_write8(padapter, SYS_CLKR + 1, val8); - val8 = r8712_read8(padapter, SYS_FUNC_EN + 1); + r8712_write8(adapter, SYS_CLKR + 1, val8); + val8 = r8712_read8(adapter, SYS_FUNC_EN + 1); val8 = val8 | 0x08; /* enable Core digital and enable IOREG R/W */ - r8712_write8(padapter, SYS_FUNC_EN + 1, val8); + r8712_write8(adapter, SYS_FUNC_EN + 1, val8); val8 = val8 | 0x80; /* enable REG_EN */ - r8712_write8(padapter, SYS_FUNC_EN + 1, val8); - val8 = r8712_read8(padapter, SYS_CLKR + 1); + r8712_write8(adapter, SYS_FUNC_EN + 1, val8); + val8 = r8712_read8(adapter, SYS_CLKR + 1); val8 = (val8 | 0x80) & 0xBF; /* switch the control path */ - r8712_write8(padapter, SYS_CLKR + 1, val8); + r8712_write8(adapter, SYS_CLKR + 1, val8); val8 = 0xFC; - r8712_write8(padapter, CR, val8); + r8712_write8(adapter, CR, val8); val8 = 0x37; - r8712_write8(padapter, CR + 1, val8); + r8712_write8(adapter, CR + 1, val8); /* reduce EndPoint & init it */ - r8712_write8(padapter, 0x102500ab, r8712_read8(padapter, + r8712_write8(adapter, 0x102500ab, r8712_read8(adapter, 0x102500ab) | BIT(6) | BIT(7)); /* consideration of power consumption - init */ - r8712_write8(padapter, 0x10250008, r8712_read8(padapter, + r8712_write8(adapter, 0x10250008, r8712_read8(adapter, 0x10250008) & 0xfffffffb); - } else if (pregistrypriv->chip_version == RTL8712_1stCUT) { + } else if (registrypriv->chip_version == RTL8712_1stCUT) { /* Initialization for power on sequence, */ - r8712_write8(padapter, SPS0_CTRL + 1, 0x53); - r8712_write8(padapter, SPS0_CTRL, 0x57); + r8712_write8(adapter, SPS0_CTRL + 1, 0x53); + r8712_write8(adapter, SPS0_CTRL, 0x57); /* Enable AFE Macro Block's Bandgap and Enable AFE Macro * Block's Mbias */ - val8 = r8712_read8(padapter, AFE_MISC); - r8712_write8(padapter, AFE_MISC, (val8 | AFE_MISC_BGEN | + val8 = r8712_read8(adapter, AFE_MISC); + r8712_write8(adapter, AFE_MISC, (val8 | AFE_MISC_BGEN | AFE_MISC_MBEN)); /* Enable LDOA15 block */ - val8 = r8712_read8(padapter, LDOA15_CTRL); - r8712_write8(padapter, LDOA15_CTRL, (val8 | LDA15_EN)); - val8 = r8712_read8(padapter, SPS1_CTRL); - r8712_write8(padapter, SPS1_CTRL, (val8 | SPS1_LDEN)); + val8 = r8712_read8(adapter, LDOA15_CTRL); + r8712_write8(adapter, LDOA15_CTRL, (val8 | LDA15_EN)); + val8 = r8712_read8(adapter, SPS1_CTRL); + r8712_write8(adapter, SPS1_CTRL, (val8 | SPS1_LDEN)); msleep(20); /* Enable Switch Regulator Block */ - val8 = r8712_read8(padapter, SPS1_CTRL); - r8712_write8(padapter, SPS1_CTRL, (val8 | SPS1_SWEN)); - r8712_write32(padapter, SPS1_CTRL, 0x00a7b267); - val8 = r8712_read8(padapter, SYS_ISO_CTRL + 1); - r8712_write8(padapter, SYS_ISO_CTRL + 1, (val8 | 0x08)); + val8 = r8712_read8(adapter, SPS1_CTRL); + r8712_write8(adapter, SPS1_CTRL, (val8 | SPS1_SWEN)); + r8712_write32(adapter, SPS1_CTRL, 0x00a7b267); + val8 = r8712_read8(adapter, SYS_ISO_CTRL + 1); + r8712_write8(adapter, SYS_ISO_CTRL + 1, (val8 | 0x08)); /* Engineer Packet CP test Enable */ - val8 = r8712_read8(padapter, SYS_FUNC_EN + 1); - r8712_write8(padapter, SYS_FUNC_EN + 1, (val8 | 0x20)); - val8 = r8712_read8(padapter, SYS_ISO_CTRL + 1); - r8712_write8(padapter, SYS_ISO_CTRL + 1, (val8 & 0x6F)); + val8 = r8712_read8(adapter, SYS_FUNC_EN + 1); + r8712_write8(adapter, SYS_FUNC_EN + 1, (val8 | 0x20)); + val8 = r8712_read8(adapter, SYS_ISO_CTRL + 1); + r8712_write8(adapter, SYS_ISO_CTRL + 1, (val8 & 0x6F)); /* Enable AFE clock */ - val8 = r8712_read8(padapter, AFE_XTAL_CTRL + 1); - r8712_write8(padapter, AFE_XTAL_CTRL + 1, (val8 & 0xfb)); + val8 = r8712_read8(adapter, AFE_XTAL_CTRL + 1); + r8712_write8(adapter, AFE_XTAL_CTRL + 1, (val8 & 0xfb)); /* Enable AFE PLL Macro Block */ - val8 = r8712_read8(padapter, AFE_PLL_CTRL); - r8712_write8(padapter, AFE_PLL_CTRL, (val8 | 0x11)); + val8 = r8712_read8(adapter, AFE_PLL_CTRL); + r8712_write8(adapter, AFE_PLL_CTRL, (val8 | 0x11)); /* Attach AFE PLL to MACTOP/BB/PCIe Digital */ - val8 = r8712_read8(padapter, SYS_ISO_CTRL); - r8712_write8(padapter, SYS_ISO_CTRL, (val8 & 0xEE)); + val8 = r8712_read8(adapter, SYS_ISO_CTRL); + r8712_write8(adapter, SYS_ISO_CTRL, (val8 & 0xEE)); /* Switch to 40M clock */ - val8 = r8712_read8(padapter, SYS_CLKR); - r8712_write8(padapter, SYS_CLKR, val8 & (~SYS_CLKSEL)); + val8 = r8712_read8(adapter, SYS_CLKR); + r8712_write8(adapter, SYS_CLKR, val8 & (~SYS_CLKSEL)); /* SSC Disable */ - val8 = r8712_read8(padapter, SYS_CLKR); + val8 = r8712_read8(adapter, SYS_CLKR); /* Enable MAC clock */ - val8 = r8712_read8(padapter, SYS_CLKR + 1); - r8712_write8(padapter, SYS_CLKR + 1, (val8 | 0x18)); + val8 = r8712_read8(adapter, SYS_CLKR + 1); + r8712_write8(adapter, SYS_CLKR + 1, (val8 | 0x18)); /* Revised POS, */ - r8712_write8(padapter, PMC_FSM, 0x02); + r8712_write8(adapter, PMC_FSM, 0x02); /* Enable Core digital and enable IOREG R/W */ - val8 = r8712_read8(padapter, SYS_FUNC_EN + 1); - r8712_write8(padapter, SYS_FUNC_EN + 1, (val8 | 0x08)); + val8 = r8712_read8(adapter, SYS_FUNC_EN + 1); + r8712_write8(adapter, SYS_FUNC_EN + 1, (val8 | 0x08)); /* Enable REG_EN */ - val8 = r8712_read8(padapter, SYS_FUNC_EN + 1); - r8712_write8(padapter, SYS_FUNC_EN + 1, (val8 | 0x80)); + val8 = r8712_read8(adapter, SYS_FUNC_EN + 1); + r8712_write8(adapter, SYS_FUNC_EN + 1, (val8 | 0x80)); /* Switch the control path to FW */ - val8 = r8712_read8(padapter, SYS_CLKR + 1); - r8712_write8(padapter, SYS_CLKR + 1, (val8 | 0x80) & 0xBF); - r8712_write8(padapter, CR, 0xFC); - r8712_write8(padapter, CR + 1, 0x37); + val8 = r8712_read8(adapter, SYS_CLKR + 1); + r8712_write8(adapter, SYS_CLKR + 1, (val8 | 0x80) & 0xBF); + r8712_write8(adapter, CR, 0xFC); + r8712_write8(adapter, CR + 1, 0x37); /* Fix the RX FIFO issue(usb error), */ - val8 = r8712_read8(padapter, 0x1025FE5c); - r8712_write8(padapter, 0x1025FE5c, (val8 | BIT(7))); - val8 = r8712_read8(padapter, 0x102500ab); - r8712_write8(padapter, 0x102500ab, (val8 | BIT(6) | BIT(7))); + val8 = r8712_read8(adapter, 0x1025FE5c); + r8712_write8(adapter, 0x1025FE5c, (val8 | BIT(7))); + val8 = r8712_read8(adapter, 0x102500ab); + r8712_write8(adapter, 0x102500ab, (val8 | BIT(6) | BIT(7))); /* For power save, used this in the bit file after 970621 */ - val8 = r8712_read8(padapter, SYS_CLKR); - r8712_write8(padapter, SYS_CLKR, val8 & (~CPU_CLKSEL)); - } else if (pregistrypriv->chip_version == RTL8712_2ndCUT || - pregistrypriv->chip_version == RTL8712_3rdCUT) { + val8 = r8712_read8(adapter, SYS_CLKR); + r8712_write8(adapter, SYS_CLKR, val8 & (~CPU_CLKSEL)); + } else if (registrypriv->chip_version == RTL8712_2ndCUT || + registrypriv->chip_version == RTL8712_3rdCUT) { /* Initialization for power on sequence, * E-Fuse leakage prevention sequence */ - r8712_write8(padapter, 0x37, 0xb0); + r8712_write8(adapter, 0x37, 0xb0); msleep(20); - r8712_write8(padapter, 0x37, 0x30); + r8712_write8(adapter, 0x37, 0x30); /* Set control path switch to HW control and reset Digital Core, * CPU Core and MAC I/O to solve FW download fail when system * from resume sate. */ - val8 = r8712_read8(padapter, SYS_CLKR + 1); + val8 = r8712_read8(adapter, SYS_CLKR + 1); if (val8 & 0x80) { val8 &= 0x3f; - r8712_write8(padapter, SYS_CLKR + 1, val8); + r8712_write8(adapter, SYS_CLKR + 1, val8); } - val8 = r8712_read8(padapter, SYS_FUNC_EN + 1); + val8 = r8712_read8(adapter, SYS_FUNC_EN + 1); val8 &= 0x73; - r8712_write8(padapter, SYS_FUNC_EN + 1, val8); + r8712_write8(adapter, SYS_FUNC_EN + 1, val8); msleep(20); /* Revised POS, */ /* Enable AFE Macro Block's Bandgap and Enable AFE Macro * Block's Mbias */ - r8712_write8(padapter, SPS0_CTRL + 1, 0x53); - r8712_write8(padapter, SPS0_CTRL, 0x57); - val8 = r8712_read8(padapter, AFE_MISC); + r8712_write8(adapter, SPS0_CTRL + 1, 0x53); + r8712_write8(adapter, SPS0_CTRL, 0x57); + val8 = r8712_read8(adapter, AFE_MISC); /*Bandgap*/ - r8712_write8(padapter, AFE_MISC, (val8 | AFE_MISC_BGEN)); - r8712_write8(padapter, AFE_MISC, (val8 | AFE_MISC_BGEN | + r8712_write8(adapter, AFE_MISC, (val8 | AFE_MISC_BGEN)); + r8712_write8(adapter, AFE_MISC, (val8 | AFE_MISC_BGEN | AFE_MISC_MBEN | AFE_MISC_I32_EN)); /* Enable PLL Power (LDOA15V) */ - val8 = r8712_read8(padapter, LDOA15_CTRL); - r8712_write8(padapter, LDOA15_CTRL, (val8 | LDA15_EN)); + val8 = r8712_read8(adapter, LDOA15_CTRL); + r8712_write8(adapter, LDOA15_CTRL, (val8 | LDA15_EN)); /* Enable LDOV12D block */ - val8 = r8712_read8(padapter, LDOV12D_CTRL); - r8712_write8(padapter, LDOV12D_CTRL, (val8 | LDV12_EN)); - val8 = r8712_read8(padapter, SYS_ISO_CTRL + 1); - r8712_write8(padapter, SYS_ISO_CTRL + 1, (val8 | 0x08)); + val8 = r8712_read8(adapter, LDOV12D_CTRL); + r8712_write8(adapter, LDOV12D_CTRL, (val8 | LDV12_EN)); + val8 = r8712_read8(adapter, SYS_ISO_CTRL + 1); + r8712_write8(adapter, SYS_ISO_CTRL + 1, (val8 | 0x08)); /* Engineer Packet CP test Enable */ - val8 = r8712_read8(padapter, SYS_FUNC_EN + 1); - r8712_write8(padapter, SYS_FUNC_EN + 1, (val8 | 0x20)); + val8 = r8712_read8(adapter, SYS_FUNC_EN + 1); + r8712_write8(adapter, SYS_FUNC_EN + 1, (val8 | 0x20)); /* Support 64k IMEM */ - val8 = r8712_read8(padapter, SYS_ISO_CTRL + 1); - r8712_write8(padapter, SYS_ISO_CTRL + 1, (val8 & 0x68)); + val8 = r8712_read8(adapter, SYS_ISO_CTRL + 1); + r8712_write8(adapter, SYS_ISO_CTRL + 1, (val8 & 0x68)); /* Enable AFE clock */ - val8 = r8712_read8(padapter, AFE_XTAL_CTRL + 1); - r8712_write8(padapter, AFE_XTAL_CTRL + 1, (val8 & 0xfb)); + val8 = r8712_read8(adapter, AFE_XTAL_CTRL + 1); + r8712_write8(adapter, AFE_XTAL_CTRL + 1, (val8 & 0xfb)); /* Enable AFE PLL Macro Block */ - val8 = r8712_read8(padapter, AFE_PLL_CTRL); - r8712_write8(padapter, AFE_PLL_CTRL, (val8 | 0x11)); + val8 = r8712_read8(adapter, AFE_PLL_CTRL); + r8712_write8(adapter, AFE_PLL_CTRL, (val8 | 0x11)); /* Some sample will download fw failure. The clock will be * stable with 500 us delay after reset the PLL * TODO: When usleep is added to kernel, change next 3 * udelay(500) to usleep(500) */ udelay(500); - r8712_write8(padapter, AFE_PLL_CTRL, (val8 | 0x51)); + r8712_write8(adapter, AFE_PLL_CTRL, (val8 | 0x51)); udelay(500); - r8712_write8(padapter, AFE_PLL_CTRL, (val8 | 0x11)); + r8712_write8(adapter, AFE_PLL_CTRL, (val8 | 0x11)); udelay(500); /* Attach AFE PLL to MACTOP/BB/PCIe Digital */ - val8 = r8712_read8(padapter, SYS_ISO_CTRL); - r8712_write8(padapter, SYS_ISO_CTRL, (val8 & 0xEE)); + val8 = r8712_read8(adapter, SYS_ISO_CTRL); + r8712_write8(adapter, SYS_ISO_CTRL, (val8 & 0xEE)); /* Switch to 40M clock */ - r8712_write8(padapter, SYS_CLKR, 0x00); + r8712_write8(adapter, SYS_CLKR, 0x00); /* CPU Clock and 80M Clock SSC Disable to overcome FW download * fail timing issue. */ - val8 = r8712_read8(padapter, SYS_CLKR); - r8712_write8(padapter, SYS_CLKR, (val8 | 0xa0)); + val8 = r8712_read8(adapter, SYS_CLKR); + r8712_write8(adapter, SYS_CLKR, (val8 | 0xa0)); /* Enable MAC clock */ - val8 = r8712_read8(padapter, SYS_CLKR + 1); - r8712_write8(padapter, SYS_CLKR + 1, (val8 | 0x18)); + val8 = r8712_read8(adapter, SYS_CLKR + 1); + r8712_write8(adapter, SYS_CLKR + 1, (val8 | 0x18)); /* Revised POS, */ - r8712_write8(padapter, PMC_FSM, 0x02); + r8712_write8(adapter, PMC_FSM, 0x02); /* Enable Core digital and enable IOREG R/W */ - val8 = r8712_read8(padapter, SYS_FUNC_EN + 1); - r8712_write8(padapter, SYS_FUNC_EN + 1, (val8 | 0x08)); + val8 = r8712_read8(adapter, SYS_FUNC_EN + 1); + r8712_write8(adapter, SYS_FUNC_EN + 1, (val8 | 0x08)); /* Enable REG_EN */ - val8 = r8712_read8(padapter, SYS_FUNC_EN + 1); - r8712_write8(padapter, SYS_FUNC_EN + 1, (val8 | 0x80)); + val8 = r8712_read8(adapter, SYS_FUNC_EN + 1); + r8712_write8(adapter, SYS_FUNC_EN + 1, (val8 | 0x80)); /* Switch the control path to FW */ - val8 = r8712_read8(padapter, SYS_CLKR + 1); - r8712_write8(padapter, SYS_CLKR + 1, (val8 | 0x80) & 0xBF); - r8712_write8(padapter, CR, 0xFC); - r8712_write8(padapter, CR + 1, 0x37); + val8 = r8712_read8(adapter, SYS_CLKR + 1); + r8712_write8(adapter, SYS_CLKR + 1, (val8 | 0x80) & 0xBF); + r8712_write8(adapter, CR, 0xFC); + r8712_write8(adapter, CR + 1, 0x37); /* Fix the RX FIFO issue(usb error), 970410 */ - val8 = r8712_read8(padapter, 0x1025FE5c); - r8712_write8(padapter, 0x1025FE5c, (val8 | BIT(7))); + val8 = r8712_read8(adapter, 0x1025FE5c); + r8712_write8(adapter, 0x1025FE5c, (val8 | BIT(7))); /* For power save, used this in the bit file after 970621 */ - val8 = r8712_read8(padapter, SYS_CLKR); - r8712_write8(padapter, SYS_CLKR, val8 & (~CPU_CLKSEL)); + val8 = r8712_read8(adapter, SYS_CLKR); + r8712_write8(adapter, SYS_CLKR, val8 & (~CPU_CLKSEL)); /* Revised for 8051 ROM code wrong operation. */ - r8712_write8(padapter, 0x1025fe1c, 0x80); + r8712_write8(adapter, 0x1025fe1c, 0x80); /* To make sure that TxDMA can ready to download FW. * We should reset TxDMA if IMEM RPT was not ready. */ do { - val8 = r8712_read8(padapter, TCR); + val8 = r8712_read8(adapter, TCR); if ((val8 & _TXDMA_INIT_VALUE) == _TXDMA_INIT_VALUE) break; udelay(5); /* PlatformStallExecution(5); */ } while (PollingCnt--); /* Delay 1ms */ if (PollingCnt <= 0) { - val8 = r8712_read8(padapter, CR); - r8712_write8(padapter, CR, val8 & (~_TXDMA_EN)); + val8 = r8712_read8(adapter, CR); + r8712_write8(adapter, CR, val8 & (~_TXDMA_EN)); udelay(2); /* PlatformStallExecution(2); */ /* Reset TxDMA */ - r8712_write8(padapter, CR, val8 | _TXDMA_EN); + r8712_write8(adapter, CR, val8 | _TXDMA_EN); } } else { ret = _FAIL; @@ -280,28 +280,28 @@ u8 r8712_usb_hal_bus_init(struct _adapter *padapter) return ret; } -unsigned int r8712_usb_inirp_init(struct _adapter *padapter) +unsigned int r8712_usb_inirp_init(struct _adapter *adapter) { u8 i; - struct recv_buf *precvbuf; - struct intf_hdl *pintfhdl = &padapter->pio_queue->intf; - struct recv_priv *precvpriv = &(padapter->recvpriv); + struct recv_buf *recvbuf; + struct intf_hdl *intfhdl = &adapter->pio_queue->intf; + struct recv_priv *recvpriv = &(adapter->recvpriv); - precvpriv->ff_hwaddr = RTL8712_DMA_RX0FF; /* mapping rx fifo address */ + recvpriv->ff_hwaddr = RTL8712_DMA_RX0FF; /* mapping rx fifo address */ /* issue Rx irp to receive data */ - precvbuf = (struct recv_buf *)precvpriv->precv_buf; + recvbuf = (struct recv_buf *)recvpriv->precv_buf; for (i = 0; i < NR_RECVBUFF; i++) { - if (r8712_usb_read_port(pintfhdl, precvpriv->ff_hwaddr, 0, - (unsigned char *)precvbuf) == false) + if (r8712_usb_read_port(intfhdl, recvpriv->ff_hwaddr, 0, + (unsigned char *)recvbuf) == false) return _FAIL; - precvbuf++; - precvpriv->free_recv_buf_queue_cnt--; + recvbuf++; + recvpriv->free_recv_buf_queue_cnt--; } return _SUCCESS; } -unsigned int r8712_usb_inirp_deinit(struct _adapter *padapter) +unsigned int r8712_usb_inirp_deinit(struct _adapter *adapter) { - r8712_usb_read_port_cancel(padapter); + r8712_usb_read_port_cancel(adapter); return _SUCCESS; } diff --git a/drivers/staging/rtl8712/usb_intf.c b/drivers/staging/rtl8712/usb_intf.c index 7478bbd3de78..d0daae0b8299 100644 --- a/drivers/staging/rtl8712/usb_intf.c +++ b/drivers/staging/rtl8712/usb_intf.c @@ -246,7 +246,7 @@ static uint r8712_usb_dvobj_init(struct _adapter *padapter) struct usb_device *pusbd = pdvobjpriv->pusbdev; pdvobjpriv->padapter = padapter; - padapter->EepromAddressSize = 6; + padapter->eeprom_address_size = 6; phost_iface = &pintf->altsetting[0]; piface_desc = &phost_iface->desc; pdvobjpriv->nr_endpoint = piface_desc->bNumEndpoints; @@ -571,7 +571,7 @@ static int r871xu_drv_init(struct usb_interface *pusb_intf, /* step 6. Load the firmware asynchronously */ if (rtl871x_load_fw(padapter)) goto error; - spin_lock_init(&padapter->lockRxFF0Filter); + spin_lock_init(&padapter->lock_rx_ff0_filter); mutex_init(&padapter->mutex_start); return 0; error: diff --git a/drivers/staging/rtl8712/usb_ops.c b/drivers/staging/rtl8712/usb_ops.c index eef52d5c730a..e64845e6adf3 100644 --- a/drivers/staging/rtl8712/usb_ops.c +++ b/drivers/staging/rtl8712/usb_ops.c @@ -22,7 +22,7 @@ #include "usb_ops.h" #include "recv_osdep.h" -static u8 usb_read8(struct intf_hdl *pintfhdl, u32 addr) +static u8 usb_read8(struct intf_hdl *intfhdl, u32 addr) { u8 request; u8 requesttype; @@ -30,19 +30,19 @@ static u8 usb_read8(struct intf_hdl *pintfhdl, u32 addr) u16 index; u16 len; __le32 data; - struct intf_priv *pintfpriv = pintfhdl->pintfpriv; + struct intf_priv *intfpriv = intfhdl->pintfpriv; request = 0x05; requesttype = 0x01; /* read_in */ index = 0; wvalue = (u16)(addr & 0x0000ffff); len = 1; - r8712_usbctrl_vendorreq(pintfpriv, request, wvalue, index, &data, len, - requesttype); + r8712_usbctrl_vendorreq(intfpriv, request, wvalue, index, &data, len, + requesttype); return (u8)(le32_to_cpu(data) & 0x0ff); } -static u16 usb_read16(struct intf_hdl *pintfhdl, u32 addr) +static u16 usb_read16(struct intf_hdl *intfhdl, u32 addr) { u8 request; u8 requesttype; @@ -50,19 +50,19 @@ static u16 usb_read16(struct intf_hdl *pintfhdl, u32 addr) u16 index; u16 len; __le32 data; - struct intf_priv *pintfpriv = pintfhdl->pintfpriv; + struct intf_priv *intfpriv = intfhdl->pintfpriv; request = 0x05; requesttype = 0x01; /* read_in */ index = 0; wvalue = (u16)(addr & 0x0000ffff); len = 2; - r8712_usbctrl_vendorreq(pintfpriv, request, wvalue, index, &data, len, - requesttype); + r8712_usbctrl_vendorreq(intfpriv, request, wvalue, index, &data, len, + requesttype); return (u16)(le32_to_cpu(data) & 0xffff); } -static u32 usb_read32(struct intf_hdl *pintfhdl, u32 addr) +static u32 usb_read32(struct intf_hdl *intfhdl, u32 addr) { u8 request; u8 requesttype; @@ -70,19 +70,19 @@ static u32 usb_read32(struct intf_hdl *pintfhdl, u32 addr) u16 index; u16 len; __le32 data; - struct intf_priv *pintfpriv = pintfhdl->pintfpriv; + struct intf_priv *intfpriv = intfhdl->pintfpriv; request = 0x05; requesttype = 0x01; /* read_in */ index = 0; wvalue = (u16)(addr & 0x0000ffff); len = 4; - r8712_usbctrl_vendorreq(pintfpriv, request, wvalue, index, &data, len, - requesttype); + r8712_usbctrl_vendorreq(intfpriv, request, wvalue, index, &data, len, + requesttype); return le32_to_cpu(data); } -static void usb_write8(struct intf_hdl *pintfhdl, u32 addr, u8 val) +static void usb_write8(struct intf_hdl *intfhdl, u32 addr, u8 val) { u8 request; u8 requesttype; @@ -90,7 +90,7 @@ static void usb_write8(struct intf_hdl *pintfhdl, u32 addr, u8 val) u16 index; u16 len; __le32 data; - struct intf_priv *pintfpriv = pintfhdl->pintfpriv; + struct intf_priv *intfpriv = intfhdl->pintfpriv; request = 0x05; requesttype = 0x00; /* write_out */ @@ -98,11 +98,11 @@ static void usb_write8(struct intf_hdl *pintfhdl, u32 addr, u8 val) wvalue = (u16)(addr & 0x0000ffff); len = 1; data = cpu_to_le32((u32)val & 0x000000ff); - r8712_usbctrl_vendorreq(pintfpriv, request, wvalue, index, &data, len, - requesttype); + r8712_usbctrl_vendorreq(intfpriv, request, wvalue, index, &data, len, + requesttype); } -static void usb_write16(struct intf_hdl *pintfhdl, u32 addr, u16 val) +static void usb_write16(struct intf_hdl *intfhdl, u32 addr, u16 val) { u8 request; u8 requesttype; @@ -110,7 +110,7 @@ static void usb_write16(struct intf_hdl *pintfhdl, u32 addr, u16 val) u16 index; u16 len; __le32 data; - struct intf_priv *pintfpriv = pintfhdl->pintfpriv; + struct intf_priv *intfpriv = intfhdl->pintfpriv; request = 0x05; requesttype = 0x00; /* write_out */ @@ -118,11 +118,11 @@ static void usb_write16(struct intf_hdl *pintfhdl, u32 addr, u16 val) wvalue = (u16)(addr & 0x0000ffff); len = 2; data = cpu_to_le32((u32)val & 0x0000ffff); - r8712_usbctrl_vendorreq(pintfpriv, request, wvalue, index, &data, len, - requesttype); + r8712_usbctrl_vendorreq(intfpriv, request, wvalue, index, &data, len, + requesttype); } -static void usb_write32(struct intf_hdl *pintfhdl, u32 addr, u32 val) +static void usb_write32(struct intf_hdl *intfhdl, u32 addr, u32 val) { u8 request; u8 requesttype; @@ -130,7 +130,7 @@ static void usb_write32(struct intf_hdl *pintfhdl, u32 addr, u32 val) u16 index; u16 len; __le32 data; - struct intf_priv *pintfpriv = pintfhdl->pintfpriv; + struct intf_priv *intfpriv = intfhdl->pintfpriv; request = 0x05; requesttype = 0x00; /* write_out */ @@ -138,13 +138,13 @@ static void usb_write32(struct intf_hdl *pintfhdl, u32 addr, u32 val) wvalue = (u16)(addr & 0x0000ffff); len = 4; data = cpu_to_le32(val); - r8712_usbctrl_vendorreq(pintfpriv, request, wvalue, index, &data, len, - requesttype); + r8712_usbctrl_vendorreq(intfpriv, request, wvalue, index, &data, len, + requesttype); } -void r8712_usb_set_intf_option(u32 *poption) +void r8712_usb_set_intf_option(u32 *option) { - *poption = ((*poption) | _INTF_ASYNC_); + *option = ((*option) | _INTF_ASYNC_); } static void usb_intf_hdl_init(u8 *priv) @@ -163,24 +163,24 @@ static void usb_intf_hdl_close(u8 *priv) { } -void r8712_usb_set_intf_funs(struct intf_hdl *pintf_hdl) +void r8712_usb_set_intf_funs(struct intf_hdl *intfhdl) { - pintf_hdl->intf_hdl_init = usb_intf_hdl_init; - pintf_hdl->intf_hdl_unload = usb_intf_hdl_unload; - pintf_hdl->intf_hdl_open = usb_intf_hdl_open; - pintf_hdl->intf_hdl_close = usb_intf_hdl_close; + intfhdl->intf_hdl_init = usb_intf_hdl_init; + intfhdl->intf_hdl_unload = usb_intf_hdl_unload; + intfhdl->intf_hdl_open = usb_intf_hdl_open; + intfhdl->intf_hdl_close = usb_intf_hdl_close; } -void r8712_usb_set_intf_ops(struct _io_ops *pops) +void r8712_usb_set_intf_ops(struct _io_ops *ops) { - memset((u8 *)pops, 0, sizeof(struct _io_ops)); - pops->_read8 = usb_read8; - pops->_read16 = usb_read16; - pops->_read32 = usb_read32; - pops->_read_port = r8712_usb_read_port; - pops->_write8 = usb_write8; - pops->_write16 = usb_write16; - pops->_write32 = usb_write32; - pops->_write_mem = r8712_usb_write_mem; - pops->_write_port = r8712_usb_write_port; + memset((u8 *)ops, 0, sizeof(struct _io_ops)); + ops->_read8 = usb_read8; + ops->_read16 = usb_read16; + ops->_read32 = usb_read32; + ops->_read_port = r8712_usb_read_port; + ops->_write8 = usb_write8; + ops->_write16 = usb_write16; + ops->_write32 = usb_write32; + ops->_write_mem = r8712_usb_write_mem; + ops->_write_port = r8712_usb_write_port; } diff --git a/drivers/staging/rtl8712/wifi.h b/drivers/staging/rtl8712/wifi.h index 77346debea03..1a5b966a167e 100644 --- a/drivers/staging/rtl8712/wifi.h +++ b/drivers/staging/rtl8712/wifi.h @@ -278,17 +278,6 @@ static inline unsigned char get_tofr_ds(unsigned char *pframe) #define GetAddr4Ptr(pbuf) ((unsigned char *)((addr_t)(pbuf) + 24)) - - -static inline int IS_MCAST(unsigned char *da) -{ - if ((*da) & 0x01) - return true; - else - return false; -} - - static inline unsigned char *get_da(unsigned char *pframe) { unsigned char *da; diff --git a/drivers/staging/rtl8712/xmit_linux.c b/drivers/staging/rtl8712/xmit_linux.c index 8bcb0775411f..01d713d027b0 100644 --- a/drivers/staging/rtl8712/xmit_linux.c +++ b/drivers/staging/rtl8712/xmit_linux.c @@ -93,22 +93,22 @@ void r8712_set_qos(struct pkt_file *ppktfile, struct pkt_attrib *pattrib) void r8712_SetFilter(struct work_struct *work) { - struct _adapter *padapter = container_of(work, struct _adapter, - wkFilterRxFF0); + struct _adapter *adapter = container_of(work, struct _adapter, + wk_filter_rx_ff0); u8 oldvalue = 0x00, newvalue = 0x00; unsigned long irqL; - oldvalue = r8712_read8(padapter, 0x117); + oldvalue = r8712_read8(adapter, 0x117); newvalue = oldvalue & 0xfe; - r8712_write8(padapter, 0x117, newvalue); + r8712_write8(adapter, 0x117, newvalue); - spin_lock_irqsave(&padapter->lockRxFF0Filter, irqL); - padapter->blnEnableRxFF0Filter = 1; - spin_unlock_irqrestore(&padapter->lockRxFF0Filter, irqL); + spin_lock_irqsave(&adapter->lock_rx_ff0_filter, irqL); + adapter->blnEnableRxFF0Filter = 1; + spin_unlock_irqrestore(&adapter->lock_rx_ff0_filter, irqL); do { msleep(100); - } while (padapter->blnEnableRxFF0Filter == 1); - r8712_write8(padapter, 0x117, oldvalue); + } while (adapter->blnEnableRxFF0Filter == 1); + r8712_write8(adapter, 0x117, oldvalue); } int r8712_xmit_resource_alloc(struct _adapter *padapter, @@ -120,11 +120,11 @@ int r8712_xmit_resource_alloc(struct _adapter *padapter, pxmitbuf->pxmit_urb[i] = usb_alloc_urb(0, GFP_KERNEL); if (!pxmitbuf->pxmit_urb[i]) { netdev_err(padapter->pnetdev, "pxmitbuf->pxmit_urb[i] == NULL\n"); - return _FAIL; + return -ENOMEM; } kmemleak_not_leak(pxmitbuf->pxmit_urb[i]); } - return _SUCCESS; + return 0; } void r8712_xmit_resource_free(struct _adapter *padapter, @@ -147,36 +147,36 @@ void r8712_xmit_complete(struct _adapter *padapter, struct xmit_frame *pxframe) pxframe->pkt = NULL; } -int r8712_xmit_entry(_pkt *pkt, struct net_device *pnetdev) +int r8712_xmit_entry(_pkt *pkt, struct net_device *netdev) { - struct xmit_frame *pxmitframe = NULL; - struct _adapter *padapter = netdev_priv(pnetdev); - struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); + struct xmit_frame *xmitframe = NULL; + struct _adapter *adapter = netdev_priv(netdev); + struct xmit_priv *xmitpriv = &(adapter->xmitpriv); - if (!r8712_if_up(padapter)) + if (!r8712_if_up(adapter)) goto _xmit_entry_drop; - pxmitframe = r8712_alloc_xmitframe(pxmitpriv); - if (!pxmitframe) + xmitframe = r8712_alloc_xmitframe(xmitpriv); + if (!xmitframe) goto _xmit_entry_drop; - if ((!r8712_update_attrib(padapter, pkt, &pxmitframe->attrib))) + if ((!r8712_update_attrib(adapter, pkt, &xmitframe->attrib))) goto _xmit_entry_drop; - padapter->ledpriv.LedControlHandler(padapter, LED_CTL_TX); - pxmitframe->pkt = pkt; - if (r8712_pre_xmit(padapter, pxmitframe)) { + adapter->ledpriv.LedControlHandler(adapter, LED_CTL_TX); + xmitframe->pkt = pkt; + if (r8712_pre_xmit(adapter, xmitframe)) { /*dump xmitframe directly or drop xframe*/ dev_kfree_skb_any(pkt); - pxmitframe->pkt = NULL; + xmitframe->pkt = NULL; } - pxmitpriv->tx_pkts++; - pxmitpriv->tx_bytes += pxmitframe->attrib.last_txcmdsz; + xmitpriv->tx_pkts++; + xmitpriv->tx_bytes += xmitframe->attrib.last_txcmdsz; return 0; _xmit_entry_drop: - if (pxmitframe) - r8712_free_xmitframe(pxmitpriv, pxmitframe); - pxmitpriv->tx_drop++; + if (xmitframe) + r8712_free_xmitframe(xmitpriv, xmitframe); + xmitpriv->tx_drop++; dev_kfree_skb_any(pkt); return 0; } |