Re: [PATCH] spi: dw: Add deferred controller registration support

From: Serge Semin
Date: Mon Aug 22 2022 - 18:01:46 EST


On Tue, Aug 23, 2022 at 12:38:45AM +0300, Andy Shevchenko wrote:
> On Mon, Aug 22, 2022 at 9:19 PM Serge Semin
> <Sergey.Semin@xxxxxxxxxxxxxxxxxxxx> wrote:
> >
> > It's pretty possible to have the spi_register_controller() method
> > returning -EPROBE_DEFER status in case, for instance, if the GPIOs used
> > for the CS implementation aren't ready to be requested due to the
> > corresponding platform devices still pending to be probed. Let's make sure
> > the DW SSI driver won't print error message in that case by calling the
> > dev_err_probe() function if the SPI-registration procedure exited with
> > a non-zero status.
>

> Shouldn't there be a Fixes tag?
>

The dev_err-line has been there since the driver was born in commit
e24c74527207 ("spi: controller driver for Designware SPI core") ,
which had happened for several years before the deferred probe was
added d1c3414c2a9d ("drivercore: Add driver probe deferral
mechanism"). Moreover I didn't think it was that much critical to have
the patch backported since the discovered problem just caused a false
error message logged. So IMO the fixes tag wasn't that much required
in this case.

Anyway if Mark decides, that it still would be good to have the patch
backported, here is the fixes tag which could be added during the
patch merging in:
Fixes: e24c74527207 ("spi: controller driver for Designware SPI core")

> Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx>

Thanks.

-Sergey

>
> > Signed-off-by: Serge Semin <Sergey.Semin@xxxxxxxxxxxxxxxxxxxx>
> > ---
> > drivers/spi/spi-dw-core.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/spi/spi-dw-core.c b/drivers/spi/spi-dw-core.c
> > index f87d97ccd2d6..99edddf9958b 100644
> > --- a/drivers/spi/spi-dw-core.c
> > +++ b/drivers/spi/spi-dw-core.c
> > @@ -955,7 +955,7 @@ int dw_spi_add_host(struct device *dev, struct dw_spi *dws)
> >
> > ret = spi_register_controller(master);
> > if (ret) {
> > - dev_err(&master->dev, "problem registering spi master\n");
> > + dev_err_probe(dev, ret, "problem registering spi master\n");
> > goto err_dma_exit;
> > }
> >
> > --
> > 2.35.1
> >
>
>
> --
> With Best Regards,
> Andy Shevchenko