Commit 45da7b0451b1fe15e882b08c79be58458cbe7a2f

Authored by Russell King
1 parent 5987190270

dmaengine: omap-dma: use cached CCR value when enabling DMA

We don't need to read-modify-write the CCR register; we already know
what value it should contain at this point.  Use the cached CCR value
when setting the enable bit.

Acked-by: Tony Lindgren <tony@atomide.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Showing 1 changed file with 2 additions and 4 deletions Side-by-side Diff

drivers/dma/omap-dma.c
... ... @@ -181,7 +181,6 @@
181 181 static void omap_dma_start(struct omap_chan *c, struct omap_desc *d)
182 182 {
183 183 struct omap_dmadev *od = to_omap_dma_dev(c->vc.chan.device);
184   - uint32_t val;
185 184  
186 185 if (__dma_omap15xx(od->plat->dma_attr))
187 186 c->plat->dma_write(0, CPC, c->dma_ch);
... ... @@ -193,9 +192,8 @@
193 192 /* Enable interrupts */
194 193 c->plat->dma_write(d->cicr, CICR, c->dma_ch);
195 194  
196   - val = c->plat->dma_read(CCR, c->dma_ch);
197   - val |= CCR_ENABLE;
198   - c->plat->dma_write(val, CCR, c->dma_ch);
  195 + /* Enable channel */
  196 + c->plat->dma_write(d->ccr | CCR_ENABLE, CCR, c->dma_ch);
199 197 }
200 198  
201 199 static void omap_dma_stop(struct omap_chan *c)