]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: rtw89: chan: simplify link handling related to ROC
authorZong-Zhe Yang <kevin_yang@realtek.com>
Tue, 10 Mar 2026 08:01:40 +0000 (16:01 +0800)
committerPing-Ke Shih <pkshih@realtek.com>
Mon, 16 Mar 2026 06:16:43 +0000 (14:16 +0800)
The original channel is swapped out for the target channel during ROC.
And, all vifs/links accessing the original channel will be marked with
off-channel. So, it doesn't seem necessary for chan.c to determine which
link instance it is.

Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260310080146.31113-8-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/chan.c
drivers/net/wireless/realtek/rtw89/core.h

index 9b2f6f0a00fd2fa86c8d873a88b34a74630359ff..def9e4f3af590b0dc561e1f75315f491d325342d 100644 (file)
@@ -276,7 +276,6 @@ void rtw89_config_roc_chandef(struct rtw89_dev *rtwdev,
                }
 
                hal->roc_chandef = *chandef;
-               hal->roc_link_index = rtw89_vif_link_inst_get_index(rtwvif_link);
        } else {
                cur = atomic_cmpxchg(&hal->roc_chanctx_idx, idx,
                                     RTW89_CHANCTX_IDLE);
@@ -389,7 +388,6 @@ const struct rtw89_chan *__rtw89_mgnt_chan_get(struct rtw89_dev *rtwdev,
        struct rtw89_hal *hal = &rtwdev->hal;
        struct rtw89_entity_mgnt *mgnt = &hal->entity_mgnt;
        enum rtw89_chanctx_idx chanctx_idx;
-       enum rtw89_chanctx_idx roc_idx;
        enum rtw89_entity_mode mode;
        u8 role_index;
 
@@ -419,15 +417,6 @@ const struct rtw89_chan *__rtw89_mgnt_chan_get(struct rtw89_dev *rtwdev,
        if (chanctx_idx == RTW89_CHANCTX_IDLE)
                goto dflt;
 
-       roc_idx = atomic_read(&hal->roc_chanctx_idx);
-       if (roc_idx != RTW89_CHANCTX_IDLE) {
-               /* ROC is ongoing (given ROC runs on @hal->roc_link_index).
-                * If @link_index is the same, get the ongoing ROC chanctx.
-                */
-               if (link_index == hal->roc_link_index)
-                       chanctx_idx = roc_idx;
-       }
-
        return rtw89_chan_get(rtwdev, chanctx_idx);
 
 dflt:
index 05f8ad6d30347e1b36104962c5935539d0d372a5..01573150ab3c31d3f83ccb6ed39ea8ed50d2ce05 100644 (file)
@@ -5170,7 +5170,6 @@ struct rtw89_hal {
        bool no_eht;
 
        atomic_t roc_chanctx_idx;
-       u8 roc_link_index;
 
        DECLARE_BITMAP(changes, NUM_OF_RTW89_CHANCTX_CHANGES);
        DECLARE_BITMAP(entity_map, NUM_OF_RTW89_CHANCTX);