Search Linux Wireless

Re: [PATCH] wifi: mt76: mt7915: add chip id condition in mt7915_check_eeprom()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxx>
> 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@xxxxxxxxxxxx>
> > Signed-off-by: Shayne Chen <shayne.chen@xxxxxxxxxxxx>
> > ---
> >  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




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux