mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-02 14:34:13 -04:00
staging: rtl8723au: Introduce rtw_do_join_network()
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
0e634a029b
commit
b66dad2d50
@@ -79,8 +79,6 @@ int rtw_do_join23a(struct rtw_adapter *padapter)
|
||||
select_ret = rtw_select_and_join_from_scanned_queue23a(pmlmepriv);
|
||||
if (select_ret == _SUCCESS) {
|
||||
pmlmepriv->to_join = false;
|
||||
mod_timer(&pmlmepriv->assoc_timer,
|
||||
jiffies + msecs_to_jiffies(MAX_JOIN_TIMEOUT));
|
||||
} else {
|
||||
if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)) {
|
||||
struct wlan_bssid_ex *pdev_network;
|
||||
|
||||
@@ -739,8 +739,6 @@ rtw_surveydone_event_callback23a(struct rtw_adapter *adapter, const u8 *pbuf)
|
||||
|
||||
if (rtw_select_and_join_from_scanned_queue23a(
|
||||
pmlmepriv) == _SUCCESS) {
|
||||
mod_timer(&pmlmepriv->assoc_timer,
|
||||
jiffies + msecs_to_jiffies(MAX_JOIN_TIMEOUT));
|
||||
} else {
|
||||
pdev_network = &adapter->registrypriv.dev_network;
|
||||
pibss = adapter->registrypriv.dev_network.MacAddress;
|
||||
@@ -782,14 +780,10 @@ rtw_surveydone_event_callback23a(struct rtw_adapter *adapter, const u8 *pbuf)
|
||||
pmlmepriv->to_join = false;
|
||||
ret = rtw_select_and_join_from_scanned_queue23a(
|
||||
pmlmepriv);
|
||||
if (ret == _SUCCESS) {
|
||||
unsigned long e;
|
||||
e = msecs_to_jiffies(MAX_JOIN_TIMEOUT);
|
||||
mod_timer(&pmlmepriv->assoc_timer, jiffies + e);
|
||||
} else if (ret == 2) {/* there is no need to wait */
|
||||
if (ret == 2) {/* there is no need to wait */
|
||||
_clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
|
||||
rtw_indicate_connect23a(adapter);
|
||||
} else {
|
||||
} else if (ret != _SUCCESS) {
|
||||
DBG_8723A("try_to_join, but select scanning "
|
||||
"queue fail, to_roaming:%d\n",
|
||||
adapter->mlmepriv.to_roaming);
|
||||
@@ -1784,6 +1778,31 @@ rtw_select_candidate_from_queue(struct mlme_priv *pmlmepriv)
|
||||
return candidate;
|
||||
}
|
||||
|
||||
|
||||
int rtw_do_join_network(struct rtw_adapter *adapter,
|
||||
struct wlan_network *candidate)
|
||||
{
|
||||
int ret;
|
||||
|
||||
/* check for situation of _FW_LINKED */
|
||||
if (check_fwstate(&adapter->mlmepriv, _FW_LINKED)) {
|
||||
DBG_8723A("%s: _FW_LINKED while ask_for_joinbss!\n", __func__);
|
||||
|
||||
rtw_disassoc_cmd23a(adapter, 0, true);
|
||||
rtw_indicate_disconnect23a(adapter);
|
||||
rtw_free_assoc_resources23a(adapter, 0);
|
||||
}
|
||||
set_fwstate(&adapter->mlmepriv, _FW_UNDER_LINKING);
|
||||
|
||||
ret = rtw_joinbss_cmd23a(adapter, candidate);
|
||||
|
||||
if (ret == _SUCCESS)
|
||||
mod_timer(&adapter->mlmepriv.assoc_timer,
|
||||
jiffies + msecs_to_jiffies(MAX_JOIN_TIMEOUT));
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int rtw_select_and_join_from_scanned_queue23a(struct mlme_priv *pmlmepriv)
|
||||
{
|
||||
struct rtw_adapter *adapter;
|
||||
@@ -1804,16 +1823,7 @@ int rtw_select_and_join_from_scanned_queue23a(struct mlme_priv *pmlmepriv)
|
||||
candidate->network.DSConfig);
|
||||
}
|
||||
|
||||
/* check for situation of _FW_LINKED */
|
||||
if (check_fwstate(pmlmepriv, _FW_LINKED)) {
|
||||
DBG_8723A("%s: _FW_LINKED while ask_for_joinbss!\n", __func__);
|
||||
|
||||
rtw_disassoc_cmd23a(adapter, 0, true);
|
||||
rtw_indicate_disconnect23a(adapter);
|
||||
rtw_free_assoc_resources23a(adapter, 0);
|
||||
}
|
||||
set_fwstate(pmlmepriv, _FW_UNDER_LINKING);
|
||||
ret = rtw_joinbss_cmd23a(adapter, candidate);
|
||||
ret = rtw_do_join_network(adapter, candidate);
|
||||
|
||||
exit:
|
||||
return ret;
|
||||
|
||||
@@ -240,6 +240,8 @@ int rtw_init_mlme_priv23a(struct rtw_adapter *adapter);
|
||||
|
||||
void rtw_free_mlme_priv23a(struct mlme_priv *pmlmepriv);
|
||||
|
||||
int rtw_do_join_network(struct rtw_adapter *adapter,
|
||||
struct wlan_network *candidate);
|
||||
int rtw_select_and_join_from_scanned_queue23a(struct mlme_priv *pmlmepriv);
|
||||
int rtw_set_key23a(struct rtw_adapter *adapter,
|
||||
struct security_priv *psecuritypriv, int keyid, u8 set_tx);
|
||||
|
||||
Reference in New Issue
Block a user