RT5639 audio-routing on R28

I need to update kernel from R24.2.1 to R28 on customized carrier board. The rt5639 audio codec works on the carrier board with R24.2.1 but not R28. I traced into tegra_t210ref_dapm_widgets on the tegra_t210ref_mobile_alt.c file ,and seems only “tegra_rt5640_event_ext_mic” function been called.

Here is my audio-routing on R28 as below,

nvidia,audio-routing =
			"x Headphone Jack", 	"x HPOL",
			"x Headphone Jack", 	"x HPOR",
			"x Int Spk", 	"x SPORP",
			"x Int Spk", 	"x SPORN",
			"x Int Spk", 	"x SPOLP",
			"x Int Spk", 	"x SPOLN",
			"x IN2P",		"x Mic Jack",
			"x IN2P",		"x Mic Jack",
			"x DMIC L1",	"x Int Mic",
			"x DMIC L2",	"x Int Mic",
			"x DMIC R1",	"x Int Mic",
			"x DMIC R2",	"x Int Mic",
			"y Headphone", 	"y OUT",
			"y IN",		"y Mic",
			"z IN",		"z OUT";

And the audio device list as:

nvidia@tegra-ubuntu:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: tegrahda [tegra-hda], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 0: ADMAIF1 CIF ADMAIF1-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 1: ADMAIF2 CIF ADMAIF2-1 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 2: ADMAIF3 CIF ADMAIF3-2 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 3: ADMAIF4 CIF ADMAIF4-3 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 4: ADMAIF5 CIF ADMAIF5-4 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 5: ADMAIF6 CIF ADMAIF6-5 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 6: ADMAIF7 CIF ADMAIF7-6 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 7: ADMAIF8 CIF ADMAIF8-7 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 8: ADMAIF9 CIF ADMAIF9-8 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 9: ADMAIF10 CIF ADMAIF10-9 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 93: ADSP PCM1 ADSP-FE1-93 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 94: ADSP PCM2 ADSP-FE2-94 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Is there anyone provide the rt5639 audio-routing for R28 kernel code?

Thanks,
Tony

Can your audio codec work with R24.2.1?

Hi Lihuadong,

Yes, the audio codec is working with R24.2.1 on the same customize carrier board.
Besides, the amixer settings is the same as R24.2.1.

nvidia@tegra-ubuntu:~$
nvidia@tegra-ubuntu:~$ cat /etc/amixer_settings
#!/bin/bash
# For Playback:
amixer cset -c tegrasndt210ref name="I2S1 Mux" 20
amixer cset -c tegrasndt210ref name="MIXER1-1 Mux" 1
amixer cset -c tegrasndt210ref name="Adder1 RX1" 1
amixer cset -c tegrasndt210ref name="Mixer Enable" 1
amixer cset -c tegrasndt210ref name="ADMAIF1 Mux" 11
amixer cset -c tegrasndt210ref name="x Int Spk Switch" 1
amixer cset -c tegrasndt210ref name="x Speaker Playback Volume" 32
amixer cset -c tegrasndt210ref name="x Headphone Jack Switch" 1
amixer sset -c tegrasndt210ref 'MIXER1-1 Mux' 'ADMAIF1'
amixer sset -c tegrasndt210ref 'I2S1 Mux' 'MIXER1-1'
# For Record:
amixer cset -c tegrasndt210ref name="x ADC Capture Switch" 1
amixer cset -c tegrasndt210ref name="x RECMIXL BST1 Switch" 0
amixer cset -c tegrasndt210ref name="x RECMIXR BST1 Switch" 0
amixer cset -c tegrasndt210ref name="x RECMIXL BST2 Switch" 1
amixer cset -c tegrasndt210ref name="x RECMIXR BST2 Switch" 1
amixer cset -c tegrasndt210ref name="x Stereo ADC L1 Mux" 1
amixer cset -c tegrasndt210ref name="x Stereo ADC R1 Mux" 1
amixer cset -c tegrasndt210ref name="x Stereo ADC MIXL ADC1 Switch" 1
amixer cset -c tegrasndt210ref name="x Stereo ADC MIXR ADC1 Switch" 1
amixer cset -c tegrasndt210ref name="x Stereo ADC MIXL ADC2 Switch" 0
amixer cset -c tegrasndt210ref name="x Stereo ADC MIXR ADC2 Switch" 0
amixer cset -c tegrasndt210ref name="x IN2 Mode Control" 0
amixer cset -c tegrasndt210ref name="x IN2 Boost" 1
amixer cset -c tegrasndt210ref name="x Mic Jack Switch" 1
amixer sset -c tegrasndt210ref 'ADMAIF1 Mux' 'I2S1'

Is anyone who can help on this problem?

Please share boot log. Do you see any error in boot log? Please also share device tree.

Hi DaneLLL

I modified something for the rt5639 on R28 as below.

  1. Added CONFIG_SND_SOC_TEGRA210_ADSP_ALT on the default config, pls refer to .config file in the attachment.
  2. Modified the sound_card and gpio on the tegra210-jetson-cv-base-p2597-2180-a00.dts
  3. Fixed the clock name of tegra_adsp_audio on the tegra210-soc-base.dtsi and tegra210_adsp_alt.c

I did not see any errors related to the audio with the boot log , but I still can not hear sound through rt5639 codec on R28.

r28.7z (88.6 KB)

Hi jjc_0115,
Can you see the card in [system settings] → [sound]?
Do you update device tree by following the steps [url]Jetson/TX2 DTB - eLinux.org ?

Hi DaneLLL,

Yes, I can see the “tegra-snd-t210ref-mobile-rt5639” in the [Sound].
And I flash the whole target board not only DTB.

Hi jjc_0115,
Do you have the setting for r24.2.1?
[url]https://devtalk.nvidia.com/default/topic/960938/jetson-tx1/configure-tegra-asoc-driver-for-custom-hardware-with-ti-audio-codec/post/4969968/#4969968[/url]

Hi DaneLLL,

We have the similar rt5639 codec setting for R24.2.1, and the rt5639 codec is working fine on the same customized carrier board with R24.2.1 kernel.

Hi jjc_0115,
For r28.1, please add the following into your device tree

    gpio@6000d000 {
        gpio_default: default {
            gpio-hog;
            function;
            gpios = <
                TEGRA_GPIO(B, 0) 0
                TEGRA_GPIO(B, 1) 0
                TEGRA_GPIO(B, 2) 0
                TEGRA_GPIO(B, 3) 0
                TEGRA_GPIO(BB, 0) 0
                TEGRA_GPIO(BB, 3) 0
                >;
            label = "I2S0_LRCLK", "I2S0_SDIN", "I2S0_SDOUT",
                "I2S0_CLK", "AUDIO_MCLK", "AUD_RST";
            status = "okay";
        };
    };

Hi DaneLLL,

Thanks for your help. I added the gpio setting into device tree. Unfortunately, the audio still does not work properly.

Hi jjc_0115,
Please check if the device tree is configured correctly:

$ xxd /proc/device-tree/gpio@6000d000/default/gpios
00000000: 0000 0008 0000 0000 0000 0009 0000 0000  ................
00000010: 0000 000a 0000 0000 0000 000b 0000 0000  ................
00000020: 0000 00d8 0000 0000 0000 00db 0000 0000  ................
$ xxd /proc/device-tree/gpio@6000d000/default/label
00000000: 4932 5330 5f4c 5243 4c4b 0049 3253 305f  I2S0_LRCLK.I2S0_
00000010: 5344 494e 0049 3253 305f 5344 4f55 5400  SDIN.I2S0_SDOUT.
00000020: 4932 5330 5f43 4c4b 0041 5544 494f 5f4d  I2S0_CLK.AUDIO_M
00000030: 434c 4b00 4155 445f 5253 5400            CLK.AUD_RST.
$ xxd /proc/device-tree/gpio@6000d000/default/status
00000000: 6f6b 6179 00                             okay.

And check if you can run loopback test to get good output.wav

$ amixer -c 1 sset "ADMAIF2 Mux" "ADMAIF1"
$ amixer -c 1 sset "I2S1 Mux" "ADMAIF1"
$ aplay -Dhw:1,0 input.wav & arecord -D hw:1,1 -c 2 -d 5 -r 44100 -f S16_LE output.wav

Hi DaneLLL

I found the problem is dapm path issue, and modified the below source code similar to R24.2.1. Now I can here the test sound through rt5639 output.

I am not sure is it the root cause/solution, could you help me to check that?

int snd_soc_dapm_link_dai_widgets(struct snd_soc_card *card)
{
	struct snd_soc_dapm_widget *dai_w, *w;
	struct snd_soc_dapm_widget *src, *sink;
	struct snd_soc_dai *dai;

	/* For each DAI widget... */
	list_for_each_entry(dai_w, &card->widgets, list) {
		switch (dai_w->id) {
		case snd_soc_dapm_dai_in:
		case snd_soc_dapm_dai_out:
			break;
		default:
			continue;
		}

		dai = dai_w->priv;

		/* ...find all widgets with the same stream and link them */
		list_for_each_entry(w, &card->widgets, list) {
			if (w->dapm != dai_w->dapm)
				continue;

			switch (w->id) {
			case snd_soc_dapm_dai_in:
			case snd_soc_dapm_dai_out:
				continue;
			default:
				break;
			}

			// tony.c modified
			// if (!w->sname || !strstr(dai_w->name, w->sname))
			if (!w->sname /* || !strstr(dai_w->name, w->sname)*/)
				continue;

			if (dai_w->id == snd_soc_dapm_dai_in) {
				src = dai_w;
				sink = w;
			} else {
				src = w;
				sink = dai_w;
			}
			dev_dbg(dai->dev, "%s -> %s\n", src->name, sink->name);
			snd_soc_dapm_add_path(w->dapm, src, sink, NULL, NULL);
			printk("tony.c [%s:%d] [%s] -> [%s]\n", __FUNCTION__, __LINE__,src->name, sink->name);
		}
	}

	return 0;
}

Here is the debug message of dapm path~

[    4.396954] tony.c [snd_soc_dapm_link_dai_widgets:3844] [x AIF2 Playback] -> [x AIF1RX]
[    4.396959] tony.c [snd_soc_dapm_link_dai_widgets:3844] [x AIF2 Playback] -> [x AIF1TX]
[    4.396964] tony.c [snd_soc_dapm_link_dai_widgets:3844] [x AIF2 Playback] -> [x AIF2RX]
[    4.396969] tony.c [snd_soc_dapm_link_dai_widgets:3844] [x AIF2 Playback] -> [x AIF2TX]
[    4.396995] tony.c [snd_soc_dapm_link_dai_widgets:3844] [x AIF1RX] -> [x AIF2 Capture]
[    4.396998] tony.c [snd_soc_dapm_link_dai_widgets:3844] [x AIF1TX] -> [x AIF2 Capture]
[    4.397002] tony.c [snd_soc_dapm_link_dai_widgets:3844] [x AIF2RX] -> [x AIF2 Capture]
[    4.397006] tony.c [snd_soc_dapm_link_dai_widgets:3844] [x AIF2TX] -> [x AIF2 Capture]
[    4.397031] tony.c [snd_soc_dapm_link_dai_widgets:3844] [x AIF1 Playback] -> [x AIF1RX]
[    4.397034] tony.c [snd_soc_dapm_link_dai_widgets:3844] [x AIF1 Playback] -> [x AIF1TX]
[    4.397038] tony.c [snd_soc_dapm_link_dai_widgets:3844] [x AIF1 Playback] -> [x AIF2RX]
[    4.397041] tony.c [snd_soc_dapm_link_dai_widgets:3844] [x AIF1 Playback] -> [x AIF2TX]
[    4.397066] tony.c [snd_soc_dapm_link_dai_widgets:3844] [x AIF1RX] -> [x AIF1 Capture]
[    4.397070] tony.c [snd_soc_dapm_link_dai_widgets:3844] [x AIF1TX] -> [x AIF1 Capture]
[    4.397074] tony.c [snd_soc_dapm_link_dai_widgets:3844] [x AIF2RX] -> [x AIF1 Capture]
[    4.397077] tony.c [snd_soc_dapm_link_dai_widgets:3844] [x AIF2TX] -> [x AIF1 Capture]

Hi tony,
Can you try the ‘if condition’ in kernel-4.4.89 https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.89.tar.xz

if (!w->sname || !strstr(w->sname, dai_w->sname))
    continue;

Hi DaneLLL,

I tried your suggestion, but it does not work,and It seems to be the core issue of ALSA, I was wondering if rt5659 codec is working with R28.

Could you help to check if rt5659 codec works with R28 on tegra210-jetson tx1 board?

Hi tony, yes, rt5659 works on r28.1/TX1.
Add the logic:

if (w->sname) {
        printk("w->sname %s ,", w->sname); // print info
        if (dai_w->name)
            printk("dai_w->name %s , ", dai_w->name); // print info
        printk(" \n");
    }
    if (!w->sname || !strstr(dai_w->name, w->sname))
        continue;
    printk("dai_w->name %s ,w->sname %s \n", dai_w->name, w->sname); // print info

Get the print:

[    7.222879] w->sname AIF1 Playback ,dai_w->name x AIF3 Playback ,
[    7.234527] w->sname AIF1 Capture ,dai_w->name x AIF3 Playback ,
[    7.246034] w->sname AIF2 Playback ,dai_w->name x AIF3 Playback ,
[    7.257626] w->sname AIF2 Capture ,dai_w->name x AIF3 Playback ,
[    7.269084] w->sname AIF3 Playback ,dai_w->name x AIF3 Playback ,
[    7.280609] dai_w->name x AIF3 Playback ,w->sname AIF3 Playback
[    7.291763] w->sname AIF3 Capture ,dai_w->name x AIF3 Playback ,
[    7.303117] w->sname AIF1 Playback ,dai_w->name x AIF3 Capture ,
[    7.314371] w->sname AIF1 Capture ,dai_w->name x AIF3 Capture ,
[    7.325451] w->sname AIF2 Playback ,dai_w->name x AIF3 Capture ,
[    7.336543] w->sname AIF2 Capture ,dai_w->name x AIF3 Capture ,
[    7.347483] w->sname AIF3 Playback ,dai_w->name x AIF3 Capture ,
[    7.358432] w->sname AIF3 Capture ,dai_w->name x AIF3 Capture ,
[    7.369201] dai_w->name x AIF3 Capture ,w->sname AIF3 Capture
[    7.379643] w->sname AIF1 Playback ,dai_w->name x AIF2 Playback ,
[    7.390525] w->sname AIF1 Capture ,dai_w->name x AIF2 Playback ,
[    7.401257] w->sname AIF2 Playback ,dai_w->name x AIF2 Playback ,
[    7.412012] dai_w->name x AIF2 Playback ,w->sname AIF2 Playback
[    7.422393] w->sname AIF2 Capture ,dai_w->name x AIF2 Playback ,
[    7.433015] w->sname AIF3 Playback ,dai_w->name x AIF2 Playback ,
[    7.443698] w->sname AIF3 Capture ,dai_w->name x AIF2 Playback ,
[    7.454327] w->sname AIF1 Playback ,dai_w->name x AIF2 Capture ,
[    7.464928] w->sname AIF1 Capture ,dai_w->name x AIF2 Capture ,
[    7.475375] w->sname AIF2 Playback ,dai_w->name x AIF2 Capture ,
[    7.485857] w->sname AIF2 Capture ,dai_w->name x AIF2 Capture ,
[    7.496292] dai_w->name x AIF2 Capture ,w->sname AIF2 Capture
[    7.506428] w->sname AIF3 Playback ,dai_w->name x AIF2 Capture ,
[    7.516986] w->sname AIF3 Capture ,dai_w->name x AIF2 Capture ,
[    7.527481] w->sname AIF1 Playback ,dai_w->name x AIF1 Playback ,
[    7.538114] dai_w->name x AIF1 Playback ,w->sname AIF1 Playback
[    7.548362] w->sname AIF1 Capture ,dai_w->name x AIF1 Playback ,
[    7.558792] w->sname AIF2 Playback ,dai_w->name x AIF1 Playback ,
[    7.569308] w->sname AIF2 Capture ,dai_w->name x AIF1 Playback ,
[    7.579675] w->sname AIF3 Playback ,dai_w->name x AIF1 Playback ,
[    7.590102] w->sname AIF3 Capture ,dai_w->name x AIF1 Playback ,
[    7.600465] w->sname AIF1 Playback ,dai_w->name x AIF1 Capture ,
[    7.610833] w->sname AIF1 Capture ,dai_w->name x AIF1 Capture ,
[    7.621168] dai_w->name x AIF1 Capture ,w->sname AIF1 Capture
[    7.631229] w->sname AIF2 Playback ,dai_w->name x AIF1 Capture ,
[    7.641764] w->sname AIF2 Capture ,dai_w->name x AIF1 Capture ,
[    7.652238] w->sname AIF3 Playback ,dai_w->name x AIF1 Capture ,
[    7.662868] w->sname AIF3 Capture ,dai_w->name x AIF1 Capture ,

Hi DaneLLL,

We modified the amixer_settings as below, now we can play test sound from the HP jack, but MIC still cant not work.

Could you get me some tips about the MIC issue.

#!/bin/bash
# For Playback:
amixer cset -c tegrasndt210ref name="I2S1 Mux" 20
amixer cset -c tegrasndt210ref name="MIXER1-1 Mux" 1
amixer cset -c tegrasndt210ref name="Adder1 RX1" 1
amixer cset -c tegrasndt210ref name="Mixer Enable" 1
amixer cset -c tegrasndt210ref name="ADMAIF1 Mux" 11
amixer cset -c tegrasndt210ref name="x Int Spk Switch" 1
amixer cset -c tegrasndt210ref name="x Speaker Playback Volume" 32
amixer cset -c tegrasndt210ref name="x Headphone Jack Switch" 1
amixer sset -c tegrasndt210ref sset 'MIXER1-1 Mux' 'ADMAIF1'
amixer sset -c tegrasndt210ref sset 'I2S1 Mux' 'MIXER1-1'
# For Record:
amixer cset -c tegrasndt210ref name="x ADC Capture Switch" 1
amixer cset -c tegrasndt210ref name="x RECMIXL BST1 Switch" 0
amixer cset -c tegrasndt210ref name="x RECMIXR BST1 Switch" 0
amixer cset -c tegrasndt210ref name="x RECMIXL BST2 Switch" 1
amixer cset -c tegrasndt210ref name="x RECMIXR BST2 Switch" 1
amixer cset -c tegrasndt210ref name="x Stereo ADC L1 Mux" 1
amixer cset -c tegrasndt210ref name="x Stereo ADC R1 Mux" 1
amixer cset -c tegrasndt210ref name="x Stereo ADC MIXL ADC1 Switch" 1
amixer cset -c tegrasndt210ref name="x Stereo ADC MIXR ADC1 Switch" 1
amixer cset -c tegrasndt210ref name="x Stereo ADC MIXL ADC2 Switch" 0
amixer cset -c tegrasndt210ref name="x Stereo ADC MIXR ADC2 Switch" 0
amixer cset -c tegrasndt210ref name="x IN2 Mode Control" 0
amixer cset -c tegrasndt210ref name="x IN2 Boost" 1
amixer cset -c tegrasndt210ref name="x Mic Jack Switch" 1
amixer sset -c tegrasndt210ref 'ADMAIF1 Mux' 'I2S1'

amixer sset -c 1 'x HP Channel' on
amixer sset -c 1 'x HP L' on
amixer sset -c 1 'x HP R' on

amixer sset -c 1 'x Stereo DAC MIXR DAC R1' on  
amixer sset -c 1 'x Stereo DAC MIXL DAC L1' on
amixer sset -c 1 'x Speaker R' on
amixer sset -c 1 'x Speaker L' on
amixer sset -c 1 'x Speaker Channel' on
amixer sset -c 1 'x SPOR MIX SPKVOL R' on
amixer sset -c 1 'x SPOL MIX SPKVOL L' on
amixer sset -c 1 'x SPK MIXR DAC R1' on
amixer sset -c 1 'x SPK MIXL DAC L1' on
amixer sset -c 1 'x SPOL MIX SPKVOL L' on
amixer sset -c 1 'x SPOL MIX SPKVOL R' on
amixer sset -c 1 'x OUT MIXL DAC L1' on
amixer sset -c 1 'x OUT MIXR DAC R1' on
amixer sset -c 1 'x HPO MIX HPVOL' on
amixer sset -c 1 'x HPO MIX HPVOR' on

And here is the device list

nvidia@tegra-ubuntu:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: tegrahda [tegra-hda], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 0: ADMAIF1 CIF ADMAIF1-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 1: ADMAIF2 CIF ADMAIF2-1 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 2: ADMAIF3 CIF ADMAIF3-2 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 3: ADMAIF4 CIF ADMAIF4-3 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 4: ADMAIF5 CIF ADMAIF5-4 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 5: ADMAIF6 CIF ADMAIF6-5 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 6: ADMAIF7 CIF ADMAIF7-6 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 7: ADMAIF8 CIF ADMAIF8-7 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 8: ADMAIF9 CIF ADMAIF9-8 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 9: ADMAIF10 CIF ADMAIF10-9 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 93: ADSP PCM1 ADSP-FE1-93 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt5639], device 94: ADSP PCM2 ADSP-FE2-94 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
nvidia@tegra-ubuntu:~$

Hi tony, does the loopback recording in #13 work?

Hi DaneLLL,

I executed those commmands in #13. I can hear the “input.wav” sound, but the “output.wav” like a quick play of music. Please see attachment for the wav files.
input.wav (507 KB)
output.wav (861 KB)