#ifndef _MAC_TXCCXRPT_H_ #define _MAC_TXCCXRPT_H_ /* dword0 */ #define TXCCXRPT_RPT_SEL_SH 0 #define TXCCXRPT_RPT_SEL_MSK 0x1f #define TXCCXRPT_POLLUTED BIT(5) #define TXCCXRPT_TX_STATE_SH 6 #define TXCCXRPT_TX_STATE_MSK 0x3 #define TXCCXRPT_SW_DEFINE_SH 8 #define TXCCXRPT_SW_DEFINE_MSK 0xf #define TXCCXRPT_TRY_RATE BIT(14) #define TXCCXRPT_FIXRATE BIT(15) #define TXCCXRPT_MACID_SH 16 #define TXCCXRPT_MACID_MSK 0x7f #define TXCCXRPT_QSEL_SH 24 #define TXCCXRPT_QSEL_MSK 0x3f #define TXCCXRPT_TXOP_START BIT(31) /* dword1 */ #define TXCCXRPT_QUEUE_TIME_SH 0 #define TXCCXRPT_QUEUE_TIME_MSK 0xffff #define TXCCXRPT_ACCTXTIME_SH 16 #define TXCCXRPT_ACCTXTIME_MSK 0xff #define TXCCXRPT_BMC BIT(29) #define TXCCXRPT_BITMAP_SHORT_SH 30 #define TXCCXRPT_BITMAP_SHORT_MSK 0x3 /* dword2 */ #define TXCCXRPT_FINAL_RATE_SH 0 #define TXCCXRPT_FINAL_RATE_MSK 0x1ff #define TXCCXRPT_FINAL_GI_LTF_SH 9 #define TXCCXRPT_FINAL_GI_LTF_MSK 0x7 #define TXCCXRPT_DATA_BW_SH 12 #define TXCCXRPT_DATA_BW_MSK 0x3 #define TXCCXRPT_MU2SU BIT(14) #define TXCCXRPT_MU_LMT BIT(15) #define TXCCXRPT_FINAL_RTS_RATE_SH 16 #define TXCCXRPT_FINAL_RTS_RATE_MSK 0x1ff #define TXCCXRPT_FINAL_RTS_GI_LTF_SH 25 #define TXCCXRPT_FINAL_RTS_GI_LTF_MSK 0x7 #define TXCCXRPT_RTS_TX_STATE_SH 28 #define TXCCXRPT_RTS_TX_STATE_MSK 0x3 #define TXCCXRPT_COLLISION_HEAD BIT(30) #define TXCCXRPT_COLLISION_TAIL BIT(31) /* dword3 */ #define TXCCXRPT_TOTAL_PKT_NUM_SH 0 #define TXCCXRPT_TOTAL_PKT_NUM_MSK 0xff #define TXCCXRPT_DATA_TX_CNT_SH 8 #define TXCCXRPT_DATA_TX_CNT_MSK 0x3f #define TXCCXRPT_BPRI BIT(14) #define TXCCXRPT_BBAR BIT(15) #define TXCCXRPT_PKT_OK_NUM_SH 16 #define TXCCXRPT_PKT_OK_NUM_MSK 0xff #define TXCCXRPT_RTS_TX_COUNT_SH 24 #define TXCCXRPT_RTS_TX_COUNT_MSK 0x3f /* dword4 */ #define TXCCXRPT_INIT_RATE_SH 0 #define TXCCXRPT_INIT_RATE_MSK 0x1ff #define TXCCXRPT_INIT_GI_LTF_SH 9 #define TXCCXRPT_INIT_GI_LTF_MSK 0x7 #define TXCCXRPT_PPDU_TYPE_SH 12 #define TXCCXRPT_PPDU_TYPE_MSK 0x3 #define TXCCXRPT_HE_TB_PPDU_FLAG BIT(14) #define TXCCXRPT_PPDU_FST_RPT BIT(15) #define TXCCXRPT_SU_TXPWR_SH 16 #define TXCCXRPT_SU_TXPWR_MSK 0x3f #define TXCCXRPT_DIFF_PKT_NUM_SH 24 #define TXCCXRPT_DIFF_PKT_NUM_MSK 0xf #define TXCCXRPT_USER_DEFINE_EXT_L_SH 28 #define TXCCXRPT_USER_DEFINE_EXT_L_MSK 0xf /* dword5 */ #define TXCCXRPT_USER_DEFINE_SH 0 #define TXCCXRPT_USER_DEFINE_MSK 0xff #define TXCCXRPT_FW_DEFINE_SH 8 #define TXCCXRPT_FW_DEFINE_MSK 0xff #define TXCCXRPT_TXPWR_PD_SH 16 #define TXCCXRPT_TXPWR_PD_MSK 0x1f #define TXCCXRPT_BSR BIT(21) #define TXCCXRPT_SR_RX_COUNT_SH 24 #define TXCCXRPT_SR_RX_COUNT_MSK 0xf #define TXCCXRPT_USER_DEFINE_EXT_H_SH 28 #define TXCCXRPT_USER_DEFINE_EXT_H_MSK 0xf struct mac_ccxrpt { /* dword 0 */ u32 rpt_sel:5; u32 polluted:1; u32 tx_state:2; u32 sw_define:4; u32 rsvd0:2; u32 try_rate:1; u32 fixrate:1; u32 macid:7; u32 rsvd1:1; u32 qsel:6; u32 rsvd2:1; u32 txop_start:1; /* dword 1 */ u32 queue_time:16; u32 acctxtime:8; u32 rsvd3:5; u32 bmc:1; u32 bitmap_short:2; /* dword 2 */ u32 final_rate:9; u32 final_gi_ltf:3; u32 data_bw:2; u32 mu2su:1; u32 mu_lmt:1; u32 final_rts_rate:9; u32 final_rts_gi_ltf:3; u32 rts_tx_state:2; u32 collision_head:1; u32 collision_tail:1; /* dword 3 */ u32 total_pkt_num:8; u32 data_tx_cnt:6; u32 bpri:1; u32 bbar:1; u32 pkt_ok_num:8; u32 rts_tx_count:6; u32 rsvd4:2; /* dword 4 */ u32 init_rate:9; u32 init_gi_ltf:3; u32 ppdu_type:2; u32 he_tb_ppdu_flag:1; u32 ppdu_fst_rpt:1; u32 su_txpwr:6; u32 rsvd5:2; u32 diff_pkt_num:4; u32 user_define_ext_l:4; /* dword 5 */ u32 user_define:8; u32 fw_define:8; u32 txpwr_pd:5; u32 bsr:1; u32 rsvd6:2; u32 sr_rx_count:4; u32 user_define_ext_h:4; }; #endif