官方的mainline kernel 4.14.y只支持S16_LE的声音,我修改了kernel的相关代码来支持32位, 下面是我修改后的代码,从friendlyarm/linux fork的,只有一个commit,希望你们能看看
https://github.com/zexee/linux/tree/fix-i2s-32用mplayer测试32bit是可以的,但是aplay就不行,我看了信号lckl是正常的,但是bclk快了一倍。还经常出现overrun
mplayer用的pulseaudio,而aplay用的alsa,肯定是有什么设置pulse Audio做了而alsa没有做。而这个设置应该能在driver里面做。
希望有人能指点迷津。