[alsa-devel] [PATCH] OMAP: McBSP: Do not use extensive spin locks for dma_op_mode
Peter Ujfalusi
peter.ujfalusi at nokia.com
Thu Oct 29 07:35:51 CET 2009
On Wednesday 28 October 2009 08:53:34 Nurkkala Eero.An (EXT-Offcode/Oulu) wrote:
> Yeah, maybe I took the SMP safeness into play without looking any code,
> my bad =) I was remembering a different version of this McBSP thing, now
> that I looked into it, it looked different.
>
> Right, I reviewed the code, and it was first looking really bad at
> sound/soc/omap/omap-mcbsp.c, where it calls omap_mcbsp_get_dma_op_mode()
> from different places. However, it's not an issue because in:
> arch/arm/plat-omap/mcbsp.c : dma_op_mode_store(),
> the dma_op_mode is written only if the mcbsp is unoccupied. So it is SMP
> safe.
>
> ..and a single read is always atomic, so this is buggy code:
>
> 301 spin_lock_irq(&mcbsp->lock);
> 302 dma_op_mode = mcbsp->dma_op_mode;
> 303 spin_unlock_irq(&mcbsp->lock);
> 304
> 305 return dma_op_mode;
>
> The spinlocks are unnecessary. In the above example, you get the same
> with just "return mcbsp->dma_op_mode;"
>
> -> Peter's patch is a good cleanup.
Jarkko: are we going to take this?
--
Péter
More information about the Alsa-devel
mailing list