staging: rtl8188eu: Remove P2P support
We've already removed non-standard ioctl handlers used by driver to support P2P mode. Signed-off-by: navin patidar <navin.patidar@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0cccd45f0a
commit
2454e79ac2
|
@ -17,12 +17,4 @@ config 88EU_AP_MODE
|
|||
will never be used as an AP, or the target system has limited memory,
|
||||
"Y" should be selected.
|
||||
|
||||
config 88EU_P2P
|
||||
bool "Realtek RTL8188EU Peer-to-peer mode"
|
||||
default y
|
||||
---help---
|
||||
This option enables peer-to-peer mode for the r8188eu driver. Unless you
|
||||
know that peer-to-peer (P2P) mode will never be used, or the target system has
|
||||
limited memory, "Y" should be selected.
|
||||
|
||||
endif
|
||||
|
|
|
@ -10,7 +10,6 @@ r8188eu-y := \
|
|||
core/rtw_mlme.o \
|
||||
core/rtw_mlme_ext.o \
|
||||
core/rtw_pwrctrl.o \
|
||||
core/rtw_p2p.o \
|
||||
core/rtw_recv.o \
|
||||
core/rtw_rf.o \
|
||||
core/rtw_security.o \
|
||||
|
|
|
@ -723,9 +723,6 @@ static void start_bss_network(struct adapter *padapter, u8 *pbuf)
|
|||
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
|
||||
struct wlan_bssid_ex *pnetwork_mlmeext = &(pmlmeinfo->network);
|
||||
struct HT_info_element *pht_info = NULL;
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
struct wifidirect_info *pwdinfo = &(padapter->wdinfo);
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
|
||||
bcn_interval = (u16)pnetwork->Configuration.BeaconPeriod;
|
||||
cur_channel = pnetwork->Configuration.DSConfig;
|
||||
|
@ -827,11 +824,6 @@ static void start_bss_network(struct adapter *padapter, u8 *pbuf)
|
|||
/* let pnetwork_mlmeext == pnetwork_mlme. */
|
||||
memcpy(pnetwork_mlmeext, pnetwork, pnetwork->Length);
|
||||
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
memcpy(pwdinfo->p2p_group_ssid, pnetwork->Ssid.Ssid, pnetwork->Ssid.SsidLength);
|
||||
pwdinfo->p2p_group_ssid_len = pnetwork->Ssid.SsidLength;
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
|
||||
if (pmlmeext->bstart_bss) {
|
||||
update_beacon(padapter, _TIM_IE_, NULL, false);
|
||||
|
||||
|
|
|
@ -434,9 +434,6 @@ u8 rtw_sitesurvey_cmd(struct adapter *padapter, struct ndis_802_11_ssid *ssid,
|
|||
if (check_fwstate(pmlmepriv, _FW_LINKED) == true)
|
||||
rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_SCAN, 1);
|
||||
|
||||
if (check_fwstate(pmlmepriv, _FW_LINKED) == true)
|
||||
p2p_ps_wk_cmd(padapter, P2P_PS_SCAN, 1);
|
||||
|
||||
ph2c = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL);
|
||||
if (ph2c == NULL)
|
||||
return _FAIL;
|
||||
|
@ -1715,47 +1712,6 @@ static void power_saving_wk_hdl(struct adapter *padapter, u8 *pbuf, int sz)
|
|||
rtw_ps_processor(padapter);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
u8 p2p_protocol_wk_cmd(struct adapter *padapter, int intCmdType)
|
||||
{
|
||||
struct cmd_obj *ph2c;
|
||||
struct drvextra_cmd_parm *pdrvextra_cmd_parm;
|
||||
struct wifidirect_info *pwdinfo = &(padapter->wdinfo);
|
||||
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
|
||||
u8 res = _SUCCESS;
|
||||
|
||||
|
||||
if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE))
|
||||
return res;
|
||||
|
||||
ph2c = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL);
|
||||
if (ph2c == NULL) {
|
||||
res = _FAIL;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
pdrvextra_cmd_parm = kzalloc(sizeof(struct drvextra_cmd_parm), GFP_KERNEL);
|
||||
if (pdrvextra_cmd_parm == NULL) {
|
||||
kfree(ph2c);
|
||||
res = _FAIL;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
pdrvextra_cmd_parm->ec_id = P2P_PROTO_WK_CID;
|
||||
pdrvextra_cmd_parm->type_size = intCmdType; /* As the command tppe. */
|
||||
pdrvextra_cmd_parm->pbuf = NULL; /* Must be NULL here */
|
||||
|
||||
init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra));
|
||||
|
||||
res = rtw_enqueue_cmd(pcmdpriv, ph2c);
|
||||
|
||||
exit:
|
||||
|
||||
|
||||
return res;
|
||||
}
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
|
||||
u8 rtw_ps_cmd(struct adapter *padapter)
|
||||
{
|
||||
struct cmd_obj *ppscmd;
|
||||
|
@ -1957,11 +1913,6 @@ static void c2h_wk_callback(struct work_struct *work)
|
|||
/* Handle CCX report here */
|
||||
rtw_hal_c2h_handler(adapter, c2h_evt);
|
||||
kfree(c2h_evt);
|
||||
} else {
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
/* Enqueue into cmd_thread for others */
|
||||
rtw_c2h_wk_cmd(adapter, (u8 *)c2h_evt);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1993,18 +1944,6 @@ u8 rtw_drvextra_cmd_hdl(struct adapter *padapter, unsigned char *pbuf)
|
|||
case ANT_SELECT_WK_CID:
|
||||
antenna_select_wk_hdl(padapter, pdrvextra_cmd->type_size);
|
||||
break;
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
case P2P_PS_WK_CID:
|
||||
p2p_ps_wk_hdl(padapter, pdrvextra_cmd->type_size);
|
||||
break;
|
||||
case P2P_PROTO_WK_CID:
|
||||
/*
|
||||
* Commented by Albert 2011/07/01
|
||||
* I used the type_size as the type command
|
||||
*/
|
||||
p2p_protocol_wk_hdl(padapter, pdrvextra_cmd->type_size);
|
||||
break;
|
||||
#endif
|
||||
#ifdef CONFIG_88EU_AP_MODE
|
||||
case CHECK_HIQ_WK_CID:
|
||||
rtw_chk_hi_queue_hdl(padapter);
|
||||
|
|
|
@ -1110,9 +1110,6 @@ void dump_ies(u8 *buf, u32 buf_len)
|
|||
len = *(pos+1);
|
||||
|
||||
DBG_88E("%s ID:%u, LEN:%u\n", __func__, id, len);
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
dump_p2p_ie(pos, len);
|
||||
#endif
|
||||
dump_wps_ie(pos, len);
|
||||
|
||||
pos += (2 + len);
|
||||
|
@ -1140,209 +1137,6 @@ void dump_wps_ie(u8 *ie, u32 ie_len)
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
void dump_p2p_ie(u8 *ie, u32 ie_len)
|
||||
{
|
||||
u8 *pos = (u8 *)ie;
|
||||
u8 id;
|
||||
u16 len;
|
||||
u8 *p2p_ie;
|
||||
uint p2p_ielen;
|
||||
|
||||
p2p_ie = rtw_get_p2p_ie(ie, ie_len, NULL, &p2p_ielen);
|
||||
if (p2p_ie != ie || p2p_ielen == 0)
|
||||
return;
|
||||
|
||||
pos += 6;
|
||||
while (pos-ie < ie_len) {
|
||||
id = *pos;
|
||||
len = get_unaligned_le16(pos+1);
|
||||
DBG_88E("%s ID:%u, LEN:%u\n", __func__, id, len);
|
||||
pos += (3+len);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* rtw_get_p2p_ie - Search P2P IE from a series of IEs
|
||||
* @in_ie: Address of IEs to search
|
||||
* @in_len: Length limit from in_ie
|
||||
* @p2p_ie: If not NULL and P2P IE is found, P2P IE will be copied to the buf starting from p2p_ie
|
||||
* @p2p_ielen: If not NULL and P2P IE is found, will set to the length of the entire P2P IE
|
||||
*
|
||||
* Returns: The address of the P2P IE found, or NULL
|
||||
*/
|
||||
u8 *rtw_get_p2p_ie(u8 *in_ie, int in_len, u8 *p2p_ie, uint *p2p_ielen)
|
||||
{
|
||||
uint cnt = 0;
|
||||
u8 *p2p_ie_ptr;
|
||||
u8 eid, p2p_oui[4] = {0x50, 0x6F, 0x9A, 0x09};
|
||||
|
||||
if (p2p_ielen != NULL)
|
||||
*p2p_ielen = 0;
|
||||
|
||||
while (cnt < in_len) {
|
||||
eid = in_ie[cnt];
|
||||
if ((in_len < 0) || (cnt > MAX_IE_SZ)) {
|
||||
dump_stack();
|
||||
return NULL;
|
||||
}
|
||||
if ((eid == _VENDOR_SPECIFIC_IE_) && (!memcmp(&in_ie[cnt+2], p2p_oui, 4))) {
|
||||
p2p_ie_ptr = in_ie + cnt;
|
||||
|
||||
if (p2p_ie != NULL)
|
||||
memcpy(p2p_ie, &in_ie[cnt], in_ie[cnt + 1] + 2);
|
||||
if (p2p_ielen != NULL)
|
||||
*p2p_ielen = in_ie[cnt + 1] + 2;
|
||||
return p2p_ie_ptr;
|
||||
} else {
|
||||
cnt += in_ie[cnt + 1] + 2; /* goto next */
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* rtw_get_p2p_attr - Search a specific P2P attribute from a given P2P IE
|
||||
* @p2p_ie: Address of P2P IE to search
|
||||
* @p2p_ielen: Length limit from p2p_ie
|
||||
* @target_attr_id: The attribute ID of P2P attribute to search
|
||||
* @buf_attr: If not NULL and the P2P attribute is found, P2P attribute will be copied to the buf starting from buf_attr
|
||||
* @len_attr: If not NULL and the P2P attribute is found, will set to the length of the entire P2P attribute
|
||||
*
|
||||
* Returns: the address of the specific WPS attribute found, or NULL
|
||||
*/
|
||||
u8 *rtw_get_p2p_attr(u8 *p2p_ie, uint p2p_ielen, u8 target_attr_id , u8 *buf_attr, u32 *len_attr)
|
||||
{
|
||||
u8 *attr_ptr = NULL;
|
||||
u8 *target_attr_ptr = NULL;
|
||||
u8 p2p_oui[4] = {0x50, 0x6F, 0x9A, 0x09};
|
||||
|
||||
if (len_attr)
|
||||
*len_attr = 0;
|
||||
|
||||
if (!p2p_ie || (p2p_ie[0] != _VENDOR_SPECIFIC_IE_) ||
|
||||
(memcmp(p2p_ie + 2, p2p_oui , 4)))
|
||||
return attr_ptr;
|
||||
|
||||
/* 6 = 1(Element ID) + 1(Length) + 3 (OUI) + 1(OUI Type) */
|
||||
attr_ptr = p2p_ie + 6; /* goto first attr */
|
||||
|
||||
while (attr_ptr - p2p_ie < p2p_ielen) {
|
||||
/* 3 = 1(Attribute ID) + 2(Length) */
|
||||
u8 attr_id = *attr_ptr;
|
||||
u16 attr_data_len = get_unaligned_le16(attr_ptr + 1);
|
||||
u16 attr_len = attr_data_len + 3;
|
||||
|
||||
if (attr_id == target_attr_id) {
|
||||
target_attr_ptr = attr_ptr;
|
||||
|
||||
if (buf_attr)
|
||||
memcpy(buf_attr, attr_ptr, attr_len);
|
||||
if (len_attr)
|
||||
*len_attr = attr_len;
|
||||
break;
|
||||
} else {
|
||||
attr_ptr += attr_len; /* goto next */
|
||||
}
|
||||
}
|
||||
return target_attr_ptr;
|
||||
}
|
||||
|
||||
/**
|
||||
* rtw_get_p2p_attr_content - Search a specific P2P attribute content from a given P2P IE
|
||||
* @p2p_ie: Address of P2P IE to search
|
||||
* @p2p_ielen: Length limit from p2p_ie
|
||||
* @target_attr_id: The attribute ID of P2P attribute to search
|
||||
* @buf_content: If not NULL and the P2P attribute is found, P2P attribute content will be copied to the buf starting from buf_content
|
||||
* @len_content: If not NULL and the P2P attribute is found, will set to the length of the P2P attribute content
|
||||
*
|
||||
* Returns: the address of the specific P2P attribute content found, or NULL
|
||||
*/
|
||||
u8 *rtw_get_p2p_attr_content(u8 *p2p_ie, uint p2p_ielen, u8 target_attr_id , u8 *buf_content, uint *len_content)
|
||||
{
|
||||
u8 *attr_ptr;
|
||||
u32 attr_len;
|
||||
|
||||
if (len_content)
|
||||
*len_content = 0;
|
||||
|
||||
attr_ptr = rtw_get_p2p_attr(p2p_ie, p2p_ielen, target_attr_id, NULL, &attr_len);
|
||||
|
||||
if (attr_ptr && attr_len) {
|
||||
if (buf_content)
|
||||
memcpy(buf_content, attr_ptr+3, attr_len-3);
|
||||
|
||||
if (len_content)
|
||||
*len_content = attr_len-3;
|
||||
|
||||
return attr_ptr+3;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
u32 rtw_set_p2p_attr_content(u8 *pbuf, u8 attr_id, u16 attr_len, u8 *pdata_attr)
|
||||
{
|
||||
u32 a_len;
|
||||
|
||||
*pbuf = attr_id;
|
||||
|
||||
*(u16 *)(pbuf + 1) = cpu_to_le16(attr_len);
|
||||
|
||||
if (pdata_attr)
|
||||
memcpy(pbuf + 3, pdata_attr, attr_len);
|
||||
|
||||
a_len = attr_len + 3;
|
||||
|
||||
return a_len;
|
||||
}
|
||||
|
||||
static uint rtw_p2p_attr_remove(u8 *ie, uint ielen_ori, u8 attr_id)
|
||||
{
|
||||
u8 *target_attr;
|
||||
u32 target_attr_len;
|
||||
uint ielen = ielen_ori;
|
||||
|
||||
while (1) {
|
||||
target_attr = rtw_get_p2p_attr(ie, ielen, attr_id, NULL, &target_attr_len);
|
||||
if (target_attr && target_attr_len) {
|
||||
u8 *next_attr = target_attr+target_attr_len;
|
||||
uint remain_len = ielen-(next_attr-ie);
|
||||
|
||||
memset(target_attr, 0, target_attr_len);
|
||||
memcpy(target_attr, next_attr, remain_len);
|
||||
memset(target_attr+remain_len, 0, target_attr_len);
|
||||
*(ie+1) -= target_attr_len;
|
||||
ielen -= target_attr_len;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return ielen;
|
||||
}
|
||||
|
||||
void rtw_wlan_bssid_ex_remove_p2p_attr(struct wlan_bssid_ex *bss_ex, u8 attr_id)
|
||||
{
|
||||
u8 *p2p_ie;
|
||||
uint p2p_ielen, p2p_ielen_ori;
|
||||
|
||||
p2p_ie = rtw_get_p2p_ie(bss_ex->IEs+_FIXED_IE_LENGTH_, bss_ex->IELength-_FIXED_IE_LENGTH_, NULL, &p2p_ielen_ori);
|
||||
if (p2p_ie) {
|
||||
p2p_ielen = rtw_p2p_attr_remove(p2p_ie, p2p_ielen_ori, attr_id);
|
||||
if (p2p_ielen != p2p_ielen_ori) {
|
||||
u8 *next_ie_ori = p2p_ie+p2p_ielen_ori;
|
||||
u8 *next_ie = p2p_ie+p2p_ielen;
|
||||
uint remain_len = bss_ex->IELength-(next_ie_ori-bss_ex->IEs);
|
||||
|
||||
memcpy(next_ie, next_ie_ori, remain_len);
|
||||
memset(next_ie+remain_len, 0, p2p_ielen_ori-p2p_ielen);
|
||||
bss_ex->IELength -= p2p_ielen_ori-p2p_ielen;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
|
||||
/* Baron adds to avoid FreeBSD warning */
|
||||
int ieee80211_is_empty_essid(const char *essid, int essid_len)
|
||||
{
|
||||
|
|
|
@ -597,9 +597,6 @@ exit:
|
|||
static void rtw_add_network(struct adapter *adapter,
|
||||
struct wlan_bssid_ex *pnetwork)
|
||||
{
|
||||
#if defined(CONFIG_88EU_P2P)
|
||||
rtw_wlan_bssid_ex_remove_p2p_attr(pnetwork, P2P_ATTR_GROUP_INFO);
|
||||
#endif
|
||||
update_current_network(adapter, pnetwork);
|
||||
rtw_update_scanned_network(adapter, pnetwork);
|
||||
}
|
||||
|
@ -791,9 +788,6 @@ void rtw_surveydone_event_callback(struct adapter *adapter, u8 *pbuf)
|
|||
|
||||
spin_unlock_bh(&pmlmepriv->lock);
|
||||
|
||||
if (check_fwstate(pmlmepriv, _FW_LINKED) == true)
|
||||
p2p_ps_wk_cmd(adapter, P2P_PS_SCAN_DONE, 0);
|
||||
|
||||
rtw_os_xmit_schedule(adapter);
|
||||
|
||||
pmlmeext = &adapter->mlmeextpriv;
|
||||
|
@ -936,7 +930,6 @@ void rtw_indicate_disconnect(struct adapter *padapter)
|
|||
rtw_led_control(padapter, LED_CTL_NO_LINK);
|
||||
rtw_clear_scan_deny(padapter);
|
||||
}
|
||||
p2p_ps_wk_cmd(padapter, P2P_PS_DISABLE, 1);
|
||||
|
||||
rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_DISCONNECT, 1);
|
||||
}
|
||||
|
@ -1521,16 +1514,10 @@ void rtw_dynamic_check_timer_handlder(struct adapter *adapter)
|
|||
rtw_dynamic_chk_wk_cmd(adapter);
|
||||
|
||||
if (pregistrypriv->wifi_spec == 1) {
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
struct wifidirect_info *pwdinfo = &adapter->wdinfo;
|
||||
if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE))
|
||||
#endif
|
||||
{
|
||||
/* auto site survey */
|
||||
rtw_auto_scan_handler(adapter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#define RTW_SCAN_RESULT_EXPIRE 2000
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -218,10 +218,6 @@ int ips_leave(struct adapter *padapter)
|
|||
static bool rtw_pwr_unassociated_idle(struct adapter *adapter)
|
||||
{
|
||||
struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
struct wifidirect_info *pwdinfo = &(adapter->wdinfo);
|
||||
#endif
|
||||
|
||||
bool ret = false;
|
||||
|
||||
if (time_after_eq(adapter->pwrctrlpriv.ips_deny_time, jiffies))
|
||||
|
@ -230,12 +226,7 @@ static bool rtw_pwr_unassociated_idle(struct adapter *adapter)
|
|||
if (check_fwstate(pmlmepriv, WIFI_ASOC_STATE|WIFI_SITE_MONITOR) ||
|
||||
check_fwstate(pmlmepriv, WIFI_UNDER_LINKING|WIFI_UNDER_WPS) ||
|
||||
check_fwstate(pmlmepriv, WIFI_AP_STATE) ||
|
||||
check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE|WIFI_ADHOC_STATE) ||
|
||||
#if defined(CONFIG_88EU_P2P)
|
||||
!rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE))
|
||||
#else
|
||||
0)
|
||||
#endif
|
||||
check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE|WIFI_ADHOC_STATE))
|
||||
goto exit;
|
||||
|
||||
ret = true;
|
||||
|
@ -387,9 +378,6 @@ static u8 PS_RDY_CHECK(struct adapter *padapter)
|
|||
void rtw_set_ps_mode(struct adapter *padapter, u8 ps_mode, u8 smart_ps, u8 bcn_ant_mode)
|
||||
{
|
||||
struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv;
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
struct wifidirect_info *pwdinfo = &(padapter->wdinfo);
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
|
||||
RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_notice_,
|
||||
("%s: PowerMode=%d Smart_PS=%d\n",
|
||||
|
@ -411,16 +399,6 @@ void rtw_set_ps_mode(struct adapter *padapter, u8 ps_mode, u8 smart_ps, u8 bcn_a
|
|||
|
||||
/* if (pwrpriv->pwr_mode == PS_MODE_ACTIVE) */
|
||||
if (ps_mode == PS_MODE_ACTIVE) {
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
if (pwdinfo->opp_ps == 0) {
|
||||
DBG_88E("rtw_set_ps_mode: Leave 802.11 power save\n");
|
||||
pwrpriv->pwr_mode = ps_mode;
|
||||
rtw_set_rpwm(padapter, PS_STATE_S4);
|
||||
rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_PWRMODE, (u8 *)(&ps_mode));
|
||||
pwrpriv->bFwCurrentInPSMode = false;
|
||||
}
|
||||
} else {
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
if (PS_RDY_CHECK(padapter)) {
|
||||
DBG_88E("%s: Enter 802.11 power save\n", __func__);
|
||||
pwrpriv->bFwCurrentInPSMode = true;
|
||||
|
@ -428,13 +406,6 @@ void rtw_set_ps_mode(struct adapter *padapter, u8 ps_mode, u8 smart_ps, u8 bcn_a
|
|||
pwrpriv->smart_ps = smart_ps;
|
||||
pwrpriv->bcn_ant_mode = bcn_ant_mode;
|
||||
rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_PWRMODE, (u8 *)(&ps_mode));
|
||||
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
/* Set CTWindow after LPS */
|
||||
if (pwdinfo->opp_ps == 1)
|
||||
p2p_ps_wk_cmd(padapter, P2P_PS_ENABLE, 0);
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
|
||||
rtw_set_rpwm(padapter, PS_STATE_S2);
|
||||
}
|
||||
}
|
||||
|
@ -531,12 +502,9 @@ void LeaveAllPowerSaveMode(struct adapter *Adapter)
|
|||
struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
|
||||
u8 enqueue = 0;
|
||||
|
||||
if (check_fwstate(pmlmepriv, _FW_LINKED)) { /* connect */
|
||||
p2p_ps_wk_cmd(Adapter, P2P_PS_DISABLE, enqueue);
|
||||
|
||||
if (check_fwstate(pmlmepriv, _FW_LINKED))
|
||||
rtw_lps_ctrl_wk_cmd(Adapter, LPS_CTRL_LEAVE, enqueue);
|
||||
}
|
||||
}
|
||||
|
||||
void rtw_init_pwrctrl_priv(struct adapter *padapter)
|
||||
{
|
||||
|
|
|
@ -1357,15 +1357,6 @@ void set_sta_rate(struct adapter *padapter, struct sta_info *psta)
|
|||
void update_tx_basic_rate(struct adapter *padapter, u8 wirelessmode)
|
||||
{
|
||||
unsigned char supported_rates[NDIS_802_11_LENGTH_RATES_EX];
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
struct wifidirect_info *pwdinfo = &padapter->wdinfo;
|
||||
|
||||
/* Added by Albert 2011/03/22 */
|
||||
/* In the P2P mode, the driver should not support the b mode. */
|
||||
/* So, the Tx packet shouldn't use the CCK rate */
|
||||
if (!rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE))
|
||||
return;
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
memset(supported_rates, 0, NDIS_802_11_LENGTH_RATES_EX);
|
||||
|
||||
if ((wirelessmode & WIRELESS_11B) && (wirelessmode == WIRELESS_11B))
|
||||
|
|
|
@ -687,75 +687,3 @@ void rtl8188e_set_FwJoinBssReport_cmd(struct adapter *adapt, u8 mstatus)
|
|||
usb_write8(adapt, REG_CR+1, haldata->RegCR_1);
|
||||
}
|
||||
}
|
||||
|
||||
void rtl8188e_set_p2p_ps_offload_cmd(struct adapter *adapt, u8 p2p_ps_state)
|
||||
{
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
struct hal_data_8188e *haldata = GET_HAL_DATA(adapt);
|
||||
struct wifidirect_info *pwdinfo = &(adapt->wdinfo);
|
||||
struct P2P_PS_Offload_t *p2p_ps_offload = &haldata->p2p_ps_offload;
|
||||
u8 i;
|
||||
|
||||
|
||||
switch (p2p_ps_state) {
|
||||
case P2P_PS_DISABLE:
|
||||
DBG_88E("P2P_PS_DISABLE\n");
|
||||
memset(p2p_ps_offload, 0, 1);
|
||||
break;
|
||||
case P2P_PS_ENABLE:
|
||||
DBG_88E("P2P_PS_ENABLE\n");
|
||||
/* update CTWindow value. */
|
||||
if (pwdinfo->ctwindow > 0) {
|
||||
p2p_ps_offload->CTWindow_En = 1;
|
||||
usb_write8(adapt, REG_P2P_CTWIN, pwdinfo->ctwindow);
|
||||
}
|
||||
|
||||
/* hw only support 2 set of NoA */
|
||||
for (i = 0; i < pwdinfo->noa_num; i++) {
|
||||
/* To control the register setting for which NOA */
|
||||
usb_write8(adapt, REG_NOA_DESC_SEL, (i << 4));
|
||||
if (i == 0)
|
||||
p2p_ps_offload->NoA0_En = 1;
|
||||
else
|
||||
p2p_ps_offload->NoA1_En = 1;
|
||||
|
||||
/* config P2P NoA Descriptor Register */
|
||||
usb_write32(adapt, REG_NOA_DESC_DURATION, pwdinfo->noa_duration[i]);
|
||||
usb_write32(adapt, REG_NOA_DESC_INTERVAL, pwdinfo->noa_interval[i]);
|
||||
usb_write32(adapt, REG_NOA_DESC_START, pwdinfo->noa_start_time[i]);
|
||||
usb_write8(adapt, REG_NOA_DESC_COUNT, pwdinfo->noa_count[i]);
|
||||
}
|
||||
|
||||
if ((pwdinfo->opp_ps == 1) || (pwdinfo->noa_num > 0)) {
|
||||
/* rst p2p circuit */
|
||||
usb_write8(adapt, REG_DUAL_TSF_RST, BIT(4));
|
||||
|
||||
p2p_ps_offload->Offload_En = 1;
|
||||
|
||||
if (pwdinfo->role == P2P_ROLE_GO) {
|
||||
p2p_ps_offload->role = 1;
|
||||
p2p_ps_offload->AllStaSleep = 0;
|
||||
} else {
|
||||
p2p_ps_offload->role = 0;
|
||||
}
|
||||
|
||||
p2p_ps_offload->discovery = 0;
|
||||
}
|
||||
break;
|
||||
case P2P_PS_SCAN:
|
||||
DBG_88E("P2P_PS_SCAN\n");
|
||||
p2p_ps_offload->discovery = 1;
|
||||
break;
|
||||
case P2P_PS_SCAN_DONE:
|
||||
DBG_88E("P2P_PS_SCAN_DONE\n");
|
||||
p2p_ps_offload->discovery = 0;
|
||||
pwdinfo->p2p_ps_state = P2P_PS_ENABLE;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
FillH2CCmd_88E(adapt, H2C_PS_P2P_OFFLOAD, 1, (u8 *)p2p_ps_offload);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
|
|
@ -1735,14 +1735,6 @@ static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val)
|
|||
rtl8188e_set_FwJoinBssReport_cmd(Adapter, mstatus);
|
||||
}
|
||||
break;
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
case HW_VAR_H2C_FW_P2P_PS_OFFLOAD:
|
||||
{
|
||||
u8 p2p_ps_state = (*(u8 *)val);
|
||||
rtl8188e_set_p2p_ps_offload_cmd(Adapter, p2p_ps_state);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
case HW_VAR_INITIAL_GAIN:
|
||||
{
|
||||
struct rtw_dig *pDigTable = &podmpriv->DM_DigTable;
|
||||
|
|
|
@ -48,7 +48,6 @@
|
|||
#include <rtw_event.h>
|
||||
#include <rtw_led.h>
|
||||
#include <rtw_mlme_ext.h>
|
||||
#include <rtw_p2p.h>
|
||||
#include <rtw_ap.h>
|
||||
|
||||
#define SPEC_DEV_ID_NONE BIT(0)
|
||||
|
@ -241,11 +240,6 @@ struct adapter {
|
|||
/* The driver will show up the desired channel number
|
||||
* when this flag is 1. */
|
||||
u8 bNotifyChannelChange;
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
/* The driver will show the current P2P status when the
|
||||
* upper application reads it. */
|
||||
u8 bShowGetP2PState;
|
||||
#endif
|
||||
|
||||
struct mutex hw_init_mutex;
|
||||
|
||||
|
|
|
@ -1233,19 +1233,6 @@ u8 *rtw_get_wps_attr_content(u8 *wps_ie, uint wps_ielen, u16 target_attr_id,
|
|||
void dump_ies(u8 *buf, u32 buf_len);
|
||||
void dump_wps_ie(u8 *ie, u32 ie_len);
|
||||
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
void dump_p2p_ie(u8 *ie, u32 ie_len);
|
||||
u8 *rtw_get_p2p_ie(u8 *in_ie, int in_len, u8 *p2p_ie, uint *p2p_ielen);
|
||||
u8 *rtw_get_p2p_attr(u8 *p2p_ie, uint p2p_ielen, u8 target_attr_id,
|
||||
u8 *buf_attr, u32 *len_attr);
|
||||
u8 *rtw_get_p2p_attr_content(u8 *p2p_ie, uint p2p_ielen, u8 target_attr_id,
|
||||
u8 *buf_content, uint *len_content);
|
||||
u32 rtw_set_p2p_attr_content(u8 *pbuf, u8 attr_id, u16 attr_len,
|
||||
u8 *pdata_attr);
|
||||
void rtw_wlan_bssid_ex_remove_p2p_attr(struct wlan_bssid_ex *bss_ex,
|
||||
u8 attr_id);
|
||||
#endif
|
||||
|
||||
uint rtw_get_rateset_len(u8 *rateset);
|
||||
|
||||
struct registry_priv;
|
||||
|
|
|
@ -112,10 +112,6 @@ u8 rtl8188e_set_raid_cmd(struct adapter *padapter, u32 mask);
|
|||
void rtl8188e_Add_RateATid(struct adapter *padapter, u32 bitmap, u8 arg,
|
||||
u8 rssi_level);
|
||||
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
void rtl8188e_set_p2p_ps_offload_cmd(struct adapter *adapt, u8 p2p_ps_state);
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
|
||||
void rtl8188e_set_FwMediaStatus_cmd(struct adapter *adapt, __le16 mstatus_rpt);
|
||||
|
||||
#endif/* __RTL8188E_CMD_H__ */
|
||||
|
|
|
@ -386,10 +386,6 @@ struct hal_data_8188e {
|
|||
|
||||
u16 EfuseUsedBytes;
|
||||
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
struct P2P_PS_Offload_t p2p_ps_offload;
|
||||
#endif
|
||||
|
||||
/* Auto FSM to Turn On, include clock, isolation, power control
|
||||
* for MAC only */
|
||||
u8 bMacPwrCtrlOn;
|
||||
|
|
|
@ -107,9 +107,6 @@ u32 rtw_init_evt_priv(struct evt_priv *pevtpriv);
|
|||
void rtw_free_evt_priv(struct evt_priv *pevtpriv);
|
||||
void rtw_cmd_clr_isr(struct cmd_priv *pcmdpriv);
|
||||
void rtw_evt_notify_isr(struct evt_priv *pevtpriv);
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
u8 p2p_protocol_wk_cmd(struct adapter *padapter, int intCmdType);
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
|
||||
enum rtw_drvextra_cmd_id {
|
||||
NONE_WK_CID,
|
||||
|
|
|
@ -565,18 +565,6 @@ s32 dump_mgntframe_and_wait(struct adapter *padapter,
|
|||
s32 dump_mgntframe_and_wait_ack(struct adapter *padapter,
|
||||
struct xmit_frame *pmgntframe);
|
||||
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
void issue_probersp_p2p(struct adapter *padapter, unsigned char *da);
|
||||
void issue_p2p_provision_request(struct adapter *padapter, u8 *pssid,
|
||||
u8 ussidlen, u8 *pdev_raddr);
|
||||
void issue_p2p_GO_request(struct adapter *padapter, u8 *raddr);
|
||||
void issue_probereq_p2p(struct adapter *padapter, u8 *da);
|
||||
int issue_probereq_p2p_ex(struct adapter *adapter, u8 *da, int try_cnt,
|
||||
int wait_ms);
|
||||
void issue_p2p_invitation_response(struct adapter *padapter, u8 *raddr,
|
||||
u8 dialogToken, u8 success);
|
||||
void issue_p2p_invitation_request(struct adapter *padapter, u8 *raddr);
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
void issue_beacon(struct adapter *padapter, int timeout_ms);
|
||||
void issue_probersp(struct adapter *padapter, unsigned char *da,
|
||||
u8 is_valid_p2p_probereq);
|
||||
|
|
|
@ -1,135 +0,0 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of version 2 of the GNU General Public License as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
|
||||
*
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef __RTW_P2P_H_
|
||||
#define __RTW_P2P_H_
|
||||
|
||||
#include <drv_types.h>
|
||||
|
||||
u32 build_beacon_p2p_ie(struct wifidirect_info *pwdinfo, u8 *pbuf);
|
||||
u32 build_probe_resp_p2p_ie(struct wifidirect_info *pwdinfo, u8 *pbuf);
|
||||
u32 build_prov_disc_request_p2p_ie(struct wifidirect_info *pwdinfo,
|
||||
u8 *pbuf, u8 *pssid, u8 ussidlen,
|
||||
u8 *pdev_raddr);
|
||||
u32 build_assoc_resp_p2p_ie(struct wifidirect_info *pwdinfo,
|
||||
u8 *pbuf, u8 status_code);
|
||||
u32 build_deauth_p2p_ie(struct wifidirect_info *pwdinfo, u8 *pbuf);
|
||||
u32 process_probe_req_p2p_ie(struct wifidirect_info *pwdinfo,
|
||||
u8 *pframe, uint len);
|
||||
u32 process_assoc_req_p2p_ie(struct wifidirect_info *pwdinfo,
|
||||
u8 *pframe, uint len, struct sta_info *psta);
|
||||
u32 process_p2p_devdisc_req(struct wifidirect_info *pwdinfo,
|
||||
u8 *pframe, uint len);
|
||||
u32 process_p2p_devdisc_resp(struct wifidirect_info *pwdinfo,
|
||||
u8 *pframe, uint len);
|
||||
u8 process_p2p_provdisc_req(struct wifidirect_info *pwdinfo,
|
||||
u8 *pframe, uint len);
|
||||
u8 process_p2p_provdisc_resp(struct wifidirect_info *pwdinfo, u8 *pframe);
|
||||
u8 process_p2p_group_negotation_req(struct wifidirect_info *pwdinfo,
|
||||
u8 *pframe, uint len);
|
||||
u8 process_p2p_group_negotation_resp(struct wifidirect_info *pwdinfo,
|
||||
u8 *pframe, uint len);
|
||||
u8 process_p2p_group_negotation_confirm(struct wifidirect_info *pwdinfo,
|
||||
u8 *pframe, uint len);
|
||||
u8 process_p2p_presence_req(struct wifidirect_info *pwdinfo, u8 *pframe,
|
||||
uint len);
|
||||
void p2p_protocol_wk_hdl(struct adapter *padapter, int intcmdtype);
|
||||
void process_p2p_ps_ie(struct adapter *padapter, u8 *ies, u32 ielength);
|
||||
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);
|
||||
void reset_global_wifidirect_info(struct adapter *padapter);
|
||||
int rtw_init_wifi_display_info(struct adapter *padapter);
|
||||
void rtw_init_wifidirect_timers(struct adapter *padapter);
|
||||
void rtw_init_wifidirect_addrs(struct adapter *padapter, u8 *dev_addr,
|
||||
u8 *iface_addr);
|
||||
void init_wifidirect_info(struct adapter *padapter, enum P2P_ROLE role);
|
||||
int rtw_p2p_enable(struct adapter *padapter, enum P2P_ROLE role);
|
||||
|
||||
static inline void _rtw_p2p_set_state(struct wifidirect_info *wdinfo,
|
||||
enum P2P_STATE state)
|
||||
{
|
||||
if (wdinfo->p2p_state != state)
|
||||
wdinfo->p2p_state = state;
|
||||
}
|
||||
|
||||
static inline void _rtw_p2p_set_pre_state(struct wifidirect_info *wdinfo,
|
||||
enum P2P_STATE state)
|
||||
{
|
||||
if (wdinfo->pre_p2p_state != state)
|
||||
wdinfo->pre_p2p_state = state;
|
||||
}
|
||||
|
||||
static inline void _rtw_p2p_set_role(struct wifidirect_info *wdinfo,
|
||||
enum P2P_ROLE role)
|
||||
{
|
||||
if (wdinfo->role != role)
|
||||
wdinfo->role = role;
|
||||
}
|
||||
|
||||
static inline int _rtw_p2p_state(struct wifidirect_info *wdinfo)
|
||||
{
|
||||
return wdinfo->p2p_state;
|
||||
}
|
||||
|
||||
static inline int _rtw_p2p_pre_state(struct wifidirect_info *wdinfo)
|
||||
{
|
||||
return wdinfo->pre_p2p_state;
|
||||
}
|
||||
|
||||
static inline int _rtw_p2p_role(struct wifidirect_info *wdinfo)
|
||||
{
|
||||
return wdinfo->role;
|
||||
}
|
||||
|
||||
static inline bool _rtw_p2p_chk_state(struct wifidirect_info *wdinfo,
|
||||
enum P2P_STATE state)
|
||||
{
|
||||
return wdinfo->p2p_state == state;
|
||||
}
|
||||
|
||||
static inline bool _rtw_p2p_chk_role(struct wifidirect_info *wdinfo,
|
||||
enum P2P_ROLE role)
|
||||
{
|
||||
return wdinfo->role == role;
|
||||
}
|
||||
|
||||
#define rtw_p2p_set_state(wdinfo, state) _rtw_p2p_set_state(wdinfo, state)
|
||||
#define rtw_p2p_set_pre_state(wdinfo, state) \
|
||||
_rtw_p2p_set_pre_state(wdinfo, state)
|
||||
#define rtw_p2p_set_role(wdinfo, role) _rtw_p2p_set_role(wdinfo, role)
|
||||
|
||||
#define rtw_p2p_state(wdinfo) _rtw_p2p_state(wdinfo)
|
||||
#define rtw_p2p_pre_state(wdinfo) _rtw_p2p_pre_state(wdinfo)
|
||||
#define rtw_p2p_role(wdinfo) _rtw_p2p_role(wdinfo)
|
||||
#define rtw_p2p_chk_state(wdinfo, state) _rtw_p2p_chk_state(wdinfo, state)
|
||||
#define rtw_p2p_chk_role(wdinfo, role) _rtw_p2p_chk_role(wdinfo, role)
|
||||
|
||||
#define rtw_p2p_findphase_ex_set(wdinfo, value) \
|
||||
((wdinfo)->find_phase_state_exchange_cnt = (value))
|
||||
|
||||
/* is this find phase exchange for social channel scan? */
|
||||
#define rtw_p2p_findphase_ex_is_social(wdinfo) \
|
||||
((wdinfo)->find_phase_state_exchange_cnt >= P2P_FINDPHASE_EX_SOCIAL_FIRST)
|
||||
|
||||
/* should we need find phase exchange anymore? */
|
||||
#define rtw_p2p_findphase_ex_is_needed(wdinfo) \
|
||||
((wdinfo)->find_phase_state_exchange_cnt < P2P_FINDPHASE_EX_MAX && \
|
||||
(wdinfo)->find_phase_state_exchange_cnt != P2P_FINDPHASE_EX_NONE)
|
||||
|
||||
#endif
|
|
@ -182,21 +182,6 @@ struct sta_info {
|
|||
unsigned int sleepq_ac_len;
|
||||
#endif /* CONFIG_88EU_AP_MODE */
|
||||
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
/* p2p priv data */
|
||||
u8 is_p2p_device;
|
||||
u8 p2p_status_code;
|
||||
|
||||
/* p2p client info */
|
||||
u8 dev_addr[ETH_ALEN];
|
||||
u8 dev_cap;
|
||||
u16 config_methods;
|
||||
u8 primary_dev_type[8];
|
||||
u8 num_of_secdev_type;
|
||||
u8 secdev_types_list[32];/* 32/8 == 4; */
|
||||
u16 dev_name_len;
|
||||
u8 dev_name[32];
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
u8 under_exist_checking;
|
||||
u8 keep_alive_trycnt;
|
||||
|
||||
|
|
|
@ -114,35 +114,6 @@ static char *translate_scan(struct adapter *padapter,
|
|||
u8 bw_40MHz = 0, short_GI = 0;
|
||||
u16 mcs_rate = 0;
|
||||
u8 ss, sq;
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
struct wifidirect_info *pwdinfo = &padapter->wdinfo;
|
||||
|
||||
if (!rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE)) {
|
||||
u32 blnGotP2PIE = false;
|
||||
|
||||
/* User is doing the P2P device discovery */
|
||||
/* The prefix of SSID should be "DIRECT-" and the IE should contains the P2P IE. */
|
||||
/* If not, the driver should ignore this AP and go to the next AP. */
|
||||
|
||||
/* Verifying the SSID */
|
||||
if (!memcmp(pnetwork->network.Ssid.Ssid, pwdinfo->p2p_wildcard_ssid, P2P_WILDCARD_SSID_LEN)) {
|
||||
u32 p2pielen = 0;
|
||||
|
||||
if (pnetwork->network.Reserved[0] == 2) {/* Probe Request */
|
||||
/* Verifying the P2P IE */
|
||||
if (rtw_get_p2p_ie(pnetwork->network.IEs, pnetwork->network.IELength, NULL, &p2pielen))
|
||||
blnGotP2PIE = true;
|
||||
} else {/* Beacon or Probe Respones */
|
||||
/* Verifying the P2P IE */
|
||||
if (rtw_get_p2p_ie(&pnetwork->network.IEs[12], pnetwork->network.IELength - 12, NULL, &p2pielen))
|
||||
blnGotP2PIE = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!blnGotP2PIE)
|
||||
return start;
|
||||
}
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
|
||||
/* AP MAC address */
|
||||
iwe.cmd = SIOCGIWAP;
|
||||
|
@ -385,9 +356,6 @@ static int wpa_set_encryption(struct net_device *dev, struct ieee_param *param,
|
|||
struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
|
||||
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
|
||||
struct security_priv *psecuritypriv = &padapter->securitypriv;
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
struct wifidirect_info *pwdinfo = &padapter->wdinfo;
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
|
||||
param->u.crypt.err = 0;
|
||||
param->u.crypt.alg[IEEE_CRYPT_ALG_NAME_LEN - 1] = '\0';
|
||||
|
@ -505,10 +473,6 @@ static int wpa_set_encryption(struct net_device *dev, struct ieee_param *param,
|
|||
padapter->securitypriv.dot118021XGrpKeyid = param->u.crypt.idx;
|
||||
|
||||
rtw_set_key(padapter, &padapter->securitypriv, param->u.crypt.idx, 1);
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_PROVISIONING_ING))
|
||||
rtw_p2p_set_state(pwdinfo, P2P_STATE_PROVISIONING_DONE);
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
}
|
||||
}
|
||||
pbcmc_sta = rtw_get_bcmc_stainfo(padapter);
|
||||
|
@ -537,9 +501,6 @@ static int rtw_set_wpa_ie(struct adapter *padapter, char *pie, unsigned short ie
|
|||
u8 *buf = NULL;
|
||||
int group_cipher = 0, pairwise_cipher = 0;
|
||||
int ret = 0;
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
struct wifidirect_info *pwdinfo = &padapter->wdinfo;
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
|
||||
if ((ielen > MAX_WPA_IE_LEN) || (pie == NULL)) {
|
||||
_clr_fwstate_(&padapter->mlmepriv, WIFI_UNDER_WPS);
|
||||
|
@ -645,10 +606,6 @@ static int rtw_set_wpa_ie(struct adapter *padapter, char *pie, unsigned short ie
|
|||
memcpy(padapter->securitypriv.wps_ie, &buf[cnt], padapter->securitypriv.wps_ie_len);
|
||||
|
||||
set_fwstate(&padapter->mlmepriv, WIFI_UNDER_WPS);
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_GONEGO_OK))
|
||||
rtw_p2p_set_state(pwdinfo, P2P_STATE_PROVISIONING_ING);
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
cnt += buf[cnt+1]+2;
|
||||
break;
|
||||
} else {
|
||||
|
@ -1126,9 +1083,6 @@ static int rtw_wx_set_scan(struct net_device *dev, struct iw_request_info *a,
|
|||
struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
|
||||
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
|
||||
struct ndis_802_11_ssid ssid[RTW_SSID_SCAN_AMOUNT];
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
struct wifidirect_info *pwdinfo = &(padapter->wdinfo);
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("rtw_wx_set_scan\n"));
|
||||
|
||||
if (padapter->registrypriv.mp_mode == 1) {
|
||||
|
@ -1175,15 +1129,6 @@ static int rtw_wx_set_scan(struct net_device *dev, struct iw_request_info *a,
|
|||
/* the pmlmepriv->scan_interval is always equal to 3. */
|
||||
/* So, the wpa_supplicant won't find out the WPS SoftAP. */
|
||||
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
if (pwdinfo->p2p_state != P2P_STATE_NONE) {
|
||||
rtw_p2p_set_pre_state(pwdinfo, rtw_p2p_state(pwdinfo));
|
||||
rtw_p2p_set_state(pwdinfo, P2P_STATE_FIND_PHASE_SEARCH);
|
||||
rtw_p2p_findphase_ex_set(pwdinfo, P2P_FINDPHASE_EX_FULL);
|
||||
rtw_free_network_queue(padapter, true);
|
||||
}
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
|
||||
memset(ssid, 0, sizeof(struct ndis_802_11_ssid)*RTW_SSID_SCAN_AMOUNT);
|
||||
|
||||
if (wrqu->data.length == sizeof(struct iw_scan_req)) {
|
||||
|
@ -1278,9 +1223,6 @@ static int rtw_wx_get_scan(struct net_device *dev, struct iw_request_info *a,
|
|||
u32 cnt = 0;
|
||||
u32 wait_for_surveydone;
|
||||
int wait_status;
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
struct wifidirect_info *pwdinfo = &padapter->wdinfo;
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("rtw_wx_get_scan\n"));
|
||||
RT_TRACE(_module_rtl871x_ioctl_os_c, _drv_info_, (" Start of Query SIOCGIWSCAN .\n"));
|
||||
|
||||
|
@ -1289,19 +1231,7 @@ static int rtw_wx_get_scan(struct net_device *dev, struct iw_request_info *a,
|
|||
goto exit;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
if (!rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE)) {
|
||||
/* P2P is enabled */
|
||||
wait_for_surveydone = 200;
|
||||
} else {
|
||||
/* P2P is disabled */
|
||||
wait_for_surveydone = 100;
|
||||
}
|
||||
#else
|
||||
{
|
||||
wait_for_surveydone = 100;
|
||||
}
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
|
||||
wait_status = _FW_UNDER_SURVEY | _FW_UNDER_LINKING;
|
||||
|
||||
|
|
|
@ -804,9 +804,6 @@ static u8 rtw_init_default_value(struct adapter *padapter)
|
|||
padapter->bWritePortCancel = false;
|
||||
padapter->bRxRSSIDisplay = 0;
|
||||
padapter->bNotifyChannelChange = 0;
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
padapter->bShowGetP2PState = 1;
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -867,12 +864,6 @@ u8 rtw_init_drv_sw(struct adapter *padapter)
|
|||
goto exit;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
rtw_init_wifidirect_timers(padapter);
|
||||
init_wifidirect_info(padapter, P2P_ROLE_DISABLE);
|
||||
reset_global_wifidirect_info(padapter);
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
|
||||
if (init_mlme_ext_priv(padapter) == _FAIL) {
|
||||
RT_TRACE(_module_os_intfs_c_, _drv_err_, ("\n Can't init mlme_ext_priv\n"));
|
||||
ret8 = _FAIL;
|
||||
|
@ -945,21 +936,6 @@ u8 rtw_free_drv_sw(struct adapter *padapter)
|
|||
{
|
||||
RT_TRACE(_module_os_intfs_c_, _drv_info_, ("==>rtw_free_drv_sw"));
|
||||
|
||||
/* we can call rtw_p2p_enable here, but: */
|
||||
/* 1. rtw_p2p_enable may have IO operation */
|
||||
/* 2. rtw_p2p_enable is bundled with wext interface */
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
{
|
||||
struct wifidirect_info *pwdinfo = &padapter->wdinfo;
|
||||
if (!rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE)) {
|
||||
del_timer_sync(&pwdinfo->find_phase_timer);
|
||||
del_timer_sync(&pwdinfo->restore_p2p_state_timer);
|
||||
del_timer_sync(&pwdinfo->pre_tx_scan_timer);
|
||||
rtw_p2p_set_state(pwdinfo, P2P_STATE_NONE);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
free_mlme_ext_priv(&padapter->mlmeextpriv);
|
||||
|
||||
rtw_free_cmd_priv(&padapter->cmdpriv);
|
||||
|
@ -1190,10 +1166,6 @@ int netdev_close(struct net_device *pnetdev)
|
|||
rtw_led_control(padapter, LED_CTL_POWER_OFF);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
rtw_p2p_enable(padapter, P2P_ROLE_DISABLE);
|
||||
#endif /* CONFIG_88EU_P2P */
|
||||
|
||||
kfree(dvobj->firmware.szFwBuffer);
|
||||
dvobj->firmware.szFwBuffer = NULL;
|
||||
|
||||
|
|
|
@ -428,10 +428,6 @@ static struct adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj,
|
|||
/* alloc dev name after read efuse. */
|
||||
rtw_init_netdev_name(pnetdev, padapter->registrypriv.ifname);
|
||||
rtw_macaddr_cfg(padapter->eeprompriv.mac_addr);
|
||||
#ifdef CONFIG_88EU_P2P
|
||||
rtw_init_wifidirect_addrs(padapter, padapter->eeprompriv.mac_addr,
|
||||
padapter->eeprompriv.mac_addr);
|
||||
#endif
|
||||
memcpy(pnetdev->dev_addr, padapter->eeprompriv.mac_addr, ETH_ALEN);
|
||||
DBG_88E("MAC Address from pnetdev->dev_addr = %pM\n",
|
||||
pnetdev->dev_addr);
|
||||
|
|
Loading…
Reference in New Issue