1
0
mirror of https://github.com/abperiasamy/rtl8812AU_8821AU_linux.git synced 2025-08-16 08:34:15 +02:00

Merge pull request #2 from wuzzeb/master

Update cfg80211 support to work with kernel up to 3.13.
This commit is contained in:
Anand Babu (AB) Periasamy 2014-02-19 14:01:17 -08:00
commit e4773ef0d9
3 changed files with 29 additions and 17 deletions

View File

@ -40,7 +40,7 @@
#define PLATFORM_LINUX 1
//#define CONFIG_IOCTL_CFG80211 1
#define CONFIG_IOCTL_CFG80211 1
#ifdef CONFIG_PLATFORM_ARM_SUNxI
#ifndef CONFIG_IOCTL_CFG80211
@ -49,8 +49,8 @@
#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 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

View File

@ -104,11 +104,14 @@ int rtw_cfg80211_set_mgnt_wpsp2pie(struct net_device *net, char *buf, int len, i
bool rtw_cfg80211_pwr_mgmt(_adapter *adapter);
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)) && !defined(COMPAT_KERNEL_RELEASE)
#define rtw_cfg80211_rx_mgmt(adapter, freq, sig_dbm, buf, len, gfp) cfg80211_rx_mgmt((adapter)->pnetdev, freq, buf, len, gfp)
#define rtw_cfg80211_rx_mgmt(adapter, freq, sig_dbm, buf, len, gfp) cfg80211_rx_mgmt((adapter)->pnetdev, freq, buf, len, gfp)
#elif (LINUX_VERSION_CODE < KERNEL_VERSION(3,6,0))
#define rtw_cfg80211_rx_mgmt(adapter, freq, sig_dbm, buf, len, gfp) cfg80211_rx_mgmt((adapter)->pnetdev, freq, sig_dbm, buf, len, gfp)
#define rtw_cfg80211_rx_mgmt(adapter, freq, sig_dbm, buf, len, gfp) cfg80211_rx_mgmt((adapter)->pnetdev, freq, sig_dbm, buf, len, gfp)
#elif (LINUX_VERSION_CODE < KERNEL_VERSION(3,12,0))
#define rtw_cfg80211_rx_mgmt(adapter, freq, sig_dbm, buf, len, gfp) cfg80211_rx_mgmt((adapter)->rtw_wdev, freq, sig_dbm, buf, len, gfp)
#else
#define rtw_cfg80211_rx_mgmt(adapter, freq, sig_dbm, buf, len, gfp) cfg80211_rx_mgmt((adapter)->rtw_wdev, freq, sig_dbm, buf, len, gfp)
// 3.12 added a flags argument which is just set to zero
#define rtw_cfg80211_rx_mgmt(adapter, freq, sig_dbm, buf, len, gfp) cfg80211_rx_mgmt((adapter)->rtw_wdev, freq, sig_dbm, buf, len, 0, gfp)
#endif
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)) && !defined(COMPAT_KERNEL_RELEASE)

View File

@ -461,7 +461,12 @@ static int rtw_cfg80211_inform_bss(_adapter *padapter, struct wlan_network *pnet
}
*/
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,9,0)
cfg80211_put_bss(bss);
#else
//See 5b112d3d098c97b867cc580f590395cd1e72f18c
cfg80211_put_bss(wiphy, bss);
#endif
exit:
return ret;
@ -535,14 +540,14 @@ void rtw_cfg80211_indicate_connect(_adapter *padapter)
else
#endif
{
DBG_8192C("pwdev->sme_state(b)=%d\n", pwdev->sme_state);
//DBG_8192C("pwdev->sme_state(b)=%d\n", pwdev->sme_state);
cfg80211_connect_result(padapter->pnetdev, cur_network->network.MacAddress
, pmlmepriv->assoc_req+sizeof(struct rtw_ieee80211_hdr_3addr)+2
, pmlmepriv->assoc_req_len-sizeof(struct rtw_ieee80211_hdr_3addr)-2
, pmlmepriv->assoc_rsp+sizeof(struct rtw_ieee80211_hdr_3addr)+6
, pmlmepriv->assoc_rsp_len-sizeof(struct rtw_ieee80211_hdr_3addr)-6
, WLAN_STATUS_SUCCESS, GFP_ATOMIC);
DBG_8192C("pwdev->sme_state(a)=%d\n", pwdev->sme_state);
//DBG_8192C("pwdev->sme_state(a)=%d\n", pwdev->sme_state);
}
}
@ -585,17 +590,21 @@ void rtw_cfg80211_indicate_disconnect(_adapter *padapter)
#endif //CONFIG_P2P
if (!padapter->mlmepriv.not_indic_disco) {
DBG_8192C("pwdev->sme_state(b)=%d\n", pwdev->sme_state);
// see ceca7b7121795ef81bd598a240d53a925662d0c1, which removed sme_state variable in 3.11
//DBG_8192C("pwdev->sme_state(b)=%d\n", pwdev->sme_state);
if(pwdev->sme_state==CFG80211_SME_CONNECTING)
cfg80211_connect_result(padapter->pnetdev, NULL, NULL, 0, NULL, 0,
WLAN_STATUS_UNSPECIFIED_FAILURE, GFP_ATOMIC/*GFP_KERNEL*/);
else if(pwdev->sme_state==CFG80211_SME_CONNECTED)
cfg80211_disconnected(padapter->pnetdev, 0, NULL, 0, GFP_ATOMIC);
//else
//DBG_8192C("pwdev->sme_state=%d\n", pwdev->sme_state);
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)
if(pwdev->sme_state==CFG80211_SME_CONNECTING)^M
cfg80211_connect_result(padapter->pnetdev, NULL, NULL, 0, NULL, 0, ^M
WLAN_STATUS_UNSPECIFIED_FAILURE, GFP_ATOMIC/*GFP_KERNEL*/);^M
else if(pwdev->sme_state==CFG80211_SME_CONNECTED)^M
cfg80211_disconnected(padapter->pnetdev, 0, NULL, 0, GFP_ATOMIC);^M
#else
cfg80211_disconnected(padapter->pnetdev, 0, NULL, 0, GFP_ATOMIC);
#endif
DBG_8192C("pwdev->sme_state(a)=%d\n", pwdev->sme_state);
//DBG_8192C("pwdev->sme_state(a)=%d\n", pwdev->sme_state);
}
}