wifi: rtw89: mac: set EDCCA configurations for RTL8922D

Update EDCCA settings of MAC part for RTL8922D to consider EDCCA state
signaled by BB circuit.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260108120320.2217402-14-pkshih@realtek.com
This commit is contained in:
Ping-Ke Shih
2026-01-08 20:03:20 +08:00
parent 6996a4c97a
commit 40714b8a21
5 changed files with 273 additions and 0 deletions

View File

@@ -5818,6 +5818,7 @@ int rtw89_core_start(struct rtw89_dev *rtwdev)
rtw89_phy_dm_init(rtwdev);
rtw89_mac_set_edcca_mode_bands(rtwdev, true);
rtw89_mac_cfg_ppdu_status_bands(rtwdev, true);
rtw89_mac_cfg_phy_rpt_bands(rtwdev, true);
rtw89_mac_update_rts_threshold(rtwdev);

View File

@@ -7309,6 +7309,7 @@ const struct rtw89_mac_gen_def rtw89_mac_gen_ax = {
.typ_fltr_opt = rtw89_mac_typ_fltr_opt_ax,
.cfg_ppdu_status = rtw89_mac_cfg_ppdu_status_ax,
.cfg_phy_rpt = NULL,
.set_edcca_mode = NULL,
.dle_mix_cfg = dle_mix_cfg_ax,
.chk_dle_rdy = chk_dle_rdy_ax,

View File

@@ -1055,6 +1055,7 @@ struct rtw89_mac_gen_def {
u8 mac_idx);
int (*cfg_ppdu_status)(struct rtw89_dev *rtwdev, u8 mac_idx, bool enable);
void (*cfg_phy_rpt)(struct rtw89_dev *rtwdev, u8 mac_idx, bool enable);
void (*set_edcca_mode)(struct rtw89_dev *rtwdev, u8 mac_idx, bool normal);
int (*dle_mix_cfg)(struct rtw89_dev *rtwdev, const struct rtw89_dle_mem *cfg);
int (*chk_dle_rdy)(struct rtw89_dev *rtwdev, bool wde_or_ple);
@@ -1129,6 +1130,14 @@ u32 rtw89_mac_reg_by_idx(struct rtw89_dev *rtwdev, u32 reg_base, u8 band)
return band == 0 ? reg_base : (reg_base + mac->band1_offset);
}
static inline void
rtw89_write16_idx(struct rtw89_dev *rtwdev, u32 addr, u16 data, u8 band)
{
addr = rtw89_mac_reg_by_idx(rtwdev, addr, band);
rtw89_write16(rtwdev, addr, data);
}
static inline
u32 rtw89_mac_reg_by_port(struct rtw89_dev *rtwdev, u32 base, u8 port, u8 mac_idx)
{
@@ -1364,6 +1373,24 @@ int rtw89_mac_cfg_ppdu_status_bands(struct rtw89_dev *rtwdev, bool enable)
return rtw89_mac_cfg_ppdu_status(rtwdev, RTW89_MAC_1, enable);
}
static inline
void rtw89_mac_set_edcca_mode(struct rtw89_dev *rtwdev, u8 mac_idx, bool normal)
{
const struct rtw89_mac_gen_def *mac = rtwdev->chip->mac_def;
if (!mac->set_edcca_mode)
return;
mac->set_edcca_mode(rtwdev, mac_idx, normal);
}
static inline
void rtw89_mac_set_edcca_mode_bands(struct rtw89_dev *rtwdev, bool normal)
{
rtw89_mac_set_edcca_mode(rtwdev, RTW89_MAC_0, normal);
rtw89_mac_set_edcca_mode(rtwdev, RTW89_MAC_1, normal);
}
void rtw89_mac_set_rx_fltr(struct rtw89_dev *rtwdev, u8 mac_idx, u32 rx_fltr);
void rtw89_mac_update_rts_threshold(struct rtw89_dev *rtwdev);
void rtw89_mac_flush_txq(struct rtw89_dev *rtwdev, u32 queues, bool drop);

View File

@@ -2391,6 +2391,65 @@ void rtw89_mac_cfg_phy_rpt_be(struct rtw89_dev *rtwdev, u8 mac_idx, bool enable)
}
EXPORT_SYMBOL(rtw89_mac_cfg_phy_rpt_be);
static
void rtw89_mac_set_edcca_mode_be(struct rtw89_dev *rtwdev, u8 mac_idx, bool normal)
{
u16 resp_ack, resp_rts, resp_rts_punc, resp_normal, resp_normal_punc;
if (rtwdev->chip->chip_id == RTL8922A)
return;
resp_ack = RESP_ACK_CFG_BE;
resp_rts = RESP_RTS_CFG_BE;
resp_rts_punc = RESP_RTS_PUNC_CFG_BE;
resp_normal = RESP_NORMAL_CFG_BE;
resp_normal_punc = RESP_NORMAL_PUNC_CFG_BE;
if (normal) {
rtw89_write16_idx(rtwdev, R_BE_WMAC_ACK_BA_RESP_LEGACY,
resp_ack, mac_idx);
rtw89_write16_idx(rtwdev, R_BE_WMAC_ACK_BA_RESP_HE,
resp_ack, mac_idx);
rtw89_write16_idx(rtwdev, R_BE_WMAC_ACK_BA_RESP_EHT_LEG_PUNC,
resp_ack, mac_idx);
rtw89_write16_idx(rtwdev, R_BE_WMAC_RX_RTS_RESP_LEGACY,
resp_rts, mac_idx);
rtw89_write16_idx(rtwdev, R_BE_WMAC_RX_RTS_RESP_LEGACY_PUNC,
resp_rts_punc, mac_idx);
rtw89_write16_idx(rtwdev, R_BE_WMAC_RX_MURTS_RESP_LEGACY,
resp_normal, mac_idx);
rtw89_write16_idx(rtwdev, R_BE_WMAC_RX_MURTS_RESP_LEGACY_PUNC,
resp_normal_punc, mac_idx);
rtw89_write16_idx(rtwdev, R_BE_WMAC_OTHERS_RESP_LEGACY,
resp_normal, mac_idx);
rtw89_write16_idx(rtwdev, R_BE_WMAC_OTHERS_RESP_HE,
resp_normal_punc, mac_idx);
rtw89_write16_idx(rtwdev, R_BE_WMAC_OTHERS_RESP_EHT_LEG_PUNC,
resp_normal_punc, mac_idx);
} else {
rtw89_write16_idx(rtwdev, R_BE_WMAC_ACK_BA_RESP_LEGACY,
resp_normal, mac_idx);
rtw89_write16_idx(rtwdev, R_BE_WMAC_ACK_BA_RESP_HE,
resp_normal_punc, mac_idx);
rtw89_write16_idx(rtwdev, R_BE_WMAC_ACK_BA_RESP_EHT_LEG_PUNC,
resp_normal_punc, mac_idx);
rtw89_write16_idx(rtwdev, R_BE_WMAC_RX_RTS_RESP_LEGACY,
resp_rts, mac_idx);
rtw89_write16_idx(rtwdev, R_BE_WMAC_RX_RTS_RESP_LEGACY_PUNC,
resp_rts_punc, mac_idx);
rtw89_write16_idx(rtwdev, R_BE_WMAC_RX_MURTS_RESP_LEGACY,
resp_normal, mac_idx);
rtw89_write16_idx(rtwdev, R_BE_WMAC_RX_MURTS_RESP_LEGACY_PUNC,
resp_normal_punc, mac_idx);
rtw89_write16_idx(rtwdev, R_BE_WMAC_OTHERS_RESP_LEGACY,
resp_normal, mac_idx);
rtw89_write16_idx(rtwdev, R_BE_WMAC_OTHERS_RESP_HE,
resp_normal_punc, mac_idx);
rtw89_write16_idx(rtwdev, R_BE_WMAC_OTHERS_RESP_EHT_LEG_PUNC,
resp_normal_punc, mac_idx);
}
}
static
int rtw89_mac_cfg_ppdu_status_be(struct rtw89_dev *rtwdev, u8 mac_idx, bool enable)
{
@@ -2993,6 +3052,7 @@ const struct rtw89_mac_gen_def rtw89_mac_gen_be = {
.typ_fltr_opt = rtw89_mac_typ_fltr_opt_be,
.cfg_ppdu_status = rtw89_mac_cfg_ppdu_status_be,
.cfg_phy_rpt = rtw89_mac_cfg_phy_rpt_be,
.set_edcca_mode = rtw89_mac_set_edcca_mode_be,
.dle_mix_cfg = dle_mix_cfg_be,
.chk_dle_rdy = chk_dle_rdy_be,

View File

@@ -7488,6 +7488,8 @@
#define B_BE_ACK_BA_RESP_LEGACY_CHK_SEC_CCA20 BIT(2)
#define B_BE_ACK_BA_RESP_LEGACY_CHK_EDCCA BIT(1)
#define B_BE_ACK_BA_RESP_LEGACY_CHK_CCA BIT(0)
#define RESP_ACK_CFG_BE (B_BE_ACK_BA_RESP_LEGACY_CHK_BTCCA | \
B_BE_ACK_BA_RESP_LEGACY_CHK_TX_NAV)
#define R_BE_WMAC_ACK_BA_RESP_HE 0x11204
#define R_BE_WMAC_ACK_BA_RESP_HE_C1 0x15204
@@ -7529,6 +7531,188 @@
#define B_BE_ACK_BA_EHT_LEG_PUNC_CHK_EDCCA BIT(1)
#define B_BE_ACK_BA_EHT_LEG_PUNC_CHK_CCA BIT(0)
#define R_BE_WMAC_RX_RTS_RESP_LEGACY 0x1120C
#define R_BE_WMAC_RX_RTS_RESP_LEGACY_C1 0x1520C
#define B_BE_RX_RTS_RESP_LEGACY_CHK_NSTR BIT(16)
#define B_BE_RX_RTS_RESP_LEGACY_CHK_TX_NAV BIT(15)
#define B_BE_RX_RTS_RESP_LEGACY_CHK_INTRA_NAV BIT(14)
#define B_BE_RX_RTS_RESP_LEGACY_CHK_BASIC_NAV BIT(13)
#define B_BE_RX_RTS_RESP_LEGACY_CHK_BTCCA BIT(12)
#define B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_EDCCA160 BIT(11)
#define B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_EDCCA80 BIT(10)
#define B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_EDCCA40 BIT(9)
#define B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_EDCCA20 BIT(8)
#define B_BE_RX_RTS_RESP_LEGACY_CHK_EDCCA_PER20_BMP BIT(7)
#define B_BE_RX_RTS_RESP_LEGACY_CHK_CCA_PER20_BMP BIT(6)
#define B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_CCA160 BIT(5)
#define B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_CCA80 BIT(4)
#define B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_CCA40 BIT(3)
#define B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_CCA20 BIT(2)
#define B_BE_RX_RTS_RESP_LEGACY_CHK_EDCCA BIT(1)
#define B_BE_RX_RTS_RESP_LEGACY_CHK_CCA BIT(0)
#define RESP_RTS_CFG_BE (B_BE_RX_RTS_RESP_LEGACY_CHK_CCA | \
B_BE_RX_RTS_RESP_LEGACY_CHK_EDCCA | \
B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_CCA20 | \
B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_CCA40 | \
B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_CCA80 | \
B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_CCA160 | \
B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_EDCCA20 | \
B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_EDCCA40 | \
B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_EDCCA80 | \
B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_EDCCA160 | \
B_BE_RX_RTS_RESP_LEGACY_CHK_BTCCA | \
B_BE_RX_RTS_RESP_LEGACY_CHK_BASIC_NAV | \
B_BE_RX_RTS_RESP_LEGACY_CHK_INTRA_NAV | \
B_BE_RX_RTS_RESP_LEGACY_CHK_TX_NAV)
#define RESP_RTS_PUNC_CFG_BE (B_BE_RX_RTS_RESP_LEGACY_CHK_CCA | \
B_BE_RX_RTS_RESP_LEGACY_CHK_EDCCA | \
B_BE_RX_RTS_RESP_LEGACY_CHK_CCA_PER20_BMP | \
B_BE_RX_RTS_RESP_LEGACY_CHK_EDCCA_PER20_BMP | \
B_BE_RX_RTS_RESP_LEGACY_CHK_BTCCA | \
B_BE_RX_RTS_RESP_LEGACY_CHK_BASIC_NAV | \
B_BE_RX_RTS_RESP_LEGACY_CHK_INTRA_NAV | \
B_BE_RX_RTS_RESP_LEGACY_CHK_TX_NAV)
#define RESP_NORMAL_CFG_BE (B_BE_RX_RTS_RESP_LEGACY_CHK_CCA | \
B_BE_RX_RTS_RESP_LEGACY_CHK_EDCCA | \
B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_CCA20 | \
B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_CCA40 | \
B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_CCA80 | \
B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_CCA160 | \
B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_EDCCA20 | \
B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_EDCCA40 | \
B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_EDCCA80 | \
B_BE_RX_RTS_RESP_LEGACY_CHK_SEC_EDCCA160 | \
B_BE_RX_RTS_RESP_LEGACY_CHK_BTCCA | \
B_BE_RX_RTS_RESP_LEGACY_CHK_BASIC_NAV | \
B_BE_RX_RTS_RESP_LEGACY_CHK_TX_NAV)
#define RESP_NORMAL_PUNC_CFG_BE (B_BE_RX_RTS_RESP_LEGACY_CHK_CCA | \
B_BE_RX_RTS_RESP_LEGACY_CHK_EDCCA | \
B_BE_RX_RTS_RESP_LEGACY_CHK_CCA_PER20_BMP | \
B_BE_RX_RTS_RESP_LEGACY_CHK_EDCCA_PER20_BMP | \
B_BE_RX_RTS_RESP_LEGACY_CHK_BTCCA | \
B_BE_RX_RTS_RESP_LEGACY_CHK_BASIC_NAV | \
B_BE_RX_RTS_RESP_LEGACY_CHK_TX_NAV)
#define R_BE_WMAC_RX_RTS_RESP_LEGACY_PUNC 0x11210
#define R_BE_WMAC_RX_RTS_RESP_LEGACY_PUNC_C1 0x15210
#define B_BE_RX_RTS_RESP_LEGACY_PUNC_CHK_NSTR BIT(16)
#define B_BE_RX_RTS_RESP_LEGACY_PUNC_CHK_TX_NAV BIT(15)
#define B_BE_RX_RTS_RESP_LEGACY_PUNC_CHK_INTRA_NAV BIT(14)
#define B_BE_RX_RTS_RESP_LEGACY_PUNC_CHK_BASIC_NAV BIT(13)
#define B_BE_RX_RTS_RESP_LEGACY_PUNC_CHK_BTCCA BIT(12)
#define B_BE_RX_RTS_RESP_LEGACY_PUNC_CHK_SEC_EDCCA160 BIT(11)
#define B_BE_RX_RTS_RESP_LEGACY_PUNC_CHK_SEC_EDCCA80 BIT(10)
#define B_BE_RX_RTS_RESP_LEGACY_PUNC_CHK_SEC_EDCCA40 BIT(9)
#define B_BE_RX_RTS_RESP_LEGACY_PUNC_CHK_SEC_EDCCA20 BIT(8)
#define B_BE_RX_RTS_RESP_LEGACY_PUNC_CHK_EDCCA_PER20_BMP BIT(7)
#define B_BE_RX_RTS_RESP_LEGACY_PUNC_CHK_CCA_PER20_BMP BIT(6)
#define B_BE_RX_RTS_RESP_LEGACY_PUNC_CHK_SEC_CCA160 BIT(5)
#define B_BE_RX_RTS_RESP_LEGACY_PUNC_CHK_SEC_CCA80 BIT(4)
#define B_BE_RX_RTS_RESP_LEGACY_PUNC_CHK_SEC_CCA40 BIT(3)
#define B_BE_RX_RTS_RESP_LEGACY_PUNC_CHK_SEC_CCA20 BIT(2)
#define B_BE_RX_RTS_RESP_LEGACY_PUNC_CHK_EDCCA BIT(1)
#define B_BE_RX_RTS_RESP_LEGACY_PUNC_CHK_CCA BIT(0)
#define R_BE_WMAC_RX_MURTS_RESP_LEGACY 0x11214
#define R_BE_WMAC_RX_MURTS_RESP_LEGACY_C1 0x15214
#define B_BE_MURTS_RESP_LEGACY_CHK_NSTR BIT(16)
#define B_BE_MURTS_RESP_LEGACY_CHK_TX_NAV BIT(15)
#define B_BE_MURTS_RESP_LEGACY_CHK_INTRA_NAV BIT(14)
#define B_BE_MURTS_RESP_LEGACY_CHK_BASIC_NAV BIT(13)
#define B_BE_MURTS_RESP_LEGACY_CHK_BTCCA BIT(12)
#define B_BE_MURTS_RESP_LEGACY_CHK_SEC_EDCCA160 BIT(11)
#define B_BE_MURTS_RESP_LEGACY_CHK_SEC_EDCCA80 BIT(10)
#define B_BE_MURTS_RESP_LEGACY_CHK_SEC_EDCCA40 BIT(9)
#define B_BE_MURTS_RESP_LEGACY_CHK_SEC_EDCCA20 BIT(8)
#define B_BE_MURTS_RESP_LEGACY_CHK_EDCCA_PER20_BMP BIT(7)
#define B_BE_MURTS_RESP_LEGACY_CHK_CCA_PER20_BMP BIT(6)
#define B_BE_MURTS_RESP_LEGACY_CHK_SEC_CCA160 BIT(5)
#define B_BE_MURTS_RESP_LEGACY_CHK_SEC_CCA80 BIT(4)
#define B_BE_MURTS_RESP_LEGACY_CHK_SEC_CCA40 BIT(3)
#define B_BE_MURTS_RESP_LEGACY_CHK_SEC_CCA20 BIT(2)
#define B_BE_MURTS_RESP_LEGACY_CHK_EDCCA BIT(1)
#define B_BE_MURTS_RESP_LEGACY_CHK_CCA BIT(0)
#define R_BE_WMAC_RX_MURTS_RESP_LEGACY_PUNC 0x11218
#define R_BE_WMAC_RX_MURTS_RESP_LEGACY_PUNC_C1 0x15218
#define B_BE_MURTS_RESP_LEGACY_PUNC_CHK_NSTR BIT(16)
#define B_BE_MURTS_RESP_LEGACY_PUNC_CHK_TX_NAV BIT(15)
#define B_BE_MURTS_RESP_LEGACY_PUNC_CHK_INTRA_NAV BIT(14)
#define B_BE_MURTS_RESP_LEGACY_PUNC_CHK_BASIC_NAV BIT(13)
#define B_BE_MURTS_RESP_LEGACY_PUNC_CHK_BTCCA BIT(12)
#define B_BE_MURTS_RESP_LEGACY_PUNC_CHK_SEC_EDCCA160 BIT(11)
#define B_BE_MURTS_RESP_LEGACY_PUNC_CHK_SEC_EDCCA80 BIT(10)
#define B_BE_MURTS_RESP_LEGACY_PUNC_CHK_SEC_EDCCA40 BIT(9)
#define B_BE_MURTS_RESP_LEGACY_PUNC_CHK_SEC_EDCCA20 BIT(8)
#define B_BE_MURTS_RESP_LEGACY_PUNC_CHK_EDCCA_PER20_BMP BIT(7)
#define B_BE_MURTS_RESP_LEGACY_PUNC_CHK_CCA_PER20_BMP BIT(6)
#define B_BE_MURTS_RESP_LEGACY_PUNC_CHK_SEC_CCA160 BIT(5)
#define B_BE_MURTS_RESP_LEGACY_PUNC_CHK_SEC_CCA80 BIT(4)
#define B_BE_MURTS_RESP_LEGACY_PUNC_CHK_SEC_CCA40 BIT(3)
#define B_BE_MURTS_RESP_LEGACY_PUNC_CHK_SEC_CCA20 BIT(2)
#define B_BE_MURTS_RESP_LEGACY_PUNC_CHK_EDCCA BIT(1)
#define B_BE_MURTS_RESP_LEGACY_PUNC_CHK_CCA BIT(0)
#define R_BE_WMAC_OTHERS_RESP_LEGACY 0x1121C
#define R_BE_WMAC_OTHERS_RESP_LEGACY_C1 0x1521C
#define B_BE_OTHERS_RESP_LEGACY_CHK_NSTR BIT(16)
#define B_BE_OTHERS_RESP_LEGACY_CHK_TX_NAV BIT(15)
#define B_BE_OTHERS_RESP_LEGACY_CHK_INTRA_NAV BIT(14)
#define B_BE_OTHERS_RESP_LEGACY_CHK_BASIC_NAV BIT(13)
#define B_BE_OTHERS_RESP_LEGACY_CHK_BTCCA BIT(12)
#define B_BE_OTHERS_RESP_LEGACY_CHK_SEC_EDCCA160 BIT(11)
#define B_BE_OTHERS_RESP_LEGACY_CHK_SEC_EDCCA80 BIT(10)
#define B_BE_OTHERS_RESP_LEGACY_CHK_SEC_EDCCA40 BIT(9)
#define B_BE_OTHERS_RESP_LEGACY_CHK_SEC_EDCCA20 BIT(8)
#define B_BE_OTHERS_RESP_LEGACY_CHK_EDCCA_PER20_BMP BIT(7)
#define B_BE_OTHERS_RESP_LEGACY_CHK_CCA_PER20_BMP BIT(6)
#define B_BE_OTHERS_RESP_LEGACY_CHK_SEC_CCA160 BIT(5)
#define B_BE_OTHERS_RESP_LEGACY_CHK_SEC_CCA80 BIT(4)
#define B_BE_OTHERS_RESP_LEGACY_CHK_SEC_CCA40 BIT(3)
#define B_BE_OTHERS_RESP_LEGACY_CHK_SEC_CCA20 BIT(2)
#define B_BE_OTHERS_RESP_LEGACY_CHK_EDCCA BIT(1)
#define B_BE_OTHERS_RESP_LEGACY_CHK_CCA BIT(0)
#define R_BE_WMAC_OTHERS_RESP_HE 0x11220
#define R_BE_WMAC_OTHERS_RESP_HE_C1 0x15220
#define B_BE_OTHERS_RESP_HE_CHK_NSTR BIT(16)
#define B_BE_OTHERS_RESP_HE_CHK_TX_NAV BIT(15)
#define B_BE_OTHERS_RESP_HE_CHK_INTRA_NAV BIT(14)
#define B_BE_OTHERS_RESP_HE_CHK_BASIC_NAV BIT(13)
#define B_BE_OTHERS_RESP_HE_CHK_BTCCA BIT(12)
#define B_BE_OTHERS_RESP_HE_CHK_SEC_EDCCA160 BIT(11)
#define B_BE_OTHERS_RESP_HE_CHK_SEC_EDCCA80 BIT(10)
#define B_BE_OTHERS_RESP_HE_CHK_SEC_EDCCA40 BIT(9)
#define B_BE_OTHERS_RESP_HE_CHK_SEC_EDCCA20 BIT(8)
#define B_BE_OTHERS_RESP_HE_CHK_EDCCA_PER20_BMP BIT(7)
#define B_BE_OTHERS_RESP_HE_CHK_CCA_PER20_BMP BIT(6)
#define B_BE_OTHERS_RESP_HE_CHK_SEC_CCA160 BIT(5)
#define B_BE_OTHERS_RESP_HE_CHK_SEC_CCA80 BIT(4)
#define B_BE_OTHERS_RESP_HE_CHK_SEC_CCA40 BIT(3)
#define B_BE_OTHERS_RESP_HE_CHK_SEC_CCA20 BIT(2)
#define B_BE_OTHERS_RESP_HE_CHK_EDCCA BIT(1)
#define B_BE_OTHERS_RESP_HE_CHK_CCA BIT(0)
#define R_BE_WMAC_OTHERS_RESP_EHT_LEG_PUNC 0x11224
#define R_BE_WMAC_OTHERS_RESP_EHT_LEG_PUNC_C1 0x15224
#define B_BE_OTHERS_RESP_EHT_LEG_PUNC_CHK_NSTR BIT(16)
#define B_BE_OTHERS_RESP_EHT_LEG_PUNC_CHK_TX_NAV BIT(15)
#define B_BE_OTHERS_RESP_EHT_LEG_PUNC_CHK_INTRA_NAV BIT(14)
#define B_BE_OTHERS_RESP_EHT_LEG_PUNC_CHK_BASIC_NAV BIT(13)
#define B_BE_OTHERS_RESP_EHT_LEG_PUNC_CHK_BTCCA BIT(12)
#define B_BE_OTHERS_RESP_EHT_LEG_PUNC_CHK_SEC_EDCCA160 BIT(11)
#define B_BE_OTHERS_RESP_EHT_LEG_PUNC_CHK_SEC_EDCCA80 BIT(10)
#define B_BE_OTHERS_RESP_EHT_LEG_PUNC_CHK_SEC_EDCCA40 BIT(9)
#define B_BE_OTHERS_RESP_EHT_LEG_PUNC_CHK_SEC_EDCCA20 BIT(8)
#define B_BE_OTHERS_RESP_EHT_LEG_PUNC_CHK_EDCCA_PER20_BMP BIT(7)
#define B_BE_OTHERS_RESP_EHT_LEG_PUNC_CHK_CCA_PER20_BMP BIT(6)
#define B_BE_OTHERS_RESP_EHT_LEG_PUNC_CHK_SEC_CCA160 BIT(5)
#define B_BE_OTHERS_RESP_EHT_LEG_PUNC_CHK_SEC_CCA80 BIT(4)
#define B_BE_OTHERS_RESP_EHT_LEG_PUNC_CHK_SEC_CCA40 BIT(3)
#define B_BE_OTHERS_RESP_EHT_LEG_PUNC_CHK_SEC_CCA20 BIT(2)
#define B_BE_OTHERS_RESP_EHT_LEG_PUNC_CHK_EDCCA BIT(1)
#define B_BE_OTHERS_RESP_EHT_LEG_PUNC_CHK_CCA BIT(0)
#define R_BE_RCR 0x11400
#define R_BE_RCR_C1 0x15400
#define B_BE_BUSY_CHKSN BIT(15)