Hi, thanks a lot for your info.
Actually I have been trying to run I2S0 at 96kHz cleanly, no result. Please see Rock Pi S - I2S0 - anyone getting clean 96/192kHz?
I tried the dma burst = 16 in the i2s driver earlier, no improvement. Your PL330 DMA change is very interesting, thanks a lot for the hint. I changed the MCODE_BUFF_PER_REQ to 1024 and NR_DEFAULT_DESC to 256, quite generous. The result got probably a bit better, but I still get several corrupted sample per minute on the I2S0 8ch loopback (just lines SDOx connected to SDIx) at 96kHz, and many issues at 192kHz. As my thread says, I am raising DMA clock significantly too, no clean result.
I am running kernel 6.6., patched with https://lore.kernel.org/all/[email protected]/ I wonder what could be screwed up in the process of mainlining the driver.
Please would you by any chance be willing to check your I2S0 loopback for stable bit perfection?
To minimize local CPU impact I use a locally-stored wav truncated at sine boundary, so that it can be concatenated:
sox -V -r 96000 -c 1 -n -b 32 -c 8 8ch-96-sine.raw synth 240000s sine 4k gain -3
(while true; do cat 8ch-96-sine.raw; done ) | aplay -v -r 96000 -c 8 -f S32_LE -t raw -D hw:GenericStereoAu
Capturing spectrogram 120 secs long in another terminal:
sox -V -r 96000 -c 8 -b 32 -t alsa hw:GenericStereoAu,1 -n spectrogram -z 180 -w kaiser -d 120
Viewing the generated spectrogram.png after scp transfer on my PC.