From d4a1bd480003f3e1a0590bc46fbcb24f05652ca7 Mon Sep 17 00:00:00 2001
From: tzh <tanzhtanzh@gmail.com>
Date: Thu, 15 Aug 2024 06:56:47 +0000
Subject: [PATCH] feat(wfit/bt): update aic8800 wifi/bt drive and hal

---
 longan/kernel/linux-4.9/drivers/net/wireless/aic8800/aic8800_fdrv/rwnx_defs.h |   50 +++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 43 insertions(+), 7 deletions(-)

diff --git a/longan/kernel/linux-4.9/drivers/net/wireless/aic8800/aic8800_fdrv/rwnx_defs.h b/longan/kernel/linux-4.9/drivers/net/wireless/aic8800/aic8800_fdrv/rwnx_defs.h
old mode 100644
new mode 100755
index ac27b83..0efadda
--- a/longan/kernel/linux-4.9/drivers/net/wireless/aic8800/aic8800_fdrv/rwnx_defs.h
+++ b/longan/kernel/linux-4.9/drivers/net/wireless/aic8800/aic8800_fdrv/rwnx_defs.h
@@ -126,6 +126,13 @@
 	struct work_struct work;
 };
 
+struct apm_probe_sta {
+	u8 sta_mac_addr[6];
+	u8 vif_idx;
+	u64 probe_id;
+	struct work_struct apmprobestaWork;
+	struct workqueue_struct *apmprobesta_wq;
+};
 /// Possible States of the TDLS link.
 enum tdls_status_tag {
 		/// TDLS link is not active (no TDLS peer connected)
@@ -229,6 +236,7 @@
 
 	u8_l key_has_add;
 	u8_l is_p2p_vif;
+	struct apm_probe_sta sta_probe;
 };
 
 #define RWNX_VIF_TYPE(rwnx_vif) (rwnx_vif->wdev.iftype)
@@ -272,10 +280,8 @@
  * @rx_rate: Statistics of the received rates
  */
 struct rwnx_sta_stats {
-#ifdef CONFIG_RWNX_DEBUGFS
 	struct hw_vect last_rx;
 	struct rwnx_rx_rate_stats rx_rate;
-#endif
 };
 
 /*
@@ -406,6 +412,24 @@
 	bool limit_bw;
 };
 
+
+struct defrag_ctrl_info {
+	struct list_head list;
+	u8 sta_idx;
+	u8 tid;
+	u16 sn;
+	u8 next_fn;
+	u16 frm_len;
+	struct sk_buff *skb;
+	struct timer_list defrag_timer;
+};
+
+struct amsdu_subframe_hdr {
+	u8 da[6];
+	u8 sa[6];
+	u16 sublen;
+};
+
 struct rwnx_hw {
 	struct rwnx_mod_params *mod_params;
 	struct device *dev;
@@ -490,6 +514,23 @@
 	struct rwnx_vif *p2p_dev_vif;
 	atomic_t p2p_alive_timer_count;
 	bool band_5g_support;
+	u8_l vendor_info;
+	bool fwlog_en;
+
+	struct list_head defrag_list;
+	spinlock_t defrag_lock;
+
+	struct work_struct apmStalossWork;
+	struct workqueue_struct *apmStaloss_wq;
+	u8 apm_vif_idx;
+	u8 sta_mac_addr[6];
+
+	struct wakeup_source *ws_rx;
+	struct wakeup_source *ws_tx;
+	struct wakeup_source *ws_pwrctrl;
+
+	u8 wakeup_enable;
+	u32 hostwake_irq_num;
 };
 
 u8 *rwnx_build_bcn(struct rwnx_bcn *bcn, struct cfg80211_beacon_data *new);
@@ -512,11 +553,6 @@
 	} else {
 		return vif->vif_index;
 	}
-}
-
-static inline void *rwnx_get_shared_trace_buf(struct rwnx_hw *rwnx_hw)
-{
-	return (void *)&(rwnx_hw->debugfs.fw_trace.buf);
 }
 
 void rwnx_external_auth_enable(struct rwnx_vif *vif);

--
Gitblit v1.6.2