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