Messages in this thread | | | Subject | Re: [PATCH] dmaengine/amba-pl08x : reset phychan_hold on terminate all | From | Vinod Koul <> | Date | Mon, 23 Apr 2012 18:12:20 +0530 |
| |
On Thu, 2012-04-19 at 12:20 +0200, ciminaghi@gnudd.com wrote: > From: Davide Ciminaghi <ciminaghi@gnudd.com> > > When a client calls pl08x_control with DMA_TERMINATE_ALL, it is correct > to terminate and release the phy channel currently in use (if one is in use), > but the phychan_hold counter must also be reset (otherwise it could get > trapped in an unbalanced state). > > Signed-off-by: Davide Ciminaghi <ciminaghi@gnudd.com> > --- > drivers/dma/amba-pl08x.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c > index c301a8e..3d704ab 100644 > --- a/drivers/dma/amba-pl08x.c > +++ b/drivers/dma/amba-pl08x.c > @@ -1429,6 +1429,7 @@ static int pl08x_control(struct dma_chan *chan, enum dma_ctrl_cmd cmd, > * signal > */ > release_phy_channel(plchan); > + plchan->phychan_hold = 0; > } > /* Dequeue jobs and free LLIs */ > if (plchan->at) {
Linus, Viresh... Any tested-by for this before I apply to fixes.
-- ~Vinod
| |