From 112d3f233b494bff323f65dfae7ef9929745d223 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Mon, 2 Mar 2009 15:33:46 -0700 Subject: [PATCH] --- yaml --- r: 132067 b: refs/heads/master c: 900325a6ce33995688b7a680a34e7698f16f4d72 h: refs/heads/master i: 132065: 551e8df88bb43d7ec1d732c176435e8554c8e605 132063: f597ce0486cf733765a2330fafe9b2d567ac1260 v: v3 --- [refs] | 2 +- trunk/drivers/dma/fsldma.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 367040239a60..8b8b2400f8de 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0c33e1ca3d80647f2e72e44524fd21e79214da20 +refs/heads/master: 900325a6ce33995688b7a680a34e7698f16f4d72 diff --git a/trunk/drivers/dma/fsldma.c b/trunk/drivers/dma/fsldma.c index 70126a606239..86d6da47f558 100644 --- a/trunk/drivers/dma/fsldma.c +++ b/trunk/drivers/dma/fsldma.c @@ -158,7 +158,8 @@ static void dma_start(struct fsl_dma_chan *fsl_chan) static void dma_halt(struct fsl_dma_chan *fsl_chan) { - int i = 0; + int i; + DMA_OUT(fsl_chan, &fsl_chan->reg_base->mr, DMA_IN(fsl_chan, &fsl_chan->reg_base->mr, 32) | FSL_DMA_MR_CA, 32); @@ -166,8 +167,11 @@ static void dma_halt(struct fsl_dma_chan *fsl_chan) DMA_IN(fsl_chan, &fsl_chan->reg_base->mr, 32) & ~(FSL_DMA_MR_CS | FSL_DMA_MR_EMS_EN | FSL_DMA_MR_CA), 32); - while (!dma_is_idle(fsl_chan) && (i++ < 100)) + for (i = 0; i < 100; i++) { + if (dma_is_idle(fsl_chan)) + break; udelay(10); + } if (i >= 100 && !dma_is_idle(fsl_chan)) dev_err(fsl_chan->dev, "DMA halt timeout!\n"); }