Wednesday 10 June 2009 12:53:42 Peter Ujfalusi napisaĆ(a):
On Wednesday 10 June 2009 13:27:38 ext Janusz Krzysztofik wrote: Just out of curiosity, can you try this one as well:
--- a/sound/soc/omap/omap-mcbsp.c +++ b/sound/soc/omap/omap-mcbsp.c @@ -191,6 +191,7 @@ static int omap_mcbsp_dai_trigger(struct snd_pcm_substream *substream, int cmd, case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: if (!mcbsp_data->active++) omap_mcbsp_start(mcbsp_data->bus_id);
omap_mcbsp_pollwrite(mcbsp_data->bus_id, 0xdb55); break;
basically write 0xdb55 to the DXR1 register (0xdb55 is 1101101101010101) With this, if McBSP is operating correctly you should be seeing this pattern going to the codec.
Peter,
I am not sure how did you expect me to see this pattern. On a scope screen? Unforunatelly I had to return the scope this morning.
I have further modified the code like this:
@@ -25,6 +25,7 @@ #include <linux/init.h> #include <linux/module.h> #include <linux/device.h> +#include <linux/random.h> #include <sound/core.h> #include <sound/pcm.h> #include <sound/pcm_params.h> @@ -186,7 +186,7 @@ static int omap_mcbsp_dai_trigger(struct snd_pcm_substream *substream, int cmd, struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; struct omap_mcbsp_data *mcbsp_data = to_mcbsp(cpu_dai->private_data); - int err = 0; + int i, err = 0;
switch (cmd) { case SNDRV_PCM_TRIGGER_START: @@ -191,6 +191,8 @@ static int omap_mcbsp_dai_trigger(struct snd_pcm_substream *substream, int cmd, case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: if (!mcbsp_data->active++) omap_mcbsp_start(mcbsp_data->bus_id); + for (i = 8000; i > 0; i--) + omap_mcbsp_pollwrite(mcbsp_data->bus_id, (u16)random32 ()); break;
case SNDRV_PCM_TRIGGER_STOP:
in hope I should be able to hear a noise for one second, shouldn't I.
If it does, than we have some problems with the McBSP/DMA cooperation, if this pattern is not seen on the bus, than the McBSP is not shifting data out for some reason.
Now aplay returns 1 second later than before, so I conclude the loop is processed correctly. However, I am not able to hear a single ripple nor see any error messages from omap_mcbsp_pollwrite() :(, so it looks like the latter is more probable.
Janusz -- To unsubscribe from this list: send the line "unsubscribe alsa-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html