mirror of
https://github.com/coolsnowwolf/lede
synced 2025-01-05 12:06:51 +08:00
aic8800: update to version 20240327
Fixes build for kernel 6.12.
This commit is contained in:
parent
f3e56a87e7
commit
d379cee203
@ -9,10 +9,10 @@ PKG_NAME:=aic8800
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2024-03-04
|
||||
PKG_SOURCE_DATE:=2024-06-20
|
||||
PKG_SOURCE_URL:=https://github.com/radxa-pkg/aic8800.git
|
||||
PKG_SOURCE_VERSION:=6a7ec8536a1688a785740d98ca96a4d00b274c56
|
||||
PKG_MIRROR_HASH:=75bbd6f410089d8301663aebdeeb79027420ec45dd054b5851c408dfeef23776
|
||||
PKG_SOURCE_VERSION:=8ad987876a6220fffb40a755e0454250ce2c5fdd
|
||||
PKG_MIRROR_HASH:=4a22e28a4341eb7516f03ea7e6c1c0523013e1aaf72c17428eb3749c8f553856
|
||||
|
||||
MAKE_PATH:=src/SDIO/driver_fw/driver/aic8800
|
||||
PKG_EXTMOD_SUBDIRS:=$(MAKE_PATH)
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_main.c
|
||||
+++ b/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_main.c
|
||||
@@ -2932,7 +2932,7 @@ static struct rwnx_vif *rwnx_interface_a
|
||||
@@ -2997,7 +2997,7 @@ static struct rwnx_vif *rwnx_interface_a
|
||||
vif->ap.generation = 0;
|
||||
vif->ap.mesh_pm = NL80211_MESH_POWER_ACTIVE;
|
||||
vif->ap.next_mesh_pm = NL80211_MESH_POWER_ACTIVE;
|
||||
@ -9,7 +9,7 @@
|
||||
case NL80211_IFTYPE_AP:
|
||||
INIT_LIST_HEAD(&vif->ap.sta_list);
|
||||
memset(&vif->ap.bcn, 0, sizeof(vif->ap.bcn));
|
||||
@@ -3349,7 +3349,7 @@ static int rwnx_cfg80211_change_iface(st
|
||||
@@ -3414,7 +3414,7 @@ static int rwnx_cfg80211_change_iface(st
|
||||
INIT_LIST_HEAD(&vif->ap.proxy_list);
|
||||
vif->ap.create_path = false;
|
||||
vif->ap.generation = 0;
|
||||
@ -18,7 +18,7 @@
|
||||
case NL80211_IFTYPE_AP:
|
||||
case NL80211_IFTYPE_P2P_GO:
|
||||
INIT_LIST_HEAD(&vif->ap.sta_list);
|
||||
@@ -5257,6 +5257,7 @@ static int rwnx_cfg80211_mgmt_tx(struct
|
||||
@@ -5333,6 +5333,7 @@ static int rwnx_cfg80211_mgmt_tx(struct
|
||||
switch (RWNX_VIF_TYPE(rwnx_vif)) {
|
||||
case NL80211_IFTYPE_AP_VLAN:
|
||||
rwnx_vif = rwnx_vif->ap_vlan.master;
|
||||
@ -26,7 +26,7 @@
|
||||
case NL80211_IFTYPE_AP:
|
||||
case NL80211_IFTYPE_P2P_GO:
|
||||
case NL80211_IFTYPE_MESH_POINT:
|
||||
@@ -5569,7 +5570,7 @@ rwnx_cfg80211_tdls_mgmt(struct wiphy *wi
|
||||
@@ -5645,7 +5646,7 @@ rwnx_cfg80211_tdls_mgmt(struct wiphy *wi
|
||||
printk("%s: only one TDLS link is supported!\n", __func__);
|
||||
status_code = WLAN_STATUS_REQUEST_DECLINED;
|
||||
}
|
||||
@ -35,7 +35,7 @@
|
||||
case WLAN_TDLS_SETUP_REQUEST:
|
||||
case WLAN_TDLS_TEARDOWN:
|
||||
case WLAN_TDLS_DISCOVERY_REQUEST:
|
||||
@@ -5889,6 +5890,7 @@ static int rwnx_fill_station_info(struct
|
||||
@@ -5965,6 +5966,7 @@ static int rwnx_fill_station_info(struct
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0)
|
||||
case FORMATMOD_HE_MU:
|
||||
sinfo->rxrate.he_ru_alloc = rx_vect1->he.ru_size;
|
||||
@ -104,7 +104,7 @@
|
||||
{
|
||||
--- a/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_txq.c
|
||||
+++ b/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_txq.c
|
||||
@@ -635,6 +635,7 @@ static inline void rwnx_txq_vif_for_each
|
||||
@@ -640,6 +640,7 @@ static inline void rwnx_txq_vif_for_each
|
||||
}
|
||||
case NL80211_IFTYPE_AP_VLAN:
|
||||
rwnx_vif = rwnx_vif->ap_vlan.master;
|
||||
|
@ -11,7 +11,7 @@
|
||||
#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
|
||||
@@ -3063,7 +3063,7 @@ static struct rwnx_vif *rwnx_interface_a
|
||||
} else
|
||||
vif->use_4addr = false;
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
if (cfg80211_register_netdevice(ndev))
|
||||
#else
|
||||
if (register_netdevice(ndev))
|
||||
@@ -3271,7 +3271,7 @@ static int rwnx_cfg80211_del_iface(struc
|
||||
@@ -3336,7 +3336,7 @@ static int rwnx_cfg80211_del_iface(struc
|
||||
|
||||
if (dev->reg_state == NETREG_REGISTERED) {
|
||||
/* Will call rwnx_close if interface is UP */
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_main.c
|
||||
+++ b/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_main.c
|
||||
@@ -776,7 +776,7 @@ static void rwnx_csa_finish(struct work_
|
||||
@@ -783,7 +783,7 @@ static void rwnx_csa_finish(struct work_
|
||||
spin_unlock_bh(&rwnx_hw->cb_lock);
|
||||
#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION3)
|
||||
cfg80211_ch_switch_notify(vif->ndev, &csa->chandef, 0, 0);
|
||||
@ -9,7 +9,7 @@
|
||||
cfg80211_ch_switch_notify(vif->ndev, &csa->chandef, 0);
|
||||
#else
|
||||
cfg80211_ch_switch_notify(vif->ndev, &csa->chandef);
|
||||
@@ -3540,7 +3540,7 @@ bool key_flag = false;
|
||||
@@ -3605,7 +3605,7 @@ bool key_flag = false;
|
||||
* when adding a group key.
|
||||
*/
|
||||
static int rwnx_cfg80211_add_key(struct wiphy *wiphy, struct net_device *netdev,
|
||||
@ -18,7 +18,7 @@
|
||||
int link_id,
|
||||
#endif
|
||||
u8 key_index, bool pairwise, const u8 *mac_addr,
|
||||
@@ -3637,7 +3637,7 @@ bool key_flag = false;
|
||||
@@ -3702,7 +3702,7 @@ bool key_flag = false;
|
||||
*
|
||||
*/
|
||||
static int rwnx_cfg80211_get_key(struct wiphy *wiphy, struct net_device *netdev,
|
||||
@ -27,7 +27,7 @@
|
||||
int link_id,
|
||||
#endif
|
||||
u8 key_index, bool pairwise, const u8 *mac_addr,
|
||||
@@ -3655,7 +3655,7 @@ static int rwnx_cfg80211_get_key(struct
|
||||
@@ -3720,7 +3720,7 @@ static int rwnx_cfg80211_get_key(struct
|
||||
* and @key_index, return -ENOENT if the key doesn't exist.
|
||||
*/
|
||||
static int rwnx_cfg80211_del_key(struct wiphy *wiphy, struct net_device *netdev,
|
||||
@ -36,7 +36,7 @@
|
||||
int link_id,
|
||||
#endif
|
||||
u8 key_index, bool pairwise, const u8 *mac_addr)
|
||||
@@ -3694,7 +3694,7 @@ static int rwnx_cfg80211_del_key(struct
|
||||
@@ -3759,7 +3759,7 @@ static int rwnx_cfg80211_del_key(struct
|
||||
*/
|
||||
static int rwnx_cfg80211_set_default_key(struct wiphy *wiphy,
|
||||
struct net_device *netdev,
|
||||
@ -45,7 +45,7 @@
|
||||
int link_id,
|
||||
#endif
|
||||
u8 key_index, bool unicast, bool multicast)
|
||||
@@ -3709,7 +3709,7 @@ static int rwnx_cfg80211_set_default_key
|
||||
@@ -3774,7 +3774,7 @@ static int rwnx_cfg80211_set_default_key
|
||||
*/
|
||||
static int rwnx_cfg80211_set_default_mgmt_key(struct wiphy *wiphy,
|
||||
struct net_device *netdev,
|
||||
@ -54,7 +54,7 @@
|
||||
int link_id,
|
||||
#endif
|
||||
u8 key_index)
|
||||
@@ -3796,7 +3796,7 @@ static int rwnx_cfg80211_connect(struct
|
||||
@@ -3861,7 +3861,7 @@ static int rwnx_cfg80211_connect(struct
|
||||
key_params.seq_len = 0;
|
||||
key_params.cipher = sme->crypto.cipher_group;
|
||||
rwnx_cfg80211_add_key(wiphy, dev,
|
||||
@ -63,7 +63,7 @@
|
||||
0,
|
||||
#endif
|
||||
sme->key_idx, false, NULL, &key_params);
|
||||
@@ -4063,7 +4063,7 @@ static int rwnx_cfg80211_add_station(str
|
||||
@@ -4128,7 +4128,7 @@ static int rwnx_cfg80211_add_station(str
|
||||
sta->vif_idx = rwnx_vif->vif_index;
|
||||
sta->vlan_idx = sta->vif_idx;
|
||||
sta->qos = (params->sta_flags_set & BIT(NL80211_STA_FLAG_WME)) != 0;
|
||||
@ -72,7 +72,7 @@
|
||||
sta->ht = params->link_sta_params.ht_capa ? 1 : 0;
|
||||
sta->vht = params->link_sta_params.vht_capa ? 1 : 0;
|
||||
#else
|
||||
@@ -4469,7 +4469,7 @@ static int rwnx_cfg80211_change_station(
|
||||
@@ -4534,7 +4534,7 @@ static int rwnx_cfg80211_change_station(
|
||||
sta->vif_idx = rwnx_vif->vif_index;
|
||||
sta->vlan_idx = sta->vif_idx;
|
||||
sta->qos = (params->sta_flags_set & BIT(NL80211_STA_FLAG_WME)) != 0;
|
||||
@ -81,7 +81,7 @@
|
||||
sta->ht = params->link_sta_params.ht_capa ? 1 : 0;
|
||||
sta->vht = params->link_sta_params.vht_capa ? 1 : 0;
|
||||
#else
|
||||
@@ -4716,7 +4716,7 @@ static int rwnx_cfg80211_change_beacon(s
|
||||
@@ -4781,7 +4781,7 @@ static int rwnx_cfg80211_change_beacon(s
|
||||
/**
|
||||
* * @stop_ap: Stop being an AP, including stopping beaconing.
|
||||
*/
|
||||
@ -90,7 +90,7 @@
|
||||
static int rwnx_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *dev, unsigned int link_id)
|
||||
#else
|
||||
static int rwnx_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *dev)
|
||||
@@ -5190,7 +5190,7 @@ static int rwnx_cfg80211_dump_survey(str
|
||||
@@ -5266,7 +5266,7 @@ static int rwnx_cfg80211_dump_survey(str
|
||||
*/
|
||||
static int rwnx_cfg80211_get_channel(struct wiphy *wiphy,
|
||||
struct wireless_dev *wdev,
|
||||
@ -99,7 +99,7 @@
|
||||
unsigned int link_id,
|
||||
#endif
|
||||
struct cfg80211_chan_def *chandef)
|
||||
@@ -5487,7 +5487,7 @@ int rwnx_cfg80211_channel_switch (struct
|
||||
@@ -5563,7 +5563,7 @@ int rwnx_cfg80211_channel_switch (struct
|
||||
INIT_WORK(&csa->work, rwnx_csa_finish);
|
||||
#if LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION4
|
||||
cfg80211_ch_switch_started_notify(dev, &csa->chandef, 0, params->count, false, 0);
|
||||
@ -110,7 +110,7 @@
|
||||
cfg80211_ch_switch_started_notify(dev, &csa->chandef, params->count, params->block_tx);
|
||||
--- a/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_msg_rx.c
|
||||
+++ b/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_msg_rx.c
|
||||
@@ -836,7 +836,7 @@ static inline int rwnx_rx_sm_connect_ind
|
||||
@@ -851,7 +851,7 @@ static inline int rwnx_rx_sm_connect_ind
|
||||
|
||||
do {
|
||||
bss = cfg80211_get_bss(wdev->wiphy, NULL, rwnx_vif->sta.bssid,
|
||||
@ -119,7 +119,7 @@
|
||||
wdev->u.client.ssid, wdev->u.client.ssid_len,
|
||||
#else
|
||||
wdev->ssid, wdev->ssid_len,
|
||||
@@ -866,7 +866,7 @@ static inline int rwnx_rx_sm_connect_ind
|
||||
@@ -881,7 +881,7 @@ static inline int rwnx_rx_sm_connect_ind
|
||||
#else
|
||||
WLAN_CAPABILITY_ESS,
|
||||
#endif
|
||||
@ -128,7 +128,7 @@
|
||||
(int)wdev->u.client.ssid_len,
|
||||
wdev->u.client.ssid,
|
||||
#else
|
||||
@@ -887,7 +887,7 @@ static inline int rwnx_rx_sm_connect_ind
|
||||
@@ -902,7 +902,7 @@ static inline int rwnx_rx_sm_connect_ind
|
||||
rwnx_vif->sta.bssid[0], rwnx_vif->sta.bssid[1], rwnx_vif->sta.bssid[2],
|
||||
rwnx_vif->sta.bssid[3], rwnx_vif->sta.bssid[4], rwnx_vif->sta.bssid[5]);
|
||||
|
||||
@ -137,7 +137,7 @@
|
||||
wdev->u.client.ssid_len = (int)rwnx_vif->sta.ssid_len;
|
||||
memcpy(wdev->u.client.ssid, rwnx_vif->sta.ssid, wdev->u.client.ssid_len);
|
||||
#else
|
||||
@@ -927,7 +927,7 @@ static inline int rwnx_rx_sm_connect_ind
|
||||
@@ -942,7 +942,7 @@ static inline int rwnx_rx_sm_connect_ind
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
|
||||
struct cfg80211_roam_info info;
|
||||
memset(&info, 0, sizeof(info));
|
||||
@ -148,7 +148,7 @@
|
||||
info.links[0].bssid = (const u8 *)ind->bssid.array;
|
||||
--- a/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_msg_tx.c
|
||||
+++ b/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_msg_tx.c
|
||||
@@ -1941,7 +1941,7 @@ int rwnx_send_me_sta_add(struct rwnx_hw
|
||||
@@ -2076,7 +2076,7 @@ int rwnx_send_me_sta_add(struct rwnx_hw
|
||||
{
|
||||
struct me_sta_add_req *req;
|
||||
|
||||
|
@ -1,13 +1,20 @@
|
||||
--- a/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_compat.h
|
||||
+++ b/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_compat.h
|
||||
@@ -47,8 +47,8 @@
|
||||
#else
|
||||
#define HIGH_KERNEL_VERSION KERNEL_VERSION(6, 0, 0)
|
||||
#define HIGH_KERNEL_VERSION2 KERNEL_VERSION(6, 1, 0)
|
||||
-#define HIGH_KERNEL_VERSION3 KERNEL_VERSION(6, 3, 0)
|
||||
-#define HIGH_KERNEL_VERSION4 KERNEL_VERSION(6, 3, 0)
|
||||
+#define HIGH_KERNEL_VERSION3 KERNEL_VERSION(6, 9, 0)
|
||||
+#define HIGH_KERNEL_VERSION4 KERNEL_VERSION(6, 9, 0)
|
||||
#endif
|
||||
|
||||
|
||||
--- 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,7 @@ static void rwnx_csa_finish(struct work_
|
||||
} 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 >= HIGH_KERNEL_VERSION3) && !defined(BUILD_OPENWRT)
|
||||
cfg80211_ch_switch_notify(vif->ndev, &csa->chandef, 0, 0);
|
||||
#elif (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION) || defined(BUILD_OPENWRT)
|
||||
cfg80211_ch_switch_notify(vif->ndev, &csa->chandef, 0);
|
||||
@@ -5561,7 +5561,7 @@ int rwnx_cfg80211_channel_switch (struct
|
||||
goto end;
|
||||
} 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)
|
||||
cfg80211_ch_switch_started_notify(dev, &csa->chandef, 0, params->count, false, 0);
|
||||
#elif LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION2 || defined(BUILD_OPENWRT)
|
||||
cfg80211_ch_switch_started_notify(dev, &csa->chandef, 0, params->count, false);
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
--- a/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_main.c
|
||||
+++ b/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_main.c
|
||||
@@ -503,7 +503,7 @@ static const int rwnx_hwq2uapsd[NL80211_
|
||||
@@ -510,7 +510,7 @@ static const int rwnx_hwq2uapsd[NL80211_
|
||||
|
||||
|
||||
extern uint8_t scanning;
|
||||
@ -20,13 +20,3 @@
|
||||
module_param(aicwf_dbg_level, int, 0660);
|
||||
int testmode = 0;
|
||||
char aic_fw_path[200];
|
||||
--- a/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_tx.c
|
||||
+++ b/src/SDIO/driver_fw/driver/aic8800/aic8800_fdrv/rwnx_tx.c
|
||||
@@ -169,7 +169,6 @@ void rwnx_ps_bh_traffic_req(struct rwnx_
|
||||
// sta->mac_addr))
|
||||
// return;
|
||||
if (!sta->ps.active) {
|
||||
- printk("sta %pM is not in Power Save mode", sta->mac_addr);
|
||||
return;
|
||||
}
|
||||
#ifdef CREATE_TRACE_POINTS
|
||||
|
20
package/lean/aic8800/patches/050-memcpy.patch
Normal file
20
package/lean/aic8800/patches/050-memcpy.patch
Normal file
@ -0,0 +1,20 @@
|
||||
--- a/src/SDIO/driver_fw/driver/aic8800/aic8800_bsp/aic_bsp_driver.c
|
||||
+++ b/src/SDIO/driver_fw/driver/aic8800/aic8800_bsp/aic_bsp_driver.c
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/firmware.h>
|
||||
+#include <linux/string.h>
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 12, 0)
|
||||
#include <linux/hardirq.h>
|
||||
@@ -1364,7 +1365,8 @@ int aicbt_patch_info_unpack(struct aicbt
|
||||
patch_info->info_len = head_t->len;
|
||||
if(patch_info->info_len == 0)
|
||||
return 0;
|
||||
- memcpy(&patch_info->adid_addrinf, head_t->data, patch_info->info_len * sizeof(uint32_t) * 2);
|
||||
+ unsafe_memcpy(&patch_info->adid_addrinf, head_t->data,
|
||||
+ patch_info->info_len * sizeof(uint32_t) * 2, /* justification */);
|
||||
}
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user