Message ID | efa6ba9cd8ad5124f58e05155cc05008b14c5edf.1665453585.git.ryder.lee@mediatek.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Felix Fietkau |
Headers | show |
Series | wifi: mt76: mt7915: prevent unexpected nss setting from eeprom | expand |
> 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 <ryder.lee@mediatek.com> > --- > 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 >
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);
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 <ryder.lee@mediatek.com> --- drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)