summaryrefslogtreecommitdiff
authorRongjun Chen <rongjun.chen@amlogic.com>2017-12-15 08:03:43 (GMT)
committer Rongjun Chen <rongjun.chen@amlogic.com>2017-12-15 08:07:17 (GMT)
commitcc79735f1fbbada15f945e636cba98b1982675c5 (patch)
tree02b6e35da5f73c4ed3b013e30221079249b507e5
parent538ba5888b5eb14e138a9ecb50de4ea2cbebc73e (diff)
download8189ftv-o-amlogic.zip
8189ftv-o-amlogic.tar.gz
8189ftv-o-amlogic.tar.bz2
wifi: update rtl8189ftv driver to support kernel4.9
Change-Id: I2f54fc59db75e2c25c1ae71ddfa84aef578848da Signed-off-by: Rongjun Chen <rongjun.chen@amlogic.com>
Diffstat
-rwxr-xr-xrtl8189FS/include/drv_types.h6
-rwxr-xr-xrtl8189FS/os_dep/linux/ioctl_cfg80211.c23
2 files changed, 27 insertions, 2 deletions
diff --git a/rtl8189FS/include/drv_types.h b/rtl8189FS/include/drv_types.h
index c6f3614..27907e7 100755
--- a/rtl8189FS/include/drv_types.h
+++ b/rtl8189FS/include/drv_types.h
@@ -84,6 +84,12 @@ typedef struct _ADAPTER _adapter, ADAPTER,*PADAPTER;
#include <xmit_osdep.h>
#include <rtw_recv.h>
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0))
+#define ieee80211_band nl80211_band
+#define IEEE80211_BAND_2GHZ NL80211_BAND_2GHZ
+#define IEEE80211_BAND_5GHZ NL80211_BAND_5GHZ
+#define IEEE80211_NUM_BANDS NUM_NL80211_BANDS
+#endif
#ifdef CONFIG_BEAMFORMING
#include <rtw_beamforming.h>
#endif
diff --git a/rtl8189FS/os_dep/linux/ioctl_cfg80211.c b/rtl8189FS/os_dep/linux/ioctl_cfg80211.c
index 0ad9242..eaae714 100755
--- a/rtl8189FS/os_dep/linux/ioctl_cfg80211.c
+++ b/rtl8189FS/os_dep/linux/ioctl_cfg80211.c
@@ -891,8 +891,14 @@ void rtw_cfg80211_indicate_disconnect(_adapter *padapter)
#else
if (check_fwstate(&padapter->mlmepriv, _FW_LINKED)) {
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0))
+ u8 locally_generated = 1;
+ DBG_871X(FUNC_ADPT_FMT" call cfg80211_disconnected\n", FUNC_ADPT_ARG(padapter));
+ cfg80211_disconnected(padapter->pnetdev, 0, NULL, 0, locally_generated, GFP_ATOMIC);
+#else
DBG_871X(FUNC_ADPT_FMT" call cfg80211_disconnected\n", FUNC_ADPT_ARG(padapter));
cfg80211_disconnected(padapter->pnetdev, 0, NULL, 0, GFP_ATOMIC);
+#endif
} else {
DBG_871X(FUNC_ADPT_FMT" call cfg80211_connect_result\n", FUNC_ADPT_ARG(padapter));
cfg80211_connect_result(padapter->pnetdev, NULL, NULL, 0, NULL, 0,
@@ -2034,7 +2040,9 @@ void rtw_cfg80211_indicate_scan_done(_adapter *adapter, bool aborted)
{
struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(adapter);
_irqL irqL;
-
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0))
+ struct cfg80211_scan_info info;
+#endif
_enter_critical_bh(&pwdev_priv->scan_req_lock, &irqL);
if (pwdev_priv->scan_request != NULL) {
#ifdef CONFIG_DEBUG_CFG80211
@@ -2048,7 +2056,12 @@ void rtw_cfg80211_indicate_scan_done(_adapter *adapter, bool aborted)
}
else
{
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0))
+ info.aborted = aborted;
+ cfg80211_scan_done(pwdev_priv->scan_request, &info);
+#else
cfg80211_scan_done(pwdev_priv->scan_request, aborted);
+#endif
}
pwdev_priv->scan_request = NULL;
@@ -6865,7 +6878,13 @@ void rtw_wdev_unregister(struct wireless_dev *wdev)
rtw_cfg80211_indicate_scan_done(adapter, _TRUE);
- #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)) || defined(COMPAT_KERNEL_RELEASE)
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0))
+ if (wdev->current_bss) {
+ u8 locally_generated = 1;
+ DBG_871X(FUNC_ADPT_FMT" clear current_bss by cfg80211_disconnected\n", FUNC_ADPT_ARG(adapter));
+ cfg80211_disconnected(adapter->pnetdev, 0, NULL, 0, locally_generated, GFP_ATOMIC);
+ }
+ #elif ((LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)) && (LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0))) || defined(COMPAT_KERNEL_RELEASE)
if (wdev->current_bss) {
DBG_871X(FUNC_ADPT_FMT" clear current_bss by cfg80211_disconnected\n", FUNC_ADPT_ARG(adapter));
cfg80211_disconnected(adapter->pnetdev, 0, NULL, 0, GFP_ATOMIC);