lkml.org 
[lkml]   [2014]   [Jun]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.13 159/212] dma: mv_xor: Flush descriptors before activating a channel
    Date
    3.13.11.4 -stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>

    commit 5a9a55bf9157d3490b0c8c4c81d4708602c26e07 upstream.

    We need to use writel() instead of writel_relaxed() when starting
    a channel, to ensure all the descriptors have been flushed before
    the activation.

    While at it, remove the unneeded read-modify-write and make the
    code simpler.

    Signed-off-by: Lior Amsalem <alior@marvell.com>
    Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Kamal Mostafa <kamal@canonical.com>
    ---
    drivers/dma/mv_xor.c | 8 +++-----
    1 file changed, 3 insertions(+), 5 deletions(-)

    diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c
    index 53fb0c8..29c8a06 100644
    --- a/drivers/dma/mv_xor.c
    +++ b/drivers/dma/mv_xor.c
    @@ -191,12 +191,10 @@ static void mv_set_mode(struct mv_xor_chan *chan,

    static void mv_chan_activate(struct mv_xor_chan *chan)
    {
    - u32 activation;
    -
    dev_dbg(mv_chan_to_devp(chan), " activate chan.\n");
    - activation = readl_relaxed(XOR_ACTIVATION(chan));
    - activation |= 0x1;
    - writel_relaxed(activation, XOR_ACTIVATION(chan));
    +
    + /* writel ensures all descriptors are flushed before activation */
    + writel(BIT(0), XOR_ACTIVATION(chan));
    }

    static char mv_chan_is_busy(struct mv_xor_chan *chan)
    --
    1.9.1


    \
     
     \ /
      Last update: 2014-06-18 06:41    [W:4.590 / U:0.264 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site