Re: [PATCH v2 1/4] spi: s3c64xx: changed to PIO mode if there is no DMA

From: Krzysztof Kozlowski
Date: Wed Apr 19 2023 - 04:04:02 EST


On 19/04/2023 08:06, Jaewon Kim wrote:
> Polling mode supported with qurik if there was no DMA in the SOC.

typo: quirk
You missed verb in your first part of sentence. I don't understand it.

> However, there are cased where we cannot or do not want to use DMA.
> To support this case, if DMA is not set, it is switched to polling mode.
>
> Signed-off-by: Jaewon Kim <jaewon02.kim@xxxxxxxxxxx>
> ---
> drivers/spi/spi-s3c64xx.c | 8 ++++++--
> include/linux/platform_data/spi-s3c64xx.h | 1 +
> 2 files changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c
> index 71d324ec9a70..273aa02322d9 100644
> --- a/drivers/spi/spi-s3c64xx.c
> +++ b/drivers/spi/spi-s3c64xx.c
> @@ -19,7 +19,6 @@
> #include <linux/platform_data/spi-s3c64xx.h>
>
> #define MAX_SPI_PORTS 12
> -#define S3C64XX_SPI_QUIRK_POLL (1 << 0)
> #define S3C64XX_SPI_QUIRK_CS_AUTO (1 << 1)
> #define AUTOSUSPEND_TIMEOUT 2000
>
> @@ -116,7 +115,7 @@
> #define S3C64XX_SPI_TRAILCNT S3C64XX_SPI_MAX_TRAILCNT
>
> #define msecs_to_loops(t) (loops_per_jiffy / 1000 * HZ * t)
> -#define is_polling(x) (x->port_conf->quirks & S3C64XX_SPI_QUIRK_POLL)
> +#define is_polling(x) (x->cntrlr_info->polling)
>
> #define RXBUSY (1<<2)
> #define TXBUSY (1<<3)
> @@ -1067,6 +1066,11 @@ static struct s3c64xx_spi_info *s3c64xx_spi_parse_dt(struct device *dev)
> sci->num_cs = temp;
> }
>
> + if (!of_find_property(dev->of_node, "dmas", NULL)) {
> + dev_warn(dev, "cannot find DMA, changed to PIO mode\n");

You said it is desired option, so should not be a warning. I would make
it debug at most.

> + sci->polling = 1;



Best regards,
Krzysztof