]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: rtw89: Configure scan band when mlo_dbcc_mode changes
authorPo-Hao Huang <phhuang@realtek.com>
Mon, 28 Apr 2025 11:24:51 +0000 (19:24 +0800)
committerPing-Ke Shih <pkshih@realtek.com>
Mon, 5 May 2025 01:46:52 +0000 (09:46 +0800)
Previously only the first band is used for scanning. With MLO, update
scan parameters accordingly by so we can choose to scan from either band.
C2H event return value reflects current scanning band, mask it out so
we don't treat correct return value as fail.

Signed-off-by: Po-Hao Huang <phhuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20250428112456.13165-6-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/fw.c
drivers/net/wireless/realtek/rtw89/fw.h
drivers/net/wireless/realtek/rtw89/mac.c

index ba771a95b1cbc36b1e8359113924f938af399d46..6a398355d2e48ab231eec1e77cafb5691b531681 100644 (file)
@@ -5753,7 +5753,7 @@ flex_member:
                                            RTW89_H2C_SCANOFLD_BE_OPCH_W2_PKTS_CTRL) |
                           le32_encode_bits(0,
                                            RTW89_H2C_SCANOFLD_BE_OPCH_W2_SW_DEF) |
-                          le32_encode_bits(2,
+                          le32_encode_bits(rtw89_is_mlo_1_1(rtwdev) ? 1 : 2,
                                            RTW89_H2C_SCANOFLD_BE_OPCH_W2_SS);
 
                opch->w3 = le32_encode_bits(RTW89_SCANOFLD_PKT_NONE,
index 0d89083df49ad672bc75f202ea55cb0737e56f9b..dd085a46b9e37c6e9c397f915fd8c1c4eb580801 100644 (file)
@@ -3562,6 +3562,7 @@ struct rtw89_c2h_done_ack {
 #define RTW89_C2H_DONE_ACK_W2_CLASS GENMASK(7, 2)
 #define RTW89_C2H_DONE_ACK_W2_FUNC GENMASK(15, 8)
 #define RTW89_C2H_DONE_ACK_W2_H2C_RETURN GENMASK(23, 16)
+#define        RTW89_C2H_SCAN_DONE_ACK_RETURN GENMASK(5, 0)
 #define RTW89_C2H_DONE_ACK_W2_H2C_SEQ GENMASK(31, 24)
 
 #define RTW89_GET_MAC_C2H_REV_ACK_CAT(c2h) \
index 592fbb6d27285a72572ccdcdc088a0b648cebef3..449865f7b7a95c275b505bee7b287cfa3d81903c 100644 (file)
@@ -5118,12 +5118,14 @@ rtw89_mac_c2h_done_ack(struct rtw89_dev *rtwdev, struct sk_buff *skb_c2h, u32 le
                        return;
                case H2C_FUNC_ADD_SCANOFLD_CH:
                        cond = RTW89_SCANOFLD_WAIT_COND_ADD_CH;
+                       h2c_return &= RTW89_C2H_SCAN_DONE_ACK_RETURN;
                        break;
                case H2C_FUNC_SCANOFLD:
                        cond = RTW89_SCANOFLD_WAIT_COND_START;
                        break;
                case H2C_FUNC_SCANOFLD_BE:
                        cond = RTW89_SCANOFLD_BE_WAIT_COND_START;
+                       h2c_return &= RTW89_C2H_SCAN_DONE_ACK_RETURN;
                        break;
                }