Which piece of code adds the prefix "x" in /sys/kernel/debug/asoc/jetson-xaviernx-ape/<codec>/dapm/?

I am trying to integrate a CS47L35 codec from Cirrus Logic to the Xavier NX. In /sys/kernel/debug/asoc/jetson-xaviernx-ape/codec:cs47l35-codec/dapm/, I see the prefix “x” in the widgets. So I wanted to know which piece of code adds that prefix.

 bias_level			 'x AIF3TX1'			  'x DSP1R Input 4'		 'x EQ3 Input 2'		    'x ISRC2INT4 Input 1'	       'x SLIMTX1 Mixer'
'x AEC1 Loopback'		 'x AIF3TX1 Input 1'		  'x DSP1R Input 4 Autodisable'  'x EQ3 Input 2 Autodisable'	    'x ISRC2INT4 Input 1 Autodisable'  'x SLIMTX2'
'x AEC2 Loopback'		 'x AIF3TX1 Input 1 Autodisable'  'x DSP1R Mixer'		 'x EQ3 Input 3'		    'x ISRC2INTCLK'		       'x SLIMTX2 Input 1'
'x AIF1 Capture'		 'x AIF3TX1 Input 2'		  'x DSP1 Trigger Output'	 'x EQ3 Input 3 Autodisable'	    'x LHPF1'			       'x SLIMTX2 Input 1 Autodisable'
'x AIF1 Playback'		 'x AIF3TX1 Input 2 Autodisable'  'x DSP2'			 'x EQ3 Input 4'		    'x LHPF1 Input 1'		       'x SLIMTX2 Input 2'

Thanks,
Abhigyan

Hi Abhigyan,

In DTS file, in the sound node, you would have added a dai link connecting desired codec dai(cs47l35 in your case) and i2s. The “name-prefix” property of the dai-link specifies the prefix for the dapm widgets specific to the dai-link path. This shall be internally parsed by kernel sound drivers.

“Configure DAPM Routes” subsection at link offers detailed description. Please note

Thanks

I have been told that prefixing is slightly bugged in the core on the 4.9 kernel (which I am using). So I wanted to know which piece of code adds it. I have been going through the kernel code and I think tegra_asoc_populate_codec_confs() in the nvidia/sound/soc/tegra-alt/utils/tegra_asoc_machine_alt.c file is responsible for this… So can you please verify this?

Thanks,
Abhigyan

Hi Abhigyan,

Prefix should be unique to each dai-link. Other than this restriction, its working fine AFAIK.

I have been told that prefixing is slightly bugged in the core on the 4.9 kernel (which I am using)
where is this mentioned? Any reference?

Thanks

Hi, “git show ae4fc532244b” on git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git should be the one.

Thanks.

Hi Abhigyan,

If your target is integration of codec, please specify the name-prefix correctly and codec integration will wor kfine provided your routes and other relevant props are fine

tegra_asoc_populate_codec_confs() populates the codec info field((of which name-prefix is one). To understand further usage of the field, you might need to explore code further including alsa core

Thanks