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:3.072 / U:0.204 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site