2022-10-11 02:08:57

by Ryder Lee

[permalink] [raw]
Subject: [PATCH] wifi: mt76: mt7915: prevent unexpected nss setting from eeprom

Add a check to prevent unexpected nss configuration from eeprom.

Fixes: 4d8053df67c5 ("wifi: mt76: mt7915: rework eeprom tx paths and streams init")
Signed-off-by: Ryder Lee <[email protected]>
---
drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c b/drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
index e2482c65d639..6c5155223087 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
@@ -191,7 +191,6 @@ void mt7915_eeprom_parse_hw_cap(struct mt7915_dev *dev,
path = 4;

/* read tx/rx stream */
- nss = path;
if (dev->dbdc_support) {
if (is_mt7915(&dev->mt76)) {
nss = FIELD_GET(MT_EE_WIFI_CONF3_TX_PATH_B0,
@@ -206,6 +205,11 @@ void mt7915_eeprom_parse_hw_cap(struct mt7915_dev *dev,

if (!is_mt7986(&dev->mt76))
nss_max = 2;
+
+ if (!nss)
+ nss = nss_max;
+ } else {
+ nss = path;
}

nss = min_t(u8, min_t(u8, nss_max, nss), path);
--
2.36.1


2022-10-11 07:49:42

by Lorenzo Bianconi

[permalink] [raw]
Subject: Re: [PATCH] wifi: mt76: mt7915: prevent unexpected nss setting from eeprom

> Add a check to prevent unexpected nss configuration from eeprom.

I am wondering why we need to add a check for this particular field. Is it a
well-known problem?

Regards,
Lorenzo

>
> Fixes: 4d8053df67c5 ("wifi: mt76: mt7915: rework eeprom tx paths and streams init")
> Signed-off-by: Ryder Lee <[email protected]>
> ---
> drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c b/drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
> index e2482c65d639..6c5155223087 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
> @@ -191,7 +191,6 @@ void mt7915_eeprom_parse_hw_cap(struct mt7915_dev *dev,
> path = 4;
>
> /* read tx/rx stream */
> - nss = path;
> if (dev->dbdc_support) {
> if (is_mt7915(&dev->mt76)) {
> nss = FIELD_GET(MT_EE_WIFI_CONF3_TX_PATH_B0,
> @@ -206,6 +205,11 @@ void mt7915_eeprom_parse_hw_cap(struct mt7915_dev *dev,
>
> if (!is_mt7986(&dev->mt76))
> nss_max = 2;
> +
> + if (!nss)
> + nss = nss_max;
> + } else {
> + nss = path;
> }
>
> nss = min_t(u8, min_t(u8, nss_max, nss), path);
> --
> 2.36.1
>


Attachments:
(No filename) (1.28 kB)
signature.asc (235.00 B)
Download all attachments