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
> 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
>