fpga: fpga-mgr: xilinx-spi: fix error messages on -EPROBE_DEFER
authorLuca Ceresoli <luca@lucaceresoli.net>
Thu, 4 Feb 2021 12:13:13 +0000 (13:13 +0100)
committerMoritz Fischer <mdf@kernel.org>
Sat, 6 Mar 2021 15:39:17 +0000 (07:39 -0800)
The current code produces an error message on devm_gpiod_get() errors even
when the error is -EPROBE_DEFER, which should be silent.

This has been observed producing a significant amount of messages like:

    xlnx-slave-spi spi1.1: Failed to get PROGRAM_B gpio: -517

Fix and simplify code by using the dev_err_probe() helper function.

Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Fixes: dd2784c01d93 ("fpga manager: xilinx-spi: check INIT_B pin during write_init")
Fixes: 061c97d13f1a ("fpga manager: Add Xilinx slave serial SPI driver")
Signed-off-by: Moritz Fischer <mdf@kernel.org>
drivers/fpga/xilinx-spi.c

index 27defa98092ddce55d56d3ce3d980cc8104d7481..fee4d0abf6bfe6d349110420c60ecc854d81bf47 100644 (file)
@@ -233,25 +233,19 @@ static int xilinx_spi_probe(struct spi_device *spi)
 
        /* PROGRAM_B is active low */
        conf->prog_b = devm_gpiod_get(&spi->dev, "prog_b", GPIOD_OUT_LOW);
-       if (IS_ERR(conf->prog_b)) {
-               dev_err(&spi->dev, "Failed to get PROGRAM_B gpio: %ld\n",
-                       PTR_ERR(conf->prog_b));
-               return PTR_ERR(conf->prog_b);
-       }
+       if (IS_ERR(conf->prog_b))
+               return dev_err_probe(&spi->dev, PTR_ERR(conf->prog_b),
+                                    "Failed to get PROGRAM_B gpio\n");
 
        conf->init_b = devm_gpiod_get_optional(&spi->dev, "init-b", GPIOD_IN);
-       if (IS_ERR(conf->init_b)) {
-               dev_err(&spi->dev, "Failed to get INIT_B gpio: %ld\n",
-                       PTR_ERR(conf->init_b));
-               return PTR_ERR(conf->init_b);
-       }
+       if (IS_ERR(conf->init_b))
+               return dev_err_probe(&spi->dev, PTR_ERR(conf->init_b),
+                                    "Failed to get INIT_B gpio\n");
 
        conf->done = devm_gpiod_get(&spi->dev, "done", GPIOD_IN);
-       if (IS_ERR(conf->done)) {
-               dev_err(&spi->dev, "Failed to get DONE gpio: %ld\n",
-                       PTR_ERR(conf->done));
-               return PTR_ERR(conf->done);
-       }
+       if (IS_ERR(conf->done))
+               return dev_err_probe(&spi->dev, PTR_ERR(conf->done),
+                                    "Failed to get DONE gpio\n");
 
        mgr = devm_fpga_mgr_create(&spi->dev,
                                   "Xilinx Slave Serial FPGA Manager",