rtl8812au-openhd-dkms-git: fix build on LTS kernels and on >=6.8.0
This commit is contained in:
parent
ae643e7454
commit
3ff490786d
@ -1,7 +1,7 @@
|
|||||||
pkgbase = rtl8812au-openhd-dkms-git
|
pkgbase = rtl8812au-openhd-dkms-git
|
||||||
pkgdesc = Realtek RTL88xxAU WiFi USB driver (with OpenHD patches)
|
pkgdesc = Realtek RTL88xxAU WiFi USB driver (with OpenHD patches)
|
||||||
pkgver = 5.2.20.2.r849.gf21bbe9
|
pkgver = 5.2.20.2.r855.g28580eb
|
||||||
pkgrel = 3
|
pkgrel = 4
|
||||||
url = https://github.com/OpenHD/rtl8812au
|
url = https://github.com/OpenHD/rtl8812au
|
||||||
arch = any
|
arch = any
|
||||||
license = GPL2
|
license = GPL2
|
||||||
@ -11,6 +11,6 @@ pkgbase = rtl8812au-openhd-dkms-git
|
|||||||
source = git+https://github.com/OpenHD/rtl8812au.git
|
source = git+https://github.com/OpenHD/rtl8812au.git
|
||||||
source = 0001-Update-beacon-change-signature-to-fix-build-on-recen.patch
|
source = 0001-Update-beacon-change-signature-to-fix-build-on-recen.patch
|
||||||
sha256sums = SKIP
|
sha256sums = SKIP
|
||||||
sha256sums = b26147fda4d78d8cc8f7d5f5d331e43a1ffeecb5596e703e3da6a7461a0fd7b2
|
sha256sums = 040518c8e58cadec1cdafa147d916be25c4c66eb0508726ef6448896e5d4a917
|
||||||
|
|
||||||
pkgname = rtl8812au-openhd-dkms-git
|
pkgname = rtl8812au-openhd-dkms-git
|
||||||
|
@ -1,49 +1,62 @@
|
|||||||
From 08165cf5c1cb5186b4a1e04fe29eaf3ab6cf4c05 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Rihards Skuja <rihards@skuja.eu>
|
|
||||||
Date: Thu, 29 Feb 2024 12:23:32 +0200
|
|
||||||
Subject: [PATCH] Update beacon change signature to fix build on recent kernels
|
|
||||||
|
|
||||||
---
|
|
||||||
os_dep/linux/ioctl_cfg80211.c | 16 ++++++++--------
|
|
||||||
1 file changed, 8 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c
|
diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c
|
||||||
index c26bb07..facfd33 100644
|
index c26bb07..d2d50c9 100644
|
||||||
--- a/os_dep/linux/ioctl_cfg80211.c
|
--- a/os_dep/linux/ioctl_cfg80211.c
|
||||||
+++ b/os_dep/linux/ioctl_cfg80211.c
|
+++ b/os_dep/linux/ioctl_cfg80211.c
|
||||||
@@ -4600,24 +4600,24 @@ static int cfg80211_rtw_start_ap(struct wiphy *wiphy, struct net_device *ndev,
|
@@ -4600,24 +4600,36 @@ static int cfg80211_rtw_start_ap(struct wiphy *wiphy, struct net_device *ndev,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
-static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *ndev, struct cfg80211_beacon_data *info)
|
-static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *ndev, struct cfg80211_beacon_data *info)
|
||||||
+static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *ndev, struct cfg80211_ap_update *info)
|
+static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *ndev,
|
||||||
|
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 7, 0))
|
||||||
|
+ struct cfg80211_ap_update *info
|
||||||
|
+#else
|
||||||
|
+ struct cfg80211_beacon_data *info
|
||||||
|
+#endif
|
||||||
|
+)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
_adapter *adapter = (_adapter *)rtw_netdev_priv(ndev);
|
_adapter *adapter = (_adapter *)rtw_netdev_priv(ndev);
|
||||||
|
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 7, 0))
|
||||||
|
+ struct cfg80211_beacon_data *beacon_info = &info->beacon;
|
||||||
|
+#else
|
||||||
|
+ struct cfg80211_beacon_data *beacon_info = info;
|
||||||
|
+#endif
|
||||||
|
|
||||||
RTW_INFO(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev));
|
RTW_INFO(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev));
|
||||||
|
|
||||||
- ret = rtw_add_beacon(adapter, info->head, info->head_len, info->tail, info->tail_len);
|
- ret = rtw_add_beacon(adapter, info->head, info->head_len, info->tail, info->tail_len);
|
||||||
+ ret = rtw_add_beacon(adapter, info->beacon.head, info->beacon.head_len, info->beacon.tail, info->beacon.tail_len);
|
+ ret = rtw_add_beacon(adapter, beacon_info->head, beacon_info->head_len,
|
||||||
|
+ beacon_info->tail, beacon_info->tail_len);
|
||||||
|
|
||||||
// In cases like WPS, the proberesp and assocresp IEs vary from the beacon, and need to be explicitly set
|
// In cases like WPS, the proberesp and assocresp IEs vary from the beacon, and need to be explicitly set
|
||||||
if(ret == 0) {
|
if(ret == 0) {
|
||||||
- if(info->proberesp_ies && info->proberesp_ies_len > 0) {
|
- if(info->proberesp_ies && info->proberesp_ies_len > 0) {
|
||||||
- rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)info->proberesp_ies,
|
- rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)info->proberesp_ies,
|
||||||
- info->proberesp_ies_len, 0x2/*PROBE_RESP*/);
|
- info->proberesp_ies_len, 0x2/*PROBE_RESP*/);
|
||||||
+ if(info->beacon.proberesp_ies && info->beacon.proberesp_ies_len > 0) {
|
+ if(beacon_info->proberesp_ies && beacon_info->proberesp_ies_len > 0) {
|
||||||
+ rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)info->beacon.proberesp_ies,
|
+ rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)beacon_info->proberesp_ies,
|
||||||
+ info->beacon.proberesp_ies_len, 0x2/*PROBE_RESP*/);
|
+ beacon_info->proberesp_ies_len, 0x2/*PROBE_RESP*/);
|
||||||
}
|
}
|
||||||
- if(info->assocresp_ies && info->assocresp_ies_len > 0) {
|
- if(info->assocresp_ies && info->assocresp_ies_len > 0) {
|
||||||
- rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)info->assocresp_ies,
|
- rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)info->assocresp_ies,
|
||||||
- info->assocresp_ies_len, 0x4/*ASSOC_RESP*/);
|
- info->assocresp_ies_len, 0x4/*ASSOC_RESP*/);
|
||||||
+ if(info->beacon.assocresp_ies && info->beacon.assocresp_ies_len > 0) {
|
+ if(beacon_info->assocresp_ies && beacon_info->assocresp_ies_len > 0) {
|
||||||
+ rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)info->beacon.assocresp_ies,
|
+ rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)beacon_info->assocresp_ies,
|
||||||
+ info->beacon.assocresp_ies_len, 0x4/*ASSOC_RESP*/);
|
+ beacon_info->assocresp_ies_len, 0x4/*ASSOC_RESP*/);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
--
|
diff --git a/os_dep/linux/usb_intf.c b/os_dep/linux/usb_intf.c
|
||||||
2.44.0
|
index 95dc47f..5a12ae6 100644
|
||||||
|
--- a/os_dep/linux/usb_intf.c
|
||||||
|
+++ b/os_dep/linux/usb_intf.c
|
||||||
|
@@ -329,7 +329,7 @@ struct rtw_usb_drv usb_drv = {
|
||||||
|
.usbdrv.supports_autosuspend = 1,
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19))
|
||||||
|
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) && LINUX_VERSION_CODE < KERNEL_VERSION(6, 8, 0))
|
||||||
|
.usbdrv.drvwrap.driver.shutdown = rtw_dev_shutdown,
|
||||||
|
#else
|
||||||
|
.usbdrv.driver.shutdown = rtw_dev_shutdown,
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
pkgname=rtl8812au-openhd-dkms-git
|
pkgname=rtl8812au-openhd-dkms-git
|
||||||
_modname=88XXau_ohd
|
_modname=88XXau_ohd
|
||||||
pkgver=5.2.20.2.r849.gf21bbe9
|
pkgver=5.2.20.2.r855.g28580eb
|
||||||
_pkgver=5.2.20.2
|
_pkgver=5.2.20.2
|
||||||
pkgrel=3
|
pkgrel=4
|
||||||
pkgdesc='Realtek RTL88xxAU WiFi USB driver (with OpenHD patches)'
|
pkgdesc='Realtek RTL88xxAU WiFi USB driver (with OpenHD patches)'
|
||||||
arch=(any)
|
arch=(any)
|
||||||
url='https://github.com/OpenHD/rtl8812au'
|
url='https://github.com/OpenHD/rtl8812au'
|
||||||
@ -12,7 +12,8 @@ license=(GPL2)
|
|||||||
depends=('dkms' 'bc')
|
depends=('dkms' 'bc')
|
||||||
makedepends=('git')
|
makedepends=('git')
|
||||||
source=('git+https://github.com/OpenHD/rtl8812au.git' '0001-Update-beacon-change-signature-to-fix-build-on-recen.patch')
|
source=('git+https://github.com/OpenHD/rtl8812au.git' '0001-Update-beacon-change-signature-to-fix-build-on-recen.patch')
|
||||||
sha256sums=('SKIP' 'b26147fda4d78d8cc8f7d5f5d331e43a1ffeecb5596e703e3da6a7461a0fd7b2')
|
sha256sums=('SKIP'
|
||||||
|
'040518c8e58cadec1cdafa147d916be25c4c66eb0508726ef6448896e5d4a917')
|
||||||
|
|
||||||
pkgver() {
|
pkgver() {
|
||||||
cd "${srcdir}/rtl8812au"
|
cd "${srcdir}/rtl8812au"
|
||||||
|
Loading…
Reference in New Issue
Block a user