[alsa-devel] ALSA sound/core/pcm_lib.c:318: BUG: pcmC0D0p:0, pos = 32768, buffer size = 32768 , period size = 2048

Clemens Ladisch clemens at ladisch.de
Mon Sep 6 19:35:55 CEST 2010


Patrick Doyle wrote:
> On Mon, Sep 6, 2010 at 3:16 AM, Clemens Ladisch <clemens at ladisch.de> wrote:
> > Patrick Doyle wrote:
> > > pos = 32768, buffer size = 32768
> >
> > This means that the driver's pointer callback returned a position that
> > is outside the buffer; in this case, the position is just after the end
> > of the buffer.
> 
> OK, so I should go trace down how and when the driver invokes that
> callback.

That callback is invoked by the ALSA framework.
The callback itself is buggy.

> Hmmm... any tips on where I might start that journey, given that this
> driver is an SoC driver?

bf5xx_pcm_pointer() in soc/blackfin/bf5xx-i2s-pcm.c calls
sport_curr_offset_tx() in soc/blackfin/bf5xx-sport.c, which just calls
get_dma_curr_addr().

I'd guess that the end of the buffer is considered a valid address by
the Blackfin's DMA unit, so the driver has to check for that and wrap
it around to zero.


Regards,
Clemens


More information about the Alsa-devel mailing list