Re: [PATCH QUESTION] ASoC: qcom: sdm845: use DSP_A format for TDM codec DAIs
David Heidelberg <[email protected]>
| Newsgroups | org.kernel.vger.phone-devel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-kernel,org.kernel.vger.linux-sound |
|---|---|
| Message-ID | <[email protected]> |
On 14/06/2026 01:53, Mark Brown wrote: > On Sat, Jun 13, 2026 at 09:55:59PM +0200, David Heidelberg via B4 Relay wrote: > >> Currently this worked only because the cs35l36 >> codec mapped both DSP_A and DSP_B to the same hardware register value >> (asp_fmt = 0), which is inherently DSP_A timing. > >> The CPU-side AFE is configured with qcom,tdm-data-delay = <1> which >> produces DSP_A framing. >> The codec format should match what is actually on the wire. > >> So I'm pretty lost if I should go fixing cs35l36 or sdm845.c. > > That sounds like both. The Cirrus driver is definitely buggy if it's > mapping DSP A and B to the same register value, at least one of those is > wrong. I need to clarify. The CS35L36 supports by default only DSP_A, but when extended to "take DSP_B", speaker just works. This was done previously. Since there isn't any different configuration on the codec side when added DSP_B into same codepath as DSP_A, I would assume QCOM ASoC send DSP_A, just marking it as DSP_B ? There isn't any other consumer to check against and I would assume incorrectly configured TDM slot would lead - at least - to disorted output. The reference (which now works) is here [1]. David [1] https://codeberg.org/sdm845/linux/commits/branch/b4/pixel3-audio