diff options
Diffstat (limited to 'drivers/staging/r8188eu/os_dep')
-rw-r--r-- | drivers/staging/r8188eu/os_dep/ioctl_linux.c | 235 | ||||
-rw-r--r-- | drivers/staging/r8188eu/os_dep/os_intfs.c | 69 | ||||
-rw-r--r-- | drivers/staging/r8188eu/os_dep/usb_intf.c | 42 | ||||
-rw-r--r-- | drivers/staging/r8188eu/os_dep/usb_ops_linux.c | 6 |
4 files changed, 72 insertions, 280 deletions
diff --git a/drivers/staging/r8188eu/os_dep/ioctl_linux.c b/drivers/staging/r8188eu/os_dep/ioctl_linux.c index 9404355726d0..41b457838a5b 100644 --- a/drivers/staging/r8188eu/os_dep/ioctl_linux.c +++ b/drivers/staging/r8188eu/os_dep/ioctl_linux.c @@ -1,8 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 /* Copyright(c) 2007 - 2012 Realtek Corporation. */ -#define _IOCTL_LINUX_C_ - #include "../include/osdep_service.h" #include "../include/drv_types.h" #include "../include/wlan_bssdef.h" @@ -14,7 +12,7 @@ #include "../include/rtw_ioctl_set.h" #include "../include/usb_ops.h" #include "../include/rtl8188e_hal.h" -#include "../include/rtl8188e_led.h" +#include "../include/rtw_led.h" #include "../include/rtw_iol.h" @@ -60,7 +58,7 @@ void rtw_indicate_wx_assoc_event(struct adapter *padapter) memcpy(wrqu.ap_addr.sa_data, pmlmepriv->cur_network.network.MacAddress, ETH_ALEN); - DBG_88E_LEVEL(_drv_always_, "assoc success\n"); + netdev_dbg(padapter->pnetdev, "assoc success\n"); wireless_send_event(padapter->pnetdev, SIOCGIWAP, &wrqu, NULL); } @@ -73,7 +71,7 @@ void rtw_indicate_wx_disassoc_event(struct adapter *padapter) wrqu.ap_addr.sa_family = ARPHRD_ETHER; memset(wrqu.ap_addr.sa_data, 0, ETH_ALEN); - DBG_88E_LEVEL(_drv_always_, "indicate disassoc\n"); + netdev_dbg(padapter->pnetdev, "indicate disassoc\n"); wireless_send_event(padapter->pnetdev, SIOCGIWAP, &wrqu, NULL); } @@ -2092,18 +2090,6 @@ static int rtw_wx_write_rf(struct net_device *dev, return 0; } -static int rtw_wx_priv_null(struct net_device *dev, struct iw_request_info *a, - union iwreq_data *wrqu, char *b) -{ - return -1; -} - -static int dummy(struct net_device *dev, struct iw_request_info *a, - union iwreq_data *wrqu, char *b) -{ - return -1; -} - static int rtw_wx_set_channel_plan(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra) @@ -2120,37 +2106,6 @@ static int rtw_wx_set_channel_plan(struct net_device *dev, return 0; } -static int rtw_wx_set_mtk_wps_probe_ie(struct net_device *dev, - struct iw_request_info *a, - union iwreq_data *wrqu, char *b) -{ - return 0; -} - -static int rtw_wx_get_sensitivity(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *buf) -{ - return 0; -} - -static int rtw_wx_set_mtk_wps_ie(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) -{ - return 0; -} - -/* - * For all data larger than 16 octets, we need to use a - * pointer to memory allocated in user space. - */ -static int rtw_drvext_hdl(struct net_device *dev, struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) -{ - return 0; -} - static int rtw_get_ap_info(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra) @@ -3043,7 +2998,7 @@ static int rtw_p2p_connect(struct net_device *dev, struct list_head *plist, *phead; struct __queue *queue = &pmlmepriv->scanned_queue; struct wlan_network *pnetwork = NULL; - uint uintPeerChannel = 0; + u32 peer_channel = 0; /* Commented by Albert 20110304 */ /* The input data contains two informations. */ @@ -3073,7 +3028,7 @@ static int rtw_p2p_connect(struct net_device *dev, while (phead != plist) { pnetwork = container_of(plist, struct wlan_network, list); if (!memcmp(pnetwork->network.MacAddress, peerMAC, ETH_ALEN)) { - uintPeerChannel = pnetwork->network.Configuration.DSConfig; + peer_channel = pnetwork->network.Configuration.DSConfig; break; } @@ -3082,11 +3037,11 @@ static int rtw_p2p_connect(struct net_device *dev, spin_unlock_bh(&pmlmepriv->scanned_queue.lock); - if (uintPeerChannel) { + if (peer_channel) { memset(&pwdinfo->nego_req_info, 0x00, sizeof(struct tx_nego_req_info)); memset(&pwdinfo->groupid_info, 0x00, sizeof(struct group_id_info)); - pwdinfo->nego_req_info.peer_channel_num[0] = uintPeerChannel; + pwdinfo->nego_req_info.peer_channel_num[0] = peer_channel; memcpy(pwdinfo->nego_req_info.peerDevAddr, pnetwork->network.MacAddress, ETH_ALEN); pwdinfo->nego_req_info.benable = true; @@ -3121,7 +3076,7 @@ static int rtw_p2p_invite_req(struct net_device *dev, struct list_head *plist, *phead; struct __queue *queue = &pmlmepriv->scanned_queue; struct wlan_network *pnetwork = NULL; - uint uintPeerChannel = 0; + uint peer_channel = 0; u8 attr_content[50] = {0x00}; u8 *p2pie; uint p2pielen = 0, attr_contentlen = 0; @@ -3177,13 +3132,13 @@ static int rtw_p2p_invite_req(struct net_device *dev, if (rtw_get_p2p_attr_content(p2pie, p2pielen, P2P_ATTR_DEVICE_ID, attr_content, &attr_contentlen)) { /* Handle the P2P Device ID attribute of Beacon first */ if (!memcmp(attr_content, pinvite_req_info->peer_macaddr, ETH_ALEN)) { - uintPeerChannel = pnetwork->network.Configuration.DSConfig; + peer_channel = pnetwork->network.Configuration.DSConfig; break; } } else if (rtw_get_p2p_attr_content(p2pie, p2pielen, P2P_ATTR_DEVICE_INFO, attr_content, &attr_contentlen)) { /* Handle the P2P Device Info attribute of probe response */ if (!memcmp(attr_content, pinvite_req_info->peer_macaddr, ETH_ALEN)) { - uintPeerChannel = pnetwork->network.Configuration.DSConfig; + peer_channel = pnetwork->network.Configuration.DSConfig; break; } } @@ -3193,7 +3148,7 @@ static int rtw_p2p_invite_req(struct net_device *dev, spin_unlock_bh(&pmlmepriv->scanned_queue.lock); - if (uintPeerChannel) { + if (peer_channel) { /* Store the GO's bssid */ for (jj = 0, kk = 18; jj < ETH_ALEN; jj++, kk += 3) pinvite_req_info->go_bssid[jj] = key_2char2num(extra[kk], extra[kk + 1]); @@ -3202,12 +3157,12 @@ static int rtw_p2p_invite_req(struct net_device *dev, pinvite_req_info->ssidlen = wrqu->data.length - 36; memcpy(pinvite_req_info->go_ssid, &extra[36], (u32)pinvite_req_info->ssidlen); pinvite_req_info->benable = true; - pinvite_req_info->peer_ch = uintPeerChannel; + pinvite_req_info->peer_ch = peer_channel; rtw_p2p_set_pre_state(pwdinfo, rtw_p2p_state(pwdinfo)); rtw_p2p_set_state(pwdinfo, P2P_STATE_TX_INVITE_REQ); - set_channel_bwmode(padapter, uintPeerChannel, HAL_PRIME_CHNL_OFFSET_DONT_CARE, HT_CHANNEL_WIDTH_20); + set_channel_bwmode(padapter, peer_channel, HAL_PRIME_CHNL_OFFSET_DONT_CARE, HT_CHANNEL_WIDTH_20); _set_timer(&pwdinfo->pre_tx_scan_timer, P2P_TX_PRESCAN_TIMEOUT); @@ -3260,7 +3215,7 @@ static int rtw_p2p_prov_disc(struct net_device *dev, struct list_head *plist, *phead; struct __queue *queue = &pmlmepriv->scanned_queue; struct wlan_network *pnetwork = NULL; - uint uintPeerChannel = 0; + uint peer_channel = 0; u8 attr_content[100] = {0x00}; u8 *p2pie; uint p2pielen = 0, attr_contentlen = 0; @@ -3310,7 +3265,7 @@ static int rtw_p2p_prov_disc(struct net_device *dev, plist = phead->next; while (phead != plist) { - if (uintPeerChannel != 0) + if (peer_channel != 0) break; pnetwork = container_of(plist, struct wlan_network, list); @@ -3328,13 +3283,13 @@ static int rtw_p2p_prov_disc(struct net_device *dev, if (rtw_get_p2p_attr_content(p2pie, p2pielen, P2P_ATTR_DEVICE_ID, attr_content, &attr_contentlen)) { /* Handle the P2P Device ID attribute of Beacon first */ if (!memcmp(attr_content, peerMAC, ETH_ALEN)) { - uintPeerChannel = pnetwork->network.Configuration.DSConfig; + peer_channel = pnetwork->network.Configuration.DSConfig; break; } } else if (rtw_get_p2p_attr_content(p2pie, p2pielen, P2P_ATTR_DEVICE_INFO, attr_content, &attr_contentlen)) { /* Handle the P2P Device Info attribute of probe response */ if (!memcmp(attr_content, peerMAC, ETH_ALEN)) { - uintPeerChannel = pnetwork->network.Configuration.DSConfig; + peer_channel = pnetwork->network.Configuration.DSConfig; break; } } @@ -3349,11 +3304,11 @@ static int rtw_p2p_prov_disc(struct net_device *dev, spin_unlock_bh(&pmlmepriv->scanned_queue.lock); - if (uintPeerChannel) { - DBG_88E("[%s] peer channel: %d!\n", __func__, uintPeerChannel); + if (peer_channel) { + DBG_88E("[%s] peer channel: %d!\n", __func__, peer_channel); memcpy(pwdinfo->tx_prov_disc_info.peerIFAddr, pnetwork->network.MacAddress, ETH_ALEN); memcpy(pwdinfo->tx_prov_disc_info.peerDevAddr, peerMAC, ETH_ALEN); - pwdinfo->tx_prov_disc_info.peer_channel_num[0] = (u16)uintPeerChannel; + pwdinfo->tx_prov_disc_info.peer_channel_num[0] = (u16)peer_channel; pwdinfo->tx_prov_disc_info.benable = true; rtw_p2p_set_pre_state(pwdinfo, rtw_p2p_state(pwdinfo)); rtw_p2p_set_state(pwdinfo, P2P_STATE_TX_PROVISION_DIS_REQ); @@ -3365,7 +3320,7 @@ static int rtw_p2p_prov_disc(struct net_device *dev, pwdinfo->tx_prov_disc_info.ssid.SsidLength = P2P_WILDCARD_SSID_LEN; } - set_channel_bwmode(padapter, uintPeerChannel, HAL_PRIME_CHNL_OFFSET_DONT_CARE, HT_CHANNEL_WIDTH_20); + set_channel_bwmode(padapter, peer_channel, HAL_PRIME_CHNL_OFFSET_DONT_CARE, HT_CHANNEL_WIDTH_20); _set_timer(&pwdinfo->pre_tx_scan_timer, P2P_TX_PRESCAN_TIMEOUT); @@ -3617,27 +3572,18 @@ static void bb_reg_dump(struct adapter *padapter) static void rf_reg_dump(struct adapter *padapter) { - int i, j = 1, path; + int i, j = 1, path = 0; u32 value; - u8 rf_type, path_nums = 0; - GetHwReg8188EU(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type)); pr_info("\n ======= RF REG =======\n"); - if ((RF_1T2R == rf_type) || (RF_1T1R == rf_type)) - path_nums = 1; - else - path_nums = 2; - - for (path = 0; path < path_nums; path++) { - pr_info("\nRF_Path(%x)\n", path); - for (i = 0; i < 0x100; i++) { - value = rtl8188e_PHY_QueryRFReg(padapter, path, i, 0xffffffff); - if (j % 4 == 1) - pr_info("0x%02x ", i); - pr_info(" 0x%08x ", value); - if ((j++) % 4 == 0) - pr_info("\n"); - } + pr_info("\nRF_Path(%x)\n", path); + for (i = 0; i < 0x100; i++) { + value = rtl8188e_PHY_QueryRFReg(padapter, path, i, 0xffffffff); + if (j % 4 == 1) + pr_info("0x%02x ", i); + pr_info(" 0x%08x ", value); + if ((j++) % 4 == 0) + pr_info("\n"); } } @@ -4058,12 +4004,6 @@ static int rtw_dbg_port(struct net_device *dev, DBG_88E("turn %s the bShowGetP2PState Variable\n", (extra_arg == 1) ? "on" : "off"); padapter->bShowGetP2PState = extra_arg; break; - case 0xaa: - if (extra_arg > 0x13) - extra_arg = 0xFF; - DBG_88E("chang data rate to :0x%02x\n", extra_arg); - padapter->fix_rate = extra_arg; - break; case 0xdd:/* registers dump, 0 for mac reg, 1 for bb reg, 2 for rf reg */ if (extra_arg == 0) mac_reg_dump(padapter); @@ -4230,81 +4170,21 @@ static int rtw_pm_set(struct net_device *dev, return ret; } -extern int wifirate2_ratetbl_inx(unsigned char rate); - -static int rtw_tdls(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) -{ - return 0; -} - -static int rtw_tdls_get(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) -{ - return 0; -} - -static int rtw_test( - struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) -{ - u32 len; - u8 *pbuf, *pch; - char *ptmp; - u8 *delim = ","; - - DBG_88E("+%s\n", __func__); - len = wrqu->data.length; - - pbuf = kzalloc(len, GFP_KERNEL); - if (!pbuf) { - DBG_88E("%s: no memory!\n", __func__); - return -ENOMEM; - } - - if (copy_from_user(pbuf, wrqu->data.pointer, len)) { - kfree(pbuf); - DBG_88E("%s: copy from user fail!\n", __func__); - return -EFAULT; - } - DBG_88E("%s: string =\"%s\"\n", __func__, pbuf); - - ptmp = (char *)pbuf; - pch = strsep(&ptmp, delim); - if (!pch || strlen(pch) == 0) { - kfree(pbuf); - DBG_88E("%s: parameter error(level 1)!\n", __func__); - return -EFAULT; - } - kfree(pbuf); - return 0; -} - static iw_handler rtw_handlers[] = { IW_HANDLER(SIOCGIWNAME, rtw_wx_get_name), - IW_HANDLER(SIOCSIWNWID, dummy), - IW_HANDLER(SIOCGIWNWID, dummy), IW_HANDLER(SIOCGIWFREQ, rtw_wx_get_freq), IW_HANDLER(SIOCSIWMODE, rtw_wx_set_mode), IW_HANDLER(SIOCGIWMODE, rtw_wx_get_mode), - IW_HANDLER(SIOCSIWSENS, dummy), IW_HANDLER(SIOCGIWSENS, rtw_wx_get_sens), IW_HANDLER(SIOCGIWRANGE, rtw_wx_get_range), IW_HANDLER(SIOCSIWPRIV, rtw_wx_set_priv), - IW_HANDLER(SIOCSIWSPY, dummy), - IW_HANDLER(SIOCGIWSPY, dummy), IW_HANDLER(SIOCSIWAP, rtw_wx_set_wap), IW_HANDLER(SIOCGIWAP, rtw_wx_get_wap), IW_HANDLER(SIOCSIWMLME, rtw_wx_set_mlme), - IW_HANDLER(SIOCGIWAPLIST, dummy), IW_HANDLER(SIOCSIWSCAN, rtw_wx_set_scan), IW_HANDLER(SIOCGIWSCAN, rtw_wx_get_scan), IW_HANDLER(SIOCSIWESSID, rtw_wx_set_essid), IW_HANDLER(SIOCGIWESSID, rtw_wx_get_essid), - IW_HANDLER(SIOCSIWNICKN, dummy), IW_HANDLER(SIOCGIWNICKN, rtw_wx_get_nick), IW_HANDLER(SIOCSIWRATE, rtw_wx_set_rate), IW_HANDLER(SIOCGIWRATE, rtw_wx_get_rate), @@ -4312,13 +4192,9 @@ static iw_handler rtw_handlers[] = { IW_HANDLER(SIOCGIWRTS, rtw_wx_get_rts), IW_HANDLER(SIOCSIWFRAG, rtw_wx_set_frag), IW_HANDLER(SIOCGIWFRAG, rtw_wx_get_frag), - IW_HANDLER(SIOCSIWTXPOW, dummy), - IW_HANDLER(SIOCGIWTXPOW, dummy), - IW_HANDLER(SIOCSIWRETRY, dummy), IW_HANDLER(SIOCGIWRETRY, rtw_wx_get_retry), IW_HANDLER(SIOCSIWENCODE, rtw_wx_set_enc), IW_HANDLER(SIOCGIWENCODE, rtw_wx_get_enc), - IW_HANDLER(SIOCSIWPOWER, dummy), IW_HANDLER(SIOCGIWPOWER, rtw_wx_get_power), IW_HANDLER(SIOCSIWGENIE, rtw_wx_set_gen_ie), IW_HANDLER(SIOCSIWAUTH, rtw_wx_set_auth), @@ -4340,9 +4216,6 @@ static const struct iw_priv_args rtw_private_args[] = { SIOCIWFIRSTPRIV + 0x2, 0, 0, "driver_ext" }, { - SIOCIWFIRSTPRIV + 0x3, 0, 0, "mp_ioctl" - }, - { SIOCIWFIRSTPRIV + 0x4, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "apinfo" }, @@ -4355,19 +4228,6 @@ static const struct iw_priv_args rtw_private_args[] = { IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "wps_start" }, { - SIOCIWFIRSTPRIV + 0x7, - IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "get_sensitivity" - }, - { - SIOCIWFIRSTPRIV + 0x8, - IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "wps_prob_req_ie" - }, - { - SIOCIWFIRSTPRIV + 0x9, - IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "wps_assoc_req_ie" - }, - - { SIOCIWFIRSTPRIV + 0xA, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "channel_plan" }, @@ -4396,33 +4256,18 @@ static const struct iw_priv_args rtw_private_args[] = { SIOCIWFIRSTPRIV + 0x12, IW_PRIV_TYPE_CHAR | P2P_PRIVATE_IOCTL_SET_LEN, IW_PRIV_TYPE_CHAR | IFNAMSIZ, "p2p_get2" }, - {SIOCIWFIRSTPRIV + 0x13, IW_PRIV_TYPE_CHAR | 128, 0, "NULL"}, - { - SIOCIWFIRSTPRIV + 0x14, - IW_PRIV_TYPE_CHAR | 64, 0, "tdls" - }, - { - SIOCIWFIRSTPRIV + 0x15, - IW_PRIV_TYPE_CHAR | P2P_PRIVATE_IOCTL_SET_LEN, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | P2P_PRIVATE_IOCTL_SET_LEN, "tdls_get" - }, { SIOCIWFIRSTPRIV + 0x16, IW_PRIV_TYPE_CHAR | 64, 0, "pm_set" }, {SIOCIWFIRSTPRIV + 0x18, IW_PRIV_TYPE_CHAR | IFNAMSIZ, 0, "rereg_nd_name"}, - - {SIOCIWFIRSTPRIV + 0x1D, IW_PRIV_TYPE_CHAR | 40, IW_PRIV_TYPE_CHAR | 0x7FF, "test" - }, - - {SIOCIWFIRSTPRIV + 0x0E, IW_PRIV_TYPE_CHAR | 1024, 0, ""}, /* set */ - {SIOCIWFIRSTPRIV + 0x0F, IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, ""},/* get */ }; static iw_handler rtw_private_handler[] = { rtw_wx_write32, /* 0x00 */ rtw_wx_read32, /* 0x01 */ -rtw_drvext_hdl, /* 0x02 */ + NULL, /* 0x02 */ NULL, /* 0x03 */ /* for MM DTV platform */ rtw_get_ap_info, /* 0x04 */ @@ -4430,9 +4275,9 @@ NULL, /* 0x03 */ rtw_set_pid, /* 0x05 */ rtw_wps_start, /* 0x06 */ - rtw_wx_get_sensitivity, /* 0x07 */ - rtw_wx_set_mtk_wps_probe_ie, /* 0x08 */ - rtw_wx_set_mtk_wps_ie, /* 0x09 */ + NULL, /* 0x07 */ + NULL, /* 0x08 */ + NULL, /* 0x09 */ /* Set Channel depend on the country code */ rtw_wx_set_channel_plan, /* 0x0A */ @@ -4448,18 +4293,12 @@ NULL, /* 0x03 */ rtw_p2p_get2, /* 0x12 */ NULL, /* 0x13 */ - rtw_tdls, /* 0x14 */ - rtw_tdls_get, /* 0x15 */ + NULL, /* 0x14 */ + NULL, /* 0x15 */ rtw_pm_set, /* 0x16 */ - rtw_wx_priv_null, /* 0x17 */ + NULL, /* 0x17 */ rtw_rereg_nd_name, /* 0x18 */ - rtw_wx_priv_null, /* 0x19 */ - - NULL, /* 0x1A */ - NULL, /* 0x1B */ - NULL, /* 0x1C is reserved for hostapd */ - rtw_test, /* 0x1D */ }; static struct iw_statistics *rtw_get_wireless_stats(struct net_device *dev) diff --git a/drivers/staging/r8188eu/os_dep/os_intfs.c b/drivers/staging/r8188eu/os_dep/os_intfs.c index 10059240bf54..b65e44f97826 100644 --- a/drivers/staging/r8188eu/os_dep/os_intfs.c +++ b/drivers/staging/r8188eu/os_dep/os_intfs.c @@ -11,7 +11,7 @@ #include "../include/rtw_ioctl.h" #include "../include/usb_osintf.h" #include "../include/rtw_br_ext.h" -#include "../include/rtl8188e_led.h" +#include "../include/rtw_led.h" #include "../include/rtl8188e_dm.h" MODULE_LICENSE("GPL"); @@ -75,7 +75,6 @@ static int rtw_ampdu_amsdu;/* 0: disabled, 1:enabled, 2:auto */ static int rtw_lowrate_two_xmit = 1;/* Use 2 path Tx to transmit MCS0~7 and legacy mode */ -static int rtw_rf_config = RF_819X_MAX_TYPE; /* auto */ static int rtw_low_power; static int rtw_wifi_spec; static int rtw_channel_plan = RT_CHANNEL_DOMAIN_MAX; @@ -123,7 +122,6 @@ module_param(rtw_ampdu_enable, int, 0644); module_param(rtw_rx_stbc, int, 0644); module_param(rtw_ampdu_amsdu, int, 0644); module_param(rtw_lowrate_two_xmit, int, 0644); -module_param(rtw_rf_config, int, 0644); module_param(rtw_power_mgnt, int, 0644); module_param(rtw_smart_ps, int, 0644); module_param(rtw_low_power, int, 0644); @@ -153,7 +151,7 @@ MODULE_PARM_DESC(rtw_notch_filter, "0:Disable, 1:Enable, 2:Enable only for P2P") module_param_named(debug, rtw_debug, int, 0444); MODULE_PARM_DESC(debug, "Set debug level (1-9) (default 1)"); -static uint loadparam(struct adapter *padapter, struct net_device *pnetdev) +static uint loadparam(struct adapter *padapter) { struct registry_priv *registry_par = &padapter->registrypriv; @@ -205,7 +203,6 @@ static uint loadparam(struct adapter *padapter, struct net_device *pnetdev) registry_par->rx_stbc = (u8)rtw_rx_stbc; registry_par->ampdu_amsdu = (u8)rtw_ampdu_amsdu; registry_par->lowrate_two_xmit = (u8)rtw_lowrate_two_xmit; - registry_par->rf_config = (u8)rtw_rf_config; registry_par->low_power = (u8)rtw_low_power; registry_par->wifi_spec = (u8)rtw_wifi_spec; registry_par->channel_plan = (u8)rtw_channel_plan; @@ -371,7 +368,7 @@ struct net_device *rtw_init_netdev(struct adapter *old_padapter) pnetdev->wireless_handlers = (struct iw_handler_def *)&rtw_handlers_def; /* step 2. */ - loadparam(padapter, pnetdev); + loadparam(padapter); return pnetdev; } @@ -399,7 +396,7 @@ void rtw_stop_drv_threads(struct adapter *padapter) wait_for_completion(&padapter->cmdpriv.stop_cmd_thread); } -static u8 rtw_init_default_value(struct adapter *padapter) +static void rtw_init_default_value(struct adapter *padapter) { struct registry_priv *pregistrypriv = &padapter->registrypriv; struct xmit_priv *pxmitpriv = &padapter->xmitpriv; @@ -444,7 +441,6 @@ static u8 rtw_init_default_value(struct adapter *padapter) padapter->bRxRSSIDisplay = 0; padapter->bNotifyChannelChange = 0; padapter->bShowGetP2PState = 1; - return _SUCCESS; } u8 rtw_reset_drv_sw(struct adapter *padapter) @@ -478,50 +474,37 @@ u8 rtw_reset_drv_sw(struct adapter *padapter) u8 rtw_init_drv_sw(struct adapter *padapter) { - u8 ret8 = _SUCCESS; - - if ((rtw_init_cmd_priv(&padapter->cmdpriv)) == _FAIL) { - ret8 = _FAIL; - goto exit; - } + if ((rtw_init_cmd_priv(&padapter->cmdpriv)) == _FAIL) + return _FAIL; padapter->cmdpriv.padapter = padapter; - if ((rtw_init_evt_priv(&padapter->evtpriv)) == _FAIL) { - ret8 = _FAIL; - goto exit; - } + if ((rtw_init_evt_priv(&padapter->evtpriv)) == _FAIL) + return _FAIL; - if (rtw_init_mlme_priv(padapter) == _FAIL) { - ret8 = _FAIL; - goto exit; - } + if (rtw_init_mlme_priv(padapter) == _FAIL) + return _FAIL; rtw_init_wifidirect_timers(padapter); init_wifidirect_info(padapter, P2P_ROLE_DISABLE); reset_global_wifidirect_info(padapter); - if (init_mlme_ext_priv(padapter) == _FAIL) { - ret8 = _FAIL; - goto exit; - } + if (init_mlme_ext_priv(padapter) == _FAIL) + return _FAIL; if (_rtw_init_xmit_priv(&padapter->xmitpriv, padapter) == _FAIL) { DBG_88E("Can't _rtw_init_xmit_priv\n"); - ret8 = _FAIL; - goto exit; + return _FAIL; } if (_rtw_init_recv_priv(&padapter->recvpriv, padapter) == _FAIL) { DBG_88E("Can't _rtw_init_recv_priv\n"); - ret8 = _FAIL; - goto exit; + return _FAIL; } if (_rtw_init_sta_priv(&padapter->stapriv) == _FAIL) { DBG_88E("Can't _rtw_init_sta_priv\n"); - ret8 = _FAIL; - goto exit; + return _FAIL; } padapter->stapriv.padapter = padapter; @@ -530,15 +513,14 @@ u8 rtw_init_drv_sw(struct adapter *padapter) rtw_init_pwrctrl_priv(padapter); - ret8 = rtw_init_default_value(padapter); + rtw_init_default_value(padapter); rtl8188e_init_dm_priv(padapter); rtl8188eu_InitSwLeds(padapter); spin_lock_init(&padapter->br_ext_lock); -exit: - return ret8; + return _SUCCESS; } void rtw_cancel_all_timer(struct adapter *padapter) @@ -585,8 +567,6 @@ u8 rtw_free_drv_sw(struct adapter *padapter) _rtw_free_recv_priv(&padapter->recvpriv); - rtl8188e_free_hal_data(padapter); - /* free the old_pnetdev */ if (padapter->rereg_nd_name_priv.old_pnetdev) { free_netdev(padapter->rereg_nd_name_priv.old_pnetdev); @@ -775,26 +755,11 @@ void rtw_ips_dev_unload(struct adapter *padapter) rtw_hal_deinit(padapter); } -int pm_netdev_open(struct net_device *pnetdev, u8 bnormal) -{ - int status; - - if (bnormal) - status = netdev_open(pnetdev); - else - status = (_SUCCESS == ips_netdrv_open((struct adapter *)rtw_netdev_priv(pnetdev))) ? (0) : (-1); - return status; -} - int netdev_close(struct net_device *pnetdev) { struct adapter *padapter = (struct adapter *)rtw_netdev_priv(pnetdev); struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); - if (padapter->pwrctrlpriv.bInternalAutoSuspend) { - if (padapter->pwrctrlpriv.rf_pwrstate == rf_off) - padapter->pwrctrlpriv.ps_flag = true; - } padapter->net_closed = true; if (padapter->pwrctrlpriv.rf_pwrstate == rf_on) { diff --git a/drivers/staging/r8188eu/os_dep/usb_intf.c b/drivers/staging/r8188eu/os_dep/usb_intf.c index 5a35d9fe3fc9..91792dfd3bbe 100644 --- a/drivers/staging/r8188eu/os_dep/usb_intf.c +++ b/drivers/staging/r8188eu/os_dep/usb_intf.c @@ -29,13 +29,12 @@ static struct usb_device_id rtw_usb_id_tbl[] = { /*=== Realtek demoboard ===*/ {USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8179)}, /* 8188EUS */ {USB_DEVICE(USB_VENDER_ID_REALTEK, 0x0179)}, /* 8188ETV */ - {USB_DEVICE(USB_VENDER_ID_REALTEK, 0xf179)}, /* 8188FU */ /*=== Customer ID ===*/ /****** 8188EUS ********/ {USB_DEVICE(0x07B8, 0x8179)}, /* Abocom - Abocom */ {USB_DEVICE(0x0DF6, 0x0076)}, /* Sitecom N150 v2 */ {USB_DEVICE(0x2001, 0x330F)}, /* DLink DWA-125 REV D1 */ - {USB_DEVICE(0x2001, 0x3310)}, /* Dlink DWA-123 REV D1 */ + {USB_DEVICE(0x2001, 0x3310)}, /* Dlink DWA-123 REV D1 */ {USB_DEVICE(0x2001, 0x3311)}, /* DLink GO-USB-N150 REV B1 */ {USB_DEVICE(0x2001, 0x331B)}, /* D-Link DWA-121 rev B1 */ {USB_DEVICE(0x056E, 0x4008)}, /* Elecom WDC-150SU2M */ @@ -70,6 +69,7 @@ static struct rtw_usb_drv *usb_drv = &rtl8188e_usb_drv; static struct dvobj_priv *usb_dvobj_init(struct usb_interface *usb_intf) { int i; + u8 rt_num_in_pipes = 0; struct dvobj_priv *pdvobjpriv; struct usb_host_config *phost_conf; struct usb_config_descriptor *pconf_desc; @@ -80,14 +80,13 @@ static struct dvobj_priv *usb_dvobj_init(struct usb_interface *usb_intf) pdvobjpriv = kzalloc(sizeof(*pdvobjpriv), GFP_KERNEL); if (!pdvobjpriv) - goto exit; + goto err; pdvobjpriv->pusbintf = usb_intf; pusbd = interface_to_usbdev(usb_intf); pdvobjpriv->pusbdev = pusbd; usb_set_intfdata(usb_intf, pdvobjpriv); - pdvobjpriv->RtNumInPipes = 0; pdvobjpriv->RtNumOutPipes = 0; phost_conf = pusbd->actconfig; @@ -98,28 +97,26 @@ static struct dvobj_priv *usb_dvobj_init(struct usb_interface *usb_intf) pdvobjpriv->NumInterfaces = pconf_desc->bNumInterfaces; pdvobjpriv->InterfaceNumber = piface_desc->bInterfaceNumber; - pdvobjpriv->nr_endpoint = piface_desc->bNumEndpoints; - for (i = 0; i < pdvobjpriv->nr_endpoint; i++) { + for (i = 0; i < piface_desc->bNumEndpoints; i++) { int ep_num; pendp_desc = &phost_iface->endpoint[i].desc; ep_num = usb_endpoint_num(pendp_desc); if (usb_endpoint_is_bulk_in(pendp_desc)) { - pdvobjpriv->RtInPipe[pdvobjpriv->RtNumInPipes] = ep_num; - pdvobjpriv->RtNumInPipes++; - } else if (usb_endpoint_is_int_in(pendp_desc)) { - pdvobjpriv->RtInPipe[pdvobjpriv->RtNumInPipes] = ep_num; - pdvobjpriv->RtNumInPipes++; + pdvobjpriv->RtInPipe = ep_num; + rt_num_in_pipes++; } else if (usb_endpoint_is_bulk_out(pendp_desc)) { pdvobjpriv->RtOutPipe[pdvobjpriv->RtNumOutPipes] = ep_num; pdvobjpriv->RtNumOutPipes++; } - pdvobjpriv->ep_num[i] = ep_num; } + if (rt_num_in_pipes != 1) + goto err; + if (pusbd->speed == USB_SPEED_HIGH) { pdvobjpriv->ishighspeed = true; DBG_88E("USB_SPEED_HIGH\n"); @@ -133,9 +130,11 @@ static struct dvobj_priv *usb_dvobj_init(struct usb_interface *usb_intf) rtw_reset_continual_urb_error(pdvobjpriv); usb_get_dev(pusbd); - -exit: return pdvobjpriv; + +err: + kfree(pdvobjpriv); + return NULL; } static void usb_dvobj_deinit(struct usb_interface *usb_intf) @@ -193,8 +192,7 @@ static void rtw_dev_unload(struct adapter *padapter) if (padapter->intf_stop) padapter->intf_stop(padapter); /* s4. */ - if (!padapter->pwrctrlpriv.bInternalAutoSuspend) - rtw_stop_drv_threads(padapter); + rtw_stop_drv_threads(padapter); /* s5. */ if (!padapter->bSurpriseRemoved) { @@ -298,7 +296,7 @@ static int rtw_resume(struct usb_interface *pusb_intf) pwrpriv->bkeepfwalive = false; DBG_88E("bkeepfwalive(%x)\n", pwrpriv->bkeepfwalive); - if (pm_netdev_open(pnetdev, true) != 0) { + if (netdev_open(pnetdev) != 0) { mutex_unlock(&pwrpriv->lock); goto exit; } @@ -362,9 +360,6 @@ static struct adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj, SET_NETDEV_DEV(pnetdev, dvobj_to_dev(dvobj)); padapter = rtw_netdev_priv(pnetdev); - /* step 2. allocate HalData */ - rtl8188eu_alloc_haldata(padapter); - padapter->intf_start = &usb_intf_start; padapter->intf_stop = &usb_intf_stop; @@ -386,7 +381,7 @@ static struct adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj, /* step 5. */ if (rtw_init_drv_sw(padapter) == _FAIL) - goto free_hal_data; + goto handle_dualmac; #ifdef CONFIG_PM if (padapter->pwrctrlpriv.bSupportRemoteWakeup) { @@ -414,7 +409,7 @@ static struct adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj, /* step 6. Tell the network stack we exist */ if (register_netdev(pnetdev) != 0) - goto free_hal_data; + goto handle_dualmac; DBG_88E("bDriverStopped:%d, bSurpriseRemoved:%d, bup:%d, hw_init_completed:%d\n" , padapter->bDriverStopped @@ -425,9 +420,6 @@ static struct adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj, status = _SUCCESS; -free_hal_data: - if (status != _SUCCESS) - kfree(padapter->HalData); handle_dualmac: if (status != _SUCCESS) rtw_handle_dualmac(padapter, 0); diff --git a/drivers/staging/r8188eu/os_dep/usb_ops_linux.c b/drivers/staging/r8188eu/os_dep/usb_ops_linux.c index ef2ea68ae873..d1cb33d3e6a7 100644 --- a/drivers/staging/r8188eu/os_dep/usb_ops_linux.c +++ b/drivers/staging/r8188eu/os_dep/usb_ops_linux.c @@ -12,11 +12,7 @@ unsigned int ffaddr2pipehdl(struct dvobj_priv *pdvobj, u32 addr) unsigned int pipe = 0, ep_num = 0; struct usb_device *pusbd = pdvobj->pusbdev; - if (addr == RECV_BULK_IN_ADDR) { - pipe = usb_rcvbulkpipe(pusbd, pdvobj->RtInPipe[0]); - } else if (addr == RECV_INT_IN_ADDR) { - pipe = usb_rcvbulkpipe(pusbd, pdvobj->RtInPipe[1]); - } else if (addr < HW_QUEUE_ENTRY) { + if (addr < HW_QUEUE_ENTRY) { ep_num = pdvobj->Queue2Pipe[addr]; pipe = usb_sndbulkpipe(pusbd, ep_num); } |