mirror of
https://github.com/lwfinger/rtl8188eu.git
synced 2024-11-26 14:23:39 +00:00
rtl8188eu: Remove CONFIG_IOCTL_CFG80211
This one is always selected. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
This commit is contained in:
parent
34c3293686
commit
5470a10d13
18 changed files with 29 additions and 344 deletions
|
@ -2192,7 +2192,6 @@ u8 ap_free_sta(struct adapter *padapter, struct sta_info *psta, bool active, u16
|
||||||
psta->state &= ~_FW_LINKED;
|
psta->state &= ~_FW_LINKED;
|
||||||
_exit_critical_bh(&psta->lock, &irqL);
|
_exit_critical_bh(&psta->lock, &irqL);
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
if (1) {
|
if (1) {
|
||||||
#ifdef COMPAT_KERNEL_RELEASE
|
#ifdef COMPAT_KERNEL_RELEASE
|
||||||
rtw_cfg80211_indicate_sta_disassoc(padapter, psta->hwaddr, reason);
|
rtw_cfg80211_indicate_sta_disassoc(padapter, psta->hwaddr, reason);
|
||||||
|
@ -2201,9 +2200,7 @@ u8 ap_free_sta(struct adapter *padapter, struct sta_info *psta, bool active, u16
|
||||||
#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) && !defined(CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER) */
|
#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) && !defined(CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER) */
|
||||||
/* will call rtw_cfg80211_indicate_sta_disassoc() in cmd_thread for old API context */
|
/* will call rtw_cfg80211_indicate_sta_disassoc() in cmd_thread for old API context */
|
||||||
#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) && !defined(CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER) */
|
#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) && !defined(CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER) */
|
||||||
} else
|
} else {
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
{
|
|
||||||
rtw_indicate_sta_disassoc_event(padapter, psta);
|
rtw_indicate_sta_disassoc_event(padapter, psta);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -143,7 +143,7 @@ void rtw_free_mlme_priv_ie_data(struct mlme_priv *pmlmepriv)
|
||||||
rtw_free_mlme_ie_data(&pmlmepriv->p2p_assoc_req_ie, &pmlmepriv->p2p_assoc_req_ie_len);
|
rtw_free_mlme_ie_data(&pmlmepriv->p2p_assoc_req_ie, &pmlmepriv->p2p_assoc_req_ie_len);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_WFD) && defined(CONFIG_IOCTL_CFG80211)
|
#if defined(CONFIG_WFD)
|
||||||
rtw_free_mlme_ie_data(&pmlmepriv->wfd_beacon_ie, &pmlmepriv->wfd_beacon_ie_len);
|
rtw_free_mlme_ie_data(&pmlmepriv->wfd_beacon_ie, &pmlmepriv->wfd_beacon_ie_len);
|
||||||
rtw_free_mlme_ie_data(&pmlmepriv->wfd_probe_req_ie, &pmlmepriv->wfd_probe_req_ie_len);
|
rtw_free_mlme_ie_data(&pmlmepriv->wfd_probe_req_ie, &pmlmepriv->wfd_probe_req_ie_len);
|
||||||
rtw_free_mlme_ie_data(&pmlmepriv->wfd_probe_resp_ie, &pmlmepriv->wfd_probe_resp_ie_len);
|
rtw_free_mlme_ie_data(&pmlmepriv->wfd_probe_resp_ie, &pmlmepriv->wfd_probe_resp_ie_len);
|
||||||
|
@ -1226,12 +1226,7 @@ void rtw_surveydone_event_callback(struct adapter *adapter, u8 *pbuf)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
rtw_cfg80211_surveydone_event_callback(adapter);
|
rtw_cfg80211_surveydone_event_callback(adapter);
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
|
|
||||||
;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void rtw_dummy_event_callback(struct adapter *adapter , u8 *pbuf)
|
void rtw_dummy_event_callback(struct adapter *adapter , u8 *pbuf)
|
||||||
|
@ -1963,7 +1958,6 @@ void rtw_stassoc_event_callback(struct adapter *adapter, u8 *pbuf)
|
||||||
|
|
||||||
/* report to upper layer */
|
/* report to upper layer */
|
||||||
DBG_871X("indicate_sta_assoc_event to upper layer - hostapd\n");
|
DBG_871X("indicate_sta_assoc_event to upper layer - hostapd\n");
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
_enter_critical_bh(&psta->lock, &irqL);
|
_enter_critical_bh(&psta->lock, &irqL);
|
||||||
if(psta->passoc_req && psta->assoc_req_len>0)
|
if(psta->passoc_req && psta->assoc_req_len>0)
|
||||||
{
|
{
|
||||||
|
@ -1986,9 +1980,6 @@ void rtw_stassoc_event_callback(struct adapter *adapter, u8 *pbuf)
|
||||||
|
|
||||||
rtw_mfree(passoc_req, assoc_req_len);
|
rtw_mfree(passoc_req, assoc_req_len);
|
||||||
}
|
}
|
||||||
#else /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
rtw_indicate_sta_assoc_event(adapter, psta);
|
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
#endif /* CONFIG_AUTO_AP_MODE */
|
#endif /* CONFIG_AUTO_AP_MODE */
|
||||||
}
|
}
|
||||||
goto exit;
|
goto exit;
|
||||||
|
@ -2087,14 +2078,11 @@ void rtw_stadel_event_callback(struct adapter *adapter, u8 *pbuf)
|
||||||
|
|
||||||
if(check_fwstate(pmlmepriv, WIFI_AP_STATE))
|
if(check_fwstate(pmlmepriv, WIFI_AP_STATE))
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
#ifdef COMPAT_KERNEL_RELEASE
|
#ifdef COMPAT_KERNEL_RELEASE
|
||||||
|
|
||||||
#elif (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)) || defined(CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER)
|
#elif (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)) || defined(CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER)
|
||||||
rtw_cfg80211_indicate_sta_disassoc(adapter, pstadel->macaddr, *(u16*)pstadel->rsvd);
|
rtw_cfg80211_indicate_sta_disassoc(adapter, pstadel->macaddr, *(u16*)pstadel->rsvd);
|
||||||
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)) || defined(CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER) */
|
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)) || defined(CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER) */
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2271,11 +2259,8 @@ void _rtw_join_timeout_handler (struct adapter *adapter)
|
||||||
rtw_indicate_disconnect(adapter);
|
rtw_indicate_disconnect(adapter);
|
||||||
free_scanqueue(pmlmepriv);/* */
|
free_scanqueue(pmlmepriv);/* */
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
/* indicate disconnect for the case that join_timeout and check_fwstate != FW_LINKED */
|
/* indicate disconnect for the case that join_timeout and check_fwstate != FW_LINKED */
|
||||||
rtw_cfg80211_indicate_disconnect(adapter);
|
rtw_cfg80211_indicate_disconnect(adapter);
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_exit_critical_bh(&pmlmepriv->lock, &irqL);
|
_exit_critical_bh(&pmlmepriv->lock, &irqL);
|
||||||
|
|
|
@ -735,7 +735,6 @@ static u32 p2p_listen_state_process(struct adapter *padapter, unsigned char *da)
|
||||||
{
|
{
|
||||||
bool response = true;
|
bool response = true;
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
if( padapter->wdinfo.driver_interface == DRIVER_CFG80211 )
|
if( padapter->wdinfo.driver_interface == DRIVER_CFG80211 )
|
||||||
{
|
{
|
||||||
if(padapter->cfg80211_wdinfo.is_ro_ch == false
|
if(padapter->cfg80211_wdinfo.is_ro_ch == false
|
||||||
|
@ -759,7 +758,6 @@ static u32 p2p_listen_state_process(struct adapter *padapter, unsigned char *da)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
if( padapter->wdinfo.driver_interface == DRIVER_WEXT )
|
if( padapter->wdinfo.driver_interface == DRIVER_WEXT )
|
||||||
{
|
{
|
||||||
/* do nothing if the device name is empty */
|
/* do nothing if the device name is empty */
|
||||||
|
@ -838,10 +836,6 @@ unsigned int OnProbeReq(struct adapter *padapter, union recv_frame *precv_frame)
|
||||||
{
|
{
|
||||||
if(rtw_p2p_chk_role(pwdinfo, P2P_ROLE_DEVICE))
|
if(rtw_p2p_chk_role(pwdinfo, P2P_ROLE_DEVICE))
|
||||||
{
|
{
|
||||||
#ifndef CONFIG_IOCTL_CFG80211
|
|
||||||
/* FIXME */
|
|
||||||
report_survey_event(padapter, precv_frame);
|
|
||||||
#endif
|
|
||||||
p2p_listen_state_process( padapter, get_sa(pframe));
|
p2p_listen_state_process( padapter, get_sa(pframe));
|
||||||
|
|
||||||
return _SUCCESS;
|
return _SUCCESS;
|
||||||
|
@ -1976,7 +1970,6 @@ unsigned int OnAssocReq(struct adapter *padapter, union recv_frame *precv_frame)
|
||||||
else
|
else
|
||||||
issue_asocrsp(padapter, status, pstat, WIFI_REASSOCRSP);
|
issue_asocrsp(padapter, status, pstat, WIFI_REASSOCRSP);
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
_enter_critical_bh(&pstat->lock, &irqL);
|
_enter_critical_bh(&pstat->lock, &irqL);
|
||||||
if(pstat->passoc_req)
|
if(pstat->passoc_req)
|
||||||
{
|
{
|
||||||
|
@ -1992,7 +1985,6 @@ unsigned int OnAssocReq(struct adapter *padapter, union recv_frame *precv_frame)
|
||||||
pstat->assoc_req_len = pkt_len;
|
pstat->assoc_req_len = pkt_len;
|
||||||
}
|
}
|
||||||
_exit_critical_bh(&pstat->lock, &irqL);
|
_exit_critical_bh(&pstat->lock, &irqL);
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
|
|
||||||
/* 3-(1) report sta add event */
|
/* 3-(1) report sta add event */
|
||||||
report_add_sta_event(padapter, pstat->hwaddr, pstat->aid);
|
report_add_sta_event(padapter, pstat->hwaddr, pstat->aid);
|
||||||
|
@ -4364,7 +4356,6 @@ void issue_probersp_p2p(struct adapter *padapter, unsigned char *da)
|
||||||
/* DS parameter set */
|
/* DS parameter set */
|
||||||
pframe = rtw_set_ie(pframe, _DSSET_IE_, 1, (unsigned char *)&pwdinfo->listen_channel, &pattrib->pktlen);
|
pframe = rtw_set_ie(pframe, _DSSET_IE_, 1, (unsigned char *)&pwdinfo->listen_channel, &pattrib->pktlen);
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
if(wdev_to_priv(padapter->rtw_wdev)->p2p_enabled && pwdinfo->driver_interface == DRIVER_CFG80211 )
|
if(wdev_to_priv(padapter->rtw_wdev)->p2p_enabled && pwdinfo->driver_interface == DRIVER_CFG80211 )
|
||||||
{
|
{
|
||||||
if( pmlmepriv->wps_probe_resp_ie != NULL && pmlmepriv->p2p_probe_resp_ie != NULL )
|
if( pmlmepriv->wps_probe_resp_ie != NULL && pmlmepriv->p2p_probe_resp_ie != NULL )
|
||||||
|
@ -4379,10 +4370,7 @@ void issue_probersp_p2p(struct adapter *padapter, unsigned char *da)
|
||||||
pattrib->pktlen += pmlmepriv->p2p_probe_resp_ie_len;
|
pattrib->pktlen += pmlmepriv->p2p_probe_resp_ie_len;
|
||||||
pframe += pmlmepriv->p2p_probe_resp_ie_len;
|
pframe += pmlmepriv->p2p_probe_resp_ie_len;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
{
|
|
||||||
|
|
||||||
/* Todo: WPS IE */
|
/* Todo: WPS IE */
|
||||||
/* Noted by Albert 20100907 */
|
/* Noted by Albert 20100907 */
|
||||||
|
@ -4594,15 +4582,11 @@ void issue_probersp_p2p(struct adapter *padapter, unsigned char *da)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_WFD
|
#ifdef CONFIG_WFD
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
if ( true == pwdinfo->wfd_info->wfd_enable ) {
|
||||||
if ( true == pwdinfo->wfd_info->wfd_enable )
|
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
{
|
|
||||||
wfdielen = build_probe_resp_wfd_ie(pwdinfo, pframe, 0);
|
wfdielen = build_probe_resp_wfd_ie(pwdinfo, pframe, 0);
|
||||||
pframe += wfdielen;
|
pframe += wfdielen;
|
||||||
pattrib->pktlen += wfdielen;
|
pattrib->pktlen += wfdielen;
|
||||||
}
|
}
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
else if (pmlmepriv->wfd_probe_resp_ie != NULL && pmlmepriv->wfd_probe_resp_ie_len>0)
|
else if (pmlmepriv->wfd_probe_resp_ie != NULL && pmlmepriv->wfd_probe_resp_ie_len>0)
|
||||||
{
|
{
|
||||||
/* WFD IE */
|
/* WFD IE */
|
||||||
|
@ -4610,7 +4594,6 @@ void issue_probersp_p2p(struct adapter *padapter, unsigned char *da)
|
||||||
pattrib->pktlen += pmlmepriv->wfd_probe_resp_ie_len;
|
pattrib->pktlen += pmlmepriv->wfd_probe_resp_ie_len;
|
||||||
pframe += pmlmepriv->wfd_probe_resp_ie_len;
|
pframe += pmlmepriv->wfd_probe_resp_ie_len;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
#endif /* CONFIG_WFD */
|
#endif /* CONFIG_WFD */
|
||||||
|
|
||||||
pattrib->last_txcmdsz = pattrib->pktlen;
|
pattrib->last_txcmdsz = pattrib->pktlen;
|
||||||
|
@ -4704,7 +4687,6 @@ static int _issue_probereq_p2p(struct adapter *padapter, u8 *da, int wait_ack)
|
||||||
/* Use the OFDM rate in the P2P probe request frame. ( 6(B), 9(B), 12(B), 24(B), 36, 48, 54 ) */
|
/* Use the OFDM rate in the P2P probe request frame. ( 6(B), 9(B), 12(B), 24(B), 36, 48, 54 ) */
|
||||||
pframe = rtw_set_ie(pframe, _SUPPORTEDRATES_IE_, 8, pwdinfo->support_rate, &pattrib->pktlen);
|
pframe = rtw_set_ie(pframe, _SUPPORTEDRATES_IE_, 8, pwdinfo->support_rate, &pattrib->pktlen);
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
if(wdev_to_priv(padapter->rtw_wdev)->p2p_enabled && pwdinfo->driver_interface == DRIVER_CFG80211 )
|
if(wdev_to_priv(padapter->rtw_wdev)->p2p_enabled && pwdinfo->driver_interface == DRIVER_CFG80211 )
|
||||||
{
|
{
|
||||||
if( pmlmepriv->wps_probe_req_ie != NULL && pmlmepriv->p2p_probe_req_ie != NULL )
|
if( pmlmepriv->wps_probe_req_ie != NULL && pmlmepriv->p2p_probe_req_ie != NULL )
|
||||||
|
@ -4719,10 +4701,7 @@ static int _issue_probereq_p2p(struct adapter *padapter, u8 *da, int wait_ack)
|
||||||
pattrib->pktlen += pmlmepriv->p2p_probe_req_ie_len;
|
pattrib->pktlen += pmlmepriv->p2p_probe_req_ie_len;
|
||||||
pframe += pmlmepriv->p2p_probe_req_ie_len;
|
pframe += pmlmepriv->p2p_probe_req_ie_len;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
{
|
|
||||||
|
|
||||||
/* WPS IE */
|
/* WPS IE */
|
||||||
/* Noted by Albert 20110221 */
|
/* Noted by Albert 20110221 */
|
||||||
|
@ -4942,15 +4921,12 @@ static int _issue_probereq_p2p(struct adapter *padapter, u8 *da, int wait_ack)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_WFD
|
#ifdef CONFIG_WFD
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
if ( true == pwdinfo->wfd_info->wfd_enable )
|
if ( true == pwdinfo->wfd_info->wfd_enable )
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
wfdielen = build_probe_req_wfd_ie(pwdinfo, pframe);
|
wfdielen = build_probe_req_wfd_ie(pwdinfo, pframe);
|
||||||
pframe += wfdielen;
|
pframe += wfdielen;
|
||||||
pattrib->pktlen += wfdielen;
|
pattrib->pktlen += wfdielen;
|
||||||
}
|
}
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
else if (pmlmepriv->wfd_probe_req_ie != NULL && pmlmepriv->wfd_probe_req_ie_len>0)
|
else if (pmlmepriv->wfd_probe_req_ie != NULL && pmlmepriv->wfd_probe_req_ie_len>0)
|
||||||
{
|
{
|
||||||
/* WFD IE */
|
/* WFD IE */
|
||||||
|
@ -4958,7 +4934,6 @@ static int _issue_probereq_p2p(struct adapter *padapter, u8 *da, int wait_ack)
|
||||||
pattrib->pktlen += pmlmepriv->wfd_probe_req_ie_len;
|
pattrib->pktlen += pmlmepriv->wfd_probe_req_ie_len;
|
||||||
pframe += pmlmepriv->wfd_probe_req_ie_len;
|
pframe += pmlmepriv->wfd_probe_req_ie_len;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
#endif /* CONFIG_WFD */
|
#endif /* CONFIG_WFD */
|
||||||
|
|
||||||
pattrib->last_txcmdsz = pattrib->pktlen;
|
pattrib->last_txcmdsz = pattrib->pktlen;
|
||||||
|
@ -5084,14 +5059,10 @@ static unsigned int on_action_public_p2p(union recv_frame *precv_frame)
|
||||||
|
|
||||||
#ifdef CONFIG_P2P
|
#ifdef CONFIG_P2P
|
||||||
_cancel_timer_ex( &pwdinfo->reset_ch_sitesurvey );
|
_cancel_timer_ex( &pwdinfo->reset_ch_sitesurvey );
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
if(wdev_to_priv(padapter->rtw_wdev)->p2p_enabled && pwdinfo->driver_interface == DRIVER_CFG80211)
|
if(wdev_to_priv(padapter->rtw_wdev)->p2p_enabled && pwdinfo->driver_interface == DRIVER_CFG80211)
|
||||||
{
|
{
|
||||||
rtw_cfg80211_rx_p2p_action_public(padapter, pframe, len);
|
rtw_cfg80211_rx_p2p_action_public(padapter, pframe, len);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
{
|
|
||||||
/* Do nothing if the driver doesn't enable the P2P function. */
|
/* Do nothing if the driver doesn't enable the P2P function. */
|
||||||
if(rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE) || rtw_p2p_chk_state(pwdinfo, P2P_STATE_IDLE))
|
if(rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE) || rtw_p2p_chk_state(pwdinfo, P2P_STATE_IDLE))
|
||||||
return _SUCCESS;
|
return _SUCCESS;
|
||||||
|
@ -5529,10 +5500,8 @@ static unsigned int on_action_public_default(union recv_frame *precv_frame, u8 a
|
||||||
if (rtw_action_public_decache(precv_frame, token) == _FAIL)
|
if (rtw_action_public_decache(precv_frame, token) == _FAIL)
|
||||||
goto exit;
|
goto exit;
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
cnt += sprintf((msg+cnt), "%s(token:%u)", action_public_str(action), token);
|
cnt += sprintf((msg+cnt), "%s(token:%u)", action_public_str(action), token);
|
||||||
rtw_cfg80211_rx_action(adapter, pframe, frame_len, msg);
|
rtw_cfg80211_rx_action(adapter, pframe, frame_len, msg);
|
||||||
#endif
|
|
||||||
|
|
||||||
ret = _SUCCESS;
|
ret = _SUCCESS;
|
||||||
|
|
||||||
|
@ -5644,15 +5613,11 @@ unsigned int OnAction_p2p(struct adapter *padapter, union recv_frame *precv_fram
|
||||||
if (be32_to_cpu(*((__be32*)(frame_body + 1))) != P2POUI)
|
if (be32_to_cpu(*((__be32*)(frame_body + 1))) != P2POUI)
|
||||||
return _SUCCESS;
|
return _SUCCESS;
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
if(wdev_to_priv(padapter->rtw_wdev)->p2p_enabled && pwdinfo->driver_interface == DRIVER_CFG80211 )
|
if(wdev_to_priv(padapter->rtw_wdev)->p2p_enabled && pwdinfo->driver_interface == DRIVER_CFG80211 )
|
||||||
{
|
{
|
||||||
rtw_cfg80211_rx_action_p2p(padapter, pframe, len);
|
rtw_cfg80211_rx_action_p2p(padapter, pframe, len);
|
||||||
return _SUCCESS;
|
return _SUCCESS;
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
{
|
|
||||||
len -= sizeof(struct rtw_ieee80211_hdr_3addr);
|
len -= sizeof(struct rtw_ieee80211_hdr_3addr);
|
||||||
OUI_Subtype = frame_body[5];
|
OUI_Subtype = frame_body[5];
|
||||||
dialogToken = frame_body[6];
|
dialogToken = frame_body[6];
|
||||||
|
@ -6005,7 +5970,6 @@ void issue_beacon(struct adapter *padapter, int timeout_ms)
|
||||||
|
|
||||||
remainder_ielen = cur_network->IELength - wps_offset - wpsielen;
|
remainder_ielen = cur_network->IELength - wps_offset - wpsielen;
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
if(wdev_to_priv(padapter->rtw_wdev)->p2p_enabled && pwdinfo->driver_interface == DRIVER_CFG80211 )
|
if(wdev_to_priv(padapter->rtw_wdev)->p2p_enabled && pwdinfo->driver_interface == DRIVER_CFG80211 )
|
||||||
{
|
{
|
||||||
if(pmlmepriv->wps_beacon_ie && pmlmepriv->wps_beacon_ie_len>0)
|
if(pmlmepriv->wps_beacon_ie && pmlmepriv->wps_beacon_ie_len>0)
|
||||||
|
@ -6029,10 +5993,7 @@ void issue_beacon(struct adapter *padapter, int timeout_ms)
|
||||||
pframe += cur_network->IELength;
|
pframe += cur_network->IELength;
|
||||||
pattrib->pktlen += cur_network->IELength;
|
pattrib->pktlen += cur_network->IELength;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
{
|
|
||||||
pframe_wscie = pframe + wps_offset;
|
pframe_wscie = pframe + wps_offset;
|
||||||
memcpy(pframe, cur_network->IEs, wps_offset+wpsielen);
|
memcpy(pframe, cur_network->IEs, wps_offset+wpsielen);
|
||||||
pframe += (wps_offset + wpsielen);
|
pframe += (wps_offset + wpsielen);
|
||||||
|
@ -6122,31 +6083,21 @@ void issue_beacon(struct adapter *padapter, int timeout_ms)
|
||||||
if(rtw_p2p_chk_role(pwdinfo, P2P_ROLE_GO))
|
if(rtw_p2p_chk_role(pwdinfo, P2P_ROLE_GO))
|
||||||
{
|
{
|
||||||
u32 len;
|
u32 len;
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
if(wdev_to_priv(padapter->rtw_wdev)->p2p_enabled && pwdinfo->driver_interface == DRIVER_CFG80211 )
|
if(wdev_to_priv(padapter->rtw_wdev)->p2p_enabled && pwdinfo->driver_interface == DRIVER_CFG80211 )
|
||||||
{
|
{
|
||||||
len = pmlmepriv->p2p_beacon_ie_len;
|
len = pmlmepriv->p2p_beacon_ie_len;
|
||||||
if(pmlmepriv->p2p_beacon_ie && len>0)
|
if(pmlmepriv->p2p_beacon_ie && len>0)
|
||||||
memcpy(pframe, pmlmepriv->p2p_beacon_ie, len);
|
memcpy(pframe, pmlmepriv->p2p_beacon_ie, len);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
{
|
|
||||||
len = build_beacon_p2p_ie(pwdinfo, pframe);
|
len = build_beacon_p2p_ie(pwdinfo, pframe);
|
||||||
}
|
}
|
||||||
|
|
||||||
pframe += len;
|
pframe += len;
|
||||||
pattrib->pktlen += len;
|
pattrib->pktlen += len;
|
||||||
#ifdef CONFIG_WFD
|
#ifdef CONFIG_WFD
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
if(pwdinfo->wfd_info->wfd_enable) {
|
||||||
if(true == pwdinfo->wfd_info->wfd_enable)
|
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
{
|
|
||||||
len = build_beacon_wfd_ie( pwdinfo, pframe );
|
len = build_beacon_wfd_ie( pwdinfo, pframe );
|
||||||
}
|
} else {
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
else
|
|
||||||
{
|
|
||||||
len = 0;
|
len = 0;
|
||||||
if(pmlmepriv->wfd_beacon_ie && pmlmepriv->wfd_beacon_ie_len>0)
|
if(pmlmepriv->wfd_beacon_ie && pmlmepriv->wfd_beacon_ie_len>0)
|
||||||
{
|
{
|
||||||
|
@ -6154,7 +6105,6 @@ void issue_beacon(struct adapter *padapter, int timeout_ms)
|
||||||
memcpy(pframe, pmlmepriv->wfd_beacon_ie, len);
|
memcpy(pframe, pmlmepriv->wfd_beacon_ie, len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
pframe += len;
|
pframe += len;
|
||||||
pattrib->pktlen += len;
|
pattrib->pktlen += len;
|
||||||
#endif /* CONFIG_WFD */
|
#endif /* CONFIG_WFD */
|
||||||
|
@ -6446,17 +6396,13 @@ void issue_probersp(struct adapter *padapter, unsigned char *da, u8 is_valid_p2p
|
||||||
if(rtw_p2p_chk_role(pwdinfo, P2P_ROLE_GO) /*&& is_valid_p2p_probereq*/)
|
if(rtw_p2p_chk_role(pwdinfo, P2P_ROLE_GO) /*&& is_valid_p2p_probereq*/)
|
||||||
{
|
{
|
||||||
u32 len;
|
u32 len;
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
if(wdev_to_priv(padapter->rtw_wdev)->p2p_enabled && pwdinfo->driver_interface == DRIVER_CFG80211 )
|
if(wdev_to_priv(padapter->rtw_wdev)->p2p_enabled && pwdinfo->driver_interface == DRIVER_CFG80211 )
|
||||||
{
|
{
|
||||||
/* if pwdinfo->role == P2P_ROLE_DEVICE will call issue_probersp_p2p() */
|
/* if pwdinfo->role == P2P_ROLE_DEVICE will call issue_probersp_p2p() */
|
||||||
len = pmlmepriv->p2p_go_probe_resp_ie_len;
|
len = pmlmepriv->p2p_go_probe_resp_ie_len;
|
||||||
if(pmlmepriv->p2p_go_probe_resp_ie && len>0)
|
if(pmlmepriv->p2p_go_probe_resp_ie && len>0)
|
||||||
memcpy(pframe, pmlmepriv->p2p_go_probe_resp_ie, len);
|
memcpy(pframe, pmlmepriv->p2p_go_probe_resp_ie, len);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
{
|
|
||||||
len = build_probe_resp_p2p_ie(pwdinfo, pframe);
|
len = build_probe_resp_p2p_ie(pwdinfo, pframe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6464,13 +6410,10 @@ void issue_probersp(struct adapter *padapter, unsigned char *da, u8 is_valid_p2p
|
||||||
pattrib->pktlen += len;
|
pattrib->pktlen += len;
|
||||||
|
|
||||||
#ifdef CONFIG_WFD
|
#ifdef CONFIG_WFD
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
if(true == pwdinfo->wfd_info->wfd_enable)
|
if(true == pwdinfo->wfd_info->wfd_enable)
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
{
|
{
|
||||||
len = build_probe_resp_wfd_ie(pwdinfo, pframe, 0);
|
len = build_probe_resp_wfd_ie(pwdinfo, pframe, 0);
|
||||||
}
|
}
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
len = 0;
|
len = 0;
|
||||||
|
@ -6480,7 +6423,6 @@ void issue_probersp(struct adapter *padapter, unsigned char *da, u8 is_valid_p2p
|
||||||
memcpy(pframe, pmlmepriv->wfd_probe_resp_ie, len);
|
memcpy(pframe, pmlmepriv->wfd_probe_resp_ie, len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
pframe += len;
|
pframe += len;
|
||||||
pattrib->pktlen += len;
|
pattrib->pktlen += len;
|
||||||
#endif /* CONFIG_WFD */
|
#endif /* CONFIG_WFD */
|
||||||
|
@ -6924,9 +6866,7 @@ void issue_asocrsp(struct adapter *padapter, unsigned short status, struct sta_i
|
||||||
}
|
}
|
||||||
#ifdef CONFIG_WFD
|
#ifdef CONFIG_WFD
|
||||||
if(rtw_p2p_chk_role(pwdinfo, P2P_ROLE_GO)
|
if(rtw_p2p_chk_role(pwdinfo, P2P_ROLE_GO)
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
&& (true == pwdinfo->wfd_info->wfd_enable)
|
&& (true == pwdinfo->wfd_info->wfd_enable)
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
wfdielen = build_assoc_resp_wfd_ie(pwdinfo, pframe);
|
wfdielen = build_assoc_resp_wfd_ie(pwdinfo, pframe);
|
||||||
|
@ -7205,7 +7145,6 @@ void issue_assocreq(struct adapter *padapter)
|
||||||
|
|
||||||
#ifdef CONFIG_P2P
|
#ifdef CONFIG_P2P
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
if(wdev_to_priv(padapter->rtw_wdev)->p2p_enabled && pwdinfo->driver_interface == DRIVER_CFG80211 )
|
if(wdev_to_priv(padapter->rtw_wdev)->p2p_enabled && pwdinfo->driver_interface == DRIVER_CFG80211 )
|
||||||
{
|
{
|
||||||
if(pmlmepriv->p2p_assoc_req_ie && pmlmepriv->p2p_assoc_req_ie_len>0)
|
if(pmlmepriv->p2p_assoc_req_ie && pmlmepriv->p2p_assoc_req_ie_len>0)
|
||||||
|
@ -7214,10 +7153,7 @@ void issue_assocreq(struct adapter *padapter)
|
||||||
pframe += pmlmepriv->p2p_assoc_req_ie_len;
|
pframe += pmlmepriv->p2p_assoc_req_ie_len;
|
||||||
pattrib->pktlen += pmlmepriv->p2p_assoc_req_ie_len;
|
pattrib->pktlen += pmlmepriv->p2p_assoc_req_ie_len;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
{
|
|
||||||
if(!rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE) && !rtw_p2p_chk_state(pwdinfo, P2P_STATE_IDLE))
|
if(!rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE) && !rtw_p2p_chk_state(pwdinfo, P2P_STATE_IDLE))
|
||||||
{
|
{
|
||||||
/* Should add the P2P IE in the association request frame. */
|
/* Should add the P2P IE in the association request frame. */
|
||||||
|
@ -7360,15 +7296,12 @@ void issue_assocreq(struct adapter *padapter)
|
||||||
#endif /* CONFIG_P2P */
|
#endif /* CONFIG_P2P */
|
||||||
|
|
||||||
#ifdef CONFIG_WFD
|
#ifdef CONFIG_WFD
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
if ( true == pwdinfo->wfd_info->wfd_enable )
|
if ( true == pwdinfo->wfd_info->wfd_enable )
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
{
|
{
|
||||||
wfdielen = build_assoc_req_wfd_ie(pwdinfo, pframe);
|
wfdielen = build_assoc_req_wfd_ie(pwdinfo, pframe);
|
||||||
pframe += wfdielen;
|
pframe += wfdielen;
|
||||||
pattrib->pktlen += wfdielen;
|
pattrib->pktlen += wfdielen;
|
||||||
}
|
}
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
else if (pmlmepriv->wfd_assoc_req_ie != NULL && pmlmepriv->wfd_assoc_req_ie_len>0)
|
else if (pmlmepriv->wfd_assoc_req_ie != NULL && pmlmepriv->wfd_assoc_req_ie_len>0)
|
||||||
{
|
{
|
||||||
/* WFD IE */
|
/* WFD IE */
|
||||||
|
@ -7376,7 +7309,6 @@ void issue_assocreq(struct adapter *padapter)
|
||||||
pattrib->pktlen += pmlmepriv->wfd_assoc_req_ie_len;
|
pattrib->pktlen += pmlmepriv->wfd_assoc_req_ie_len;
|
||||||
pframe += pmlmepriv->wfd_assoc_req_ie_len;
|
pframe += pmlmepriv->wfd_assoc_req_ie_len;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
#endif /* CONFIG_WFD */
|
#endif /* CONFIG_WFD */
|
||||||
|
|
||||||
pattrib->last_txcmdsz = pattrib->pktlen;
|
pattrib->last_txcmdsz = pattrib->pktlen;
|
||||||
|
@ -10755,11 +10687,9 @@ u8 sitesurvey_cmd_hdl(struct adapter *padapter, u8 *pbuf)
|
||||||
|
|
||||||
/* config the initial gain under scaning, need to write the BB registers */
|
/* config the initial gain under scaning, need to write the BB registers */
|
||||||
#ifdef CONFIG_P2P
|
#ifdef CONFIG_P2P
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
if((wdev_to_priv(padapter->rtw_wdev))->p2p_enabled == true && pwdinfo->driver_interface == DRIVER_CFG80211 )
|
if((wdev_to_priv(padapter->rtw_wdev))->p2p_enabled == true && pwdinfo->driver_interface == DRIVER_CFG80211 )
|
||||||
initialgain = 0x30;
|
initialgain = 0x30;
|
||||||
else
|
else
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
if ( !rtw_p2p_chk_state( pwdinfo, P2P_STATE_NONE ) )
|
if ( !rtw_p2p_chk_state( pwdinfo, P2P_STATE_NONE ) )
|
||||||
initialgain = 0x28;
|
initialgain = 0x28;
|
||||||
else
|
else
|
||||||
|
|
|
@ -3311,7 +3311,6 @@ static void pre_tx_negoreq_handler( struct adapter* padapter )
|
||||||
_set_timer( &pwdinfo->pre_tx_scan_timer, P2P_TX_PRESCAN_TIMEOUT );
|
_set_timer( &pwdinfo->pre_tx_scan_timer, P2P_TX_PRESCAN_TIMEOUT );
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
static void ro_ch_handler(struct adapter *padapter)
|
static void ro_ch_handler(struct adapter *padapter)
|
||||||
{
|
{
|
||||||
struct cfg80211_wifidirect_info *pcfg80211_wdinfo = &padapter->cfg80211_wdinfo;
|
struct cfg80211_wifidirect_info *pcfg80211_wdinfo = &padapter->cfg80211_wdinfo;
|
||||||
|
@ -3929,7 +3928,6 @@ void rtw_init_cfg80211_wifidirect_info( struct adapter* padapter)
|
||||||
|
|
||||||
_init_timer( &pcfg80211_wdinfo->remain_on_ch_timer, padapter->pnetdev, ro_ch_timer_process, padapter );
|
_init_timer( &pcfg80211_wdinfo->remain_on_ch_timer, padapter->pnetdev, ro_ch_timer_process, padapter );
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
|
|
||||||
void p2p_protocol_wk_hdl(struct adapter *padapter, int intCmdType)
|
void p2p_protocol_wk_hdl(struct adapter *padapter, int intCmdType)
|
||||||
{
|
{
|
||||||
|
@ -3957,14 +3955,11 @@ void p2p_protocol_wk_hdl(struct adapter *padapter, int intCmdType)
|
||||||
case P2P_PRE_TX_NEGOREQ_PROCESS_WK:
|
case P2P_PRE_TX_NEGOREQ_PROCESS_WK:
|
||||||
pre_tx_negoreq_handler( padapter );
|
pre_tx_negoreq_handler( padapter );
|
||||||
break;
|
break;
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
case P2P_RO_CH_WK:
|
case P2P_RO_CH_WK:
|
||||||
{
|
{
|
||||||
ro_ch_handler( padapter );
|
ro_ch_handler( padapter );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4441,12 +4436,7 @@ void init_wifidirect_info( struct adapter* padapter, enum P2P_ROLE role)
|
||||||
|
|
||||||
/* Commented by Kurt 20130319 */
|
/* Commented by Kurt 20130319 */
|
||||||
/* For WiDi purpose: Use CFG80211 interface but controled WFD/RDS frame by driver itself. */
|
/* For WiDi purpose: Use CFG80211 interface but controled WFD/RDS frame by driver itself. */
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
pwdinfo->driver_interface = DRIVER_CFG80211;
|
pwdinfo->driver_interface = DRIVER_CFG80211;
|
||||||
#else
|
|
||||||
pwdinfo->driver_interface = DRIVER_WEXT;
|
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
|
|
||||||
pwdinfo->wfd_tdls_enable = 0;
|
pwdinfo->wfd_tdls_enable = 0;
|
||||||
memset( pwdinfo->p2p_peer_interface_addr, 0x00, ETH_ALEN );
|
memset( pwdinfo->p2p_peer_interface_addr, 0x00, ETH_ALEN );
|
||||||
memset( pwdinfo->p2p_peer_device_addr, 0x00, ETH_ALEN );
|
memset( pwdinfo->p2p_peer_device_addr, 0x00, ETH_ALEN );
|
||||||
|
@ -4634,10 +4624,8 @@ int rtw_p2p_enable(struct adapter *padapter, enum P2P_ROLE role)
|
||||||
return ret;
|
return ret;
|
||||||
#endif /* CONFIG_INTEL_WIDI */
|
#endif /* CONFIG_INTEL_WIDI */
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
if( padapter->wdinfo.driver_interface == DRIVER_CFG80211 )
|
if( padapter->wdinfo.driver_interface == DRIVER_CFG80211 )
|
||||||
wdev_to_priv(padapter->rtw_wdev)->p2p_enabled = false;
|
wdev_to_priv(padapter->rtw_wdev)->p2p_enabled = false;
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
|
|
||||||
if (_FAIL == rtw_pwr_wakeup(padapter)) {
|
if (_FAIL == rtw_pwr_wakeup(padapter)) {
|
||||||
ret = _FAIL;
|
ret = _FAIL;
|
||||||
|
@ -4673,14 +4661,8 @@ int rtw_p2p_enable(struct adapter *padapter, enum P2P_ROLE role)
|
||||||
#endif /* CONFIG_INTEL_WIDI */
|
#endif /* CONFIG_INTEL_WIDI */
|
||||||
|
|
||||||
/* For WiDi purpose. */
|
/* For WiDi purpose. */
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
pwdinfo->driver_interface = DRIVER_CFG80211;
|
pwdinfo->driver_interface = DRIVER_CFG80211;
|
||||||
#else
|
|
||||||
pwdinfo->driver_interface = DRIVER_WEXT;
|
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -126,9 +126,7 @@ static bool rtw_pwr_unassociated_idle(struct adapter *adapter)
|
||||||
struct xmit_priv *pxmit_priv = &adapter->xmitpriv;
|
struct xmit_priv *pxmit_priv = &adapter->xmitpriv;
|
||||||
#ifdef CONFIG_P2P
|
#ifdef CONFIG_P2P
|
||||||
struct wifidirect_info *pwdinfo = &(adapter->wdinfo);
|
struct wifidirect_info *pwdinfo = &(adapter->wdinfo);
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
struct cfg80211_wifidirect_info *pcfg80211_wdinfo = &adapter->cfg80211_wdinfo;
|
struct cfg80211_wifidirect_info *pcfg80211_wdinfo = &adapter->cfg80211_wdinfo;
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
|
@ -142,7 +140,7 @@ static bool rtw_pwr_unassociated_idle(struct adapter *adapter)
|
||||||
|| check_fwstate(pmlmepriv, WIFI_UNDER_LINKING|WIFI_UNDER_WPS)
|
|| check_fwstate(pmlmepriv, WIFI_UNDER_LINKING|WIFI_UNDER_WPS)
|
||||||
|| check_fwstate(pmlmepriv, WIFI_AP_STATE)
|
|| check_fwstate(pmlmepriv, WIFI_AP_STATE)
|
||||||
|| check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE|WIFI_ADHOC_STATE)
|
|| check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE|WIFI_ADHOC_STATE)
|
||||||
#if defined(CONFIG_P2P) && defined(CONFIG_IOCTL_CFG80211) && defined(CONFIG_P2P_IPS)
|
#if defined(CONFIG_P2P) && defined(CONFIG_P2P_IPS)
|
||||||
|| pcfg80211_wdinfo->is_ro_ch
|
|| pcfg80211_wdinfo->is_ro_ch
|
||||||
#elif defined(CONFIG_P2P)
|
#elif defined(CONFIG_P2P)
|
||||||
|| !rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE)
|
|| !rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE)
|
||||||
|
@ -156,16 +154,14 @@ static bool rtw_pwr_unassociated_idle(struct adapter *adapter)
|
||||||
struct mlme_priv *b_pmlmepriv = &(buddy->mlmepriv);
|
struct mlme_priv *b_pmlmepriv = &(buddy->mlmepriv);
|
||||||
#ifdef CONFIG_P2P
|
#ifdef CONFIG_P2P
|
||||||
struct wifidirect_info *b_pwdinfo = &(buddy->wdinfo);
|
struct wifidirect_info *b_pwdinfo = &(buddy->wdinfo);
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
struct cfg80211_wifidirect_info *b_pcfg80211_wdinfo = &buddy->cfg80211_wdinfo;
|
struct cfg80211_wifidirect_info *b_pcfg80211_wdinfo = &buddy->cfg80211_wdinfo;
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
if (check_fwstate(b_pmlmepriv, WIFI_ASOC_STATE|WIFI_SITE_MONITOR)
|
if (check_fwstate(b_pmlmepriv, WIFI_ASOC_STATE|WIFI_SITE_MONITOR)
|
||||||
|| check_fwstate(b_pmlmepriv, WIFI_UNDER_LINKING|WIFI_UNDER_WPS)
|
|| check_fwstate(b_pmlmepriv, WIFI_UNDER_LINKING|WIFI_UNDER_WPS)
|
||||||
|| check_fwstate(b_pmlmepriv, WIFI_AP_STATE)
|
|| check_fwstate(b_pmlmepriv, WIFI_AP_STATE)
|
||||||
|| check_fwstate(b_pmlmepriv, WIFI_ADHOC_MASTER_STATE|WIFI_ADHOC_STATE)
|
|| check_fwstate(b_pmlmepriv, WIFI_ADHOC_MASTER_STATE|WIFI_ADHOC_STATE)
|
||||||
#if defined(CONFIG_P2P) && defined(CONFIG_IOCTL_CFG80211) && defined(CONFIG_P2P_IPS)
|
#if defined(CONFIG_P2P) && defined(CONFIG_P2P_IPS)
|
||||||
|| b_pcfg80211_wdinfo->is_ro_ch
|
|| b_pcfg80211_wdinfo->is_ro_ch
|
||||||
#elif defined(CONFIG_P2P)
|
#elif defined(CONFIG_P2P)
|
||||||
|| !rtw_p2p_chk_state(b_pwdinfo, P2P_STATE_NONE)
|
|| !rtw_p2p_chk_state(b_pwdinfo, P2P_STATE_NONE)
|
||||||
|
@ -512,11 +508,8 @@ u8 PS_RDY_CHECK(struct adapter * padapter)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
if (!rtw_cfg80211_pwr_mgmt(padapter))
|
if (!rtw_cfg80211_pwr_mgmt(padapter))
|
||||||
return false;
|
return false;
|
||||||
#endif
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,20 +39,8 @@
|
||||||
|
|
||||||
#define CONFIG_RTL8188E
|
#define CONFIG_RTL8188E
|
||||||
|
|
||||||
#if defined(CONFIG_PLATFORM_ACTIONS_ATM702X)
|
#define CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER
|
||||||
#ifndef CONFIG_IOCTL_CFG80211
|
#define CONFIG_SET_SCAN_DENY_TIMER
|
||||||
#define CONFIG_IOCTL_CFG80211
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
//#define RTW_USE_CFG80211_STA_EVENT /* Indecate new sta asoc through cfg80211_new_sta */
|
|
||||||
#define CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER
|
|
||||||
//#define CONFIG_DEBUG_CFG80211
|
|
||||||
//#define CONFIG_DRV_ISSUE_PROV_REQ // IOT FOR S2
|
|
||||||
#define CONFIG_SET_SCAN_DENY_TIMER
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Internal General Config
|
* Internal General Config
|
||||||
|
|
|
@ -82,9 +82,7 @@ enum _NIC_VERSION {
|
||||||
#include <rtw_br_ext.h>
|
#include <rtw_br_ext.h>
|
||||||
#endif // CONFIG_BR_EXT
|
#endif // CONFIG_BR_EXT
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
#include "ioctl_cfg80211.h"
|
||||||
#include "ioctl_cfg80211.h"
|
|
||||||
#endif //CONFIG_IOCTL_CFG80211
|
|
||||||
|
|
||||||
#define SPEC_DEV_ID_NONE BIT(0)
|
#define SPEC_DEV_ID_NONE BIT(0)
|
||||||
#define SPEC_DEV_ID_DISABLE_HT BIT(1)
|
#define SPEC_DEV_ID_DISABLE_HT BIT(1)
|
||||||
|
@ -388,11 +386,9 @@ struct adapter {
|
||||||
struct hostapd_priv *phostapdpriv;
|
struct hostapd_priv *phostapdpriv;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
#ifdef CONFIG_P2P
|
#ifdef CONFIG_P2P
|
||||||
struct cfg80211_wifidirect_info cfg80211_wdinfo;
|
struct cfg80211_wifidirect_info cfg80211_wdinfo;
|
||||||
#endif //CONFIG_P2P
|
#endif //CONFIG_P2P
|
||||||
#endif //CONFIG_IOCTL_CFG80211
|
|
||||||
u32 setband;
|
u32 setband;
|
||||||
#ifdef CONFIG_P2P
|
#ifdef CONFIG_P2P
|
||||||
struct wifidirect_info wdinfo;
|
struct wifidirect_info wdinfo;
|
||||||
|
@ -453,9 +449,7 @@ struct adapter {
|
||||||
struct proc_dir_entry *dir_dev;// for proc directory
|
struct proc_dir_entry *dir_dev;// for proc directory
|
||||||
struct proc_dir_entry *dir_odm;
|
struct proc_dir_entry *dir_odm;
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
struct wireless_dev *rtw_wdev;
|
struct wireless_dev *rtw_wdev;
|
||||||
#endif //CONFIG_IOCTL_CFG80211
|
|
||||||
|
|
||||||
int net_closed;
|
int net_closed;
|
||||||
|
|
||||||
|
|
|
@ -68,11 +68,8 @@
|
||||||
#include <net/flow.h>
|
#include <net/flow.h>
|
||||||
#include <net/arp.h>
|
#include <net/arp.h>
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
// #include <linux/ieee80211.h>
|
|
||||||
#include <net/ieee80211_radiotap.h>
|
#include <net/ieee80211_radiotap.h>
|
||||||
#include <net/cfg80211.h>
|
#include <net/cfg80211.h>
|
||||||
#endif //CONFIG_IOCTL_CFG80211
|
|
||||||
|
|
||||||
#ifdef CONFIG_TCP_CSUM_OFFLOAD_TX
|
#ifdef CONFIG_TCP_CSUM_OFFLOAD_TX
|
||||||
#include <linux/in.h>
|
#include <linux/in.h>
|
||||||
|
|
|
@ -254,7 +254,6 @@ struct scan_limit_info{
|
||||||
#endif //P2P_OP_CHECK_SOCIAL_CH
|
#endif //P2P_OP_CHECK_SOCIAL_CH
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
struct cfg80211_wifidirect_info{
|
struct cfg80211_wifidirect_info{
|
||||||
_timer remain_on_ch_timer;
|
_timer remain_on_ch_timer;
|
||||||
u8 restore_channel;
|
u8 restore_channel;
|
||||||
|
@ -263,7 +262,6 @@ struct cfg80211_wifidirect_info{
|
||||||
u64 remain_on_ch_cookie;
|
u64 remain_on_ch_cookie;
|
||||||
bool is_ro_ch;
|
bool is_ro_ch;
|
||||||
};
|
};
|
||||||
#endif //CONFIG_IOCTL_CFG80211
|
|
||||||
|
|
||||||
struct wifidirect_info{
|
struct wifidirect_info{
|
||||||
struct adapter* padapter;
|
struct adapter* padapter;
|
||||||
|
@ -498,14 +496,13 @@ struct mlme_priv {
|
||||||
u32 assoc_rsp_len;
|
u32 assoc_rsp_len;
|
||||||
|
|
||||||
u8 *wps_beacon_ie;
|
u8 *wps_beacon_ie;
|
||||||
//u8 *wps_probe_req_ie;
|
|
||||||
u8 *wps_probe_resp_ie;
|
u8 *wps_probe_resp_ie;
|
||||||
u8 *wps_assoc_resp_ie; // for CONFIG_IOCTL_CFG80211, this IE could include p2p ie / wfd ie
|
u8 *wps_assoc_resp_ie; // this IE includes p2p ie / wfd ie
|
||||||
|
|
||||||
u32 wps_beacon_ie_len;
|
u32 wps_beacon_ie_len;
|
||||||
//u32 wps_probe_req_ie_len;
|
//u32 wps_probe_req_ie_len;
|
||||||
u32 wps_probe_resp_ie_len;
|
u32 wps_probe_resp_ie_len;
|
||||||
u32 wps_assoc_resp_ie_len; // for CONFIG_IOCTL_CFG80211, this IE len could include p2p ie / wfd ie
|
u32 wps_assoc_resp_ie_len; // this IE len includes p2p ie / wfd ie
|
||||||
|
|
||||||
u8 *p2p_beacon_ie;
|
u8 *p2p_beacon_ie;
|
||||||
u8 *p2p_probe_req_ie;
|
u8 *p2p_probe_req_ie;
|
||||||
|
@ -518,26 +515,13 @@ struct mlme_priv {
|
||||||
u32 p2p_probe_resp_ie_len;
|
u32 p2p_probe_resp_ie_len;
|
||||||
u32 p2p_go_probe_resp_ie_len; //for GO
|
u32 p2p_go_probe_resp_ie_len; //for GO
|
||||||
u32 p2p_assoc_req_ie_len;
|
u32 p2p_assoc_req_ie_len;
|
||||||
/*
|
|
||||||
#if defined(CONFIG_P2P) && defined(CONFIG_IOCTL_CFG80211)
|
|
||||||
//u8 *wps_p2p_beacon_ie;
|
|
||||||
u8 *p2p_beacon_ie;
|
|
||||||
u8 *wps_p2p_probe_resp_ie;
|
|
||||||
u8 *wps_p2p_assoc_resp_ie;
|
|
||||||
//u32 wps_p2p_beacon_ie_len;
|
|
||||||
u32 p2p_beacon_ie_len;
|
|
||||||
u32 wps_p2p_probe_resp_ie_len;
|
|
||||||
u32 wps_p2p_assoc_resp_ie_len;
|
|
||||||
#endif
|
|
||||||
*/
|
|
||||||
|
|
||||||
_lock bcn_update_lock;
|
_lock bcn_update_lock;
|
||||||
u8 update_bcn;
|
u8 update_bcn;
|
||||||
|
|
||||||
|
|
||||||
#endif //#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
|
#endif //#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
|
||||||
|
|
||||||
#if defined(CONFIG_WFD) && defined(CONFIG_IOCTL_CFG80211)
|
#if defined(CONFIG_WFD)
|
||||||
|
|
||||||
u8 *wfd_beacon_ie;
|
u8 *wfd_beacon_ie;
|
||||||
u8 *wfd_probe_req_ie;
|
u8 *wfd_probe_req_ie;
|
||||||
|
|
|
@ -61,11 +61,9 @@ void p2p_ps_wk_hdl(struct adapter *padapter, u8 p2p_ps_state);
|
||||||
u8 p2p_ps_wk_cmd(struct adapter*padapter, u8 p2p_ps_state, u8 enqueue);
|
u8 p2p_ps_wk_cmd(struct adapter*padapter, u8 p2p_ps_state, u8 enqueue);
|
||||||
#endif // CONFIG_P2P_PS
|
#endif // CONFIG_P2P_PS
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
void rtw_init_cfg80211_wifidirect_info( struct adapter* padapter);
|
void rtw_init_cfg80211_wifidirect_info( struct adapter* padapter);
|
||||||
int rtw_p2p_check_frames(struct adapter *padapter, const u8 *buf, u32 len, u8 tx);
|
int rtw_p2p_check_frames(struct adapter *padapter, const u8 *buf, u32 len, u8 tx);
|
||||||
void rtw_append_wfd_ie(struct adapter *padapter, u8 *buf, u32 *len);
|
void rtw_append_wfd_ie(struct adapter *padapter, u8 *buf, u32 *len);
|
||||||
#endif //CONFIG_IOCTL_CFG80211
|
|
||||||
|
|
||||||
void reset_global_wifidirect_info( struct adapter* padapter );
|
void reset_global_wifidirect_info( struct adapter* padapter );
|
||||||
int rtw_init_wifi_display_info(struct adapter* padapter);
|
int rtw_init_wifi_display_info(struct adapter* padapter);
|
||||||
|
|
|
@ -263,10 +263,8 @@ struct sta_info {
|
||||||
|
|
||||||
#endif // CONFIG_AP_MODE
|
#endif // CONFIG_AP_MODE
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
u8 *passoc_req;
|
u8 *passoc_req;
|
||||||
u32 assoc_req_len;
|
u32 assoc_req_len;
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef DBG_TRX_STA_PKTS
|
#ifdef DBG_TRX_STA_PKTS
|
||||||
//per AC dbg irp cnts
|
//per AC dbg irp cnts
|
||||||
|
|
|
@ -27,8 +27,6 @@
|
||||||
#include <rtw_ioctl_query.h>
|
#include <rtw_ioctl_query.h>
|
||||||
#include <xmit_osdep.h>
|
#include <xmit_osdep.h>
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
|
|
||||||
#include "ioctl_cfg80211.h"
|
#include "ioctl_cfg80211.h"
|
||||||
|
|
||||||
#define RTW_MAX_MGMT_TX_CNT (8)
|
#define RTW_MAX_MGMT_TX_CNT (8)
|
||||||
|
@ -5416,5 +5414,3 @@ void rtw_wdev_unregister(struct wireless_dev *wdev)
|
||||||
|
|
||||||
wiphy_unregister(wdev->wiphy);
|
wiphy_unregister(wdev->wiphy);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
|
|
|
@ -146,15 +146,10 @@ static void indicate_wx_custom_event(struct adapter *padapter, char *msg)
|
||||||
wrqu.data.length = strlen(msg);
|
wrqu.data.length = strlen(msg);
|
||||||
|
|
||||||
DBG_871X("%s %s\n", __FUNCTION__, buff);
|
DBG_871X("%s %s\n", __FUNCTION__, buff);
|
||||||
#ifndef CONFIG_IOCTL_CFG80211
|
|
||||||
wireless_send_event(padapter->pnetdev, IWEVCUSTOM, &wrqu, buff);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
rtw_mfree(buff, IW_CUSTOM_MAX+1);
|
rtw_mfree(buff, IW_CUSTOM_MAX+1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void request_wps_pbc_event(struct adapter *padapter)
|
static void request_wps_pbc_event(struct adapter *padapter)
|
||||||
{
|
{
|
||||||
u8 *buff, *p;
|
u8 *buff, *p;
|
||||||
|
@ -179,10 +174,6 @@ static void request_wps_pbc_event(struct adapter *padapter)
|
||||||
|
|
||||||
DBG_871X("%s\n", __FUNCTION__);
|
DBG_871X("%s\n", __FUNCTION__);
|
||||||
|
|
||||||
#ifndef CONFIG_IOCTL_CFG80211
|
|
||||||
wireless_send_event(padapter->pnetdev, IWEVCUSTOM, &wrqu, buff);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if(buff)
|
if(buff)
|
||||||
{
|
{
|
||||||
rtw_mfree(buff, IW_CUSTOM_MAX);
|
rtw_mfree(buff, IW_CUSTOM_MAX);
|
||||||
|
@ -199,9 +190,6 @@ void indicate_wx_scan_complete_event(struct adapter *padapter)
|
||||||
memset(&wrqu, 0, sizeof(union iwreq_data));
|
memset(&wrqu, 0, sizeof(union iwreq_data));
|
||||||
|
|
||||||
/* DBG_871X("+rtw_indicate_wx_scan_complete_event\n"); */
|
/* DBG_871X("+rtw_indicate_wx_scan_complete_event\n"); */
|
||||||
#ifndef CONFIG_IOCTL_CFG80211
|
|
||||||
wireless_send_event(padapter->pnetdev, SIOCGIWSCAN, &wrqu, NULL);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -223,9 +211,6 @@ void rtw_indicate_wx_assoc_event(struct adapter *padapter)
|
||||||
memcpy(wrqu.ap_addr.sa_data, pmlmepriv->cur_network.network.MacAddress, ETH_ALEN);
|
memcpy(wrqu.ap_addr.sa_data, pmlmepriv->cur_network.network.MacAddress, ETH_ALEN);
|
||||||
|
|
||||||
DBG_871X_LEVEL(_drv_always_, "assoc success\n");
|
DBG_871X_LEVEL(_drv_always_, "assoc success\n");
|
||||||
#ifndef CONFIG_IOCTL_CFG80211
|
|
||||||
wireless_send_event(padapter->pnetdev, SIOCGIWAP, &wrqu, NULL);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void rtw_indicate_wx_disassoc_event(struct adapter *padapter)
|
void rtw_indicate_wx_disassoc_event(struct adapter *padapter)
|
||||||
|
@ -236,11 +221,6 @@ void rtw_indicate_wx_disassoc_event(struct adapter *padapter)
|
||||||
|
|
||||||
wrqu.ap_addr.sa_family = ARPHRD_ETHER;
|
wrqu.ap_addr.sa_family = ARPHRD_ETHER;
|
||||||
memset(wrqu.ap_addr.sa_data, 0, ETH_ALEN);
|
memset(wrqu.ap_addr.sa_data, 0, ETH_ALEN);
|
||||||
|
|
||||||
#ifndef CONFIG_IOCTL_CFG80211
|
|
||||||
DBG_871X_LEVEL(_drv_always_, "indicate disassoc\n");
|
|
||||||
wireless_send_event(padapter->pnetdev, SIOCGIWAP, &wrqu, NULL);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -2845,21 +2825,6 @@ static int rtw_wx_set_auth(struct net_device *dev,
|
||||||
switch (param->flags & IW_AUTH_INDEX) {
|
switch (param->flags & IW_AUTH_INDEX) {
|
||||||
|
|
||||||
case IW_AUTH_WPA_VERSION:
|
case IW_AUTH_WPA_VERSION:
|
||||||
#ifdef CONFIG_WAPI_SUPPORT
|
|
||||||
#ifndef CONFIG_IOCTL_CFG80211
|
|
||||||
padapter->wapiInfo.bWapiEnable = false;
|
|
||||||
if(value == IW_AUTH_WAPI_VERSION_1)
|
|
||||||
{
|
|
||||||
padapter->wapiInfo.bWapiEnable = true;
|
|
||||||
psecuritypriv->dot11PrivacyAlgrthm = _SMS4_;
|
|
||||||
psecuritypriv->dot118021XGrpPrivacy = _SMS4_;
|
|
||||||
psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_WAPI;
|
|
||||||
pmlmeinfo->auth_algo = psecuritypriv->dot11AuthAlgrthm;
|
|
||||||
padapter->wapiInfo.extra_prefix_len = WAPI_EXT_LEN;
|
|
||||||
padapter->wapiInfo.extra_postfix_len = SMS4_MIC_LEN;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
case IW_AUTH_CIPHER_PAIRWISE:
|
case IW_AUTH_CIPHER_PAIRWISE:
|
||||||
|
|
||||||
|
@ -2868,16 +2833,6 @@ static int rtw_wx_set_auth(struct net_device *dev,
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case IW_AUTH_KEY_MGMT:
|
case IW_AUTH_KEY_MGMT:
|
||||||
#ifdef CONFIG_WAPI_SUPPORT
|
|
||||||
#ifndef CONFIG_IOCTL_CFG80211
|
|
||||||
DBG_871X("rtw_wx_set_auth: IW_AUTH_KEY_MGMT case \n");
|
|
||||||
if(value == IW_AUTH_KEY_MGMT_WAPI_PSK)
|
|
||||||
padapter->wapiInfo.bWapiPSK = true;
|
|
||||||
else
|
|
||||||
padapter->wapiInfo.bWapiPSK = false;
|
|
||||||
DBG_871X("rtw_wx_set_auth: IW_AUTH_KEY_MGMT bwapipsk %d \n",padapter->wapiInfo.bWapiPSK);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
/*
|
/*
|
||||||
* ??? does not use these parameters
|
* ??? does not use these parameters
|
||||||
*/
|
*/
|
||||||
|
@ -2952,21 +2907,10 @@ static int rtw_wx_set_auth(struct net_device *dev,
|
||||||
break;
|
break;
|
||||||
case IW_AUTH_PRIVACY_INVOKED:
|
case IW_AUTH_PRIVACY_INVOKED:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef CONFIG_WAPI_SUPPORT
|
|
||||||
#ifndef CONFIG_IOCTL_CFG80211
|
|
||||||
case IW_AUTH_WAPI_ENABLED:
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return -EOPNOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int rtw_wx_set_enc_ext(struct net_device *dev,
|
static int rtw_wx_set_enc_ext(struct net_device *dev,
|
||||||
|
@ -3011,15 +2955,6 @@ static int rtw_wx_set_enc_ext(struct net_device *dev,
|
||||||
alg_name = "BIP";
|
alg_name = "BIP";
|
||||||
break;
|
break;
|
||||||
#endif /* CONFIG_IEEE80211W */
|
#endif /* CONFIG_IEEE80211W */
|
||||||
#ifdef CONFIG_WAPI_SUPPORT
|
|
||||||
#ifndef CONFIG_IOCTL_CFG80211
|
|
||||||
case IW_ENCODE_ALG_SM4:
|
|
||||||
alg_name= "SMS4";
|
|
||||||
memcpy(param->sta_addr, pext->addr.sa_data, ETH_ALEN);
|
|
||||||
DBG_871X("rtw_wx_set_enc_ext: SMS4 case \n");
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
default:
|
default:
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -3047,19 +2982,9 @@ static int rtw_wx_set_enc_ext(struct net_device *dev,
|
||||||
param->u.crypt.idx = (pencoding->flags&0x00FF) -1 ;
|
param->u.crypt.idx = (pencoding->flags&0x00FF) -1 ;
|
||||||
|
|
||||||
if (pext->ext_flags & IW_ENCODE_EXT_RX_SEQ_VALID)
|
if (pext->ext_flags & IW_ENCODE_EXT_RX_SEQ_VALID)
|
||||||
{
|
|
||||||
#ifdef CONFIG_WAPI_SUPPORT
|
|
||||||
#ifndef CONFIG_IOCTL_CFG80211
|
|
||||||
if(pext->alg == IW_ENCODE_ALG_SM4)
|
|
||||||
memcpy(param->u.crypt.seq, pext->rx_seq, 16);
|
|
||||||
else
|
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
#endif /* CONFIG_WAPI_SUPPORT */
|
|
||||||
memcpy(param->u.crypt.seq, pext->rx_seq, 8);
|
memcpy(param->u.crypt.seq, pext->rx_seq, 8);
|
||||||
}
|
|
||||||
|
|
||||||
if(pext->key_len)
|
if(pext->key_len) {
|
||||||
{
|
|
||||||
param->u.crypt.key_len = pext->key_len;
|
param->u.crypt.key_len = pext->key_len;
|
||||||
/* memcpy(param + 1, pext + 1, pext->key_len); */
|
/* memcpy(param + 1, pext + 1, pext->key_len); */
|
||||||
memcpy(param->u.crypt.key, pext + 1, pext->key_len);
|
memcpy(param->u.crypt.key, pext + 1, pext->key_len);
|
||||||
|
|
|
@ -156,15 +156,11 @@ void rtw_os_indicate_connect(struct adapter *adapter)
|
||||||
struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
|
struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
|
||||||
;
|
;
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
if ((check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)) ||
|
||||||
if ( (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)==true ) ||
|
(check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)))
|
||||||
(check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)==true ) )
|
|
||||||
{
|
|
||||||
rtw_cfg80211_ibss_indicate_connect(adapter);
|
rtw_cfg80211_ibss_indicate_connect(adapter);
|
||||||
}
|
|
||||||
else
|
else
|
||||||
rtw_cfg80211_indicate_connect(adapter);
|
rtw_cfg80211_indicate_connect(adapter);
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
|
|
||||||
rtw_indicate_wx_assoc_event(adapter);
|
rtw_indicate_wx_assoc_event(adapter);
|
||||||
netif_carrier_on(adapter->pnetdev);
|
netif_carrier_on(adapter->pnetdev);
|
||||||
|
@ -182,9 +178,7 @@ void rtw_os_indicate_connect(struct adapter *adapter)
|
||||||
|
|
||||||
void rtw_os_indicate_scan_done( struct adapter *padapter, bool aborted)
|
void rtw_os_indicate_scan_done( struct adapter *padapter, bool aborted)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
rtw_cfg80211_indicate_scan_done(wdev_to_priv(padapter->rtw_wdev), aborted);
|
rtw_cfg80211_indicate_scan_done(wdev_to_priv(padapter->rtw_wdev), aborted);
|
||||||
#endif
|
|
||||||
indicate_wx_scan_complete_event(padapter);
|
indicate_wx_scan_complete_event(padapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -261,9 +255,7 @@ void rtw_os_indicate_disconnect( struct adapter *adapter )
|
||||||
|
|
||||||
netif_carrier_off(adapter->pnetdev); /* Do it first for tx broadcast pkt after disconnection issue! */
|
netif_carrier_off(adapter->pnetdev); /* Do it first for tx broadcast pkt after disconnection issue! */
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
rtw_cfg80211_indicate_disconnect(adapter);
|
rtw_cfg80211_indicate_disconnect(adapter);
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
|
|
||||||
rtw_indicate_wx_disassoc_event(adapter);
|
rtw_indicate_wx_disassoc_event(adapter);
|
||||||
|
|
||||||
|
@ -315,17 +307,9 @@ void rtw_report_sec_ie(struct adapter *adapter,u8 authmode,u8 *sec_ie)
|
||||||
|
|
||||||
wrqu.data.length = (wrqu.data.length<IW_CUSTOM_MAX) ? wrqu.data.length:IW_CUSTOM_MAX;
|
wrqu.data.length = (wrqu.data.length<IW_CUSTOM_MAX) ? wrqu.data.length:IW_CUSTOM_MAX;
|
||||||
|
|
||||||
#ifndef CONFIG_IOCTL_CFG80211
|
|
||||||
wireless_send_event(adapter->pnetdev,IWEVCUSTOM,&wrqu,buff);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if(buff)
|
if(buff)
|
||||||
rtw_mfree(buff, IW_CUSTOM_MAX);
|
rtw_mfree(buff, IW_CUSTOM_MAX);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _survey_timer_hdl (void *FunctionContext)
|
static void _survey_timer_hdl (void *FunctionContext)
|
||||||
|
@ -412,11 +396,6 @@ void rtw_indicate_sta_assoc_event(struct adapter *padapter, struct sta_info *pst
|
||||||
memcpy(wrqu.addr.sa_data, psta->hwaddr, ETH_ALEN);
|
memcpy(wrqu.addr.sa_data, psta->hwaddr, ETH_ALEN);
|
||||||
|
|
||||||
DBG_871X("+rtw_indicate_sta_assoc_event\n");
|
DBG_871X("+rtw_indicate_sta_assoc_event\n");
|
||||||
|
|
||||||
#ifndef CONFIG_IOCTL_CFG80211
|
|
||||||
wireless_send_event(padapter->pnetdev, IWEVREGISTERED, &wrqu, NULL);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void rtw_indicate_sta_disassoc_event(struct adapter *padapter, struct sta_info *psta)
|
void rtw_indicate_sta_disassoc_event(struct adapter *padapter, struct sta_info *psta)
|
||||||
|
@ -439,14 +418,8 @@ void rtw_indicate_sta_disassoc_event(struct adapter *padapter, struct sta_info *
|
||||||
memcpy(wrqu.addr.sa_data, psta->hwaddr, ETH_ALEN);
|
memcpy(wrqu.addr.sa_data, psta->hwaddr, ETH_ALEN);
|
||||||
|
|
||||||
DBG_871X("+rtw_indicate_sta_disassoc_event\n");
|
DBG_871X("+rtw_indicate_sta_disassoc_event\n");
|
||||||
|
|
||||||
#ifndef CONFIG_IOCTL_CFG80211
|
|
||||||
wireless_send_event(padapter->pnetdev, IWEVEXPIRED, &wrqu, NULL);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef CONFIG_HOSTAPD_MLME
|
#ifdef CONFIG_HOSTAPD_MLME
|
||||||
|
|
||||||
static int mgnt_xmit_entry(struct sk_buff *skb, struct net_device *pnetdev)
|
static int mgnt_xmit_entry(struct sk_buff *skb, struct net_device *pnetdev)
|
||||||
|
|
|
@ -741,10 +741,7 @@ void rtw_unregister_netdevs(struct dvobj_priv *dvobj)
|
||||||
rtw_proc_remove_one(pnetdev);
|
rtw_proc_remove_one(pnetdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
rtw_wdev_unregister(padapter->rtw_wdev);
|
rtw_wdev_unregister(padapter->rtw_wdev);
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -935,9 +932,7 @@ u8 rtw_init_drv_sw(struct adapter *padapter)
|
||||||
rtw_init_wifidirect_timers(padapter);
|
rtw_init_wifidirect_timers(padapter);
|
||||||
init_wifidirect_info(padapter, P2P_ROLE_DISABLE);
|
init_wifidirect_info(padapter, P2P_ROLE_DISABLE);
|
||||||
reset_global_wifidirect_info(padapter);
|
reset_global_wifidirect_info(padapter);
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
rtw_init_cfg80211_wifidirect_info(padapter);
|
rtw_init_cfg80211_wifidirect_info(padapter);
|
||||||
#endif
|
|
||||||
#ifdef CONFIG_WFD
|
#ifdef CONFIG_WFD
|
||||||
if(rtw_init_wifi_display_info(padapter) == _FAIL)
|
if(rtw_init_wifi_display_info(padapter) == _FAIL)
|
||||||
RT_TRACE(_module_os_intfs_c_,_drv_err_,("\n Can't init init_wifi_display_info\n"));
|
RT_TRACE(_module_os_intfs_c_,_drv_err_,("\n Can't init init_wifi_display_info\n"));
|
||||||
|
@ -1062,11 +1057,9 @@ void rtw_cancel_all_timer(struct adapter *padapter)
|
||||||
|
|
||||||
_cancel_timer_ex(&(adapter_to_pwrctl(padapter)->pwr_state_check_timer));
|
_cancel_timer_ex(&(adapter_to_pwrctl(padapter)->pwr_state_check_timer));
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
#ifdef CONFIG_P2P
|
#ifdef CONFIG_P2P
|
||||||
_cancel_timer_ex(&padapter->cfg80211_wdinfo.remain_on_ch_timer);
|
_cancel_timer_ex(&padapter->cfg80211_wdinfo.remain_on_ch_timer);
|
||||||
#endif /* CONFIG_P2P */
|
#endif /* CONFIG_P2P */
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SET_SCAN_DENY_TIMER
|
#ifdef CONFIG_SET_SCAN_DENY_TIMER
|
||||||
_cancel_timer_ex(&padapter->mlmepriv.set_scan_deny_timer);
|
_cancel_timer_ex(&padapter->mlmepriv.set_scan_deny_timer);
|
||||||
|
@ -1346,9 +1339,7 @@ int _netdev_open(struct net_device *pnetdev)
|
||||||
rtw_proc_init_one(pnetdev);
|
rtw_proc_init_one(pnetdev);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
rtw_cfg80211_init_wiphy(padapter);
|
rtw_cfg80211_init_wiphy(padapter);
|
||||||
#endif
|
|
||||||
|
|
||||||
rtw_led_control(padapter, LED_CTL_NO_LINK);
|
rtw_led_control(padapter, LED_CTL_NO_LINK);
|
||||||
|
|
||||||
|
@ -1608,11 +1599,9 @@ static int netdev_close(struct net_device *pnetdev)
|
||||||
rtw_p2p_enable(padapter, P2P_ROLE_DISABLE);
|
rtw_p2p_enable(padapter, P2P_ROLE_DISABLE);
|
||||||
#endif /* CONFIG_P2P */
|
#endif /* CONFIG_P2P */
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
rtw_scan_abort(padapter);
|
rtw_scan_abort(padapter);
|
||||||
wdev_to_priv(padapter->rtw_wdev)->bandroid_scan = false;
|
wdev_to_priv(padapter->rtw_wdev)->bandroid_scan = false;
|
||||||
padapter->rtw_wdev->iftype = NL80211_IFTYPE_MONITOR; /* set this at the end */
|
padapter->rtw_wdev->iftype = NL80211_IFTYPE_MONITOR; /* set this at the end */
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_WAPI_SUPPORT
|
#ifdef CONFIG_WAPI_SUPPORT
|
||||||
rtw_wapi_disable_tx(padapter);
|
rtw_wapi_disable_tx(padapter);
|
||||||
|
@ -1629,10 +1618,8 @@ void rtw_ndev_destructor(struct net_device *ndev)
|
||||||
{
|
{
|
||||||
DBG_871X(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev));
|
DBG_871X(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev));
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
if (ndev->ieee80211_ptr)
|
if (ndev->ieee80211_ptr)
|
||||||
rtw_mfree((u8 *)ndev->ieee80211_ptr, sizeof(struct wireless_dev));
|
rtw_mfree((u8 *)ndev->ieee80211_ptr, sizeof(struct wireless_dev));
|
||||||
#endif
|
|
||||||
free_netdev(ndev);
|
free_netdev(ndev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -135,68 +135,46 @@ int rtw_os_recvbuf_resource_free(struct adapter *padapter, struct recv_buf *prec
|
||||||
|
|
||||||
void rtw_handle_tkip_mic_err(struct adapter *padapter,u8 bgroup)
|
void rtw_handle_tkip_mic_err(struct adapter *padapter,u8 bgroup)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
enum nl80211_key_type key_type;
|
enum nl80211_key_type key_type;
|
||||||
#endif
|
|
||||||
union iwreq_data wrqu;
|
union iwreq_data wrqu;
|
||||||
struct iw_michaelmicfailure ev;
|
struct iw_michaelmicfailure ev;
|
||||||
struct mlme_priv* pmlmepriv = &padapter->mlmepriv;
|
struct mlme_priv* pmlmepriv = &padapter->mlmepriv;
|
||||||
struct security_priv *psecuritypriv = &padapter->securitypriv;
|
struct security_priv *psecuritypriv = &padapter->securitypriv;
|
||||||
u32 cur_time = 0;
|
u32 cur_time = 0;
|
||||||
|
|
||||||
if( psecuritypriv->last_mic_err_time == 0 )
|
if( psecuritypriv->last_mic_err_time == 0 ) {
|
||||||
{
|
|
||||||
psecuritypriv->last_mic_err_time = rtw_get_current_time();
|
psecuritypriv->last_mic_err_time = rtw_get_current_time();
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
cur_time = rtw_get_current_time();
|
cur_time = rtw_get_current_time();
|
||||||
|
|
||||||
if( cur_time - psecuritypriv->last_mic_err_time < 60*HZ )
|
if( cur_time - psecuritypriv->last_mic_err_time < 60*HZ ) {
|
||||||
{
|
|
||||||
psecuritypriv->btkip_countermeasure = true;
|
psecuritypriv->btkip_countermeasure = true;
|
||||||
psecuritypriv->last_mic_err_time = 0;
|
psecuritypriv->last_mic_err_time = 0;
|
||||||
psecuritypriv->btkip_countermeasure_time = cur_time;
|
psecuritypriv->btkip_countermeasure_time = cur_time;
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
psecuritypriv->last_mic_err_time = rtw_get_current_time();
|
psecuritypriv->last_mic_err_time = rtw_get_current_time();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
if ( bgroup )
|
if ( bgroup )
|
||||||
{
|
|
||||||
key_type |= NL80211_KEYTYPE_GROUP;
|
key_type |= NL80211_KEYTYPE_GROUP;
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
key_type |= NL80211_KEYTYPE_PAIRWISE;
|
key_type |= NL80211_KEYTYPE_PAIRWISE;
|
||||||
}
|
|
||||||
|
|
||||||
cfg80211_michael_mic_failure(padapter->pnetdev, (u8 *)&pmlmepriv->assoc_bssid[ 0 ], key_type, -1,
|
cfg80211_michael_mic_failure(padapter->pnetdev, (u8 *)&pmlmepriv->assoc_bssid[ 0 ], key_type, -1,
|
||||||
NULL, GFP_ATOMIC);
|
NULL, GFP_ATOMIC);
|
||||||
#endif
|
|
||||||
|
|
||||||
memset( &ev, 0x00, sizeof( ev ) );
|
memset( &ev, 0x00, sizeof( ev ) );
|
||||||
if ( bgroup )
|
if ( bgroup )
|
||||||
{
|
|
||||||
ev.flags |= IW_MICFAILURE_GROUP;
|
ev.flags |= IW_MICFAILURE_GROUP;
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
ev.flags |= IW_MICFAILURE_PAIRWISE;
|
ev.flags |= IW_MICFAILURE_PAIRWISE;
|
||||||
}
|
|
||||||
|
|
||||||
ev.src_addr.sa_family = ARPHRD_ETHER;
|
ev.src_addr.sa_family = ARPHRD_ETHER;
|
||||||
memcpy( ev.src_addr.sa_data, &pmlmepriv->assoc_bssid[ 0 ], ETH_ALEN );
|
memcpy( ev.src_addr.sa_data, &pmlmepriv->assoc_bssid[ 0 ], ETH_ALEN );
|
||||||
|
|
||||||
memset( &wrqu, 0x00, sizeof( wrqu ) );
|
memset( &wrqu, 0x00, sizeof( wrqu ) );
|
||||||
wrqu.data.length = sizeof( ev );
|
wrqu.data.length = sizeof( ev );
|
||||||
|
|
||||||
#ifndef CONFIG_IOCTL_CFG80211
|
|
||||||
wireless_send_event( padapter->pnetdev, IWEVMICHAELMICFAILURE, &wrqu, (char*) &ev );
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void rtw_hostapd_mlme_rx(struct adapter *padapter, union recv_frame *precv_frame)
|
void rtw_hostapd_mlme_rx(struct adapter *padapter, union recv_frame *precv_frame)
|
||||||
|
@ -223,15 +201,10 @@ void rtw_hostapd_mlme_rx(struct adapter *padapter, union recv_frame *precv_frame
|
||||||
skb->dev = pmgnt_netdev;
|
skb->dev = pmgnt_netdev;
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb->ip_summed = CHECKSUM_NONE;
|
||||||
skb->pkt_type = PACKET_OTHERHOST;
|
skb->pkt_type = PACKET_OTHERHOST;
|
||||||
/* skb->protocol = __constant_htons(0x0019); /*ETH_P_80211_RAW*/ */
|
|
||||||
skb->protocol = __constant_htons(0x0003); /*ETH_P_80211_RAW*/
|
skb->protocol = __constant_htons(0x0003); /*ETH_P_80211_RAW*/
|
||||||
|
|
||||||
/* DBG_871X("(1)data=0x%x, head=0x%x, tail=0x%x, mac_header=0x%x, len=%d\n", skb->data, skb->head, skb->tail, skb->mac_header, skb->len); */
|
|
||||||
|
|
||||||
/* skb->mac.raw = skb->data; */
|
|
||||||
skb_reset_mac_header(skb);
|
skb_reset_mac_header(skb);
|
||||||
|
|
||||||
/* skb_pull(skb, 24); */
|
|
||||||
memset(skb->cb, 0, sizeof(skb->cb));
|
memset(skb->cb, 0, sizeof(skb->cb));
|
||||||
|
|
||||||
rtw_netif_rx(pmgnt_netdev, skb);
|
rtw_netif_rx(pmgnt_netdev, skb);
|
||||||
|
|
|
@ -307,10 +307,7 @@ static int rtw_android_set_block(struct net_device *net, char *command, int tota
|
||||||
struct adapter *adapter = (struct adapter *)rtw_netdev_priv(net);
|
struct adapter *adapter = (struct adapter *)rtw_netdev_priv(net);
|
||||||
char *block_value = command + strlen(android_wifi_cmd_str[ANDROID_WIFI_CMD_BLOCK]) + 1;
|
char *block_value = command + strlen(android_wifi_cmd_str[ANDROID_WIFI_CMD_BLOCK]) + 1;
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
wdev_to_priv(adapter->rtw_wdev)->block = (*block_value=='0')?false:true;
|
wdev_to_priv(adapter->rtw_wdev)->block = (*block_value=='0')?false:true;
|
||||||
#endif
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -401,9 +398,7 @@ int rtw_android_priv_cmd(struct net_device *net, struct ifreq *ifr, int cmd)
|
||||||
case ANDROID_WIFI_CMD_SCAN_ACTIVE:
|
case ANDROID_WIFI_CMD_SCAN_ACTIVE:
|
||||||
/* rtw_set_scan_mode((struct adapter *)rtw_netdev_priv(net), SCAN_ACTIVE); */
|
/* rtw_set_scan_mode((struct adapter *)rtw_netdev_priv(net), SCAN_ACTIVE); */
|
||||||
#ifdef CONFIG_PLATFORM_MSTAR
|
#ifdef CONFIG_PLATFORM_MSTAR
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
(wdev_to_priv(net->ieee80211_ptr))->bandroid_scan = true;
|
(wdev_to_priv(net->ieee80211_ptr))->bandroid_scan = true;
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
#endif /* CONFIG_PLATFORM_MSTAR */
|
#endif /* CONFIG_PLATFORM_MSTAR */
|
||||||
break;
|
break;
|
||||||
case ANDROID_WIFI_CMD_SCAN_PASSIVE:
|
case ANDROID_WIFI_CMD_SCAN_PASSIVE:
|
||||||
|
@ -497,14 +492,12 @@ int rtw_android_priv_cmd(struct net_device *net, struct ifreq *ifr, int cmd)
|
||||||
/* bytes_written = wl_cfg80211_set_p2p_ps(net, command + skip, priv_cmd.total_len - skip); */
|
/* bytes_written = wl_cfg80211_set_p2p_ps(net, command + skip, priv_cmd.total_len - skip); */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
case ANDROID_WIFI_CMD_SET_AP_WPS_P2P_IE:
|
case ANDROID_WIFI_CMD_SET_AP_WPS_P2P_IE:
|
||||||
{
|
{
|
||||||
int skip = strlen(android_wifi_cmd_str[ANDROID_WIFI_CMD_SET_AP_WPS_P2P_IE]) + 3;
|
int skip = strlen(android_wifi_cmd_str[ANDROID_WIFI_CMD_SET_AP_WPS_P2P_IE]) + 3;
|
||||||
bytes_written = rtw_cfg80211_set_mgnt_wpsp2pie(net, command + skip, priv_cmd.total_len - skip, *(command + skip - 2) - '0');
|
bytes_written = rtw_cfg80211_set_mgnt_wpsp2pie(net, command + skip, priv_cmd.total_len - skip, *(command + skip - 2) - '0');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_IOCTL_CFG80211 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_WFD
|
#ifdef CONFIG_WFD
|
||||||
case ANDROID_WIFI_CMD_WFD_ENABLE:
|
case ANDROID_WIFI_CMD_WFD_ENABLE:
|
||||||
|
|
|
@ -1137,12 +1137,9 @@ static struct adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj,
|
||||||
SET_NETDEV_DEV(pnetdev, dvobj_to_dev(dvobj));
|
SET_NETDEV_DEV(pnetdev, dvobj_to_dev(dvobj));
|
||||||
padapter = rtw_netdev_priv(pnetdev);
|
padapter = rtw_netdev_priv(pnetdev);
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
if(rtw_wdev_alloc(padapter, dvobj_to_dev(dvobj)) != 0) {
|
if(rtw_wdev_alloc(padapter, dvobj_to_dev(dvobj)) != 0) {
|
||||||
goto handle_dualmac;
|
goto handle_dualmac;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* step 2. hook HalFunc, allocate HalData */
|
/* step 2. hook HalFunc, allocate HalData */
|
||||||
hal_set_hal_ops(padapter);
|
hal_set_hal_ops(padapter);
|
||||||
|
@ -1235,10 +1232,8 @@ free_hal_data:
|
||||||
kfree(padapter->HalData);
|
kfree(padapter->HalData);
|
||||||
free_wdev:
|
free_wdev:
|
||||||
if(status != _SUCCESS) {
|
if(status != _SUCCESS) {
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
|
||||||
rtw_wdev_unregister(padapter->rtw_wdev);
|
rtw_wdev_unregister(padapter->rtw_wdev);
|
||||||
rtw_wdev_free(padapter->rtw_wdev);
|
rtw_wdev_free(padapter->rtw_wdev);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
handle_dualmac:
|
handle_dualmac:
|
||||||
if (status != _SUCCESS)
|
if (status != _SUCCESS)
|
||||||
|
@ -1283,13 +1278,10 @@ static void rtw_usb_if1_deinit(struct adapter *if1)
|
||||||
|
|
||||||
rtw_handle_dualmac(if1, 0);
|
rtw_handle_dualmac(if1, 0);
|
||||||
|
|
||||||
#ifdef CONFIG_IOCTL_CFG80211
|
if(if1->rtw_wdev) {
|
||||||
if(if1->rtw_wdev)
|
|
||||||
{
|
|
||||||
/* rtw_wdev_unregister(if1->rtw_wdev); */
|
/* rtw_wdev_unregister(if1->rtw_wdev); */
|
||||||
rtw_wdev_free(if1->rtw_wdev);
|
rtw_wdev_free(if1->rtw_wdev);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_BT_COEXIST
|
#ifdef CONFIG_BT_COEXIST
|
||||||
if(1 == pwrctl->autopm_cnt){
|
if(1 == pwrctl->autopm_cnt){
|
||||||
|
|
Loading…
Reference in a new issue