[PATCH] spi: rockchip: return 0 if tx_buf and rx_buf are NULL

Dmitry Torokhov dmitry.torokhov at gmail.com
Thu Aug 14 13:09:36 PDT 2014


Hi Addy,

On Thu, Aug 14, 2014 at 08:52:24AM +0800, Addy Ke wrote:
> To do so, spi communication can use an empty buf to pull up CS.
> 
> This patch merged from ChromiumOS tree.
> Cros_ec use this function to turn off CS and add a delay to ensure
> the rising edge doesn't come too soon after the end of the data.
> 
> Tested-by: Doug Anderson <dianders at chromium.org>
> Signed-off-by: Doug Anderson <dianders at chromium.org>
> Signed-off-by: Addy Ke <addy.ke at rock-chips.com>
> ---
>  drivers/spi/spi-rockchip.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/spi/spi-rockchip.c b/drivers/spi/spi-rockchip.c
> index 72fb287..1e3bcfa 100644
> --- a/drivers/spi/spi-rockchip.c
> +++ b/drivers/spi/spi-rockchip.c
> @@ -511,8 +511,8 @@ static int rockchip_spi_transfer_one(struct spi_master *master,
>  	WARN_ON((readl_relaxed(rs->regs + ROCKCHIP_SPI_SR) & SR_BUSY));
>  
>  	if (!xfer->tx_buf && !xfer->rx_buf) {
> -		dev_err(rs->dev, "No buffer for transfer\n");
> -		return -EINVAL;
> +		dev_dbg(rs->dev, "No buffer for transfer\n");
> +		return 0;
>  	}

Maybe we should only return 0 if xfer->len is also 0, otherwise keep
complaining loudly?

	if (!xfer->tx_buf && !xfer->rx_buf) {
		if (xfer->len == 0)
			return 0;

		dev_err(rs->dev, "Missing transfer buffer\n");
		return -EINVAL;
	}

Thanks.

-- 
Dmitry



More information about the linux-arm-kernel mailing list