Dear Mark, On Thu, 2010-12-09 at 12:34 +0000, Mark Brown wrote: > > Always using 32 bit chunks is not a problem for I2S, the codec I use > > uses less bits too (24), it's permitted by I2S standard. > > It's a problem because it means that the data needs to be laid out in > memory in 32 bit words which means that a lot of data is going to need > to be repacked from 16 bit to 32 bit samples which is wasteful. If the > hardware can be persuaded to avoid this then that's much better. BTW, it's how original Cirrus's sound driver had done it's work. Cirrus programmers had not found a way to overcome this. The datasheets for EP93xx series cover everything only briefly... The dumbness of EP93xx's DMA is also the reason why we do not have DMA in serial ports and SSP... Here we have attached original Cirrus driver: http://arm.cirrus.com/forum/viewtopic.php?t=3517 Here it is: http://arm.cirrus.com/forum/download.php?id=240 The function I'm talking about is snd_ep93xx_dma2usr_ratio(), as told in comments "For audio playback, we convert samples of arbitrary format to be 32 bit for our hardware". Best regards, Alexander A. Sverdlin. _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel