lkml.org 
[lkml]   [2014]   [Apr]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 4/8] DMA: Freescale: add fsl_dma_free_descriptor() to reduce code duplication
    Date
    From: Hongbo Zhang <hongbo.zhang@freescale.com>

    There are several places where descriptors are freed using identical code.
    This patch puts this code into a function to reduce code duplication.

    Signed-off-by: Hongbo Zhang <hongbo.zhang@freescale.com>
    Signed-off-by: Qiang Liu <qiang.liu@freescale.com>
    ---
    drivers/dma/fsldma.c | 27 +++++++++++++++++----------
    1 file changed, 17 insertions(+), 10 deletions(-)

    diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c
    index b71cc04..adc266e 100644
    --- a/drivers/dma/fsldma.c
    +++ b/drivers/dma/fsldma.c
    @@ -418,6 +418,19 @@ static dma_cookie_t fsl_dma_tx_submit(struct dma_async_tx_descriptor *tx)
    }

    /**
    + * fsl_dma_free_descriptor - Free descriptor from channel's DMA pool.
    + * @chan : Freescale DMA channel
    + * @desc: descriptor to be freed
    + */
    +static void fsl_dma_free_descriptor(struct fsldma_chan *chan,
    + struct fsl_desc_sw *desc)
    +{
    + list_del(&desc->node);
    + chan_dbg(chan, "LD %p free\n", desc);
    + dma_pool_free(chan->desc_pool, desc, desc->async_tx.phys);
    +}
    +
    +/**
    * fsl_dma_alloc_descriptor - Allocate descriptor from channel's DMA pool.
    * @chan : Freescale DMA channel
    *
    @@ -489,11 +502,8 @@ static void fsldma_free_desc_list(struct fsldma_chan *chan,
    {
    struct fsl_desc_sw *desc, *_desc;

    - list_for_each_entry_safe(desc, _desc, list, node) {
    - list_del(&desc->node);
    - chan_dbg(chan, "LD %p free\n", desc);
    - dma_pool_free(chan->desc_pool, desc, desc->async_tx.phys);
    - }
    + list_for_each_entry_safe(desc, _desc, list, node)
    + fsl_dma_free_descriptor(chan, desc);
    }

    static void fsldma_free_desc_list_reverse(struct fsldma_chan *chan,
    @@ -501,11 +511,8 @@ static void fsldma_free_desc_list_reverse(struct fsldma_chan *chan,
    {
    struct fsl_desc_sw *desc, *_desc;

    - list_for_each_entry_safe_reverse(desc, _desc, list, node) {
    - list_del(&desc->node);
    - chan_dbg(chan, "LD %p free\n", desc);
    - dma_pool_free(chan->desc_pool, desc, desc->async_tx.phys);
    - }
    + list_for_each_entry_safe_reverse(desc, _desc, list, node)
    + fsl_dma_free_descriptor(chan, desc);
    }

    /**
    --
    1.7.9.5




    \
     
     \ /
      Last update: 2014-04-18 11:01    [W:2.425 / U:0.204 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site