lkml.org 
[lkml]   [2020]   [Jun]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectRE: [PATCH v1 RFC 1/2] spi: introduce fallback to pio
Date
On 2020/06/15 22:56 Mark Brown <broonie@kernel.org> wrote: 
> On Mon, Jun 15, 2020 at 02:53:29PM +0000, Robin Gong wrote:
> > Do you mean spi-imx.c checking 'ctlr->flags' before return such error code?
> > Or just like below done in spi.c.
>
> No, I mean passing in an additional argument which can provide richer data
> than trying to smash things into the return value.
Okay, how about adding this additional argument in struct spi_transfer like below?
diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h
index 95291fe4..7c19099 100644
--- a/include/linux/spi/spi.h
+++ b/include/linux/spi/spi.h
@@ -943,6 +943,9 @@ struct spi_transfer {
bool timestamped;

struct list_head transfer_list;
+
+#define SPI_TRANS_DMA_PREP_FAIL BIT(3) /* prepare dma failed */
+ u16 flags;
};

While spi core checking it as below after it set in spi-imx.c:
fallback_pio:
ret = ctlr->transfer_one(ctlr, msg->spi, xfer);
if (ret < 0) {
if (ctlr->cur_msg_mapped &&
(xfer->flags & SPI_TRANS_DMA_PREP_FAIL)) {
__spi_unmap_msg(ctlr, msg);
ctlr->fallback = true;
xfer->flags &= ~SPI_TRANS_DMA_PREP_FAIL;
goto fallback_pio;
}
\
 
 \ /
  Last update: 2020-06-16 04:04    [W:0.239 / U:0.188 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site