I successfully added Max98090 driver on TX2 with release 32.1, and heard sound form Headphone.
Now I want to use the Rcv/LineOut Mux if Max98090 to palyback,
I just added the following referring to max98090.c:
In dtsi:
"x LineOut", "x RCVR",
"x LineOut", "x RCVL";
In machinr_driver:
SND_SOC_DAPM_LINE("x Headphone", NULL),
But I met the error after executing the commands:
nvidia@nvidia-desktop:~$ amixer -c 1 cset name="I2S1 Mux" ADMAIF3
numid=942,iface=MIXER,name='I2S1 Mux'
; type=ENUMERATED,access=rw------,values=1,items=81
; Item #0 'None'
; Item #1 'ADMAIF1'
; Item #2 'ADMAIF2'
; Item #3 'ADMAIF3'
; Item #4 'ADMAIF4'
; Item #5 'ADMAIF5'
; Item #6 'ADMAIF6'
; Item #7 'ADMAIF7'
; Item #8 'ADMAIF8'
; Item #9 'ADMAIF9'
; Item #10 'ADMAIF10'
; Item #11 'ADMAIF11'
; Item #12 'ADMAIF12'
; Item #13 'ADMAIF13'
; Item #14 'ADMAIF14'
; Item #15 'ADMAIF15'
; Item #16 'ADMAIF16'
; Item #17 'I2S1'
; Item #18 'I2S2'
; Item #19 'I2S3'
; Item #20 'I2S4'
; Item #21 'I2S5'
; Item #22 'I2S6'
; Item #23 'SFC1'
; Item #24 'SFC2'
; Item #25 'SFC3'
; Item #26 'SFC4'
; Item #27 'MIXER1-1'
; Item #28 'MIXER1-2'
; Item #29 'MIXER1-3'
; Item #30 'MIXER1-4'
; Item #31 'MIXER1-5'
; Item #32 'AMX1'
; Item #33 'AMX2'
; Item #34 'AMX3'
; Item #35 'AMX4'
; Item #36 'ARAD1'
; Item #37 'AFC1'
; Item #38 'AFC2'
; Item #39 'AFC3'
; Item #40 'AFC4'
; Item #41 'AFC5'
; Item #42 'AFC6'
; Item #43 'OPE1'
; Item #44 'SPKPROT1'
; Item #45 'MVC1'
; Item #46 'MVC2'
; Item #47 'IQC1-1'
; Item #48 'IQC1-2'
; Item #49 'IQC2-1'
; Item #50 'IQC2-2'
; Item #51 'DMIC1'
; Item #52 'DMIC2'
; Item #53 'DMIC3'
; Item #54 'DMIC4'
; Item #55 'ADX1-1'
; Item #56 'ADX1-2'
; Item #57 'ADX1-3'
; Item #58 'ADX1-4'
; Item #59 'ADX2-1'
; Item #60 'ADX2-2'
; Item #61 'ADX2-3'
; Item #62 'ADX2-4'
; Item #63 'ADX3-1'
; Item #64 'ADX3-2'
; Item #65 'ADX3-3'
; Item #66 'ADX3-4'
; Item #67 'ADX4-1'
; Item #68 'ADX4-2'
; Item #69 'ADX4-3'
; Item #70 'ADX4-4'
; Item #71 'ADMAIF17'
; Item #72 'ADMAIF18'
; Item #73 'ADMAIF19'
; Item #74 'ADMAIF20'
; Item #75 'ASRC1-1'
; Item #76 'ASRC1-2'
; Item #77 'ASRC1-3'
; Item #78 'ASRC1-4'
; Item #79 'ASRC1-5'
; Item #80 'ASRC1-6'
: values=3
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ aplay -D hw:1,2 Desktop/that.wav
Playing WAVE 'Desktop/that.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
underrun!!! (at least 2.966 ms long)
underrun!!! (at least 1.860 ms long)
underrun!!! (at least 3.293 ms long)
underrun!!! (at least 2.964 ms long)
underrun!!! (at least 3.786 ms long)
underrun!!! (at least 2.737 ms long)
underrun!!! (at least 3.375 ms long)
underrun!!! (at least 3.449 ms long)
underrun!!! (at least 2.793 ms long)
underrun!!! (at least 2.966 ms long)
underrun!!! (at least 2.975 ms long)
underrun!!! (at least 2.256 ms long)
underrun!!! (at least 1.677 ms long)
underrun!!! (at least 1.391 ms long)
underrun!!! (at least 1.690 ms long)
underrun!!! (at least 2.369 ms long)
I checked the /sys/kernel/debug/tracing:
nvidia@nvidia-desktop:~$ sudo cat /sys/kernel/debug/tracing/trace
[sudo] password for nvidia:
# tracer: nop
#
# entries-in-buffer/entries-written: 136/136 #P:6
#
# _-----=> irqs-off
# / _----=> need-resched
# | / _---=> hardirq/softirq
# || / _--=> preempt-depth
# ||| / delay
# TASK-PID CPU# |||| TIMESTAMP FUNCTION
# | | | |||| | |
pulseaudio-6984 [002] .... 257.070661: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.070803: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
pulseaudio-6984 [002] .... 257.070813: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.258614: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.259815: snd_soc_dapm_path: *ADMAIF1 Transmit -> (direct) -> Capture 1
pulseaudio-6984 [002] .... 257.259831: snd_soc_dapm_path: *ADMAIF1 Transmit -> (direct) -> ADMAIF1 Transmit-ADMAIF1 CIF Transmit
pulseaudio-6984 [002] .... 257.260426: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 2 neighbour
pulseaudio-6984 [002] .... 257.260680: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.273386: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.273493: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
pulseaudio-6984 [002] .... 257.273505: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [001] .... 257.435115: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [001] .... 257.435173: snd_soc_dapm_path: *ADMAIF1 Transmit -> (direct) -> Capture 1
pulseaudio-6984 [001] .... 257.435175: snd_soc_dapm_path: *ADMAIF1 Transmit -> (direct) -> ADMAIF1 Transmit-ADMAIF1 CIF Transmit
pulseaudio-6984 [001] .... 257.435222: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 2 neighbour
pulseaudio-6984 [001] .... 257.435233: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [001] .... 257.458108: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [001] .... 257.458210: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
pulseaudio-6984 [001] .... 257.458218: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [001] .... 257.623777: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [001] .... 257.623862: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
pulseaudio-6984 [001] .... 257.623873: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.624629: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.624673: snd_soc_dapm_path: *ADMAIF1 Transmit -> (direct) -> Capture 1
pulseaudio-6984 [002] .... 257.624698: snd_soc_dapm_path: *ADMAIF1 Transmit -> (direct) -> ADMAIF1 Transmit-ADMAIF1 CIF Transmit
pulseaudio-6984 [002] .... 257.624734: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 2 neighbour
pulseaudio-6984 [002] .... 257.624741: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.627103: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.627210: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
pulseaudio-6984 [002] .... 257.627222: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.628500: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.628565: snd_soc_dapm_path: *ADMAIF1 Transmit -> (direct) -> Capture 1
pulseaudio-6984 [002] .... 257.628567: snd_soc_dapm_path: *ADMAIF1 Transmit -> (direct) -> ADMAIF1 Transmit-ADMAIF1 CIF Transmit
pulseaudio-6984 [002] .... 257.628606: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 2 neighbour
pulseaudio-6984 [002] .... 257.628614: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.629068: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.629107: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- Playback 1
pulseaudio-6984 [002] .... 257.629109: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- ADMAIF1 CIF Receive-ADMAIF1 Receive
pulseaudio-6984 [002] .... 257.629149: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 2 neighbour
pulseaudio-6984 [002] .... 257.629156: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.634409: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.634511: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
pulseaudio-6984 [002] .... 257.634520: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.788272: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.788360: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
pulseaudio-6984 [002] .... 257.788370: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [001] .... 257.789157: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [001] .... 257.789205: snd_soc_dapm_path: *ADMAIF1 Transmit -> (direct) -> Capture 1
pulseaudio-6984 [001] .... 257.789208: snd_soc_dapm_path: *ADMAIF1 Transmit -> (direct) -> ADMAIF1 Transmit-ADMAIF1 CIF Transmit
pulseaudio-6984 [001] .... 257.789241: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 2 neighbour
pulseaudio-6984 [001] .... 257.789247: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.795594: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.795723: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
pulseaudio-6984 [002] .... 257.795735: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.796471: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.796504: snd_soc_dapm_path: *ADMAIF1 Transmit -> (direct) -> Capture 1
pulseaudio-6984 [002] .... 257.796506: snd_soc_dapm_path: *ADMAIF1 Transmit -> (direct) -> ADMAIF1 Transmit-ADMAIF1 CIF Transmit
pulseaudio-6984 [002] .... 257.796536: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 2 neighbour
pulseaudio-6984 [002] .... 257.796542: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.796963: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.796994: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- Playback 1
pulseaudio-6984 [002] .... 257.796996: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- ADMAIF1 CIF Receive-ADMAIF1 Receive
pulseaudio-6984 [002] .... 257.797025: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 2 neighbour
pulseaudio-6984 [002] .... 257.797030: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.820113: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [002] .... 257.820197: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
pulseaudio-6984 [002] .... 257.820206: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [001] .... 258.081835: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
pulseaudio-6984 [001] .... 258.081941: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
pulseaudio-6984 [001] .... 258.081972: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
aplay-6980 [000] .... 258.361369: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
aplay-6980 [000] .... 258.361468: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
aplay-6980 [000] .... 258.361477: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
aplay-6980 [000] .... 258.516738: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
aplay-6980 [000] .... 258.521073: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
aplay-6980 [000] .... 258.521230: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
aplay-6980 [000] .... 258.710041: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
aplay-6980 [000] .... 258.711849: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
aplay-6980 [000] .... 258.711900: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
aplay-6980 [000] .... 259.085977: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
aplay-6980 [000] .... 259.088041: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
aplay-6980 [000] .... 259.088069: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
aplay-6980 [000] .... 259.462126: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
aplay-6980 [000] .... 259.464303: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
aplay-6980 [000] .... 259.464349: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 259.839926: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 259.840806: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
aplay-6980 [002] .... 259.840840: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 260.215095: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 260.216202: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
aplay-6980 [002] .... 260.216400: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 260.591769: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 260.592452: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
aplay-6980 [002] .... 260.592545: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 260.968050: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 260.968602: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
aplay-6980 [002] .... 260.968626: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 261.715367: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 261.715754: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
aplay-6980 [002] .... 261.715783: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 262.091949: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 262.092394: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
aplay-6980 [002] .... 262.092766: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 262.467762: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 262.468247: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
aplay-6980 [002] .... 262.468527: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 262.845404: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 262.847034: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
aplay-6980 [002] .... 262.847480: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 263.223460: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 263.224142: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
aplay-6980 [002] .... 263.224423: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
alsa-source-ADM-6987 [002] .... 263.366593: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
alsa-source-ADM-6987 [002] .... 263.368263: snd_soc_dapm_path: *ADMAIF1 Transmit -> (direct) -> Capture 1
alsa-source-ADM-6987 [002] .... 263.368288: snd_soc_dapm_path: *ADMAIF1 Transmit -> (direct) -> ADMAIF1 Transmit-ADMAIF1 CIF Transmit
alsa-source-ADM-6987 [002] .... 263.369073: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 2 neighbour
alsa-source-ADM-6987 [002] .... 263.369412: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
alsa-sink-ADMAI-6986 [001] .... 263.379620: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
alsa-sink-ADMAI-6986 [001] .... 263.379740: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- Playback 1
alsa-sink-ADMAI-6986 [001] .... 263.379746: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- ADMAIF1 CIF Receive-ADMAIF1 Receive
alsa-sink-ADMAI-6986 [001] .... 263.379884: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 2 neighbour
alsa-sink-ADMAI-6986 [001] .... 263.380023: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
aplay-6980 [001] .... 263.599142: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
aplay-6980 [001] .... 263.600195: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
aplay-6980 [001] .... 263.600230: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
aplay-6980 [001] .... 263.974714: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
aplay-6980 [001] .... 263.975916: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
aplay-6980 [001] .... 263.976028: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 264.350824: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 264.352064: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 0 neighbour
aplay-6980 [002] .... 264.352246: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 265.131171: snd_soc_dapm_start: card=tegra-snd-t186ref-max98090
aplay-6980 [002] .... 265.132533: snd_soc_dapm_path: *ADMAIF3 Receive <- (direct) <- Playback 3
aplay-6980 [002] .... 265.132559: snd_soc_dapm_path: *ADMAIF3 Receive <- (direct) <- ADMAIF3 CIF Receive-ADMAIF3 Receive
aplay-6980 [002] .... 265.133434: snd_soc_dapm_walk_done: tegra-snd-t186ref-max98090: checks 2 power, 2 path, 2 neighbour
aplay-6980 [002] .... 265.133851: snd_soc_dapm_done: card=tegra-snd-t186ref-max98090
It seeemed that I2S1 didn’t be routed to ADMAIF3. What could have caused the above error?