On Wed, Aug 21, 2024 at 08:42:33PM +0200, Marek Vasut wrote: > From: Ajay Singh <ajay.kathat@xxxxxxxxxxxxx> > > Add support for the WILC3000 chip. The chip is similar to WILC1000, > except that the register layout is slightly different and it does > not support WPA3/SAE. > > Signed-off-by: Ajay Singh <ajay.kathat@xxxxxxxxxxxxx> > Signed-off-by: Marek Vasut <marex@xxxxxxx> ... > diff --git a/drivers/net/wireless/microchip/wilc1000/sdio.c b/drivers/net/wireless/microchip/wilc1000/sdio.c > index 41122199d51eb..7b99fcc450fd3 100644 > --- a/drivers/net/wireless/microchip/wilc1000/sdio.c > +++ b/drivers/net/wireless/microchip/wilc1000/sdio.c > @@ -764,9 +764,13 @@ static int wilc_sdio_init(struct wilc *wilc, bool resume) > * make sure can read back chip id correctly > **/ > if (!resume) { > - ret = wilc_sdio_read_reg(wilc, WILC_CHIPID, &chipid); > - if (ret) { > - dev_err(&func->dev, "Fail cmd read chip id...\n"); > + chipid = wilc_get_chipid(wilc, true); > + if (is_wilc3000(chipid)) { > + wilc->chip = WILC_3000; > + } else if (is_wilc1000(chipid)) { > + wilc->chip = WILC_1000; > + } else { > + dev_err(&func->dev, "Unsupported chipid: %x\n", chipid); > return ret; Hi Marek and Ajay, It seems that with this change ret will be 0 here. Perhaps an negative error code should be returned instead? Flagged by Smatch. > } > dev_err(&func->dev, "chipid (%08x)\n", chipid); ...