Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp4359359pxp; Tue, 15 Mar 2022 19:29:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwg4Z1LXBBfp9BctPpwmkl1LMabqmRXQnONRSTERKjk0wy9+UkDytZ9wrw+jfICc5e86zFf X-Received: by 2002:a65:5bc3:0:b0:378:4f82:d73d with SMTP id o3-20020a655bc3000000b003784f82d73dmr26934290pgr.191.1647397795597; Tue, 15 Mar 2022 19:29:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647397795; cv=none; d=google.com; s=arc-20160816; b=zPJKnA4Ut0TsmOW/Pw89GtjpuoSCTAF8kuUTvzkGXwyAbIaNnqfAu4NiPoNlvnkwbQ PufO0gw8BklNQRX+gXysQYTQKfX7q5T1XWQKajBTeT7wGBOMke2Rheut7NvflZcjY8d1 rE/5/2wBu1ReU7O/7txt2gJwIFTwuCn2ohI3UhRIwNOlbvi+AZrvQHNdStsEKGyu0Cxs K5PW/6uD5TrYESdekEtoPXG9jgM3VNrukdVoEsR922BGjb7S9/DCXQI2cASwYnY0gvFE Bid9o8cTHktFQBzS/VGbqfYgaHKD/gJGHJmVnARfEuuMfa0w2tsWol0/tSn2cG98fDEo jFEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:cc:to:from; bh=bsSvRw/Pl/Ch30v5onTt6ceC/+L6AssTYaGFIBnrvUo=; b=pH109qG2Xkg7M4p5raLKPUfeVRtbMPnanlcEUGQZxJzGZjDT8sRS7y4yrWhzaW8AJD lSpkYWzzOwXuZbNiel2T47LkytzMfVg2p2XI8vYURpWzipqB4+aN0wQxC1IGjSV0bxkW JWP13W0Autm/CnrbufZ4GYbEXKkTsVdWYzbCKLJwB1qwFrn7Ctro8/CvJF85EAM58aYy 8NKxd1+TvV6H1NDsQolR1e92xQq3cPw8ImQa8ZsaVCOGAYfP02Rii6aL0WOS64fg7QnN sX2uoIMdQw8Bhy368qIgRaeS+laWlWu2mtYDAa3a8MfqgKfo/w6yil828B1/PX5LNR2n B5oA== 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; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p13-20020a17090adf8d00b001c6363b0c53si3591353pjv.117.2022.03.15.19.29.40; Tue, 15 Mar 2022 19:29:55 -0700 (PDT) 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; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349427AbiCOT0b (ORCPT + 70 others); Tue, 15 Mar 2022 15:26:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45538 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345075AbiCOT03 (ORCPT ); Tue, 15 Mar 2022 15:26:29 -0400 Received: from mailgw02.mediatek.com (unknown [210.61.82.184]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 024FDDF78 for ; Tue, 15 Mar 2022 12:25:12 -0700 (PDT) X-UUID: b4bab388bb5e49adb12f12719c61ab7d-20220316 X-UUID: b4bab388bb5e49adb12f12719c61ab7d-20220316 Received: from mtkexhb01.mediatek.inc [(172.21.101.102)] by mailgw02.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 489296570; Wed, 16 Mar 2022 03:25:06 +0800 Received: from mtkcas10.mediatek.inc (172.21.101.39) by mtkmbs07n1.mediatek.inc (172.21.101.16) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 16 Mar 2022 03:25:04 +0800 Received: from mtkswgap22.mediatek.inc (172.21.77.33) by mtkcas10.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 16 Mar 2022 03:25:04 +0800 From: To: , CC: , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH] mt76: mt7921: don't enable beacon filter when IEEE80211_CONF_CHANGE_MONITOR is set Date: Wed, 16 Mar 2022 03:25:03 +0800 Message-ID: X-Mailer: git-send-email 1.7.9.5 MIME-Version: 1.0 Content-Type: text/plain X-MTK: N X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_00,MAY_BE_FORGED, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE,T_SPF_TEMPERROR,UNPARSEABLE_RELAY autolearn=no 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 From: Sean Wang IEEE80211_CONF_CHANGE_MONITOR would be set every time even when vif runs as sta mode. If vif runs as sta mode, the beacon filter would be falsely enabled earlier than the associated state. That is not the behavior the firmware expects and also breaks the original logic of sta mode. Thus, we only limit the operation to set the beacon filter only for monitor mode when IEEE80211_CONF_CHANGE_MONITOR is set. Fixes: 4ad65a54617c ("mt76: mt7921: toggle runtime-pm adding a monitor vif") Signed-off-by: Sean Wang --- drivers/net/wireless/mediatek/mt76/mt7921/main.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/main.c b/drivers/net/wireless/mediatek/mt76/mt7921/main.c index e5dcf1615f17..cfa813bd627a 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7921/main.c +++ b/drivers/net/wireless/mediatek/mt76/mt7921/main.c @@ -484,9 +484,17 @@ mt7921_sniffer_interface_iter(void *priv, u8 *mac, struct ieee80211_vif *vif) { struct mt7921_dev *dev = priv; struct ieee80211_hw *hw = mt76_hw(dev); - bool enabled = !!(hw->conf.flags & IEEE80211_CONF_MONITOR); + struct mt76_connac_pm *pm = &dev->pm; + bool monitor = !!(hw->conf.flags & IEEE80211_CONF_MONITOR); + + mt7921_mcu_set_sniffer(dev, vif, monitor); + pm->enable = !monitor; + pm->ds_enable = !monitor; + + mt76_connac_mcu_set_deep_sleep(&dev->mt76, pm->ds_enable); - mt7921_mcu_set_sniffer(dev, vif, enabled); + if (monitor) + mt7921_mcu_set_beacon_filter(dev, vif, false); } void mt7921_set_runtime_pm(struct mt7921_dev *dev) @@ -530,7 +538,6 @@ static int mt7921_config(struct ieee80211_hw *hw, u32 changed) IEEE80211_IFACE_ITER_RESUME_ALL, mt7921_sniffer_interface_iter, dev); dev->mt76.rxfilter = mt76_rr(dev, MT_WF_RFCR(0)); - mt7921_set_runtime_pm(dev); } out: -- 2.25.1