[packages/rtl8812au] - rel 16 - fix building with kernel 4.12

baggins baggins at pld-linux.org
Tue Aug 1 11:17:41 CEST 2017


commit c399f9548b3958b3904cb9cc47caab1f2213fb80
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Tue Aug 1 11:17:23 2017 +0200

    - rel 16
    - fix building with kernel 4.12

 linux-4.12.patch | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
 rtl8812au.spec   |  4 ++-
 2 files changed, 96 insertions(+), 7 deletions(-)
---
diff --git a/rtl8812au.spec b/rtl8812au.spec
index bffa047..43cb3df 100644
--- a/rtl8812au.spec
+++ b/rtl8812au.spec
@@ -1,10 +1,12 @@
+# TODO: consider migrating to https://github.com/zebulon2/rtl8812au / https://aur.archlinux.org/packages/rtl8812au-v5-dkms-git/
+#
 # Conditional build:
 %bcond_with	verbose		# verbose build (V=1)
 
 # nothing to be placed to debuginfo package
 %define		_enable_debug_packages	0
 
-%define		rel	15
+%define		rel	16
 %define		snap	20140901
 %define		pname	rtl8812au
 Summary:	Driver for AC1200 (802.11ac) Wireless Dual-Band USB Adapter
diff --git a/linux-4.12.patch b/linux-4.12.patch
index a35c922..df3b9ad 100644
--- a/linux-4.12.patch
+++ b/linux-4.12.patch
@@ -1,14 +1,101 @@
---- rtl8812au_linux-master/os_dep/linux/ioctl_cfg80211.c~	2017-07-31 23:54:36.000000000 +0200
-+++ rtl8812au_linux-master/os_dep/linux/ioctl_cfg80211.c	2017-07-31 23:58:19.371143221 +0200
-@@ -5991,7 +5991,11 @@
+From 1d3af1e8e931f6fee3ceb26cee4c8b214bb8384c Mon Sep 17 00:00:00 2001
+From: Mauro Rossi <issor.oruam at gmail.com>
+Date: Sat, 13 May 2017 22:30:17 +0200
+Subject: [PATCH] rtl8812au: add support for kernel 4.12
+
+/home/utente/nougat-x86_kernel_49/kernel/os_dep/linux/ioctl_cfg80211.c:803:3:
+error: too many arguments to function 'cfg80211_roamed'
+   cfg80211_roamed(padapter->pnetdev
+   ^
+
+/home/utente/nougat-x86_kernel_49/kernel/os_dep/linux/ioctl_cfg80211.c:6580:18:
+error: 'WIPHY_FLAG_SUPPORTS_SCHED_SCAN' undeclared (first use in this function)
+  wiphy->flags |= WIPHY_FLAG_SUPPORTS_SCHED_SCAN;
+                  ^
+---
+ os_dep/linux/ioctl_cfg80211.c | 21 +++++++++++++++++++++
+ 1 file changed, 21 insertions(+)
+
+diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c
+index e040059..1cca0dd 100755
+--- a/os_dep/linux/ioctl_cfg80211.c
++++ b/os_dep/linux/ioctl_cfg80211.c
+@@ -794,16 +794,32 @@ void rtw_cfg80211_indicate_connect(_adapter *padapter)
+ 		struct ieee80211_channel *notify_channel;
+ 		u32 freq;
+ 		u16 channel = cur_network->network.Configuration.DSConfig;
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0))
++		struct cfg80211_roam_info roam_info = {};
++#endif
+ 
+ 		if (channel <= RTW_CH_MAX_2G_CHANNEL)
+ 			freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_2GHZ);
+ 		else
+ 			freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_5GHZ);
+
+ 		notify_channel = ieee80211_get_channel(wiphy, freq);
+ 		#endif
+ 
+ 		DBG_871X(FUNC_ADPT_FMT" call cfg80211_roamed\n", FUNC_ADPT_ARG(padapter));
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0))
++		roam_info.channel = notify_channel;
++		roam_info.bssid = cur_network->network.MacAddress;
++		roam_info.req_ie =
++			pmlmepriv->assoc_req+sizeof(struct rtw_ieee80211_hdr_3addr)+2;
++		roam_info.req_ie_len =
++			pmlmepriv->assoc_req_len-sizeof(struct rtw_ieee80211_hdr_3addr)-2;
++		roam_info.resp_ie =
++			pmlmepriv->assoc_rsp+sizeof(struct rtw_ieee80211_hdr_3addr)+6;
++		roam_info.resp_ie_len =
++			pmlmepriv->assoc_rsp_len-sizeof(struct rtw_ieee80211_hdr_3addr)-6;
++		cfg80211_roamed(padapter->pnetdev, &roam_info, GFP_ATOMIC);
++#else
+ 		cfg80211_roamed(padapter->pnetdev
+ 			#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39) || defined(COMPAT_KERNEL_RELEASE)
+ 			, notify_channel
+@@ -810,6 +826,7 @@ void rtw_cfg80211_indicate_connect(_adapter *padapter)
+ 			, pmlmepriv->assoc_rsp+sizeof(struct rtw_ieee80211_hdr_3addr)+6
+ 			, pmlmepriv->assoc_rsp_len-sizeof(struct rtw_ieee80211_hdr_3addr)-6
+ 			, GFP_ATOMIC);
++#endif
+ 	}
+ 	else
+ 	{
+@@ -6577,7 +6594,11 @@ static void rtw_cfg80211_preinit_wiphy(_adapter *adapter, struct wiphy *wiphy)
  #endif
  
  #if defined(CONFIG_PM) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 0, 0))
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
-+	wiphy->max_sched_scan_reqs = 1;
-+#else
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,12,0))
  	wiphy->flags |= WIPHY_FLAG_SUPPORTS_SCHED_SCAN;
++#else // kernel >= 4.12
++	wiphy->max_sched_scan_reqs = 1;
 +#endif
  #ifdef CONFIG_PNO_SUPPORT
  	wiphy->max_sched_scan_ssids = MAX_PNO_LIST_COUNT;
  #endif
+--- rtl8812au_linux-master/os_dep/linux/ioctl_cfg80211.c~	2017-08-01 11:09:27.000000000 +0200
++++ rtl8812au_linux-master/os_dep/linux/ioctl_cfg80211.c	2017-08-01 11:11:56.007409963 +0200
+@@ -1824,7 +1824,11 @@
+ */
+ static int cfg80211_rtw_change_iface(struct wiphy *wiphy,
+ 				     struct net_device *ndev,
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,12,0))
+ 				     enum nl80211_iftype type, u32 *flags,
++#else
++				     enum nl80211_iftype type,
++#endif
+ 				     struct vif_params *params)
+ {
+ 	enum nl80211_iftype old_type;
+@@ -3882,7 +3882,11 @@
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0))
+ 		unsigned char name_assign_type,
+ #endif
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,12,0))
+ 		enum nl80211_iftype type, u32 *flags, struct vif_params *params)
++#else
++		enum nl80211_iftype type, struct vif_params *params)
++#endif
+ {
+ 	int ret = 0;
+ 	struct net_device* ndev = NULL;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/rtl8812au.git/commitdiff/c399f9548b3958b3904cb9cc47caab1f2213fb80



More information about the pld-cvs-commit mailing list