summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_main.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_main.h')
-rw-r--r--drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_main.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_main.h b/drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_main.h
index 8421ae6ec39f..5f9a2956b274 100644
--- a/drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_main.h
+++ b/drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_main.h
@@ -1392,6 +1392,7 @@ struct _moal_private {
#if CFG80211_VERSION_CODE > KERNEL_VERSION(2, 6, 29)
atomic_t wmm_tx_pending[4];
#endif
+ struct sk_buff_head tx_q;
/** per interface extra headroom */
t_u16 extra_tx_head_len;
/** TX status spin lock */
@@ -1552,6 +1553,7 @@ enum ext_mod_params {
EXT_HOST_MLME,
#endif
#endif
+ EXT_TX_WORK,
EXT_MAX_PARAM,
};
@@ -1640,6 +1642,46 @@ typedef struct _moal_mod_para {
int dfs53cfg;
} moal_mod_para;
+void woal_tp_acnt_timer_func(void *context);
+void woal_set_tp_state(moal_private *priv);
+#define MAX_TP_ACCOUNT_DROP_POINT_NUM 5
+#define RX_DROP_P1 (MAX_TP_ACCOUNT_DROP_POINT_NUM)
+#define RX_DROP_P2 (MAX_TP_ACCOUNT_DROP_POINT_NUM + 1)
+#define RX_DROP_P3 (MAX_TP_ACCOUNT_DROP_POINT_NUM + 2)
+#define RX_DROP_P4 (MAX_TP_ACCOUNT_DROP_POINT_NUM + 3)
+#define RX_DROP_P5 (MAX_TP_ACCOUNT_DROP_POINT_NUM + 4)
+typedef struct _moal_tp_acnt_t {
+ /* TX accounting */
+ unsigned long tx_packets[MAX_TP_ACCOUNT_DROP_POINT_NUM];
+ unsigned long tx_packets_last[MAX_TP_ACCOUNT_DROP_POINT_NUM];
+ unsigned long tx_packets_rate[MAX_TP_ACCOUNT_DROP_POINT_NUM];
+ unsigned long tx_bytes[MAX_TP_ACCOUNT_DROP_POINT_NUM];
+ unsigned long tx_bytes_last[MAX_TP_ACCOUNT_DROP_POINT_NUM];
+ unsigned long tx_bytes_rate[MAX_TP_ACCOUNT_DROP_POINT_NUM];
+ unsigned long tx_intr_cnt;
+ unsigned long tx_intr_last;
+ unsigned long tx_intr_rate;
+ unsigned long tx_pending;
+ /** RX accounting */
+ unsigned long rx_packets[MAX_TP_ACCOUNT_DROP_POINT_NUM];
+ unsigned long rx_packets_last[MAX_TP_ACCOUNT_DROP_POINT_NUM];
+ unsigned long rx_packets_rate[MAX_TP_ACCOUNT_DROP_POINT_NUM];
+ unsigned long rx_bytes[MAX_TP_ACCOUNT_DROP_POINT_NUM];
+ unsigned long rx_bytes_last[MAX_TP_ACCOUNT_DROP_POINT_NUM];
+ unsigned long rx_bytes_rate[MAX_TP_ACCOUNT_DROP_POINT_NUM];
+ unsigned long rx_intr_cnt;
+ unsigned long rx_intr_last;
+ unsigned long rx_intr_rate;
+ unsigned long rx_pending;
+ unsigned long rx_paused_cnt;
+ /* TP account mode 0-disable 1-enable */
+ unsigned int on;
+ /* drop point */
+ unsigned int drop_point;
+ /* periodic timer */
+ moal_drv_timer timer;
+} moal_tp_acnt_t;
+
/** Handle data structure for MOAL */
struct _moal_handle {
/** MLAN adapter structure */
@@ -1778,6 +1820,10 @@ struct _moal_handle {
spinlock_t evt_lock;
/** event queue */
struct list_head evt_queue;
+ /** tx workqueue */
+ struct workqueue_struct *tx_workqueue;
+ /** tx work */
+ struct work_struct tx_work;
/** remain on channel flag */
t_u8 remain_on_channel;
/** bss index for remain on channel */
@@ -1870,6 +1916,8 @@ struct _moal_handle {
#endif
/** cac period length, valid only when dfs testing is enabled */
long cac_period_jiffies;
+ /** cac restart*/
+ t_u8 cac_restart;
/** handle index - for multiple card supports */
t_u8 handle_idx;
#if defined(USB)
@@ -1987,6 +2035,11 @@ struct _moal_handle {
t_u8 rf_test_mode;
/** pointer to rf test mode data struct */
struct rf_test_mode_data *rf_data;
+ /** TP accounting parameters */
+ moal_tp_acnt_t tp_acnt;
+ BOOLEAN is_tp_acnt_timer_set;
+
+ t_u8 request_pm;
};
/**