93 lines
4.6 KiB
Diff
93 lines
4.6 KiB
Diff
--- a/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_compat.h
|
|
+++ b/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_compat.h
|
|
@@ -52,7 +52,7 @@
|
|
#endif
|
|
|
|
|
|
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 60)
|
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 60) || defined(BUILD_OPENWRT)
|
|
#define IEEE80211_MAX_AMPDU_BUF IEEE80211_MAX_AMPDU_BUF_HE
|
|
#define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB
|
|
#define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB
|
|
--- a/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_main.c
|
|
+++ b/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_main.c
|
|
@@ -2998,7 +2998,7 @@ static struct rwnx_vif *rwnx_interface_a
|
|
} else
|
|
vif->use_4addr = false;
|
|
|
|
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 11, 0)
|
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 11, 0) || defined(BUILD_OPENWRT)
|
|
if (cfg80211_register_netdevice(ndev))
|
|
#else
|
|
if (register_netdevice(ndev))
|
|
@@ -3271,7 +3271,7 @@ static int rwnx_cfg80211_del_iface(struc
|
|
|
|
if (dev->reg_state == NETREG_REGISTERED) {
|
|
/* Will call rwnx_close if interface is UP */
|
|
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 11, 0)
|
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 11, 0) || defined(BUILD_OPENWRT)
|
|
cfg80211_unregister_netdevice(dev);
|
|
#else
|
|
unregister_netdevice(dev);
|
|
--- 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
|
|
@@ -1312,7 +1312,7 @@ static void rwnx_set_he_capa(struct rwnx
|
|
if (rwnx_hw->mod_params->stbc_on)
|
|
he_cap->he_cap_elem.phy_cap_info[2] |= IEEE80211_HE_PHY_CAP2_STBC_RX_UNDER_80MHZ;
|
|
|
|
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 13, 0)
|
|
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 13, 0) || defined(BUILD_OPENWRT)
|
|
he_cap->he_cap_elem.phy_cap_info[3] |= IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_16_QAM |
|
|
IEEE80211_HE_PHY_CAP3_DCM_MAX_RX_NSS_1 |
|
|
IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU;
|
|
@@ -1330,7 +1330,7 @@ static void rwnx_set_he_capa(struct rwnx
|
|
}
|
|
he_cap->he_cap_elem.phy_cap_info[5] |= IEEE80211_HE_PHY_CAP5_NG16_SU_FEEDBACK |
|
|
IEEE80211_HE_PHY_CAP5_NG16_MU_FEEDBACK;
|
|
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 13, 0)
|
|
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 13, 0) || defined(BUILD_OPENWRT)
|
|
he_cap->he_cap_elem.phy_cap_info[6] |= IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_42_SU |
|
|
IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_75_MU |
|
|
IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB |
|
|
@@ -1429,7 +1429,7 @@ static void rwnx_set_he_capa(struct rwnx
|
|
#endif
|
|
if (rwnx_hw->mod_params->stbc_on)
|
|
he_cap->he_cap_elem.phy_cap_info[2] |= IEEE80211_HE_PHY_CAP2_STBC_RX_UNDER_80MHZ;
|
|
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 13, 0)
|
|
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 13, 0) || defined(BUILD_OPENWRT)
|
|
he_cap->he_cap_elem.phy_cap_info[3] |= IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_16_QAM |
|
|
IEEE80211_HE_PHY_CAP3_DCM_MAX_RX_NSS_1 |
|
|
IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU;
|
|
@@ -1446,7 +1446,7 @@ static void rwnx_set_he_capa(struct rwnx
|
|
}
|
|
he_cap->he_cap_elem.phy_cap_info[5] |= IEEE80211_HE_PHY_CAP5_NG16_SU_FEEDBACK |
|
|
IEEE80211_HE_PHY_CAP5_NG16_MU_FEEDBACK;
|
|
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 13, 0)
|
|
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 13, 0) || defined(BUILD_OPENWRT)
|
|
he_cap->he_cap_elem.phy_cap_info[6] |= IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_42_SU |
|
|
IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_75_MU |
|
|
IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB |
|
|
@@ -1732,7 +1732,7 @@ void rwnx_custregd(struct rwnx_hw *rwnx_
|
|
wiphy->regulatory_flags |= REGULATORY_WIPHY_SELF_MANAGED;
|
|
|
|
rtnl_lock();
|
|
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 12, 0)
|
|
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 12, 0) || defined(BUILD_OPENWRT)
|
|
if (regulatory_set_wiphy_regd_sync(wiphy, getRegdomainFromRwnxDB(wiphy, default_ccode))){
|
|
wiphy_err(wiphy, "Failed to set custom regdomain\n");
|
|
}
|
|
--- a/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_radar.c
|
|
+++ b/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_radar.c
|
|
@@ -1282,7 +1282,11 @@ static void rwnx_radar_detected(struct r
|
|
chan_def = rwnx_hw->chanctx_table[rwnx_hw->cur_chanctx].chan_def;
|
|
|
|
rwnx_radar_cancel_cac(&rwnx_hw->radar);
|
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0) || defined(BUILD_OPENWRT)
|
|
+ __cfg80211_radar_event(rwnx_hw->wiphy, &chan_def, true, GFP_KERNEL);
|
|
+#else
|
|
cfg80211_radar_event(rwnx_hw->wiphy, &chan_def, GFP_KERNEL);
|
|
+#endif
|
|
|
|
#endif /* CONFIG_RWNX_FULLMAC */
|
|
}
|