Mani, Arun wrote: > It indeed gets initialized in the hw_params. But the runtime dma parameters are not populated with the substream private data information that is gets in hw_params for the first time. I am not sure why. Any ideas? > > > > Thanks, > Arun. > The real bug is in the routine davinci_i2s_startup. The line cpu_dai->dma_data = dev->dma_params[substream->stream]; This works, as long as both streams aren't open. playback stream davinci_i2s_startup: P0 dma_params=c03a7680 davinci_pcm_dma_request: P0 dma_data=c03a7680 ^^ saves pointer capture stream davinci_i2s_startup: C1 dma_params=c03a769c ^^ changes cpu_dai pointer davinci_pcm_dma_request: C1 dma_data=c03a769c ^^ saves pointer davinci_i2s_hw_params: data_type=2 C1 dma_params=c03a769c ^^ capture data_type=2 davinci_pcm_enqueue_dma: data_type=2 C1 c03a769c davinci_pcm_enqueue_dma: data_type=2 C1 c03a769c playback stream davinci_i2s_hw_params: data_type=2 P0 dma_params=c03a769c ^^ playback dma_params is WRONG should be c03a7680 davinci_pcm_enqueue_dma: data_type=0 P0 c03a7680 ^^ This uses the save dma_params value, hence data_type is still 0 Division by zero in kernel. It seems like a lot of drivers may have this bug. Troy _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel