Debug es8388,but Jetson orin no aud_mclk output

SoftVersion: JetPacl_5.1.3 ubuntu2004

chip module: Jetson orin NX 16G

Hardware: I2S2 and I2c1 connect to es8388.

schematic diagram:

aud_mclk

Pin multiplexing configuration:

image

image

image

cat /sys/kernel/debug/pinctrl/2430000.pinmux/pinconf-groups >pin.txt

pin.txt (39.3 KB)

Should my pin multiplexing configuration be okay?Please help me analyze it.

The device tree configuration is as follows:

/ {
 aconnect@2a41000 {
        status = "okay";
		tegra_agic:agic-controller@2a41000 {
			status = "okay";
		};

		adsp@2993000 {
			status = "okay";
		};

        ahub{
            status = "okay";
            i2s@2901100{
                status = "okay";
            };
        };
	};
    

    tegra_acsl_audio: acsl_audio {
        status = "okay";
    };
    
      i2c@3160000 {
        status = "okay";
        es8388: es8388@11 {
            compatible = "everest,es8388";
            status = "okay";
            reg = <0x11>;
            #sound-dai-cells = <0>;
            sound-name-prefix = "CVB-RT";
            clocks = <&bpmp_clks TEGRA234_CLK_AUD_MCLK>;
            clock-parents = <&bpmp_clks TEGRA234_CLK_PLLA_OUT0>;
            clock-names = "mclk";

            port {
                es8388_ep: endpoint {
                    remote-endpoint = <&i2s2_dap_ep>;  
                    mclk-fs = <256>;
                    link-name = "es8388-playback";
                };
            };
        };
    };
   tegra_sound: sound {
		status = "okay";

        // fixed-pll;

		compatible = "nvidia,tegra186-ape";
		nvidia-audio-card,name = "es8388-tegra";
		clocks = <&bpmp_clks TEGRA234_CLK_PLLA>,
			 <&bpmp_clks TEGRA234_CLK_PLLA_OUT0>,
			 <&bpmp_clks TEGRA234_CLK_AUD_MCLK>;
		clock-names = "pll_a", "pll_a_out0", "extern1";
        nvidia,aud-mclk-always-on;
		assigned-clocks = <&bpmp_clks TEGRA234_CLK_PLLA_OUT0>,
				  <&bpmp_clks TEGRA234_CLK_AUD_MCLK>;
		assigned-clock-parents = <&bpmp_clks TEGRA234_CLK_PLLA>,
					 <&bpmp_clks TEGRA234_CLK_PLLA_OUT0>;
        assigned-clock-rates = <361280000>,  
                           <361280000>,  
                           <0>; 

        nvidia-audio-card,widgets = 
                "Headphone",        "CVB-RT Headphone Jack",
                "Microphone",       "CVB-RT Mic Jack";
        nvidia-audio-card,routing = 
                "CVB-RT Headphone Jack",        "CVB-RT LOUT1",
                "CVB-RT Headphone Jack",        "CVB-RT ROUT1",
                "CVB-RT LINPUT1",               "CVB-RT Mic Jack",
                "CVB-RT RINPUT1",               "CVB-RT Mic Jack";
        nvidia-audio-card,mclk-fs = <256>;
	};
   
};

hdr40_snd_link_i2s: &i2s2_to_codec { 
    link-name = "es8388-playback";
    status = "okay";
    // bitclock-master;
    // frame-master;
    codec {
        sound-dai = <&es8388 0>;
        prefix = "CVB-RT";
    };
};

/* Audio graph related bindings */
hdr40_snd_i2s_dap_ep: &i2s2_dap_ep { 
    status = "okay";
    remote-endpoint = <&es8388_ep>;
};

sudo dtc -I fs -O dts -o dt.dts /proc/device-tree

dt.dts.txt (410.0 KB)

Source code modification:

Linux_for_Tegra/source/public/kernel/kernel5.10/sound/soc/tegra/tegra_codecs.c
static int tegra_machine_es8388_init(struct snd_soc_pcm_runtime *rtd)
{
	struct device *dev = rtd->card->dev;
	int err;
	printk("\n/*** tegra_machine_es8388_init  1 ***/\n");
	err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus], 0, 12288000,
									SND_SOC_CLOCK_IN);
	if (err) {
			dev_err(dev, "failed to set es8388 sysclk!\n");
			return err;
	}
	printk("\n/*** tegra_machine_es8388_init  ok ***/\n");
	return tegra_audio_dai_init(rtd);
}

//in int tegra_codecs_runtime_setup(struct snd_soc_card *card,
/* DAI link-name "es8388-playback" specified in DT */
	rtd = get_pcm_runtime(card, "es8388-playback");
	if (rtd) {
#if 0
		unsigned int bclk_rate;
		struct snd_soc_pcm_stream *dai_params;
		dai_params = (struct snd_soc_pcm_stream *)rtd->dai_link->params;
		
		 /* Calculate BCLK rate depending on the stream rate, channels and bits */
		switch (dai_params->formats) {
			case SNDRV_PCM_FMTBIT_S8:
                bclk_rate = srate * channels * 8;
                break;
            case SNDRV_PCM_FMTBIT_S16_LE:
                bclk_rate = srate * channels * 16;
                break;
            case SNDRV_PCM_FMTBIT_S32_LE:
                bclk_rate = srate * channels * 32;
                break;
            default:
				printk("\n/*** dai_params no ***/\n");
                return -EINVAL;
		}
		printk("\n/*** srate=%d  channels = %d  bclk_rate = %d num_cpus = %d  BCLK1 = %d  PLL1 = %d ***/\n",srate, channels, bclk_rate,rtd->num_cpus, RT5659_PLL1_S_BCLK1,RT5659_SCLK_S_PLL1);
		/* Set codec DAI PLL */
		err = snd_soc_dai_set_pll(rtd->dais[rtd->num_cpus],0,0,bclk_rate,srate * 256);
		if(err < 0)
			return err;

		/* Set SYSCLK */
		err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus], RT5659_SCLK_S_PLL1, srate * 256, SND_SOC_CLOCK_IN);
		if (err < 0)
			return err;
#else
		printk("\n/*** snd_soc_dai_set_sysclk 1 ***/\n");
		err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus],
										RT5640_SCLK_S_MCLK,
										aud_mclk, SND_SOC_CLOCK_IN);
		if (err < 0) {
				dev_err(card->dev, "dais[%d] clock not set\n",
						rtd->num_cpus);
				return err;
		}
#endif
		printk("\n/*** snd_soc_dai_set_sysclk 2 ***/\n");
	}



//in int tegra_codecs_init(struct snd_soc_card *card)
else if (strstr(dai_links[i].name, "fe-pi-audio-z-v2"))
			dai_links[i].init = tegra_machine_fepi_init;
		else if (strstr(dai_links[i].name, "respeaker-4-mic-array"))
			dai_links[i].init = tegra_machine_respeaker_init;
		else if (strstr(dai_links[i].name, "es8388-playback"))
			dai_links[i].init = tegra_machine_es8388_init;

in tegra_defconfig add:

CONFIG_SND_SOC_ES8328=y
CONFIG_SND_SOC_ES8328_I2C=y

log:

There is no sound during playback

I can see that the clock has been enabled, but when I actually measure it with an oscilloscope, I find that there is no actual clock on the line.

Is there anything else that I haven’t configured correctly?

Please help me solve this problem

Thank you

Greetings!

Please use jetson-io tool if available for configuring pinmux . Refer usage guide at Configuring the Jetson Expansion Headers — NVIDIA Jetson Linux Developer Guide 1 documentation

Looks like your codec is registered. hich clock are you probing? I2S clocks will be available only when usecase is running. Are you probing when the usecase is running

Please put prints in es328 to ensure probe is complete and necessary power is supplied for the mute controls to work

Thanks

Greetings!

I measured the clock of adu_mclk, with the pin number 211.It is detected during the runtime of the usage scenario. Detected during the process of playing audio using the command “aplay -D hw:es8388tegra zjl_daoxiang.wav”。

As you mentioned, adding the print function to es8328, the probe process has been completed. Do I need to add a power-related regulator in the device tree?
like this:

But I have already tried adding the power configuration to the device tree, but there is still no output from aud_mclk.

Hi,

Are you able to hear audio on codec?

<But I have already tried adding the power configuration to the device tree, but there is still no output from aud_mclk.
measured the clock of adu_mclk, with the pin number 211.It is detected during the runtime of the usage scenario.>

Above two sentences are confusing. aud_mclk is functional during usecase right?

Thanks!

No, I’m not able to hear audio on a codec.
What I mean is that when using the aplay command to play audio, no clock output can be measured on the aud_mclk line.

The aud_mclk measurement point is the chip pin numbered 211。

Thanks!

Run the command:

root@ubuntu:/home/cftc# cat /proc/asound/cards
 0 [HDA            ]: tegra-hda - NVIDIA Jetson Orin NX HDA
                      NVIDIA Jetson Orin NX HDA at 0x3518000 irq 111
 1 [es8388tegra    ]: tegra-ape - es8388-tegra
                      es8388-tegra
root@ubuntu:/home/cftc# aplay -D hw:es8388tegra /usr/share/alsa/
alsa.conf        init/            speaker-test/    utils.sh
alsa.conf.d/     pcm/             ucm/
cards/           pulse-alsa.conf  ucm2/
root@ubuntu:/home/cftc# aplay -D hw:es8388tegra zjl_daoxiang.wav
Playing WAVE 'zjl_daoxiang.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
[23021.512383] es8328 0-0011: ASoC: Failed to unmute: 1
^CAborted by signal Interrupt...
[23066.519556] es8328 0-0011: ASoC: Failed to mute: 1
root@ubuntu:/home/cftc#

and Then execute on the new terminal:

root@ubuntu:/home/cftc# cat /sys/kernel/debug/tracing/trace_pipe
           aplay-4063    [001] .... 23021.511012: snd_soc_dapm_start: card=es8388-tegra
           aplay-4063    [001] .... 23021.511240: snd_soc_dapm_widget_power: widget=ADMAIF1 Playback val=1
           aplay-4063    [001] .... 23021.511241: snd_soc_dapm_widget_power: widget=ADMAIF1 XBAR-Playback val=1
           aplay-4063    [001] .... 23021.511244: snd_soc_dapm_path: *ADMAIF1 XBAR-RX <- (direct) <- ADMAIF1 XBAR-Playback
           aplay-4063    [001] .... 23021.511245: snd_soc_dapm_widget_power: widget=ADMAIF1 XBAR-RX val=1
           aplay-4063    [001] .... 23021.511247: snd_soc_dapm_path:  I2S2 Mux <- ARAD1 <- ARAD1 XBAR-RX
           aplay-4063    [001] .... 23021.511248: snd_soc_dapm_path:  I2S2 Mux <- ADX4 TX4 <- ADX4 TX4 XBAR-RX
           aplay-4063    [001] .... 23021.511249: snd_soc_dapm_path:  I2S2 Mux <- ADX4 TX3 <- ADX4 TX3 XBAR-RX
           aplay-4063    [001] .... 23021.511250: snd_soc_dapm_path:  I2S2 Mux <- ADX4 TX2 <- ADX4 TX2 XBAR-RX
           aplay-4063    [001] .... 23021.511251: snd_soc_dapm_path:  I2S2 Mux <- ADX4 TX1 <- ADX4 TX1 XBAR-RX
           aplay-4063    [001] .... 23021.511252: snd_soc_dapm_path:  I2S2 Mux <- AMX4 <- AMX4 XBAR-RX
           aplay-4063    [001] .... 23021.511253: snd_soc_dapm_path:  I2S2 Mux <- ADX3 TX4 <- ADX3 TX4 XBAR-RX
           aplay-4063    [001] .... 23021.511254: snd_soc_dapm_path:  I2S2 Mux <- ADX3 TX3 <- ADX3 TX3 XBAR-RX
           aplay-4063    [001] .... 23021.511255: snd_soc_dapm_path:  I2S2 Mux <- ADX3 TX2 <- ADX3 TX2 XBAR-RX
           aplay-4063    [001] .... 23021.511255: snd_soc_dapm_path:  I2S2 Mux <- ADX3 TX1 <- ADX3 TX1 XBAR-RX
           aplay-4063    [001] .... 23021.511256: snd_soc_dapm_path:  I2S2 Mux <- AMX3 <- AMX3 XBAR-RX
           aplay-4063    [001] .... 23021.511257: snd_soc_dapm_path:  I2S2 Mux <- ASRC1 TX6 <- ASRC1 TX6 XBAR-RX
           aplay-4063    [001] .... 23021.511258: snd_soc_dapm_path:  I2S2 Mux <- ASRC1 TX5 <- ASRC1 TX5 XBAR-RX
           aplay-4063    [001] .... 23021.511259: snd_soc_dapm_path:  I2S2 Mux <- ASRC1 TX4 <- ASRC1 TX4 XBAR-RX
           aplay-4063    [001] .... 23021.511259: snd_soc_dapm_path:  I2S2 Mux <- ASRC1 TX3 <- ASRC1 TX3 XBAR-RX
           aplay-4063    [001] .... 23021.511260: snd_soc_dapm_path:  I2S2 Mux <- ASRC1 TX2 <- ASRC1 TX2 XBAR-RX
           aplay-4063    [001] .... 23021.511261: snd_soc_dapm_path:  I2S2 Mux <- ASRC1 TX1 <- ASRC1 TX1 XBAR-RX
           aplay-4063    [001] .... 23021.511262: snd_soc_dapm_path:  I2S2 Mux <- I2S6 <- I2S6 XBAR-RX
           aplay-4063    [001] .... 23021.511263: snd_soc_dapm_path:  I2S2 Mux <- DMIC4 <- DMIC4 XBAR-RX
           aplay-4063    [001] .... 23021.511264: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF20 <- ADMAIF20 XBAR-RX
           aplay-4063    [001] .... 23021.511265: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF19 <- ADMAIF19 XBAR-RX
           aplay-4063    [001] .... 23021.511266: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF18 <- ADMAIF18 XBAR-RX
           aplay-4063    [001] .... 23021.511267: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF17 <- ADMAIF17 XBAR-RX
           aplay-4063    [001] .... 23021.511267: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF16 <- ADMAIF16 XBAR-RX
           aplay-4063    [001] .... 23021.511268: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF15 <- ADMAIF15 XBAR-RX
           aplay-4063    [001] .... 23021.511269: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF14 <- ADMAIF14 XBAR-RX
           aplay-4063    [001] .... 23021.511269: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF13 <- ADMAIF13 XBAR-RX
           aplay-4063    [001] .... 23021.511270: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF12 <- ADMAIF12 XBAR-RX
           aplay-4063    [001] .... 23021.511271: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF11 <- ADMAIF11 XBAR-RX
           aplay-4063    [001] .... 23021.511272: snd_soc_dapm_path:  I2S2 Mux <- ADX2 TX4 <- ADX2 TX4 XBAR-RX
           aplay-4063    [001] .... 23021.511272: snd_soc_dapm_path:  I2S2 Mux <- ADX2 TX3 <- ADX2 TX3 XBAR-RX
           aplay-4063    [001] .... 23021.511273: snd_soc_dapm_path:  I2S2 Mux <- ADX2 TX2 <- ADX2 TX2 XBAR-RX
           aplay-4063    [001] .... 23021.511273: snd_soc_dapm_path:  I2S2 Mux <- ADX2 TX1 <- ADX2 TX1 XBAR-RX
           aplay-4063    [001] .... 23021.511274: snd_soc_dapm_path:  I2S2 Mux <- AMX2 <- AMX2 XBAR-RX
           aplay-4063    [001] .... 23021.511274: snd_soc_dapm_path:  I2S2 Mux <- ADX1 TX4 <- ADX1 TX4 XBAR-RX
           aplay-4063    [001] .... 23021.511274: snd_soc_dapm_path:  I2S2 Mux <- ADX1 TX3 <- ADX1 TX3 XBAR-RX
           aplay-4063    [001] .... 23021.511275: snd_soc_dapm_path:  I2S2 Mux <- ADX1 TX2 <- ADX1 TX2 XBAR-RX
           aplay-4063    [001] .... 23021.511275: snd_soc_dapm_path:  I2S2 Mux <- ADX1 TX1 <- ADX1 TX1 XBAR-RX
           aplay-4063    [001] .... 23021.511276: snd_soc_dapm_path:  I2S2 Mux <- AMX1 <- AMX1 XBAR-RX
           aplay-4063    [001] .... 23021.511276: snd_soc_dapm_path:  I2S2 Mux <- DMIC3 <- DMIC3 XBAR-RX
           aplay-4063    [001] .... 23021.511276: snd_soc_dapm_path:  I2S2 Mux <- DMIC2 <- DMIC2 XBAR-RX
           aplay-4063    [001] .... 23021.511277: snd_soc_dapm_path:  I2S2 Mux <- DMIC1 <- DMIC1 XBAR-RX
           aplay-4063    [001] .... 23021.511277: snd_soc_dapm_path:  I2S2 Mux <- IQC2-2 <- IQC2-2 XBAR-RX
           aplay-4063    [001] .... 23021.511278: snd_soc_dapm_path:  I2S2 Mux <- IQC2-1 <- IQC2-1 XBAR-RX
           aplay-4063    [001] .... 23021.511278: snd_soc_dapm_path:  I2S2 Mux <- IQC1-2 <- IQC1-2 XBAR-RX
           aplay-4063    [001] .... 23021.511279: snd_soc_dapm_path:  I2S2 Mux <- IQC1-1 <- IQC1-1 XBAR-RX
           aplay-4063    [001] .... 23021.511280: snd_soc_dapm_path:  I2S2 Mux <- MVC2 <- MVC2 XBAR-RX
           aplay-4063    [001] .... 23021.511281: snd_soc_dapm_path:  I2S2 Mux <- MVC1 <- MVC1 XBAR-RX
           aplay-4063    [001] .... 23021.511282: snd_soc_dapm_path:  I2S2 Mux <- OPE1 <- OPE1 XBAR-RX
           aplay-4063    [001] .... 23021.511282: snd_soc_dapm_path:  I2S2 Mux <- AFC6 <- AFC6 XBAR-RX
           aplay-4063    [001] .... 23021.511282: snd_soc_dapm_path:  I2S2 Mux <- AFC5 <- AFC5 XBAR-RX
           aplay-4063    [001] .... 23021.511283: snd_soc_dapm_path:  I2S2 Mux <- AFC4 <- AFC4 XBAR-RX
           aplay-4063    [001] .... 23021.511284: snd_soc_dapm_path:  I2S2 Mux <- AFC3 <- AFC3 XBAR-RX
           aplay-4063    [001] .... 23021.511284: snd_soc_dapm_path:  I2S2 Mux <- AFC2 <- AFC2 XBAR-RX
           aplay-4063    [001] .... 23021.511285: snd_soc_dapm_path:  I2S2 Mux <- AFC1 <- AFC1 XBAR-RX
           aplay-4063    [001] .... 23021.511286: snd_soc_dapm_path:  I2S2 Mux <- MIXER1 TX5 <- MIXER1 TX5 XBAR-RX
           aplay-4063    [001] .... 23021.511287: snd_soc_dapm_path:  I2S2 Mux <- MIXER1 TX4 <- MIXER1 TX4 XBAR-RX
           aplay-4063    [001] .... 23021.511288: snd_soc_dapm_path:  I2S2 Mux <- MIXER1 TX3 <- MIXER1 TX3 XBAR-RX
           aplay-4063    [001] .... 23021.511288: snd_soc_dapm_path:  I2S2 Mux <- MIXER1 TX2 <- MIXER1 TX2 XBAR-RX
           aplay-4063    [001] .... 23021.511289: snd_soc_dapm_path:  I2S2 Mux <- MIXER1 TX1 <- MIXER1 TX1 XBAR-RX
           aplay-4063    [001] .... 23021.511290: snd_soc_dapm_path:  I2S2 Mux <- SFC4 <- SFC4 XBAR-RX
           aplay-4063    [001] .... 23021.511290: snd_soc_dapm_path:  I2S2 Mux <- SFC3 <- SFC3 XBAR-RX
           aplay-4063    [001] .... 23021.511291: snd_soc_dapm_path:  I2S2 Mux <- SFC2 <- SFC2 XBAR-RX
           aplay-4063    [001] .... 23021.511291: snd_soc_dapm_path:  I2S2 Mux <- SFC1 <- SFC1 XBAR-RX
           aplay-4063    [001] .... 23021.511292: snd_soc_dapm_path:  I2S2 Mux <- I2S5 <- I2S5 XBAR-RX
           aplay-4063    [001] .... 23021.511292: snd_soc_dapm_path:  I2S2 Mux <- I2S4 <- I2S4 XBAR-RX
           aplay-4063    [001] .... 23021.511293: snd_soc_dapm_path:  I2S2 Mux <- I2S3 <- I2S3 XBAR-RX
           aplay-4063    [001] .... 23021.511293: snd_soc_dapm_path:  I2S2 Mux <- I2S2 <- I2S2 XBAR-RX
           aplay-4063    [001] .... 23021.511294: snd_soc_dapm_path:  I2S2 Mux <- I2S1 <- I2S1 XBAR-RX
           aplay-4063    [001] .... 23021.511294: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF10 <- ADMAIF10 XBAR-RX
           aplay-4063    [001] .... 23021.511295: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF9 <- ADMAIF9 XBAR-RX
           aplay-4063    [001] .... 23021.511296: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF8 <- ADMAIF8 XBAR-RX
           aplay-4063    [001] .... 23021.511296: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF7 <- ADMAIF7 XBAR-RX
           aplay-4063    [001] .... 23021.511296: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF6 <- ADMAIF6 XBAR-RX
           aplay-4063    [001] .... 23021.511297: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF5 <- ADMAIF5 XBAR-RX
           aplay-4063    [001] .... 23021.511297: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF4 <- ADMAIF4 XBAR-RX
           aplay-4063    [001] .... 23021.511298: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF3 <- ADMAIF3 XBAR-RX
           aplay-4063    [001] .... 23021.511298: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF2 <- ADMAIF2 XBAR-RX
           aplay-4063    [001] .... 23021.511298: snd_soc_dapm_path: *I2S2 Mux <- ADMAIF1 <- ADMAIF1 XBAR-RX
           aplay-4063    [001] .... 23021.511299: snd_soc_dapm_widget_power: widget=I2S2 Mux val=1
           aplay-4063    [001] .... 23021.511300: snd_soc_dapm_path: *I2S2 XBAR-TX <- (direct) <- I2S2 Mux
           aplay-4063    [001] .... 23021.511300: snd_soc_dapm_widget_power: widget=I2S2 XBAR-TX val=1
           aplay-4063    [001] .... 23021.511301: snd_soc_dapm_path: *I2S2 XBAR-Capture <- (direct) <- I2S2 XBAR-TX
           aplay-4063    [001] .... 23021.511302: snd_soc_dapm_widget_power: widget=I2S2 XBAR-Capture val=1
           aplay-4063    [001] .... 23021.511302: snd_soc_dapm_path: *tegra-dlink-65-playback <- (direct) <- I2S2 XBAR-Capture
           aplay-4063    [001] .... 23021.511303: snd_soc_dapm_widget_power: widget=tegra-dlink-65-playback val=1
           aplay-4063    [001] .... 23021.511304: snd_soc_dapm_path: *I2S2 CIF-Playback <- (direct) <- tegra-dlink-65-playback
           aplay-4063    [001] .... 23021.511304: snd_soc_dapm_widget_power: widget=I2S2 CIF-Playback val=1
           aplay-4063    [001] .... 23021.511305: snd_soc_dapm_path: *I2S2 RX <- (direct) <- I2S2 CIF-Playback
           aplay-4063    [001] .... 23021.511305: snd_soc_dapm_widget_power: widget=I2S2 RX val=1
           aplay-4063    [001] .... 23021.511306: snd_soc_dapm_path: *I2S2 DAP-Capture <- (direct) <- I2S2 RX
           aplay-4063    [001] .... 23021.511306: snd_soc_dapm_widget_power: widget=I2S2 DAP-Capture val=1
           aplay-4063    [001] .... 23021.511307: snd_soc_dapm_path: *es8388-playback-playback <- (direct) <- I2S2 DAP-Capture
           aplay-4063    [001] .... 23021.511307: snd_soc_dapm_widget_power: widget=es8388-playback-playback val=1
           aplay-4063    [001] .... 23021.511308: snd_soc_dapm_path: *CVB-RT Playback <- (direct) <- es8388-playback-playback
           aplay-4063    [001] .... 23021.511308: snd_soc_dapm_widget_power: widget=CVB-RT Playback val=1
           aplay-4063    [001] .... 23021.511309: snd_soc_dapm_path: *CVB-RT Left DAC <- (direct) <- CVB-RT Playback
           aplay-4063    [001] .... 23021.511310: snd_soc_dapm_widget_power: widget=CVB-RT Left DAC val=1
           aplay-4063    [001] .... 23021.511311: snd_soc_dapm_path: *CVB-RT Right DAC <- (direct) <- CVB-RT Playback
           aplay-4063    [001] .... 23021.511311: snd_soc_dapm_widget_power: widget=CVB-RT Right DAC val=1
           aplay-4063    [001] .... 23021.511313: snd_soc_dapm_widget_power: widget=CVB-RT DAC DIG val=1
           aplay-4063    [001] .... 23021.511315: snd_soc_dapm_path: *CVB-RT Left Out 2 <- (direct) <- CVB-RT Left Mixer
           aplay-4063    [001] .... 23021.511315: snd_soc_dapm_path: *CVB-RT Left Out 2 <- (direct) <- CVB-RT Left DAC
           aplay-4063    [001] .... 23021.511316: snd_soc_dapm_path: *CVB-RT Left Out 1 <- (direct) <- CVB-RT Left Mixer
           aplay-4063    [001] .... 23021.511316: snd_soc_dapm_path: *CVB-RT Left Out 1 <- (direct) <- CVB-RT Left DAC
           aplay-4063    [001] .... 23021.511317: snd_soc_dapm_widget_power: widget=CVB-RT Left Out 1 val=1
           aplay-4063    [001] .... 23021.511317: snd_soc_dapm_path: *CVB-RT Right Out 2 <- (direct) <- CVB-RT Right Mixer
           aplay-4063    [001] .... 23021.511318: snd_soc_dapm_path: *CVB-RT Right Out 2 <- (direct) <- CVB-RT Right DAC
           aplay-4063    [001] .... 23021.511318: snd_soc_dapm_path: *CVB-RT Right Out 1 <- (direct) <- CVB-RT Right Mixer
           aplay-4063    [001] .... 23021.511318: snd_soc_dapm_path: *CVB-RT Right Out 1 <- (direct) <- CVB-RT Right DAC
           aplay-4063    [001] .... 23021.511319: snd_soc_dapm_widget_power: widget=CVB-RT Right Out 1 val=1
           aplay-4063    [001] .... 23021.511320: snd_soc_dapm_widget_power: widget=CVB-RT DAC DLL val=1
           aplay-4063    [001] .... 23021.511320: snd_soc_dapm_widget_power: widget=CVB-RT DAC Vref val=1
           aplay-4063    [001] .... 23021.511320: snd_soc_dapm_widget_power: widget=CVB-RT DAC STM val=1
           aplay-4063    [001] .... 23021.511321: snd_soc_dapm_path: *CVB-RT LOUT1 <- (direct) <- CVB-RT Left Out 1
           aplay-4063    [001] .... 23021.511321: snd_soc_dapm_widget_power: widget=CVB-RT LOUT1 val=1
           aplay-4063    [001] .... 23021.511322: snd_soc_dapm_path: *CVB-RT ROUT1 <- (direct) <- CVB-RT Right Out 1
           aplay-4063    [001] .... 23021.511322: snd_soc_dapm_widget_power: widget=CVB-RT ROUT1 val=1
           aplay-4063    [001] .... 23021.511324: snd_soc_dapm_path: *CVB-RT Headphone Jack <- (direct) <- CVB-RT ROUT1
           aplay-4063    [001] .... 23021.511325: snd_soc_dapm_path: *CVB-RT Headphone Jack <- (direct) <- CVB-RT LOUT1
           aplay-4063    [001] .... 23021.511325: snd_soc_dapm_widget_power: widget=CVB-RT Headphone Jack val=1
           aplay-4063    [001] .... 23021.511546: snd_soc_dapm_walk_done: es8388-tegra: checks 28 power, 21 path, 108 neighbour
           aplay-4063    [001] .... 23021.511548: snd_soc_bias_level_start: card=es8388-tegra val=1
           aplay-4063    [001] .... 23021.511550: snd_soc_bias_level_done: card=es8388-tegra val=1
           aplay-4063    [001] .... 23021.511550: snd_soc_bias_level_start: card=es8388-tegra val=2
           aplay-4063    [001] .... 23021.511550: snd_soc_bias_level_done: card=es8388-tegra val=2
   kworker/u16:1-3785    [003] .... 23021.511569: snd_soc_bias_level_start: card=es8388-tegra val=2
   kworker/u16:2-3817    [001] .... 23021.511659: snd_soc_bias_level_start: card=es8388-tegra val=1
   kworker/u16:2-3817    [001] .... 23021.511660: snd_soc_bias_level_done: card=es8388-tegra val=1
   kworker/u16:2-3817    [001] .... 23021.511661: snd_soc_bias_level_start: card=es8388-tegra val=2
   kworker/u16:2-3817    [001] .... 23021.511661: snd_soc_bias_level_done: card=es8388-tegra val=2
   kworker/u16:2-3817    [001] .... 23021.511667: snd_soc_bias_level_start: card=es8388-tegra val=1
   kworker/u16:2-3817    [001] .... 23021.511668: snd_soc_bias_level_done: card=es8388-tegra val=1
   kworker/u16:2-3817    [001] .... 23021.511668: snd_soc_bias_level_start: card=es8388-tegra val=2
   kworker/u16:2-3817    [001] .... 23021.511668: snd_soc_bias_level_done: card=es8388-tegra val=2
   kworker/u16:0-3923    [000] .... 23021.511767: snd_soc_bias_level_start: card=es8388-tegra val=1
   kworker/u16:0-3923    [000] .... 23021.511770: snd_soc_bias_level_done: card=es8388-tegra val=1
   kworker/u16:0-3923    [000] .... 23021.511770: snd_soc_bias_level_start: card=es8388-tegra val=2
   kworker/u16:0-3923    [000] .... 23021.511771: snd_soc_bias_level_done: card=es8388-tegra val=2
   kworker/u16:1-3785    [003] .... 23021.511796: snd_soc_bias_level_done: card=es8388-tegra val=2
           aplay-4063    [002] .... 23021.511818: snd_soc_dapm_widget_event_start: widget=es8388-playback-playback val=1
           aplay-4063    [002] .... 23021.512264: snd_soc_dapm_widget_event_done: widget=es8388-playback-playback val=1
           aplay-4063    [002] .... 23021.512265: snd_soc_dapm_widget_event_start: widget=tegra-dlink-65-playback val=1
           aplay-4063    [002] .... 23021.512268: snd_soc_dapm_widget_event_done: widget=tegra-dlink-65-playback val=1
           aplay-4063    [002] .... 23021.512268: snd_soc_dapm_widget_event_start: widget=es8388-playback-playback val=2
           aplay-4063    [002] .... 23021.517517: snd_soc_dapm_widget_event_done: widget=es8388-playback-playback val=2
           aplay-4063    [002] .... 23021.517518: snd_soc_dapm_widget_event_start: widget=tegra-dlink-65-playback val=2
           aplay-4063    [002] .... 23021.517518: snd_soc_dapm_widget_event_done: widget=tegra-dlink-65-playback val=2
           aplay-4063    [002] .... 23021.517522: snd_soc_dapm_widget_event_start: widget=I2S2 RX val=1
           aplay-4063    [002] .... 23021.517549: snd_soc_dapm_widget_event_done: widget=I2S2 RX val=1
   kworker/u16:1-3785    [000] .... 23021.517796: snd_soc_bias_level_start: card=es8388-tegra val=3
   kworker/u16:1-3785    [000] .... 23021.517797: snd_soc_bias_level_done: card=es8388-tegra val=3
   kworker/u16:1-3785    [000] .... 23021.517804: snd_soc_bias_level_start: card=es8388-tegra val=3
   kworker/u16:0-3923    [001] .... 23021.517804: snd_soc_bias_level_start: card=es8388-tegra val=3
   kworker/u16:1-3785    [000] .... 23021.517804: snd_soc_bias_level_done: card=es8388-tegra val=3
   kworker/u16:0-3923    [001] .... 23021.517805: snd_soc_bias_level_done: card=es8388-tegra val=3
   kworker/u16:1-3785    [000] .... 23021.517806: snd_soc_bias_level_start: card=es8388-tegra val=3
   kworker/u16:1-3785    [000] .... 23021.517807: snd_soc_bias_level_done: card=es8388-tegra val=3
           aplay-4063    [002] .... 23021.517817: snd_soc_dapm_done: card=es8388-tegra
           aplay-4063    [003] .... 23066.518456: snd_soc_dapm_start: card=es8388-tegra
           aplay-4063    [003] .... 23066.518731: snd_soc_dapm_widget_power: widget=ADMAIF1 Playback val=0
           aplay-4063    [003] .... 23066.518737: snd_soc_dapm_path: *ADMAIF1 XBAR-Playback <- (direct) <- tegra-dlink-44-playback
           aplay-4063    [003] .... 23066.518739: snd_soc_dapm_path: *ADMAIF1 XBAR-Playback <- (direct) <- ADMAIF1 Playback
           aplay-4063    [003] .... 23066.518739: snd_soc_dapm_widget_power: widget=ADMAIF1 XBAR-Playback val=0
           aplay-4063    [003] .... 23066.518740: snd_soc_dapm_path: *ADMAIF1 XBAR-RX <- (direct) <- ADMAIF1 XBAR-Playback
           aplay-4063    [003] .... 23066.518742: snd_soc_dapm_widget_power: widget=ADMAIF1 XBAR-RX val=0
           aplay-4063    [003] .... 23066.518745: snd_soc_dapm_path:  I2S2 Mux <- ARAD1 <- ARAD1 XBAR-RX
           aplay-4063    [003] .... 23066.518746: snd_soc_dapm_path:  I2S2 Mux <- ADX4 TX4 <- ADX4 TX4 XBAR-RX
           aplay-4063    [003] .... 23066.518747: snd_soc_dapm_path:  I2S2 Mux <- ADX4 TX3 <- ADX4 TX3 XBAR-RX
           aplay-4063    [003] .... 23066.518748: snd_soc_dapm_path:  I2S2 Mux <- ADX4 TX2 <- ADX4 TX2 XBAR-RX
           aplay-4063    [003] .... 23066.518750: snd_soc_dapm_path:  I2S2 Mux <- ADX4 TX1 <- ADX4 TX1 XBAR-RX
           aplay-4063    [003] .... 23066.518750: snd_soc_dapm_path:  I2S2 Mux <- AMX4 <- AMX4 XBAR-RX
           aplay-4063    [003] .... 23066.518752: snd_soc_dapm_path:  I2S2 Mux <- ADX3 TX4 <- ADX3 TX4 XBAR-RX
           aplay-4063    [003] .... 23066.518753: snd_soc_dapm_path:  I2S2 Mux <- ADX3 TX3 <- ADX3 TX3 XBAR-RX
           aplay-4063    [003] .... 23066.518754: snd_soc_dapm_path:  I2S2 Mux <- ADX3 TX2 <- ADX3 TX2 XBAR-RX
           aplay-4063    [003] .... 23066.518755: snd_soc_dapm_path:  I2S2 Mux <- ADX3 TX1 <- ADX3 TX1 XBAR-RX
           aplay-4063    [003] .... 23066.518756: snd_soc_dapm_path:  I2S2 Mux <- AMX3 <- AMX3 XBAR-RX
           aplay-4063    [003] .... 23066.518757: snd_soc_dapm_path:  I2S2 Mux <- ASRC1 TX6 <- ASRC1 TX6 XBAR-RX
           aplay-4063    [003] .... 23066.518758: snd_soc_dapm_path:  I2S2 Mux <- ASRC1 TX5 <- ASRC1 TX5 XBAR-RX
           aplay-4063    [003] .... 23066.518759: snd_soc_dapm_path:  I2S2 Mux <- ASRC1 TX4 <- ASRC1 TX4 XBAR-RX
           aplay-4063    [003] .... 23066.518760: snd_soc_dapm_path:  I2S2 Mux <- ASRC1 TX3 <- ASRC1 TX3 XBAR-RX
           aplay-4063    [003] .... 23066.518762: snd_soc_dapm_path:  I2S2 Mux <- ASRC1 TX2 <- ASRC1 TX2 XBAR-RX
           aplay-4063    [003] .... 23066.518763: snd_soc_dapm_path:  I2S2 Mux <- ASRC1 TX1 <- ASRC1 TX1 XBAR-RX
           aplay-4063    [003] .... 23066.518764: snd_soc_dapm_path:  I2S2 Mux <- I2S6 <- I2S6 XBAR-RX
           aplay-4063    [003] .... 23066.518764: snd_soc_dapm_path:  I2S2 Mux <- DMIC4 <- DMIC4 XBAR-RX
           aplay-4063    [003] .... 23066.518766: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF20 <- ADMAIF20 XBAR-RX
           aplay-4063    [003] .... 23066.518767: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF19 <- ADMAIF19 XBAR-RX
           aplay-4063    [003] .... 23066.518768: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF18 <- ADMAIF18 XBAR-RX
           aplay-4063    [003] .... 23066.518769: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF17 <- ADMAIF17 XBAR-RX
           aplay-4063    [003] .... 23066.518769: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF16 <- ADMAIF16 XBAR-RX
           aplay-4063    [003] .... 23066.518770: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF15 <- ADMAIF15 XBAR-RX
           aplay-4063    [003] .... 23066.518771: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF14 <- ADMAIF14 XBAR-RX
           aplay-4063    [003] .... 23066.518771: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF13 <- ADMAIF13 XBAR-RX
           aplay-4063    [003] .... 23066.518773: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF12 <- ADMAIF12 XBAR-RX
           aplay-4063    [003] .... 23066.518773: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF11 <- ADMAIF11 XBAR-RX
           aplay-4063    [003] .... 23066.518774: snd_soc_dapm_path:  I2S2 Mux <- ADX2 TX4 <- ADX2 TX4 XBAR-RX
           aplay-4063    [003] .... 23066.518775: snd_soc_dapm_path:  I2S2 Mux <- ADX2 TX3 <- ADX2 TX3 XBAR-RX
           aplay-4063    [003] .... 23066.518776: snd_soc_dapm_path:  I2S2 Mux <- ADX2 TX2 <- ADX2 TX2 XBAR-RX
           aplay-4063    [003] .... 23066.518776: snd_soc_dapm_path:  I2S2 Mux <- ADX2 TX1 <- ADX2 TX1 XBAR-RX
           aplay-4063    [003] .... 23066.518777: snd_soc_dapm_path:  I2S2 Mux <- AMX2 <- AMX2 XBAR-RX
           aplay-4063    [003] .... 23066.518777: snd_soc_dapm_path:  I2S2 Mux <- ADX1 TX4 <- ADX1 TX4 XBAR-RX
           aplay-4063    [003] .... 23066.518778: snd_soc_dapm_path:  I2S2 Mux <- ADX1 TX3 <- ADX1 TX3 XBAR-RX
           aplay-4063    [003] .... 23066.518778: snd_soc_dapm_path:  I2S2 Mux <- ADX1 TX2 <- ADX1 TX2 XBAR-RX
           aplay-4063    [003] .... 23066.518778: snd_soc_dapm_path:  I2S2 Mux <- ADX1 TX1 <- ADX1 TX1 XBAR-RX
           aplay-4063    [003] .... 23066.518779: snd_soc_dapm_path:  I2S2 Mux <- AMX1 <- AMX1 XBAR-RX
           aplay-4063    [003] .... 23066.518780: snd_soc_dapm_path:  I2S2 Mux <- DMIC3 <- DMIC3 XBAR-RX
           aplay-4063    [003] .... 23066.518780: snd_soc_dapm_path:  I2S2 Mux <- DMIC2 <- DMIC2 XBAR-RX
           aplay-4063    [003] .... 23066.518781: snd_soc_dapm_path:  I2S2 Mux <- DMIC1 <- DMIC1 XBAR-RX
           aplay-4063    [003] .... 23066.518781: snd_soc_dapm_path:  I2S2 Mux <- IQC2-2 <- IQC2-2 XBAR-RX
           aplay-4063    [003] .... 23066.518782: snd_soc_dapm_path:  I2S2 Mux <- IQC2-1 <- IQC2-1 XBAR-RX
           aplay-4063    [003] .... 23066.518782: snd_soc_dapm_path:  I2S2 Mux <- IQC1-2 <- IQC1-2 XBAR-RX
           aplay-4063    [003] .... 23066.518783: snd_soc_dapm_path:  I2S2 Mux <- IQC1-1 <- IQC1-1 XBAR-RX
           aplay-4063    [003] .... 23066.518784: snd_soc_dapm_path:  I2S2 Mux <- MVC2 <- MVC2 XBAR-RX
           aplay-4063    [003] .... 23066.518785: snd_soc_dapm_path:  I2S2 Mux <- MVC1 <- MVC1 XBAR-RX
           aplay-4063    [003] .... 23066.518785: snd_soc_dapm_path:  I2S2 Mux <- OPE1 <- OPE1 XBAR-RX
           aplay-4063    [003] .... 23066.518786: snd_soc_dapm_path:  I2S2 Mux <- AFC6 <- AFC6 XBAR-RX
           aplay-4063    [003] .... 23066.518786: snd_soc_dapm_path:  I2S2 Mux <- AFC5 <- AFC5 XBAR-RX
           aplay-4063    [003] .... 23066.518788: snd_soc_dapm_path:  I2S2 Mux <- AFC4 <- AFC4 XBAR-RX
           aplay-4063    [003] .... 23066.518789: snd_soc_dapm_path:  I2S2 Mux <- AFC3 <- AFC3 XBAR-RX
           aplay-4063    [003] .... 23066.518790: snd_soc_dapm_path:  I2S2 Mux <- AFC2 <- AFC2 XBAR-RX
           aplay-4063    [003] .... 23066.518790: snd_soc_dapm_path:  I2S2 Mux <- AFC1 <- AFC1 XBAR-RX
           aplay-4063    [003] .... 23066.518790: snd_soc_dapm_path:  I2S2 Mux <- MIXER1 TX5 <- MIXER1 TX5 XBAR-RX
           aplay-4063    [003] .... 23066.518791: snd_soc_dapm_path:  I2S2 Mux <- MIXER1 TX4 <- MIXER1 TX4 XBAR-RX
           aplay-4063    [003] .... 23066.518792: snd_soc_dapm_path:  I2S2 Mux <- MIXER1 TX3 <- MIXER1 TX3 XBAR-RX
           aplay-4063    [003] .... 23066.518792: snd_soc_dapm_path:  I2S2 Mux <- MIXER1 TX2 <- MIXER1 TX2 XBAR-RX
           aplay-4063    [003] .... 23066.518792: snd_soc_dapm_path:  I2S2 Mux <- MIXER1 TX1 <- MIXER1 TX1 XBAR-RX
           aplay-4063    [003] .... 23066.518793: snd_soc_dapm_path:  I2S2 Mux <- SFC4 <- SFC4 XBAR-RX
           aplay-4063    [003] .... 23066.518794: snd_soc_dapm_path:  I2S2 Mux <- SFC3 <- SFC3 XBAR-RX
           aplay-4063    [003] .... 23066.518794: snd_soc_dapm_path:  I2S2 Mux <- SFC2 <- SFC2 XBAR-RX
           aplay-4063    [003] .... 23066.518795: snd_soc_dapm_path:  I2S2 Mux <- SFC1 <- SFC1 XBAR-RX
           aplay-4063    [003] .... 23066.518795: snd_soc_dapm_path:  I2S2 Mux <- I2S5 <- I2S5 XBAR-RX
           aplay-4063    [003] .... 23066.518796: snd_soc_dapm_path:  I2S2 Mux <- I2S4 <- I2S4 XBAR-RX
           aplay-4063    [003] .... 23066.518796: snd_soc_dapm_path:  I2S2 Mux <- I2S3 <- I2S3 XBAR-RX
           aplay-4063    [003] .... 23066.518797: snd_soc_dapm_path:  I2S2 Mux <- I2S2 <- I2S2 XBAR-RX
           aplay-4063    [003] .... 23066.518797: snd_soc_dapm_path:  I2S2 Mux <- I2S1 <- I2S1 XBAR-RX
           aplay-4063    [003] .... 23066.518798: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF10 <- ADMAIF10 XBAR-RX
           aplay-4063    [003] .... 23066.518799: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF9 <- ADMAIF9 XBAR-RX
           aplay-4063    [003] .... 23066.518800: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF8 <- ADMAIF8 XBAR-RX
           aplay-4063    [003] .... 23066.518800: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF7 <- ADMAIF7 XBAR-RX
           aplay-4063    [003] .... 23066.518801: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF6 <- ADMAIF6 XBAR-RX
           aplay-4063    [003] .... 23066.518801: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF5 <- ADMAIF5 XBAR-RX
           aplay-4063    [003] .... 23066.518801: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF4 <- ADMAIF4 XBAR-RX
           aplay-4063    [003] .... 23066.518802: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF3 <- ADMAIF3 XBAR-RX
           aplay-4063    [003] .... 23066.518802: snd_soc_dapm_path:  I2S2 Mux <- ADMAIF2 <- ADMAIF2 XBAR-RX
           aplay-4063    [003] .... 23066.518803: snd_soc_dapm_path: *I2S2 Mux <- ADMAIF1 <- ADMAIF1 XBAR-RX
           aplay-4063    [003] .... 23066.518803: snd_soc_dapm_widget_power: widget=I2S2 Mux val=0
           aplay-4063    [003] .... 23066.518804: snd_soc_dapm_path: *I2S2 XBAR-TX <- (direct) <- I2S2 Mux
           aplay-4063    [003] .... 23066.518805: snd_soc_dapm_widget_power: widget=I2S2 XBAR-TX val=0
           aplay-4063    [003] .... 23066.518806: snd_soc_dapm_path: *I2S2 XBAR-Capture <- (direct) <- I2S2 XBAR-TX
           aplay-4063    [003] .... 23066.518807: snd_soc_dapm_widget_power: widget=I2S2 XBAR-Capture val=0
           aplay-4063    [003] .... 23066.518808: snd_soc_dapm_path: *tegra-dlink-65-playback <- (direct) <- I2S2 XBAR-Capture
           aplay-4063    [003] .... 23066.518808: snd_soc_dapm_widget_power: widget=tegra-dlink-65-playback val=0
           aplay-4063    [003] .... 23066.518809: snd_soc_dapm_path: *I2S2 CIF-Playback <- (direct) <- tegra-dlink-65-playback
           aplay-4063    [003] .... 23066.518810: snd_soc_dapm_widget_power: widget=I2S2 CIF-Playback val=0
           aplay-4063    [003] .... 23066.518811: snd_soc_dapm_path: *I2S2 RX <- (direct) <- I2S2 CIF-Playback
           aplay-4063    [003] .... 23066.518811: snd_soc_dapm_widget_power: widget=I2S2 RX val=0
           aplay-4063    [003] .... 23066.518812: snd_soc_dapm_path: *I2S2 DAP-Capture <- (direct) <- I2S2 RX
           aplay-4063    [003] .... 23066.518812: snd_soc_dapm_widget_power: widget=I2S2 DAP-Capture val=0
           aplay-4063    [003] .... 23066.518813: snd_soc_dapm_path: *es8388-playback-playback <- (direct) <- I2S2 DAP-Capture
           aplay-4063    [003] .... 23066.518814: snd_soc_dapm_widget_power: widget=es8388-playback-playback val=0
           aplay-4063    [003] .... 23066.518815: snd_soc_dapm_path: *CVB-RT Playback <- (direct) <- es8388-playback-playback
           aplay-4063    [003] .... 23066.518815: snd_soc_dapm_widget_power: widget=CVB-RT Playback val=0
           aplay-4063    [003] .... 23066.518816: snd_soc_dapm_path: *CVB-RT Left DAC <- (direct) <- CVB-RT Playback
           aplay-4063    [003] .... 23066.518817: snd_soc_dapm_widget_power: widget=CVB-RT Left DAC val=0
           aplay-4063    [003] .... 23066.518818: snd_soc_dapm_path: *CVB-RT Right DAC <- (direct) <- CVB-RT Playback
           aplay-4063    [003] .... 23066.518819: snd_soc_dapm_widget_power: widget=CVB-RT Right DAC val=0
           aplay-4063    [003] .... 23066.518820: snd_soc_dapm_widget_power: widget=CVB-RT DAC DIG val=0
           aplay-4063    [003] .... 23066.518822: snd_soc_dapm_path: *CVB-RT Left Out 1 <- (direct) <- CVB-RT Left Mixer
           aplay-4063    [003] .... 23066.518822: snd_soc_dapm_path: *CVB-RT Left Out 1 <- (direct) <- CVB-RT Left DAC
           aplay-4063    [003] .... 23066.518823: snd_soc_dapm_widget_power: widget=CVB-RT Left Out 1 val=0
           aplay-4063    [003] .... 23066.518824: snd_soc_dapm_path: *CVB-RT Right Out 1 <- (direct) <- CVB-RT Right Mixer
           aplay-4063    [003] .... 23066.518825: snd_soc_dapm_path: *CVB-RT Right Out 1 <- (direct) <- CVB-RT Right DAC
           aplay-4063    [003] .... 23066.518825: snd_soc_dapm_widget_power: widget=CVB-RT Right Out 1 val=0
           aplay-4063    [003] .... 23066.518826: snd_soc_dapm_widget_power: widget=CVB-RT DAC DLL val=0
           aplay-4063    [003] .... 23066.518826: snd_soc_dapm_widget_power: widget=CVB-RT DAC Vref val=0
           aplay-4063    [003] .... 23066.518827: snd_soc_dapm_widget_power: widget=CVB-RT DAC STM val=0
           aplay-4063    [003] .... 23066.518827: snd_soc_dapm_path: *CVB-RT LOUT1 <- (direct) <- CVB-RT Left Out 1
           aplay-4063    [003] .... 23066.518828: snd_soc_dapm_widget_power: widget=CVB-RT LOUT1 val=0
           aplay-4063    [003] .... 23066.518828: snd_soc_dapm_path: *CVB-RT ROUT1 <- (direct) <- CVB-RT Right Out 1
           aplay-4063    [003] .... 23066.518829: snd_soc_dapm_widget_power: widget=CVB-RT ROUT1 val=0
           aplay-4063    [003] .... 23066.518830: snd_soc_dapm_path: *CVB-RT Headphone Jack <- (direct) <- CVB-RT ROUT1
           aplay-4063    [003] .... 23066.518831: snd_soc_dapm_path: *CVB-RT Headphone Jack <- (direct) <- CVB-RT LOUT1
           aplay-4063    [003] .... 23066.518831: snd_soc_dapm_widget_power: widget=CVB-RT Headphone Jack val=0
           aplay-4063    [003] .... 23066.519057: snd_soc_dapm_walk_done: es8388-tegra: checks 23 power, 19 path, 107 neighbour
   kworker/u16:4-4065    [002] .... 23066.519068: snd_soc_bias_level_start: card=es8388-tegra val=2
   kworker/u16:1-3785    [002] .... 23066.519107: snd_soc_bias_level_start: card=es8388-tegra val=2
   kworker/u16:1-3785    [002] .... 23066.519109: snd_soc_bias_level_done: card=es8388-tegra val=2
   kworker/u16:0-3923    [003] .... 23066.519116: snd_soc_bias_level_start: card=es8388-tegra val=2
   kworker/u16:1-3785    [002] .... 23066.519116: snd_soc_bias_level_start: card=es8388-tegra val=2
   kworker/u16:1-3785    [002] .... 23066.519117: snd_soc_bias_level_done: card=es8388-tegra val=2
   kworker/u16:0-3923    [003] .... 23066.519117: snd_soc_bias_level_done: card=es8388-tegra val=2
   kworker/u16:4-4065    [002] .... 23066.519199: snd_soc_bias_level_done: card=es8388-tegra val=2
           aplay-4063    [003] .... 23066.519438: snd_soc_dapm_widget_event_start: widget=es8388-playback-playback val=4
           aplay-4063    [003] .... 23066.524541: snd_soc_dapm_widget_event_done: widget=es8388-playback-playback val=4
           aplay-4063    [003] .... 23066.524570: snd_soc_dapm_widget_event_start: widget=tegra-dlink-65-playback val=4
           aplay-4063    [003] .... 23066.524574: snd_soc_dapm_widget_event_done: widget=tegra-dlink-65-playback val=4
           aplay-4063    [003] .... 23066.524575: snd_soc_dapm_widget_event_start: widget=es8388-playback-playback val=8
           aplay-4063    [003] .... 23066.524577: snd_soc_dapm_widget_event_done: widget=es8388-playback-playback val=8
           aplay-4063    [003] .... 23066.524578: snd_soc_dapm_widget_event_start: widget=tegra-dlink-65-playback val=8
           aplay-4063    [003] .... 23066.524580: snd_soc_dapm_widget_event_done: widget=tegra-dlink-65-playback val=8
   kworker/u16:3-4064    [003] .... 23066.524710: snd_soc_bias_level_start: card=es8388-tegra val=1
   kworker/u16:4-4065    [002] .... 23066.524832: snd_soc_bias_level_start: card=es8388-tegra val=1
   kworker/u16:4-4065    [002] .... 23066.524834: snd_soc_bias_level_done: card=es8388-tegra val=1
   kworker/u16:4-4065    [002] .... 23066.524834: snd_soc_bias_level_start: card=es8388-tegra val=0
   kworker/u16:4-4065    [002] .... 23066.524835: snd_soc_bias_level_done: card=es8388-tegra val=0
   kworker/u16:4-4065    [002] .... 23066.524843: snd_soc_bias_level_start: card=es8388-tegra val=1
   kworker/u16:4-4065    [002] .... 23066.524843: snd_soc_bias_level_done: card=es8388-tegra val=1
   kworker/u16:4-4065    [002] .... 23066.524844: snd_soc_bias_level_start: card=es8388-tegra val=0
   kworker/u16:4-4065    [002] .... 23066.524844: snd_soc_bias_level_done: card=es8388-tegra val=0
   kworker/u16:4-4065    [002] .... 23066.524845: snd_soc_bias_level_start: card=es8388-tegra val=1
   kworker/u16:4-4065    [002] .... 23066.524846: snd_soc_bias_level_done: card=es8388-tegra val=1
   kworker/u16:4-4065    [002] .... 23066.524846: snd_soc_bias_level_start: card=es8388-tegra val=0
   kworker/u16:4-4065    [002] .... 23066.524846: snd_soc_bias_level_done: card=es8388-tegra val=0
   kworker/u16:3-4064    [002] .... 23066.524983: snd_soc_bias_level_done: card=es8388-tegra val=1
           aplay-4063    [003] .... 23066.525001: snd_soc_dapm_done: card=es8388-tegra

Apologies for the delayed reply

Could you put more debug prints around Failed to unmute in codec driver and share insights if any

One more question:
Does aplay run as long as the duration of wavefile you are playing?

Thanks!

It can finish playing without getting stuck here.

I modified this function to ensure that the register modifications are correct, but there is still no sound during playback, and aud_mcl is not outputting the correct clock.


static int es8328_mute(struct snd_soc_dai *dai, int mute, int direction)
{
	struct snd_soc_component *component = dai->component;
	int ret;
	unsigned int new_val,reg_val;

	// 前置校验2:component/regmap 必须有效
    if (!component || !component->regmap) {
        printk(/*component->dev,*/ "Component/regmap not ready\n");
        return -1; 
    }

	// 强制同步 regmap 缓存到硬件(核心修复:解决缓存不同步问题)
    regcache_sync(component->regmap);

	// 步骤1:读取寄存器当前值(确认硬件可读)
    ret = regmap_read(component->regmap, ES8328_DACCONTROL3, &reg_val);
    if (ret != 0) {
        printk(/*component->dev, */"Read reg 0x%x failed: %d\n", ES8328_DACCONTROL3, ret);
        return ret; // 读失败直接返回,避免写操作
    }
    printk(/*component->dev,*/ "Read reg 0x%x: 0x%02x (before mute)\n", ES8328_DACCONTROL3, reg_val);

	// 步骤2:计算要写入的值(显式操作 bit2)
    new_val = mute ? (reg_val | ES8328_DACCONTROL3_DACMUTE) : (reg_val & ~ES8328_DACCONTROL3_DACMUTE);
    printk(/*component->dev,*/ "Mute=%d: 0x%02x → 0x%02x (bit2=%d)\n", 
            mute, reg_val, new_val, (new_val & ES8328_DACCONTROL3_DACMUTE) ? 1 : 0);

	// 步骤3:直接写入计算后的值(替代 update_bits,避免隐式错误)
    ret = regmap_write(component->regmap, ES8328_DACCONTROL3, new_val);
    if (ret != 0) {
        printk(/*component->dev,*/ "Write reg 0x%x (0x%02x) failed: %d\n", ES8328_DACCONTROL3, new_val, ret);
        return ret;
    }

    // 步骤4:回读验证(确认写入生效)
    ret = regmap_read(component->regmap, ES8328_DACCONTROL3, &reg_val);
    if (ret != 0) {
        printk(/*component->dev, */"Read reg 0x%x after write failed: %d\n", ES8328_DACCONTROL3, ret);
        return ret;
    }
    printk(/*component->dev,*/ "Read reg 0x%x: 0x%02x (after mute)\n", ES8328_DACCONTROL3, reg_val);

	return 0;

	// return snd_soc_component_update_bits(dai->component, ES8328_DACCONTROL3,
	// 		ES8328_DACCONTROL3_DACMUTE,
	// 		mute ? ES8328_DACCONTROL3_DACMUTE : 0);
}

Have you set pinmux settings for aud_mclk in Jetson IO expander tool? Further, do you mean that you have resolved the “failed to mute” issue? Could you check if the writes took effect via i2cset/get.

Regards

I have set up the pinmux.

cat /sys/kernel/debug/pinctrl/2430000.pinmux/pinconf-groups >pin.txt

pin.txt (39.3 KB)

Please help me confirm if my modifications are correct.

Kindly use jetson-io tool to confirm if pinmux is setup

sudo /opt/nvidia/jetson-io/config-by-function.py -l all lists all SFIOs and “sudo /opt/nvidia/jetson-io/config-by-function.py -l enabled” lists the enabled ones. Please refer Configuring the Jetson Expansion Headers — NVIDIA Jetson Linux Developer Guide 1 documentation for more details and procedure to set pinmux and confirm if setting happened after reboot

Thanks!

Hi,

Were you able to check o/p of “sudo /opt/nvidia/jetson-io/config-by-function.py -l enabled”

Thanks

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.