lkml.org 
[lkml]   [2013]   [Jan]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 2/4] dw_dmac: introduce total_len field in struct dw_desc
    Date
    By this new field we distinguish a total length of the chain and the individual
    length of each descriptor in the chain.

    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
    ---
    drivers/dma/dw_dmac.c | 12 ++++++------
    drivers/dma/dw_dmac_regs.h | 1 +
    2 files changed, 7 insertions(+), 6 deletions(-)

    diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c
    index e4e4ff2..7b5a088 100644
    --- a/drivers/dma/dw_dmac.c
    +++ b/drivers/dma/dw_dmac.c
    @@ -335,18 +335,18 @@ dwc_descriptor_complete(struct dw_dma_chan *dwc, struct dw_desc *desc,
    if (!(txd->flags & DMA_COMPL_SKIP_DEST_UNMAP)) {
    if (txd->flags & DMA_COMPL_DEST_UNMAP_SINGLE)
    dma_unmap_single(parent, desc->lli.dar,
    - desc->len, DMA_FROM_DEVICE);
    + desc->total_len, DMA_FROM_DEVICE);
    else
    dma_unmap_page(parent, desc->lli.dar,
    - desc->len, DMA_FROM_DEVICE);
    + desc->total_len, DMA_FROM_DEVICE);
    }
    if (!(txd->flags & DMA_COMPL_SKIP_SRC_UNMAP)) {
    if (txd->flags & DMA_COMPL_SRC_UNMAP_SINGLE)
    dma_unmap_single(parent, desc->lli.sar,
    - desc->len, DMA_TO_DEVICE);
    + desc->total_len, DMA_TO_DEVICE);
    else
    dma_unmap_page(parent, desc->lli.sar,
    - desc->len, DMA_TO_DEVICE);
    + desc->total_len, DMA_TO_DEVICE);
    }
    }

    @@ -776,7 +776,7 @@ dwc_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,

    prev->lli.llp = 0;
    first->txd.flags = flags;
    - first->len = len;
    + first->total_len = len;

    return &first->txd;

    @@ -939,7 +939,7 @@ slave_sg_fromdev_fill_desc:
    prev->lli.ctllo |= DWC_CTLL_INT_EN;

    prev->lli.llp = 0;
    - first->len = total_len;
    + first->total_len = total_len;

    return &first->txd;

    diff --git a/drivers/dma/dw_dmac_regs.h b/drivers/dma/dw_dmac_regs.h
    index 13000d2..833b4cf 100644
    --- a/drivers/dma/dw_dmac_regs.h
    +++ b/drivers/dma/dw_dmac_regs.h
    @@ -296,6 +296,7 @@ struct dw_desc {
    struct list_head tx_list;
    struct dma_async_tx_descriptor txd;
    size_t len;
    + size_t total_len;
    };

    #define to_dw_desc(h) list_entry(h, struct dw_desc, desc_node)
    --
    1.7.10.4


    \
     
     \ /
      Last update: 2013-01-25 14:21    [W:2.660 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site