On Thu, Jan 06, 2022 at 03:04:09PM +0100, Greg KH wrote: > > --- a/drivers/staging/pi433/pi433_if.c > > +++ b/drivers/staging/pi433/pi433_if.c > > @@ -1116,9 +1116,7 @@ static int pi433_probe(struct spi_device *spi) > > spi->mode, spi->bits_per_word, spi->max_speed_hz); > > > > /* Ping the chip by reading the version register */ > > - retval = spi_w8r8(spi, 0x10); > > - if (retval < 0) > > - return retval; > > + retval = rf69_get_chip_version(spi); > > This can not fail anymore, like it used to be able to. So I think you > just broke the functionality for why this call was being made in the > first place (i.e. ping the chip to see if it was alive, and fail if it > is not.) > I thought that this if statement was somewhat redudant because right after obtaining the chip version, there is a switch statement that checks if the value is what we expect or return an error otherwise. Unfortunately, in the patch file generated the whole switch statement isn't visible so I admit that it looks funny at first. I will paste the routine here: /* Ping the chip by reading the version register */ retval = rf69_get_chip_version(spi); switch (retval) { case 0x24: dev_dbg(&spi->dev, "found pi433 (ver. 0x%x)", retval); break; default: dev_dbg(&spi->dev, "unknown chip version: 0x%x", retval); return -ENODEV; } Let me know if you agree with the approach I've taken, otherwise I am more than happy to add the original if statement if you think I'm missing any edge case here. Once again, thanks for taking the time to review my patch :) thanks, Paulo A.