diff --git a/debian/patches/fix-linux-6.9-build.patch b/debian/patches/fix-linux-6.9-build.patch new file mode 100644 index 0000000..c865a85 --- /dev/null +++ b/debian/patches/fix-linux-6.9-build.patch @@ -0,0 +1,99 @@ +diff --git a/src/PCIE/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_main.c b/src/PCIE/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_main.c +index 7c5d9e0..ae7ef84 100644 +--- a/src/PCIE/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_main.c ++++ b/src/PCIE/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_main.c +@@ -785,7 +785,11 @@ static void rwnx_csa_finish(struct work_struct *ws) + } else + rwnx_txq_vif_stop(vif, RWNX_TXQ_STOP_CHAN, rwnx_hw); + spin_unlock_bh(&rwnx_hw->cb_lock); +-#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION) ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 9, 0)) ++ cfg80211_ch_switch_notify(vif->ndev, &csa->chandef, 0); ++#elif (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION3) ++ 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); + #else + cfg80211_ch_switch_notify(vif->ndev, &csa->chandef); +@@ -5771,13 +5775,16 @@ int rwnx_cfg80211_channel_switch(struct wiphy *wiphy, + rwnx_del_csa(vif); + } else { + INIT_WORK(&csa->work, rwnx_csa_finish); +- +-#if LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 9, 0)) ++ cfg80211_ch_switch_started_notify(dev, &csa->chandef, 0, params->count, false); ++#elif LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION4 ++ 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); + #elif LINUX_VERSION_CODE >= KERNEL_VERSION(5, 11, 0) + cfg80211_ch_switch_started_notify(dev, &csa->chandef, params->count, params->block_tx); + #else +- cfg80211_ch_switch_started_notify(dev, &csa->chandef, params->count); ++ cfg80211_ch_switch_started_notify(dev, &csa->chandef, params->count); + #endif + } + +diff --git a/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_main.c b/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_main.c +index 86567f9..d90010b 100644 +--- a/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_main.c ++++ b/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_main.c +@@ -781,7 +781,9 @@ static void rwnx_csa_finish(struct work_struct *ws) + } else + 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 >= KERNEL_VERSION(6, 9, 0)) ++ cfg80211_ch_switch_notify(vif->ndev, &csa->chandef, 0); ++#elif (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION3) + 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); +@@ -5560,7 +5562,9 @@ int rwnx_cfg80211_channel_switch (struct wiphy *wiphy, + goto end; + } else { + INIT_WORK(&csa->work, rwnx_csa_finish); +-#if LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION4 ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 9, 0)) ++ cfg80211_ch_switch_started_notify(dev, &csa->chandef, 0, params->count, false); ++#elif LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION4 + 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); +diff --git a/src/USB/driver_fw/drivers/aic8800/aic8800_fdrv/rwnx_main.c b/src/USB/driver_fw/drivers/aic8800/aic8800_fdrv/rwnx_main.c +index 2c337d8..c9f464d 100644 +--- a/src/USB/driver_fw/drivers/aic8800/aic8800_fdrv/rwnx_main.c ++++ b/src/USB/driver_fw/drivers/aic8800/aic8800_fdrv/rwnx_main.c +@@ -1072,7 +1072,9 @@ static void rwnx_csa_finish(struct work_struct *ws) + } else + 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 >= KERNEL_VERSION(6, 9, 0)) ++ cfg80211_ch_switch_notify(vif->ndev, &csa->chandef, 0); ++#elif (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION3) + 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); +@@ -6044,14 +6046,16 @@ int rwnx_cfg80211_channel_switch(struct wiphy *wiphy, + goto end; + } else { + INIT_WORK(&csa->work, rwnx_csa_finish); +-#if LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION4 ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 9, 0)) ++ cfg80211_ch_switch_started_notify(dev, &csa->chandef, 0, params->count, false); ++#elif LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION4 + 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); ++ cfg80211_ch_switch_started_notify(dev, &csa->chandef, 0, params->count, false); + #elif LINUX_VERSION_CODE >= KERNEL_VERSION(5, 11, 0) +- cfg80211_ch_switch_started_notify(dev, &csa->chandef, params->count, params->block_tx); ++ cfg80211_ch_switch_started_notify(dev, &csa->chandef, params->count, params->block_tx); + #else +- cfg80211_ch_switch_started_notify(dev, &csa->chandef, params->count); ++ cfg80211_ch_switch_started_notify(dev, &csa->chandef, params->count); + #endif + + } diff --git a/debian/patches/series b/debian/patches/series index 61b3984..785a7dc 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -8,3 +8,4 @@ fix-linux-6.1-build.patch fix-aic_btusb.patch fix-linux-6.7-build.patch fix-linux-6.5-build.patch +fix-linux-6.9-build.patch