| From 51727ea77bedb54a5b43cc28c9dbe6b16c51bd25 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 4 Feb 2021 13:13:13 +0100 |
| Subject: fpga: fpga-mgr: xilinx-spi: fix error messages on -EPROBE_DEFER |
| |
| From: Luca Ceresoli <luca@lucaceresoli.net> |
| |
| [ Upstream commit 484a58607a808c3721917f5ca5fba7eff809e4df ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/fpga/xilinx-spi.c | 24 +++++++++--------------- |
| 1 file changed, 9 insertions(+), 15 deletions(-) |
| |
| diff --git a/drivers/fpga/xilinx-spi.c b/drivers/fpga/xilinx-spi.c |
| index 27defa98092d..fee4d0abf6bf 100644 |
| --- a/drivers/fpga/xilinx-spi.c |
| +++ b/drivers/fpga/xilinx-spi.c |
| @@ -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", |
| -- |
| 2.30.2 |
| |