On Tue, Aug 11, 2020 at 11:25:51AM +0100, Srinivas Kandagatla wrote:
Most of the DAPM widgets for DSP ASoC components reuse reg field of the widgets for its internal calculations, however these are not real registers. So read/writes to these numbers are not really valid. However ASoC core will read these registers to get default state during startup.
Actually q6afe-dai does not seem to make use of the register number. The DAPM widgets all look like
SND_SOC_DAPM_AIF_IN("HDMI_RX", NULL, 0, 0, 0, 0), /* (wname, stname, wchan, wreg, wshift, winvert)
Wouldn't it be better to replace wreg = 0 with SND_SOC_NOPM in this case so the read/write won't happen at all?
q6routing on the other hand does make use of wreg, so this would not work there...
Also: If I remember correctly the ASoC core will also attempt to write to these "registers" when starting to play some audio, so you might also need to implement component->write().
Stephan