[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20200831000957.GE7421@epycbox.lan>
Date: Sun, 30 Aug 2020 17:09:57 -0700
From: Moritz Fischer <mdf@...nel.org>
To: Luca Ceresoli <luca@...aceresoli.net>
Cc: linux-fpga@...r.kernel.org, Moritz Fischer <mdf@...nel.org>,
Tom Rix <trix@...hat.com>,
Michal Simek <michal.simek@...inx.com>,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
Anatolij Gustschin <agust@...x.de>
Subject: Re: [PATCH v4 5/5] fpga manager: xilinx-spi: provide better
diagnostics on programming failure
On Sun, Aug 30, 2020 at 06:38:50PM +0200, Luca Ceresoli wrote:
> When the DONE pin does not go high after programming to confirm programming
> success, the INIT_B pin provides some info on the reason. Use it if
> available to provide a more explanatory error message.
>
> Reviewed-by: Tom Rix <trix@...hat.com>
> Signed-off-by: Luca Ceresoli <luca@...aceresoli.net>
>
> ---
>
> Changes in v4:
> - add Reviewed-by Tom Rix
>
> Changes in v3: none.
>
> Changes in v2:
> - also check for gpiod_get_value() errors (Tom Rix)
> ---
> drivers/fpga/xilinx-spi.c | 16 +++++++++++++++-
> 1 file changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/fpga/xilinx-spi.c b/drivers/fpga/xilinx-spi.c
> index 52aab5a1f0ba..824abbbd631e 100644
> --- a/drivers/fpga/xilinx-spi.c
> +++ b/drivers/fpga/xilinx-spi.c
> @@ -195,7 +195,21 @@ static int xilinx_spi_write_complete(struct fpga_manager *mgr,
> return 0;
> }
>
> - dev_err(&mgr->dev, "Timeout after config data transfer\n");
> + if (conf->init_b) {
> + ret = gpiod_get_value(conf->init_b);
> +
> + if (ret < 0) {
> + dev_err(&mgr->dev, "Error reading INIT_B (%d)\n", ret);
> + return ret;
> + }
> +
> + dev_err(&mgr->dev,
> + ret ? "CRC error or invalid device\n"
> + : "Missing sync word or incomplete bitstream\n");
> + } else {
> + dev_err(&mgr->dev, "Timeout after config data transfer\n");
> + }
> +
> return -ETIMEDOUT;
> }
>
> --
> 2.28.0
>
Applied to for-next,
Thanks
Powered by blists - more mailing lists