Received: by 2002:a05:6a10:c7c6:0:0:0:0 with SMTP id h6csp1668471pxy; Mon, 2 Aug 2021 07:29:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy5roTEL5Vg0ZgehwohNyr76EG+ElylhF5VX1PwgrVtSctdCHqGCGn8nFUBQRIb89fux4R+ X-Received: by 2002:a05:6402:5145:: with SMTP id n5mr19529305edd.178.1627914545345; Mon, 02 Aug 2021 07:29:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627914545; cv=none; d=google.com; s=arc-20160816; b=i6cYpYAWGHSrJZj2RlJ72ACPcgTh/8qbO/gs2fkqG82+MTjYD7/ROVr4zn8N4bU5l6 9es2D93dt2Ey25c9WT4pylSv8LRYHBzkfdUdK44KxO45j19b/HVByuyjLUb5tYh75P1q +xyTZK8aZ1S4f34pW+QW2sgGJ631FpD0ZO8am+qZa6Cya6ImfGf3x+aM6wYUa650dNtn Vhfj9SbEJoTqIJJX/eKkKfo/NzFyyqexcsuQVATWtJGY9g93d9kpCEyMXVmv52LNWF2o pa6qIxb3H67zTcWHGV0qeF0HnmuQIQ2h2lv2p0POOvOBycOYQC79gYgA8OU4/b/IvTov 6hPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:subject:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:cc:to:from; bh=89fqMOMpKC05OXmh9Qw0Sja7I0KRYSRdGJWlvMy1dyc=; b=WZrclv4w7XwxgYafSkrdkH/oAXXrHFwDKLSV9anetzcy99lhjWDN0xdcecSxuVLudp t4BI3K9Vcj/m+hRFbT2QlIm7z+Bcu5pNRy05BRpeZqKBUDLRlHwBBAXLmEXZDfA0K0H9 T2AQItAYWHDgjW7oBHRu/lhfLZnPwyUU0C20OqnvUNY49gXRDNcf1+CiorRYxJxLwlR3 yIqOrMlZ0cpclmyKoVxP/3fOVWoaBZpPHx6gigRW+KfJ2/GiDjoR0B2DQf/fYbqa9iLu pI+UFGmeY1hd2CtsEdr7NYC3Y4U46hTeh3TdhaEpf5EmQiDpGRISMUscm6iqJqqZhC5n lFVA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l33si13090424ede.457.2021.08.02.07.28.42; Mon, 02 Aug 2021 07:29:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234062AbhHBO2q (ORCPT + 99 others); Mon, 2 Aug 2021 10:28:46 -0400 Received: from paleale.coelho.fi ([176.9.41.70]:50918 "EHLO farmhouse.coelho.fi" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S234057AbhHBO2p (ORCPT ); Mon, 2 Aug 2021 10:28:45 -0400 Received: from 91-156-6-193.elisa-laajakaista.fi ([91.156.6.193] helo=kveik.ger.corp.intel.com) by farmhouse.coelho.fi with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1mAYvg-001xts-U2; Mon, 02 Aug 2021 17:28:34 +0300 From: Luca Coelho To: kvalo@codeaurora.org Cc: luca@coelho.fi, linux-wireless@vger.kernel.org Date: Mon, 2 Aug 2021 17:28:20 +0300 Message-Id: X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802142829.109448-1-luca@coelho.fi> References: <20210802142829.109448-1-luca@coelho.fi> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on farmhouse.coelho.fi X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00, TVD_RCVD_IP autolearn=ham autolearn_force=no version=3.4.5-pre1 Subject: [PATCH 03/12] iwlwifi: mvm: restrict FW SMPS request Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Johannes Berg The firmware SMPS request should only be honoured if the connection is currently with HE and on 160 MHz, so check that and then potentially reapply any request if the BW changes. Signed-off-by: Johannes Berg Signed-off-by: Luca Coelho --- drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 3 +++ drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 11 +++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c index 3a7f756c4545..b2072e19b5dc 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c @@ -2440,6 +2440,9 @@ static void iwl_mvm_bss_info_changed_station(struct iwl_mvm *mvm, IWL_DEBUG_MAC80211(mvm, "arp filter changed\n"); iwl_mvm_configure_bcast_filter(mvm); } + + if (changes & BSS_CHANGED_BANDWIDTH) + iwl_mvm_apply_fw_smps_request(vif); } static int iwl_mvm_start_ap_ibss(struct ieee80211_hw *hw, diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c index 880cf2042531..564ccfbd15bd 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c @@ -214,11 +214,14 @@ void iwl_mvm_apply_fw_smps_request(struct ieee80211_vif *vif) { struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); struct iwl_mvm *mvm = mvmvif->mvm; + enum ieee80211_smps_mode mode = IEEE80211_SMPS_AUTOMATIC; - iwl_mvm_update_smps(mvm, vif, IWL_MVM_SMPS_REQ_FW, - mvm->fw_static_smps_request ? - IEEE80211_SMPS_STATIC : - IEEE80211_SMPS_AUTOMATIC); + if (mvm->fw_static_smps_request && + vif->bss_conf.chandef.width == NL80211_CHAN_WIDTH_160 && + vif->bss_conf.he_support) + mode = IEEE80211_SMPS_STATIC; + + iwl_mvm_update_smps(mvm, vif, IWL_MVM_SMPS_REQ_FW, mode); } static void iwl_mvm_intf_dual_chain_req(void *data, u8 *mac, -- 2.32.0