aic8800: fixes build with mac80211 6.1

This commit is contained in:
aiamadeus 2025-05-15 20:15:30 +08:00
parent 45a37319a0
commit 8439450f83
5 changed files with 40 additions and 18 deletions

View File

@ -31,12 +31,11 @@ define KernelPackage/aic8800s
SUBMENU:=Wireless Drivers
TITLE:=AIC8800 SDIO wireless support
DEPENDS:=+kmod-mac80211 +kmod-mmc \
+@DRIVER_11N_SUPPORT +@DRIVER_11AC_SUPPORT
+@DRIVER_11AC_SUPPORT +@DRIVER_11AX_SUPPORT
FILES:= \
$(PKG_BUILD_DIR)/$(MAKE_PATH)/aic8800_bsp/aic8800_bsp.ko \
$(PKG_BUILD_DIR)/$(MAKE_PATH)/aic8800_fdrv/aic8800_fdrv.ko
AUTOLOAD:=$(call AutoProbe,aic8800_bsp aic8800_fdrv)
MODPARAMS.aic8800_fdrv:=he_on=n
VARIANT:=sdio
endef
@ -44,12 +43,11 @@ define KernelPackage/aic8800u
SUBMENU:=Wireless Drivers
TITLE:=AIC8800 USB wireless support
DEPENDS:=+kmod-mac80211 +kmod-usb-core @USB_SUPPORT \
+@DRIVER_11N_SUPPORT +@DRIVER_11AC_SUPPORT
+@DRIVER_11AC_SUPPORT +@DRIVER_11AX_SUPPORT
FILES:= \
$(PKG_BUILD_DIR)/$(MAKE_PATH)/aic_load_fw/aic_load_fw.ko \
$(PKG_BUILD_DIR)/$(MAKE_PATH)/aic8800_fdrv/aic8800_fdrv_usb.ko
AUTOLOAD:=$(call AutoProbe,aic_load_fw aic8800_fdrv_usb)
MODPARAMS.aic8800_fdrv_usb:=he_on=n
$(PKG_BUILD_DIR)/$(MAKE_PATH)/aic8800_fdrv/aic8800_usb.ko
AUTOLOAD:=$(call AutoProbe,aic_load_fw aic8800_usb)
VARIANT:=usb
endef

View File

@ -5,7 +5,7 @@
rwnx_txq_vif_stop(vif, RWNX_TXQ_STOP_CHAN, rwnx_hw);
spin_unlock_bh(&rwnx_hw->cb_lock);
-#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION3)
+#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION3) && !defined(BUILD_OPENWRT)
+#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION3) || defined(BUILD_OPENWRT)
cfg80211_ch_switch_notify(vif->ndev, &csa->chandef, 0, 0);
#elif (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION)
cfg80211_ch_switch_notify(vif->ndev, &csa->chandef, 0);
@ -14,7 +14,19 @@
} else {
INIT_WORK(&csa->work, rwnx_csa_finish);
-#if LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION4
+#if LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION4 && !defined(BUILD_OPENWRT)
+#if LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION4 || defined(BUILD_OPENWRT)
cfg80211_ch_switch_started_notify(dev, &csa->chandef, 0, params->count, false, 0);
#elif LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION2
cfg80211_ch_switch_started_notify(dev, &csa->chandef, 0, params->count, false);
--- a/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_mod_params.c
+++ b/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_mod_params.c
@@ -1728,7 +1728,9 @@ void rwnx_custregd(struct rwnx_hw *rwnx_
if (!rwnx_hw->mod_params->custregd)
return;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 5, 0) && !defined(BUILD_OPENWRT)
wiphy->regulatory_flags |= REGULATORY_IGNORE_STALE_KICKOFF;
+#endif
wiphy->regulatory_flags |= REGULATORY_WIPHY_SELF_MANAGED;
rtnl_lock();

View File

@ -30,7 +30,7 @@
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0)
case FORMATMOD_HE_MU:
sinfo->rxrate.he_ru_alloc = rx_vect1->he.ru_size;
+ fallthrough;
+ fallthrough;
case FORMATMOD_HE_SU:
case FORMATMOD_HE_ER:
sinfo->rxrate.flags = RATE_INFO_FLAGS_HE_MCS;
@ -64,19 +64,19 @@
- WARN_ON_ONCE(1);
case 0:
return AC_BE;
+ break;
+ break;
case 1:
return AC_BK;
+ break;
+ break;
case 2:
return AC_VI;
+ break;
+ break;
case 3:
return AC_VO;
+ break;
+ default:
+ break;
+ default:
+ WARN_ON_ONCE(1);
+ break;
+ break;
}
+
+ return 0;

View File

@ -5,7 +5,7 @@
rwnx_txq_vif_stop(vif, RWNX_TXQ_STOP_CHAN, rwnx_hw);
spin_unlock_bh(&rwnx_hw->cb_lock);
-#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION3)
+#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION3) && !defined(BUILD_OPENWRT)
+#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION3) || defined(BUILD_OPENWRT)
cfg80211_ch_switch_notify(vif->ndev, &csa->chandef, 0, 0);
#elif (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION)
cfg80211_ch_switch_notify(vif->ndev, &csa->chandef, 0);
@ -14,10 +14,22 @@
} else {
INIT_WORK(&csa->work, rwnx_csa_finish);
-#if LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION4
+#if LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION4 && !defined(BUILD_OPENWRT)
+#if LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION4 || defined(BUILD_OPENWRT)
cfg80211_ch_switch_started_notify(dev, &csa->chandef, 0, params->count, false, 0);
#elif LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION2
cfg80211_ch_switch_started_notify(dev, &csa->chandef, 0, params->count, false);
--- a/src/USB/driver_fw/drivers/aic8800/aic8800_fdrv/rwnx_mod_params.c
+++ b/src/USB/driver_fw/drivers/aic8800/aic8800_fdrv/rwnx_mod_params.c
@@ -1752,7 +1752,9 @@ void rwnx_custregd(struct rwnx_hw *rwnx_
// registration (in rwnx_set_wiphy_params()), so nothing has to be done here
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 5, 0) && !defined(BUILD_OPENWRT)
wiphy->regulatory_flags |= REGULATORY_IGNORE_STALE_KICKOFF;
+#endif
wiphy->regulatory_flags |= REGULATORY_WIPHY_SELF_MANAGED;
if (!rwnx_hw->mod_params->custregd)
--- a/src/USB/driver_fw/drivers/aic8800/aic8800_fdrv/rwnx_rx.c
+++ b/src/USB/driver_fw/drivers/aic8800/aic8800_fdrv/rwnx_rx.c
@@ -464,8 +464,13 @@ static bool rwnx_rx_data_skb(struct rwnx

View File

@ -5,7 +5,7 @@
CONFIG_AIC8800_WLAN_SUPPORT = m
-MODULE_NAME = aic8800_fdrv
+MODULE_NAME = aic8800_fdrv_usb
+MODULE_NAME = aic8800_usb
CONFIG_COUNTRY_CODE = "00"
# Support of bootrom start