Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp10027973rwb; Thu, 24 Nov 2022 23:32:52 -0800 (PST) X-Google-Smtp-Source: AA0mqf70rOvHl35dG2VJLYlE54TayaF2rJpMNq4Ebup3ss+6KSgBEYYYmNZayyzEIgeqXKWiX1NT X-Received: by 2002:a17:907:8b13:b0:781:541:6599 with SMTP id sz19-20020a1709078b1300b0078105416599mr18649528ejc.45.1669361572034; Thu, 24 Nov 2022 23:32:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669361572; cv=none; d=google.com; s=arc-20160816; b=eNS6ZXB07/AV4ElKtGG+MOJXDLdYjk78qhP7UDsWKLYSd0BFfukb1Mxb/BXjiLPTX5 0SSai0dMSVpxx4PCxepfe8KSCCFAHqSkFMoKdkOEU0pNEmKJpcn6eXYPLmQreI2tXM7r 9L4vGNIc6DoZbw6OTn7m7Han0hcj+3KX4evjRuQJ8rchUbx+sgtcogKWBUOAh0QHsaBx BG2x1BvR7N98PmbvY6LM7wNRTy0SsjZZ0DZSPmJXuYbquWp2eGysiFc/V2kfHraksUPt j6oldPCCJ2IzkGpV5sdvSCrv4ucPtziHn67X0VsSsVu4OOnF3cIV9K8M+Cls7SmDXd+S TPEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :authenticated-by; bh=9JZ4EzVE0nkZtZnd0+8ReFwUyYDtMq749quTDHelFNM=; b=K1Mcc0n0xx6ipsfFy4o/h5g2so4q9esPckiMFxePm8sdfkU0idnILv5+GzUfwwIKDL G6EJjKjEg1qufaO2S5abWsYLFgSGAQSnJWdek0uvdTqDf4sipYIjMdgFrgPG1aC6SxHl 1/p1xsJugqCTTzqRI9WwPsnBYmvRQLzvUBXV128/pucCoJeSbph7YyEd2zM1KsomBcCr q/jzsmg2ph3q6n1EImQ0LBzZBJ/gDjw+YzAu47df3NjFjXilHj8hSmb3fQ2WY6eiRMQF sw5yjZEmwOPLdTGRhAyHomJl1ykmx2RbK+qRNTE6X15tfkUhW4YbtRnlnZQQh7Gjgr2P whhw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g18-20020a50d0d2000000b0046233b758d6si2981085edf.81.2022.11.24.23.32.35; Thu, 24 Nov 2022 23:32:52 -0800 (PST) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229698AbiKYHZc (ORCPT + 67 others); Fri, 25 Nov 2022 02:25:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49868 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229609AbiKYHZ3 (ORCPT ); Fri, 25 Nov 2022 02:25:29 -0500 Received: from rtits2.realtek.com.tw (rtits2.realtek.com [211.75.126.72]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 2D7872DAAB for ; Thu, 24 Nov 2022 23:25:26 -0800 (PST) Authenticated-By: X-SpamFilter-By: ArmorX SpamTrap 5.77 with qID 2AP7OWblC004912, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtexh36506.realtek.com.tw[172.21.6.27]) by rtits2.realtek.com.tw (8.15.2/2.81/5.90) with ESMTPS id 2AP7OWblC004912 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=FAIL); Fri, 25 Nov 2022 15:24:32 +0800 Received: from RTEXMBS04.realtek.com.tw (172.21.6.97) by RTEXH36506.realtek.com.tw (172.21.6.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.9; Fri, 25 Nov 2022 15:25:15 +0800 Received: from localhost (172.21.69.188) by RTEXMBS04.realtek.com.tw (172.21.6.97) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.7; Fri, 25 Nov 2022 15:25:14 +0800 From: Ping-Ke Shih To: CC: , Subject: [PATCH 3/3] wifi: rtw89: 8852b: turn off PoP function in monitor mode Date: Fri, 25 Nov 2022 15:24:16 +0800 Message-ID: <20221125072416.94752-4-pkshih@realtek.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221125072416.94752-1-pkshih@realtek.com> References: <20221125072416.94752-1-pkshih@realtek.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [172.21.69.188] X-ClientProxiedBy: RTEXMBS02.realtek.com.tw (172.21.6.95) To RTEXMBS04.realtek.com.tw (172.21.6.97) X-KSE-ServerInfo: RTEXMBS04.realtek.com.tw, 9 X-KSE-AntiSpam-Interceptor-Info: trusted connection X-KSE-Antiphishing-Info: Clean X-KSE-Antiphishing-ScanningType: Deterministic X-KSE-Antiphishing-Method: None X-KSE-Antiphishing-Bases: 11/25/2022 07:02:00 X-KSE-AttachmentFiltering-Interceptor-Info: no applicable attachment filtering rules found X-KSE-Antivirus-Interceptor-Info: scan successful X-KSE-Antivirus-Info: =?big5?B?Q2xlYW4sIGJhc2VzOiAyMDIyLzExLzI1IKRXpMggMDQ6MTA6MDA=?= X-KSE-BulkMessagesFiltering-Scan-Result: protection disabled X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org PoP stands for Packet on Packet that can improve performance in noisy environment, but it could get RX stuck suddenly. In normal mode, firmware can help to resolve the stuck, but firmware doesn't work in monitor mode. Therefore, turn off PoP to avoid RX stuck. Signed-off-by: Ping-Ke Shih --- drivers/net/wireless/realtek/rtw89/reg.h | 2 ++ drivers/net/wireless/realtek/rtw89/rtw8852b.c | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/drivers/net/wireless/realtek/rtw89/reg.h b/drivers/net/wireless/realtek/rtw89/reg.h index dbe06542f443f..f2634062f377d 100644 --- a/drivers/net/wireless/realtek/rtw89/reg.h +++ b/drivers/net/wireless/realtek/rtw89/reg.h @@ -4236,6 +4236,8 @@ #define R_P1_NBIIDX 0x4770 #define B_P1_NBIIDX_VAL GENMASK(11, 0) #define B_P1_NBIIDX_NOTCH_EN BIT(12) +#define R_PKT_CTRL 0x47D4 +#define B_PKT_POP_EN BIT(8) #define R_SEG0R_PD 0x481C #define R_SEG0R_PD_V1 0x4860 #define B_SEG0R_PD_SPATIAL_REUSE_EN_MSK_V1 BIT(30) diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852b.c b/drivers/net/wireless/realtek/rtw89/rtw8852b.c index 2d4d572dc601f..b635ac1d1ca2f 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852b.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852b.c @@ -1411,6 +1411,12 @@ static void rtw8852b_bb_sethw(struct rtw89_dev *rtwdev) rtw89_phy_read32_mask(rtwdev, R_P1_RPL1, B_P0_RPL1_BIAS_MASK); } +static void rtw8852b_bb_set_pop(struct rtw89_dev *rtwdev) +{ + if (rtwdev->hw->conf.flags & IEEE80211_CONF_MONITOR) + rtw89_phy_write32_clr(rtwdev, R_PKT_CTRL, B_PKT_POP_EN); +} + static void rtw8852b_set_channel_bb(struct rtw89_dev *rtwdev, const struct rtw89_chan *chan, enum rtw89_phy_idx phy_idx) { @@ -1441,6 +1447,7 @@ static void rtw8852b_set_channel_bb(struct rtw89_dev *rtwdev, const struct rtw89 rtw89_phy_write32_mask(rtwdev, R_MAC_PIN_SEL, B_CH_IDX_SEG0, chan->primary_channel); rtw8852b_5m_mask(rtwdev, chan, phy_idx); + rtw8852b_bb_set_pop(rtwdev); rtw8852b_bb_reset_all(rtwdev, phy_idx); } -- 2.25.1