mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
wifi: rtw88: 8822c: use fixed rate and bandwidth to reply CSI packets
AP could trigger beamform and send NDPA packet with 6Mbps rate on bandwidth 80MHz, but RTL8822C can't reply CSI packet with the same setting. Therefore, force to use OFDM rate and bandwidth 20MHz instead. Signed-off-by: Chin-Yen Lee <timlee@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/20251027070259.18931-1-pkshih@realtek.com
This commit is contained in:
committed by
Ping-Ke Shih
parent
0d971ffdae
commit
71ee0d5659
@@ -124,8 +124,11 @@ void rtw_bf_init_bfer_entry_mu(struct rtw_dev *rtwdev,
|
||||
void rtw_bf_cfg_sounding(struct rtw_dev *rtwdev, struct rtw_vif *vif,
|
||||
enum rtw_trx_desc_rate rate)
|
||||
{
|
||||
u8 csi_rsc = CSI_RSC_FOLLOW_RX_PACKET_BW;
|
||||
u32 psf_ctl = 0;
|
||||
u8 csi_rsc = 0x1;
|
||||
|
||||
if (rtwdev->chip->id == RTW_CHIP_TYPE_8822C)
|
||||
csi_rsc = CSI_RSC_PRIMARY_20M_BW;
|
||||
|
||||
psf_ctl = rtw_read32(rtwdev, REG_BBPSF_CTRL) |
|
||||
BIT_WMAC_USE_NDPARATE |
|
||||
@@ -387,6 +390,9 @@ void rtw_bf_cfg_csi_rate(struct rtw_dev *rtwdev, u8 rssi, u8 cur_rate,
|
||||
csi_cfg = rtw_read32(rtwdev, REG_BBPSF_CTRL) & ~BIT_MASK_CSI_RATE;
|
||||
cur_rrsr = rtw_read16(rtwdev, REG_RRSR);
|
||||
|
||||
if (rtwdev->chip->id == RTW_CHIP_TYPE_8822C)
|
||||
csi_cfg |= BIT_CSI_FORCE_RATE;
|
||||
|
||||
if (rssi >= 40) {
|
||||
if (cur_rate != DESC_RATE54M) {
|
||||
cur_rrsr |= BIT(DESC_RATE54M);
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#define BIT_SHIFT_R_MU_RL 12
|
||||
#define BIT_SHIFT_WMAC_TXMU_ACKPOLICY 4
|
||||
#define BIT_SHIFT_CSI_RATE 24
|
||||
#define BIT_CSI_FORCE_RATE BIT(15)
|
||||
|
||||
#define BIT_MASK_R_MU_RL (R_MU_RL << BIT_SHIFT_R_MU_RL)
|
||||
#define BIT_MASK_R_MU_TABLE_VALID 0x3f
|
||||
@@ -48,6 +49,12 @@
|
||||
#define RTW_SND_CTRL_REMOVE 0x98
|
||||
#define RTW_SND_CTRL_SOUNDING 0x9B
|
||||
|
||||
enum csi_rsc {
|
||||
CSI_RSC_PRIMARY_20M_BW = 0,
|
||||
CSI_RSC_FOLLOW_RX_PACKET_BW = 1,
|
||||
CSI_RSC_DUPLICATE_MODE = 2,
|
||||
};
|
||||
|
||||
enum csi_seg_len {
|
||||
HAL_CSI_SEG_4K = 0,
|
||||
HAL_CSI_SEG_8K = 1,
|
||||
|
||||
Reference in New Issue
Block a user