[PATCH v2 3/3] spi: sun6i: Use the new helper to derive the xfer timeout value
Jernej Škrabec
jernej.skrabec at gmail.com
Wed Jun 21 08:51:40 PDT 2023
Dne ponedeljek, 19. junij 2023 ob 17:53:49 CEST je Miquel Raynal napisal(a):
> A helper was recently added to the core to factorize common code between
> drivers, like the amount of time a driver should wait for a transfer to
> happen.
>
> It is of course possible to use a default value (like eg. 1s) but it is
> way stronger to adapt this amount of time to the transfer. Indeed, long
> transfers (eg. 4MiB) on a slow single-spi bus might take more than the
> usual second of timeout and prevent lengthy transfers.
>
> The core helper was heavily inspired by the logic applied in this
> driver, the only difference being the minimum amount of time which was
> enlarged from 0.1s to 0.5s.
>
> Use this helper instead of open-coding it.
>
> Signed-off-by: Miquel Raynal <miquel.raynal at bootlin.com>
Acked-by: Jernej Skrabec <jernej.skrabec at gmail.com>
Best regards,
Jernej
> ---
> drivers/spi/spi-sun6i.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/spi/spi-sun6i.c b/drivers/spi/spi-sun6i.c
> index 23ad052528db..180094dfae19 100644
> --- a/drivers/spi/spi-sun6i.c
> +++ b/drivers/spi/spi-sun6i.c
> @@ -422,7 +422,7 @@ static int sun6i_spi_transfer_one(struct spi_master *master,
> reg = sun6i_spi_read(sspi, SUN6I_TFR_CTL_REG);
> sun6i_spi_write(sspi, SUN6I_TFR_CTL_REG, reg | SUN6I_TFR_CTL_XCH);
>
> - tx_time = max(tfr->len * 8 * 2 / (tfr->speed_hz / 1000), 100U);
> + tx_time = spi_controller_xfer_timeout(master, tfr);
> start = jiffies;
> timeout = wait_for_completion_timeout(&sspi->done,
> msecs_to_jiffies(tx_time));
>
More information about the linux-arm-kernel
mailing list