On Fri, 19 Mar 2010 08:56:40 +0200 Peter Ujfalusi peter.ujfalusi@nokia.com wrote:
At least the OMAP code should not be affected by the bug, that you have with the pxa-ssp. I think the bug could be also fixed within the pxa code, since the whole thing goes down to inconsistent memory management within the pxa code.
Having said that, I do think having separate dma_data for each streams is a really good idea. One thing that I can think of in OMAP case, where this could fix a nasty race condition is (have never seen it, but it is in theory possible): Also in duplex case, when the second hw_param gets called after the first omap_mcbsp_hw_params, and before the omap_pcm_hw_params for the first stream. The second omap_mcbsp_hw_params will override the dma_data, thus we would set bogus parameters for the first stream.
There shouldn't be this kind of race in OMAP since the soc_pcm_hw_params protects the hw_params calls with a mutex and the omap_pcm_hw_params takes a copy from parameters passed from DAI driver's hw_params.
But yes, I agree that the stream specific dma_data is good idea.
For the omap-mcbsp.c and omap-pcm.c changes: Acked-by: Peter Ujfalusi peter.ujfalusi@nokia.com
Acked-by: Jarkko Nikula jhnikula@gmail.com