rtl8188eu: Remove CONFIG_IOCTL_CFG80211 and others

The other parameters are CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER,
CONFIG_SET_SCAN_DENY_TIMER, CONFIG_DRV_ISSUE_PROV_REQ, and
RTW_USE_CFG80211_STA_EVENT. None of these are defined.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
This commit is contained in:
Larry Finger 2013-07-20 13:18:13 -05:00
parent 7333ca4047
commit f2c2552bb1
20 changed files with 807 additions and 6584 deletions

View file

@ -3183,404 +3183,28 @@ _func_enter_;
_func_exit_;
}
#ifdef CONFIG_IOCTL_CFG80211
static void ro_ch_handler( _adapter* padapter )
{
struct cfg80211_wifidirect_info *pcfg80211_wdinfo = &padapter->cfg80211_wdinfo;
struct wifidirect_info *pwdinfo = &padapter->wdinfo;
struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv;
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
_func_enter_;
{
if ( pcfg80211_wdinfo->restore_channel != pmlmeext->cur_channel )
{
if ( !check_fwstate(&padapter->mlmepriv, _FW_LINKED ) )
pmlmeext->cur_channel = pcfg80211_wdinfo->restore_channel;
set_channel_bwmode(padapter, pmlmeext->cur_channel, HAL_PRIME_CHNL_OFFSET_DONT_CARE, HT_CHANNEL_WIDTH_20);
}
rtw_p2p_set_state(pwdinfo, rtw_p2p_pre_state(pwdinfo));
#ifdef CONFIG_DEBUG_CFG80211
DBG_88E("%s, role=%d, p2p_state=%d\n", __func__, rtw_p2p_role(pwdinfo), rtw_p2p_state(pwdinfo));
#endif
}
pcfg80211_wdinfo->is_ro_ch = false;
DBG_88E("cfg80211_remain_on_channel_expired\n");
cfg80211_remain_on_channel_expired(pcfg80211_wdinfo->remain_on_ch_dev,
pcfg80211_wdinfo->remain_on_ch_cookie,
&pcfg80211_wdinfo->remain_on_ch_channel,
pcfg80211_wdinfo->remain_on_ch_type, GFP_KERNEL);
_func_exit_;
}
static void ro_ch_timer_process (void *FunctionContext)
{
_adapter *adapter = (_adapter *)FunctionContext;
struct rtw_wdev_priv *pwdev_priv = wdev_to_priv(adapter->rtw_wdev);
p2p_protocol_wk_cmd( adapter, P2P_RO_CH_WK);
}
static void rtw_cfg80211_adjust_p2pie_channel(_adapter *padapter, const u8 *frame_body, u32 len)
{
}
#ifdef CONFIG_WFD
void rtw_append_wfd_ie(_adapter *padapter, u8 *buf, u32* len)
{
unsigned char *frame_body;
u8 category, action, OUI_Subtype, dialogToken=0;
u32 wfdielen = 0;
struct rtw_wdev_priv *pwdev_priv = wdev_to_priv(padapter->rtw_wdev);
frame_body = (unsigned char *)(buf + sizeof(struct rtw_ieee80211_hdr_3addr));
category = frame_body[0];
if (category == RTW_WLAN_CATEGORY_PUBLIC)
{
action = frame_body[1];
if (action == ACT_PUBLIC_VENDOR
&& _rtw_memcmp(frame_body+2, P2P_OUI, 4) == true
)
{
OUI_Subtype = frame_body[6];
dialogToken = frame_body[7];
switch ( OUI_Subtype )/* OUI Subtype */
{
case P2P_GO_NEGO_REQ:
{
wfdielen = build_nego_req_wfd_ie( &padapter->wdinfo, buf + ( *len ) );
(*len) += wfdielen;
break;
}
case P2P_GO_NEGO_RESP:
{
wfdielen = build_nego_resp_wfd_ie( &padapter->wdinfo, buf + ( *len ) );
(*len) += wfdielen;
break;
}
case P2P_GO_NEGO_CONF:
{
wfdielen = build_nego_confirm_wfd_ie( &padapter->wdinfo, buf + ( *len ) );
(*len) += wfdielen;
break;
}
case P2P_INVIT_REQ:
{
wfdielen = build_invitation_req_wfd_ie( &padapter->wdinfo, buf + ( *len ) );
(*len) += wfdielen;
break;
}
case P2P_INVIT_RESP:
{
wfdielen = build_invitation_resp_wfd_ie( &padapter->wdinfo, buf + ( *len ) );
(*len) += wfdielen;
break;
}
case P2P_DEVDISC_REQ:
break;
case P2P_DEVDISC_RESP:
break;
case P2P_PROVISION_DISC_REQ:
{
wfdielen = build_provdisc_req_wfd_ie( &padapter->wdinfo, buf + ( *len ) );
(*len) += wfdielen;
break;
}
case P2P_PROVISION_DISC_RESP:
{
wfdielen = build_provdisc_resp_wfd_ie( &padapter->wdinfo, buf + ( *len ) );
(*len) += wfdielen;
break;
}
default:
break;
}
}
}
else if (category == RTW_WLAN_CATEGORY_P2P)
{
OUI_Subtype = frame_body[5];
dialogToken = frame_body[6];
#ifdef CONFIG_DEBUG_CFG80211
DBG_88E("ACTION_CATEGORY_P2P: OUI=0x%x, OUI_Subtype=%d, dialogToken=%d\n",
cpu_to_be32( *( ( u32* ) ( frame_body + 1 ) ) ), OUI_Subtype, dialogToken);
#endif
switch (OUI_Subtype)
{
case P2P_NOTICE_OF_ABSENCE:
break;
case P2P_PRESENCE_REQUEST:
break;
case P2P_PRESENCE_RESPONSE:
break;
case P2P_GO_DISC_REQUEST:
break;
default:
break;
}
}
else
{
DBG_88E("%s, action frame category=%d\n", __func__, category);
/* is_p2p_frame = (-1); */
}
return;
}
#endif
int rtw_p2p_check_frames(_adapter *padapter, const u8 *buf, u32 len, u8 tx)
{
int is_p2p_frame = (-1);
unsigned char *frame_body;
u8 category, action, OUI_Subtype, dialogToken=0;
u8 *p2p_ie = NULL;
uint p2p_ielen = 0;
struct rtw_wdev_priv *pwdev_priv = wdev_to_priv(padapter->rtw_wdev);
frame_body = (unsigned char *)(buf + sizeof(struct rtw_ieee80211_hdr_3addr));
category = frame_body[0];
/* just for check */
if (category == RTW_WLAN_CATEGORY_PUBLIC)
{
action = frame_body[1];
if (action == ACT_PUBLIC_VENDOR
&& _rtw_memcmp(frame_body+2, P2P_OUI, 4) == true
)
{
OUI_Subtype = frame_body[6];
dialogToken = frame_body[7];
is_p2p_frame = OUI_Subtype;
#ifdef CONFIG_DEBUG_CFG80211
DBG_88E("ACTION_CATEGORY_PUBLIC: ACT_PUBLIC_VENDOR, OUI=0x%x, OUI_Subtype=%d, dialogToken=%d\n",
cpu_to_be32( *( ( u32* ) ( frame_body + 2 ) ) ), OUI_Subtype, dialogToken);
#endif
p2p_ie = rtw_get_p2p_ie(
(u8 *)buf+sizeof(struct rtw_ieee80211_hdr_3addr)+_PUBLIC_ACTION_IE_OFFSET_,
len-sizeof(struct rtw_ieee80211_hdr_3addr)-_PUBLIC_ACTION_IE_OFFSET_,
NULL, &p2p_ielen);
switch ( OUI_Subtype )/* OUI Subtype */
{
u8 *cont;
uint cont_len;
case P2P_GO_NEGO_REQ:
DBG_88E("RTW_%s:P2P_GO_NEGO_REQ, dialogToken=%d\n", (tx==true)?"Tx":"Rx", dialogToken);
if (tx)
{
#ifdef CONFIG_DRV_ISSUE_PROV_REQ /* IOT FOR S2 */
if (pwdev_priv->provdisc_req_issued == false)
rtw_cfg80211_issue_p2p_provision_request(padapter, buf, len);
#endif /* CONFIG_DRV_ISSUE_PROV_REQ */
}
break;
case P2P_GO_NEGO_RESP:
cont = rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_STATUS, NULL, &cont_len);
DBG_88E("RTW_%s:P2P_GO_NEGO_RESP, dialogToken=%d, status:%d\n", (tx==true)?"Tx":"Rx", dialogToken, cont?*cont:-1);
if (!tx)
pwdev_priv->provdisc_req_issued = false;
break;
case P2P_GO_NEGO_CONF:
cont = rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_STATUS, NULL, &cont_len);
DBG_88E("RTW_%s:P2P_GO_NEGO_CONF, dialogToken=%d, status:%d\n", (tx==true)?"Tx":"Rx", dialogToken, cont?*cont:-1);
break;
case P2P_INVIT_REQ:
{
struct rtw_wdev_invit_info* invit_info = &pwdev_priv->invit_info;
int flags = -1;
int op_ch = 0;
if ((cont = rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_INVITATION_FLAGS, NULL, &cont_len)))
flags = *cont;
if ((cont = rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_OPERATING_CH, NULL, &cont_len)))
op_ch = *(cont+4);
if (invit_info->token != dialogToken)
rtw_wdev_invit_info_init(invit_info);
invit_info->token = dialogToken;
invit_info->flags = (flags==-1) ? 0x0 : flags;
invit_info->req_op_ch= op_ch;
DBG_88E("RTW_%s:P2P_INVIT_REQ, dialogToken=%d, flags:0x%02x, op_ch:%d\n", (tx==true)?"Tx":"Rx", dialogToken, flags, op_ch);
break;
}
case P2P_INVIT_RESP:
{
struct rtw_wdev_invit_info* invit_info = &pwdev_priv->invit_info;
int status = -1;
int op_ch = 0;
if ((cont = rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_STATUS, NULL, &cont_len)))
status = *cont;
if ((cont = rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_OPERATING_CH, NULL, &cont_len)))
op_ch = *(cont+4);
if (invit_info->token != dialogToken) {
rtw_wdev_invit_info_init(invit_info);
} else {
invit_info->token = 0;
invit_info->status = (status==-1) ? 0xff : status;
invit_info->rsp_op_ch= op_ch;
}
DBG_88E("RTW_%s:P2P_INVIT_RESP, dialogToken=%d, status:%d, op_ch:%d\n", (tx==true)?"Tx":"Rx", dialogToken, status, op_ch);
break;
}
case P2P_DEVDISC_REQ:
DBG_88E("RTW_%s:P2P_DEVDISC_REQ, dialogToken=%d\n", (tx==true)?"Tx":"Rx", dialogToken);
break;
case P2P_DEVDISC_RESP:
cont = rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_STATUS, NULL, &cont_len);
DBG_88E("RTW_%s:P2P_DEVDISC_RESP, dialogToken=%d, status:%d\n", (tx==true)?"Tx":"Rx", dialogToken, cont?*cont:-1);
break;
case P2P_PROVISION_DISC_REQ:
{
size_t frame_body_len = len - sizeof(struct rtw_ieee80211_hdr_3addr);
u8 *p2p_ie;
uint p2p_ielen = 0;
uint contentlen = 0;
DBG_88E("RTW_%s:P2P_PROVISION_DISC_REQ, dialogToken=%d\n", (tx==true)?"Tx":"Rx", dialogToken);
/* if (tx) */
{
pwdev_priv->provdisc_req_issued = false;
if ( (p2p_ie=rtw_get_p2p_ie( frame_body + _PUBLIC_ACTION_IE_OFFSET_, frame_body_len - _PUBLIC_ACTION_IE_OFFSET_, NULL, &p2p_ielen)))
{
if (rtw_get_p2p_attr_content( p2p_ie, p2p_ielen, P2P_ATTR_GROUP_ID, NULL, &contentlen))
{
pwdev_priv->provdisc_req_issued = false;/* case: p2p_client join p2p GO */
}
else
{
#ifdef CONFIG_DEBUG_CFG80211
DBG_88E("provdisc_req_issued is true\n");
#endif /* CONFIG_DEBUG_CFG80211 */
pwdev_priv->provdisc_req_issued = true;/* case: p2p_devices connection before Nego req. */
}
}
}
}
break;
case P2P_PROVISION_DISC_RESP:
DBG_88E("RTW_%s:P2P_PROVISION_DISC_RESP, dialogToken=%d\n", (tx==true)?"Tx":"Rx", dialogToken);
break;
default:
DBG_88E("RTW_%s:OUI_Subtype=%d, dialogToken=%d\n", (tx==true)?"Tx":"Rx", OUI_Subtype, dialogToken);
break;
}
}
}
else if (category == RTW_WLAN_CATEGORY_P2P)
{
OUI_Subtype = frame_body[5];
dialogToken = frame_body[6];
#ifdef CONFIG_DEBUG_CFG80211
DBG_88E("ACTION_CATEGORY_P2P: OUI=0x%x, OUI_Subtype=%d, dialogToken=%d\n",
cpu_to_be32( *( ( u32* ) ( frame_body + 1 ) ) ), OUI_Subtype, dialogToken);
#endif
is_p2p_frame = OUI_Subtype;
switch (OUI_Subtype)
{
case P2P_NOTICE_OF_ABSENCE:
DBG_88E("RTW_%s:P2P_NOTICE_OF_ABSENCE, dialogToken=%d\n", (tx==true)?"TX":"RX", dialogToken);
break;
case P2P_PRESENCE_REQUEST:
DBG_88E("RTW_%s:P2P_PRESENCE_REQUEST, dialogToken=%d\n", (tx==true)?"TX":"RX", dialogToken);
break;
case P2P_PRESENCE_RESPONSE:
DBG_88E("RTW_%s:P2P_PRESENCE_RESPONSE, dialogToken=%d\n", (tx==true)?"TX":"RX", dialogToken);
break;
case P2P_GO_DISC_REQUEST:
DBG_88E("RTW_%s:P2P_GO_DISC_REQUEST, dialogToken=%d\n", (tx==true)?"TX":"RX", dialogToken);
break;
default:
DBG_88E("RTW_%s:OUI_Subtype=%d, dialogToken=%d\n", (tx==true)?"TX":"RX", OUI_Subtype, dialogToken);
break;
}
}
else
{
DBG_88E("RTW_%s:action frame category=%d\n", (tx==true)?"TX":"RX", category);
/* is_p2p_frame = (-1); */
}
return is_p2p_frame;
}
void rtw_init_cfg80211_wifidirect_info( _adapter* padapter)
{
struct cfg80211_wifidirect_info *pcfg80211_wdinfo = &padapter->cfg80211_wdinfo;
_rtw_memset(pcfg80211_wdinfo, 0x00, sizeof(struct cfg80211_wifidirect_info) );
_init_timer( &pcfg80211_wdinfo->remain_on_ch_timer, padapter->pnetdev, ro_ch_timer_process, padapter );
}
#endif /* CONFIG_IOCTL_CFG80211 */
void p2p_protocol_wk_hdl(_adapter *padapter, int intCmdType)
{
struct wifidirect_info *pwdinfo= &(padapter->wdinfo);
_func_enter_;
switch (intCmdType)
{
case P2P_FIND_PHASE_WK:
find_phase_handler( padapter );
break;
case P2P_RESTORE_STATE_WK:
restore_p2p_state_handler( padapter );
break;
case P2P_PRE_TX_PROVDISC_PROCESS_WK:
pre_tx_provdisc_handler( padapter );
break;
case P2P_PRE_TX_INVITEREQ_PROCESS_WK:
pre_tx_invitereq_handler( padapter );
break;
case P2P_PRE_TX_NEGOREQ_PROCESS_WK:
pre_tx_negoreq_handler( padapter );
break;
#ifdef CONFIG_IOCTL_CFG80211
case P2P_RO_CH_WK:
{
ro_ch_handler( padapter );
break;
}
#endif /* CONFIG_IOCTL_CFG80211 */
switch (intCmdType) {
case P2P_FIND_PHASE_WK:
find_phase_handler( padapter );
break;
case P2P_RESTORE_STATE_WK:
restore_p2p_state_handler( padapter );
break;
case P2P_PRE_TX_PROVDISC_PROCESS_WK:
pre_tx_provdisc_handler( padapter );
break;
case P2P_PRE_TX_INVITEREQ_PROCESS_WK:
pre_tx_invitereq_handler( padapter );
break;
case P2P_PRE_TX_NEGOREQ_PROCESS_WK:
pre_tx_negoreq_handler( padapter );
break;
}
_func_exit_;