Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2835892pxv; Mon, 12 Jul 2021 03:08:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJydUwDSA+Gb9W91o/EwmgS+A/5I9TwdtTMWjlyYjkGTyhxnnsL0PoIKu3Ai0+igKB7nDBFt X-Received: by 2002:a5d:8996:: with SMTP id m22mr38205022iol.6.1626084494786; Mon, 12 Jul 2021 03:08:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626084494; cv=none; d=google.com; s=arc-20160816; b=Hs1l+aD6NREI45zXh2iorTykfwqr0UElNnsK+N0xskgy43LRiTFUNx0M1ANa7uLqis 2G0AjZzfzmk7AnUQvoZlpIukdFjy12NvfhpgBg82/EYwPZP5gKy5aXVugOHJxVC3rqF2 712pwyzu8hAodPEjdsuN1OVRFI6wgZuzlPXku5eI7SWrsr31KzT0WTwNRJ5Id7p2J4Ys Y2+syvzDV5sK+1GH3XGoZj5MfYIdH2xMiC1MkfFooo+6lmBtSTD45FpZB5UDr8KiM2ek R+GMe6RnLaQJh+Nagtu2DdePzHW3dn8UltLoSKG2fSdS3++MTD7i3B3CuYXQ0Xyqb6hv TSrg== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=kED2gCLAy0bhgb6Gc2OwQgYpFTxIWQoN6E4AoL9hujw=; b=Peu/x+1kWlypmF2TpbNxo60KjkNTIbYmH9HCxuIxC4OzZL3xAOCYtVjHVLVQKM4TXZ 3a7+O93+OtXpbA5VDcdvqDQIEwPZj3cYfeYzMk0x6Gy73PY7unTuQfbFq6sOgiJQuTsJ PsHVZ1jr0lDVZ5bzFOrT4jhGOueOcQGNhscDG9N69jw82wjONZdu6lEgNI+SD2dtcJYJ H5NgxPTXrwKiAyj0jifPz8J+PW1Yjx5UYP/5D9cVhrWR6TeVjujC4sFJh7igsKTl5wba ua6AtgSRweayMmaW3PDDZlRac5FK3PCs8/TxbY9sNKcAEnZpUtAGt6ljWhd0qZfDVysT N4Gw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=OIX9bSYH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w5si6202157ilu.14.2021.07.12.03.08.03; Mon, 12 Jul 2021 03:08:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=OIX9bSYH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1350747AbhGLHvQ (ORCPT + 99 others); Mon, 12 Jul 2021 03:51:16 -0400 Received: from mail.kernel.org ([198.145.29.99]:46542 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241863AbhGLHQq (ORCPT ); Mon, 12 Jul 2021 03:16:46 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 65A2861166; Mon, 12 Jul 2021 07:13:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626074023; bh=yJcSW5A/JrH7Vk7WKVMGyO6xZMu5aSJE2TTTdO3+DHM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OIX9bSYHSBXGNeSPcWrY82H1eCZxhFPgUGsFgfW8J3eyc1/lzgbx2wUX7Apm+duMU Iv/WfQ/kl8jUNxXIknPZ1vCrilQ22HqOMg+qOHvPJC/stIwa07mnPGEEnFZ90kzh7m qyI6b7+WfpqjQ0/DBJiLPu+BOsKDItGnOmqKrW+0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Lorenzo Bianconi , Sean Wang , Felix Fietkau , Sasha Levin Subject: [PATCH 5.12 436/700] mt76: mt7921: consider the invalid value for to_rssi Date: Mon, 12 Jul 2021 08:08:39 +0200 Message-Id: <20210712061022.833057801@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210712060924.797321836@linuxfoundation.org> References: <20210712060924.797321836@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sean Wang [ Upstream commit edb5aebc1c3db312e74e1dcf75b8626ee5300596 ] It is possible the RCPI from the certain antenna is an invalid value, especially packets are receiving while the system is frequently entering deep sleep mode, so consider calculating RSSI with the reasonable upper bound to avoid report the wrong value to the mac80211 layer. Fixes: 163f4d22c118 ("mt76: mt7921: add MAC support") Reviewed-by: Lorenzo Bianconi Signed-off-by: Sean Wang Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin --- drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mac.c b/drivers/net/wireless/mediatek/mt76/mt7921/mac.c index ce4eae7f1e44..39be2e396269 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7921/mac.c +++ b/drivers/net/wireless/mediatek/mt76/mt7921/mac.c @@ -420,16 +420,19 @@ int mt7921_mac_fill_rx(struct mt7921_dev *dev, struct sk_buff *skb) status->chain_signal[1] = to_rssi(MT_PRXV_RCPI1, v1); status->chain_signal[2] = to_rssi(MT_PRXV_RCPI2, v1); status->chain_signal[3] = to_rssi(MT_PRXV_RCPI3, v1); - status->signal = status->chain_signal[0]; - - for (i = 1; i < hweight8(mphy->antenna_mask); i++) { - if (!(status->chains & BIT(i))) + status->signal = -128; + for (i = 0; i < hweight8(mphy->antenna_mask); i++) { + if (!(status->chains & BIT(i)) || + status->chain_signal[i] >= 0) continue; status->signal = max(status->signal, status->chain_signal[i]); } + if (status->signal == -128) + status->flag |= RX_FLAG_NO_SIGNAL_VAL; + stbc = FIELD_GET(MT_PRXV_STBC, v0); gi = FIELD_GET(MT_PRXV_SGI, v0); cck = false; -- 2.30.2