Hi Jarkko, On Wed, Aug 05, 2009 at 09:48:56AM +0200, ext Jarkko Nikula wrote: > On Thu, 30 Jul 2009 15:49:39 +0300 > Eduardo Valentin <eduardo.valentin@xxxxxxxxx> wrote: > > > Now this patch implements again the McBSP threshold > > usage for OMAP ASoC. > > > > We figured out that there is no need to have so much > > SW control in order to have DMA in idle state during > > audio streaming. Configuring McBSP threshold value > > and DMA to FRAME_SYNC are sufficient. > > > > Signed-off-by: Eduardo Valentin <eduardo.valentin@xxxxxxxxx> > > --- > > sound/soc/omap/omap-pcm.c | 37 +++++++++++++++++++++++++++++++++++-- > > 1 files changed, 35 insertions(+), 2 deletions(-) > > > > @@ -192,6 +203,12 @@ static int omap_pcm_trigger(struct snd_pcm_substream *substream, int cmd) > > case SNDRV_PCM_TRIGGER_RESUME: > > case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: > > prtd->period_index = 0; > > + /* Configure McBSP internal buffer usage */ > > + if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) > > + omap_mcbsp_set_tx_threshold(bus_id, samples - 1); > > + else > > + omap_mcbsp_set_rx_threshold(bus_id, samples - 1); > > + > > omap_start_dma(prtd->dma_ch); > > break; > > > Oops, didn't notice this before. This will hard glue the DMA and McBSP > together. Even currently there is only McBSP based DAI link driver, > there can be others as well. EAC DAI for OMAP2420 would be necessary > for instance if one wants to develop ASoC support for Nokia N800. Nokia > N810 could use that too. True. And the same comment is valid for the patch which adds op mode selection. My idea to un-glue them is to put some callbacks in omap_mcbsp_data of omap-mcbsp.c, and share it as something more generic, so that they can be called from omap-pcm.c. Something like: struct omap_dma_data { unsigned int bus_id; unsigned int fmt; /* * Flags indicating is the bus already activated and configured by * another substream */ int active; int configured; /* threshold callbacks can be added then here */ void *data; /* struct omap_mcbsp_reg_cfg regs; can go here */ }; And this goes in omap-pcm.h. what do you think?? > > > -- > Jarkko -- Eduardo Valentin -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html