I have changed the pointer callback as you suggest. Unfortunately, the result is still the same. Still the buffer filling is skipping to fill all the data correctly. I am using Advanced Linux Sound Architecture Driver Version 1.0.21. ~cheers, Ogi On Tue, Nov 23, 2010 at 9:40 AM, Clemens Ladisch <clemens@xxxxxxxxxx> wrote: > Radivoje Jovanovic wrote: > > > Radivoje Jovanovic wrote: > > > > I am developing driver for a really simple hardware. Hardware has > codec that > > > > supports mono/stereo and the amplifier that supports only one speaker > so the > > > > driver has to be mono driver and the codec is setup to manage mono > data. I > > > > have setup ALSA with following parameters: > > > > > > > > .info = (SNDRV_PCM_INFO_NONINTERLEAVED | > > > > > > Better use SNDRV_PCM_INFO_INTERLEAVED; this is the format used by > almost > > > all (stereo) sound cards, and so it is expected even for mono files > > > (where there actually isn't any difference). > > > > I am worried about this approach since if I want to play stereo sound I > > would have to increase .channels_max = 2, > > No, ALSA can automatically convert the sample format. > > > Here is my pointer callback: > > > > offset=READ_REG16(AUDIO_CONFIG_DMA_CUR_ADDR_HIGH))<<16) | > READ_REG16(AUDIO_CONFIG_DMA_CUR_ADDR_LOW); > > > > offset = offset - substream->runtime->dma_addr; > > This offset looks as if it is in bytes, but you have to return a value > measured in frames. Use bytes_to_frames(). > > > if (offset >= runtime->buffer_size) > > offset = 0; > > Remove this check; the ALSA framework already checks this and outputs > debugging info if this happens. > > > Regards, > Clemens > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel