Tool/software:
Hi,
I have upgraded to kernel 6.6 (Linux version 6.6.44-rt39) and of course also modified the DTS files for my target.
With the previous version (6.1rt) we had the buffer underflow issue which should have been fixed in this version.
Unfortunately now the 32-Bit (S32_LE) data format is not working any more - as soon as I switch to S16_LE, it is working, e.g.
speaker-test -Dsysdefault:CARD=AmpsOut -r 48000 -c 32 -f S32_LE -> does not work
speaker-test -Dsysdefault:CARD=AmpsOut -r 48000 -c 32 -f S16_LE -> works fine
But I need the higher resolution of 32-Bit - did I forget anything to modify or is 32-Bit support broken in 6.6 ?
Regards,
Sebastian
DTS Configuration:
tdm_amp: sound3 {
compatible = "simple-audio-card";
simple-audio-card,name = "AmpsOut";
simple-audio-card,bitclock-master = <&my_mcasp2>;
simple-audio-card,frame-master = <&my_mcasp2>;
simple-audio-card,format = "left_j";
simple-audio-card,bitclock-inversion;
my_mcasp2: simple-audio-card,cpu {
sound-dai = <&mcasp2>;
system-clock-frequency = <24576000>;
system-clock-direction-out;
dai-tdm-slot-width = <32>;
};
sound_master3: simple-audio-card,codec {
sound-dai = <&tdm8amp_out>;
clocks = <&tlv320_mclk>;
dai-tdm-slot-width = <32>;
};
};
&mcasp2 {
status = "okay";
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&main_mcasp2_pins_default>;
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <8>;
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
1 1 1 1
2 2 2 2
0 0 0 0
0 0 0 0
>;
tx-num-evt = <0>;
rx-num-evt = <0>;
};