Commit 8408366f authored by Eric Huang's avatar Eric Huang Committed by Ping-Ke Shih
Browse files

wifi: rtw89: update EDCCA report for subband 40M/80M/sub-20M



EDCCA report is obtained from the hardware to display OBSS interference
and their respective power levels for each subband. Modify the query
settings to improve resolution for debugging purposes.

Signed-off-by: default avatarEric Huang <echuang@realtek.com>
Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20250618124649.11436-3-pkshih@realtek.com
parent 9c5c5a92
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -7128,7 +7128,7 @@ static void rtw89_phy_edcca_log(struct rtw89_dev *rtwdev, struct rtw89_bb_ctx *b
	const struct rtw89_edcca_p_regs *edcca_p_regs;
	bool flag_fb, flag_p20, flag_s20, flag_s40, flag_s80;
	s8 pwdb_fb, pwdb_p20, pwdb_s20, pwdb_s40, pwdb_s80;
	u8 path, per20_bitmap;
	u8 path, per20_bitmap = 0;
	u8 pwdb[8];
	u32 tmp;

@@ -7158,14 +7158,11 @@ static void rtw89_phy_edcca_log(struct rtw89_dev *rtwdev, struct rtw89_bb_ctx *b
	pwdb_fb = u32_get_bits(tmp, MASKBYTE3);

	rtw89_phy_write32_mask(rtwdev, edcca_p_regs->rpt_sel,
			       edcca_p_regs->rpt_sel_mask, 4);
			       edcca_p_regs->rpt_sel_mask, 5);
	tmp = rtw89_phy_read32(rtwdev, edcca_p_regs->rpt_b);
	pwdb_s80 = u32_get_bits(tmp, MASKBYTE1);
	pwdb_s40 = u32_get_bits(tmp, MASKBYTE2);

	per20_bitmap = rtw89_phy_read32_mask(rtwdev, edcca_p_regs->rpt_a,
					     MASKBYTE0);

	if (rtwdev->chip->chip_id == RTL8922A) {
		rtw89_phy_write32_mask(rtwdev, edcca_regs->rpt_sel_be,
				       edcca_regs->rpt_sel_be_mask, 4);
@@ -7174,6 +7171,8 @@ static void rtw89_phy_edcca_log(struct rtw89_dev *rtwdev, struct rtw89_bb_ctx *b
		pwdb[1] = u32_get_bits(tmp, MASKBYTE2);
		pwdb[2] = u32_get_bits(tmp, MASKBYTE1);
		pwdb[3] = u32_get_bits(tmp, MASKBYTE0);
		per20_bitmap = rtw89_phy_read32_mask(rtwdev, edcca_p_regs->rpt_a,
						     MASKBYTE0);

		rtw89_phy_write32_mask(rtwdev, edcca_regs->rpt_sel_be,
				       edcca_regs->rpt_sel_be_mask, 5);
@@ -7190,7 +7189,7 @@ static void rtw89_phy_edcca_log(struct rtw89_dev *rtwdev, struct rtw89_bb_ctx *b
		pwdb[1] = u32_get_bits(tmp, MASKBYTE2);

		rtw89_phy_write32_mask(rtwdev, edcca_p_regs->rpt_sel,
				       edcca_p_regs->rpt_sel_mask, 1);
				       edcca_p_regs->rpt_sel_mask, 5);
		tmp = rtw89_phy_read32(rtwdev, edcca_p_regs->rpt_a);
		pwdb[2] = u32_get_bits(tmp, MASKBYTE3);
		pwdb[3] = u32_get_bits(tmp, MASKBYTE2);