[PATCH] wifi: mt76: mt7915: add chip id condition in mt7915_check_eeprom()
Shayne Chen (陳軒丞)
Shayne.Chen at mediatek.com
Thu Dec 15 19:43:44 PST 2022
On Fri, 2022-12-09 at 10:14 +1100, Julian Calaby wrote:
> Hi Shayne,
>
> On Fri, Dec 9, 2022 at 3:06 AM Shayne Chen <shayne.chen at mediatek.com>
> wrote:
> >
> > When flash mode is enabled, and the eeprom data in the flash is not
> > for
> > the current chipset, it'll still be checked valid, and the default
> > eeprom bin won't be loaded.
> > (e.g., mt7915 NIC inserted with mt7916 eeprom data in the flash.)
> >
> > Fix this kind of case by adding chip id into consideration in
> > mt7915_check_eeprom().
> >
> > Reported-by: Cheng-Ji Li <cheng-ji.li at mediatek.com>
> > Signed-off-by: Shayne Chen <shayne.chen at mediatek.com>
> > ---
> > drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c | 12 +++++-----
> > --
> > 1 file changed, 5 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
> > b/drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
> > index 59069fb86414..e21aa03c85b1 100644
> > --- a/drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
> > +++ b/drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
> > @@ -33,14 +33,12 @@ static int mt7915_check_eeprom(struct
> > mt7915_dev *dev)
> > u8 *eeprom = dev->mt76.eeprom.data;
> > u16 val = get_unaligned_le16(eeprom);
> >
> > - switch (val) {
> > - case 0x7915:
> > - case 0x7916:
> > - case 0x7986:
> > + if ((is_mt7915(&dev->mt76) && val == 0x7915) ||
> > + (is_mt7916(&dev->mt76) && val == 0x7916) ||
> > + (is_mt7986(&dev->mt76) && val == 0x7986))
> > return 0;
> > - default:
> > - return -EINVAL;
> > - }
> > +
> > + return -EINVAL;
>
> If this returned a bool, you could write this as:
>
> switch (val) {
> case 0x7915:
> return is_mt7915(&dev->mt76);
> }
>
> Thanks,
>
Hi Julian,
Thanks for your comment.
This function returns 0 on success and -EINVAL on fail, so I'll add a
macro to convert the return value in v2.
Regards,
Shayne
More information about the Linux-mediatek
mailing list