TX2 Audio Processing Engine multi-channel MIXER problem

Jon, Thanks for replay.
It getting better:
drivers startup, and I can see frame sync on scope, but no data:

amixer sset "MIXER1-4 Mux" "ADMAIF10"
Simple mixer control 'MIXER1-4 Mux',0
  Capabilities: enum
  Items: 'None' 'ADMAIF1' 'ADMAIF2' 'ADMAIF3' 'ADMAIF4' 'ADMAIF5' 'ADMAIF6' 'ADMAIF7' 'ADMAIF8' 'ADMAIF9' 'ADMAIF10' 'ADMAIF11' 'ADMAIF12' 'ADMAIF'
  Item0: 'ADMAIF10'
root@nvidia:~# amixer sset "I2S1 Mux" "MIXER1-1"
Simple mixer control 'I2S1 Mux',0
  Capabilities: enum
  Items: 'None' 'ADMAIF1' 'ADMAIF2' 'ADMAIF3' 'ADMAIF4' 'ADMAIF5' 'ADMAIF6' 'ADMAIF7' 'ADMAIF8' 'ADMAIF9' 'ADMAIF10' 'ADMAIF11' 'ADMAIF12' 'ADMAIF'
  Item0: 'MIXER1-1'
root@nvidia:~# amixer sset "Adder1 RX4" on
Simple mixer control 'Adder1 RX4',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
root@nvidia:~# amixer sset "Mixer Enable" on
Simple mixer control 'Mixer Enable',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
root@nvidia:~# amixer sset "RX4 Gain" 3000
Simple mixer control 'RX4 Gain',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 131072
  Mono: 3000 [2%]


speaker-test -D hw:0,9 -c 6 -F S16_LE -t sine -f 400

speaker-test 1.0.28

Playback device is hw:0,9
Stream parameters are 48000Hz, S16_LE, 6 channels
Sine wave rate is 400.0000Hz
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 12 to 2730
Period size range from 12 to 1364
Using max buffer size 2728
Periods = 4
was set period_size = 682
was set buffer_size = 2728
 0 - Front Left
Write error: -5,Input/output error
xrun_recovery failed: -5,Input/output error
Transfer failed: Input/output error
root@nvidia:~# cat /sys/kernel/debug/tracing/trace
# tracer: nop
#
# entries-in-buffer/entries-written: 54/54   #P:6
#
#                              _-----=> irqs-off
#                             / _----=> need-resched
#                            | / _---=> hardirq/softirq
#                            || / _--=> preempt-depth
#                            ||| /     delay
#           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
#              | |       |   ||||       |         |
    speaker-test-6975  [000] ...1    81.231055: snd_soc_dapm_widget_power: widget=Playback 10 val=1
    speaker-test-6975  [000] ...1    81.231058: snd_soc_dapm_widget_power: widget=ADMAIF10 Receive val=1
    speaker-test-6975  [000] ...1    81.231064: snd_soc_dapm_widget_power: widget=ADMAIF10 RX val=1
    speaker-test-6975  [000] ...1    81.231070: snd_soc_dapm_widget_power: widget=MIXER1-4 Mux val=1
    speaker-test-6975  [000] ...1    81.231072: snd_soc_dapm_widget_power: widget=MIXER1-4 TX val=1
    speaker-test-6975  [000] ...1    81.231073: snd_soc_dapm_widget_power: widget=MIXER1-4 Transmit val=1
    speaker-test-6975  [000] ...1    81.231073: snd_soc_dapm_widget_power: widget=MIXER1-4 Transmit-RX4 Receive val=1
    speaker-test-6975  [000] ...1    81.231074: snd_soc_dapm_widget_power: widget=RX4 Receive val=1
    speaker-test-6975  [000] ...1    81.231075: snd_soc_dapm_widget_power: widget=RX4 val=1
    speaker-test-6975  [000] ...1    81.231077: snd_soc_dapm_widget_power: widget=Adder1 val=1
    speaker-test-6975  [000] ...1    81.231078: snd_soc_dapm_widget_power: widget=TX1 val=1
    speaker-test-6975  [000] ...1    81.231079: snd_soc_dapm_widget_power: widget=TX1 Transmit val=1
    speaker-test-6975  [000] ...1    81.231080: snd_soc_dapm_widget_power: widget=TX1 Transmit-MIXER1-1 Receive val=1
    speaker-test-6975  [000] ...1    81.231080: snd_soc_dapm_widget_power: widget=MIXER1-1 Receive val=1
    speaker-test-6975  [000] ...1    81.231082: snd_soc_dapm_widget_power: widget=MIXER1-1 RX val=1
    speaker-test-6975  [000] ...1    81.231088: snd_soc_dapm_widget_power: widget=I2S1 Mux val=1
    speaker-test-6975  [000] ...1    81.231089: snd_soc_dapm_widget_power: widget=I2S1 TX val=1
    speaker-test-6975  [000] ...1    81.231090: snd_soc_dapm_widget_power: widget=I2S1 Transmit val=1
    speaker-test-6975  [000] ...1    81.231091: snd_soc_dapm_widget_power: widget=I2S1 Transmit-I2S1 CIF Receive val=1
    speaker-test-6975  [000] ...1    81.231091: snd_soc_dapm_widget_power: widget=I2S1 CIF Receive val=1
    speaker-test-6975  [000] ...1    81.231092: snd_soc_dapm_widget_power: widget=I2S1 CIF RX val=1
    speaker-test-6975  [000] ...1    81.231093: snd_soc_dapm_widget_power: widget=I2S1 DAP TX val=1
    speaker-test-6975  [000] ...1    81.231094: snd_soc_dapm_widget_power: widget=I2S1 DAP Transmit val=1
    speaker-test-6975  [000] ...1    81.231095: snd_soc_dapm_widget_power: widget=I2S1 DAP Transmit-d Playback val=1
    speaker-test-6975  [000] ...1    81.231095: snd_soc_dapm_widget_power: widget=d Playback val=1
    speaker-test-6975  [000] ...1    81.231096: snd_soc_dapm_widget_power: widget=d OUT val=1
    speaker-test-6975  [000] ...1    81.231097: snd_soc_dapm_widget_power: widget=Headphone-d val=1
    speaker-test-6975  [000] ...1   101.246277: snd_soc_dapm_widget_power: widget=Playback 10 val=0
    speaker-test-6975  [000] ...1   101.246285: snd_soc_dapm_widget_power: widget=ADMAIF10 Receive val=0
    speaker-test-6975  [000] ...1   101.246287: snd_soc_dapm_widget_power: widget=ADMAIF10 RX val=0
    speaker-test-6975  [000] ...1   101.246291: snd_soc_dapm_widget_power: widget=MIXER1-4 Mux val=0
    speaker-test-6975  [000] ...1   101.246293: snd_soc_dapm_widget_power: widget=MIXER1-4 TX val=0
    speaker-test-6975  [000] ...1   101.246294: snd_soc_dapm_widget_power: widget=MIXER1-4 Transmit val=0
    speaker-test-6975  [000] ...1   101.246295: snd_soc_dapm_widget_power: widget=MIXER1-4 Transmit-RX4 Receive val=0
    speaker-test-6975  [000] ...1   101.246296: snd_soc_dapm_widget_power: widget=RX4 Receive val=0
    speaker-test-6975  [000] ...1   101.246297: snd_soc_dapm_widget_power: widget=RX4 val=0
    speaker-test-6975  [000] ...1   101.246298: snd_soc_dapm_widget_power: widget=Adder1 val=0
    speaker-test-6975  [000] ...1   101.246299: snd_soc_dapm_widget_power: widget=TX1 val=0
    speaker-test-6975  [000] ...1   101.246300: snd_soc_dapm_widget_power: widget=TX1 Transmit val=0
    speaker-test-6975  [000] ...1   101.246301: snd_soc_dapm_widget_power: widget=TX1 Transmit-MIXER1-1 Receive val=0
    speaker-test-6975  [000] ...1   101.246302: snd_soc_dapm_widget_power: widget=MIXER1-1 Receive val=0
    speaker-test-6975  [000] ...1   101.246311: snd_soc_dapm_widget_power: widget=MIXER1-1 RX val=0
    speaker-test-6975  [000] ...1   101.246317: snd_soc_dapm_widget_power: widget=I2S1 Mux val=0
    speaker-test-6975  [000] ...1   101.246318: snd_soc_dapm_widget_power: widget=I2S1 TX val=0
    speaker-test-6975  [000] ...1   101.246319: snd_soc_dapm_widget_power: widget=I2S1 Transmit val=0
    speaker-test-6975  [000] ...1   101.246320: snd_soc_dapm_widget_power: widget=I2S1 Transmit-I2S1 CIF Receive val=0
    speaker-test-6975  [000] ...1   101.246320: snd_soc_dapm_widget_power: widget=I2S1 CIF Receive val=0
    speaker-test-6975  [000] ...1   101.246321: snd_soc_dapm_widget_power: widget=I2S1 CIF RX val=0
    speaker-test-6975  [000] ...1   101.246322: snd_soc_dapm_widget_power: widget=I2S1 DAP TX val=0
    speaker-test-6975  [000] ...1   101.246322: snd_soc_dapm_widget_power: widget=I2S1 DAP Transmit val=0
    speaker-test-6975  [000] ...1   101.246323: snd_soc_dapm_widget_power: widget=I2S1 DAP Transmit-d Playback val=0
    speaker-test-6975  [000] ...1   101.246324: snd_soc_dapm_widget_power: widget=d Playback val=0
    speaker-test-6975  [000] ...1   101.246325: snd_soc_dapm_widget_power: widget=d OUT val=0

If I do patch tegra_asoc_machine_alt_t18x.c:

[TEGRA186_DAI_LINK_MIXER1_TX1] = {
		.name = "MIXER1 TX1",
		.stream_name = "MIXER1 TX",
		.cpu_dai_name = "TX1",
		.codec_dai_name = "MIXER1-1",
		.cpu_name = "tegra210-mixer",
		.codec_name = "2900800.ahub",
-		.params = &default_link_params,
+		.params = &my_link_params,

Where my_link_params is:

static const struct snd_soc_pcm_stream my_link_params = {
	.formats = SNDRV_PCM_FMTBIT_S16_LE,
	.rate_min = 48000,
	.rate_max = 48000,
	.channels_min = 6,
	.channels_max = 6,
};

I am getting data out:

amixer sset "MIXER1-4 Mux" "ADMAIF10"
Simple mixer control 'MIXER1-4 Mux',0
  Capabilities: enum
  Items: 'None' 'ADMAIF1' 'ADMAIF2' 'ADMAIF3' 'ADMAIF4' 'ADMAIF5' 'ADMAIF6' 'ADMAIF7' 'ADMAIF8' 'ADMAIF9' 'ADMAIF10' 'ADMAIF11' 'ADMAIF12' 'ADMAIF'
  Item0: 'ADMAIF10'
root@nvidia:~# amixer sset "I2S1 Mux" "MIXER1-1"
Simple mixer control 'I2S1 Mux',0
  Capabilities: enum
  Items: 'None' 'ADMAIF1' 'ADMAIF2' 'ADMAIF3' 'ADMAIF4' 'ADMAIF5' 'ADMAIF6' 'ADMAIF7' 'ADMAIF8' 'ADMAIF9' 'ADMAIF10' 'ADMAIF11' 'ADMAIF12' 'ADMAIF'
  Item0: 'MIXER1-1'
root@nvidia:~# amixer sset "Adder1 RX4" on
Simple mixer control 'Adder1 RX4',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
root@nvidia:~# amixer sset "Mixer Enable" on
Simple mixer control 'Mixer Enable',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
root@nvidia:~# amixer sset "RX4 Gain" 3000
Simple mixer control 'RX4 Gain',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 131072
  Mono: 3000 [2%]
root@nvidia:~# echo 1 | tee /sys/kernel/debug/tracing/tracing_on
1
idget_power/enableo 1 | tee /sys/kernel/debug/tracing/events/asoc/snd_soc_dapm_w 
1
root@nvidia:~# echo 0 | tee /sys/kernel/debug/tracing/trace
0
root@nvidia:~# speaker-test -D hw:0,9 -c 6 -F S16_LE -t sine -f 400

speaker-test 1.0.28

Playback device is hw:0,9
Stream parameters are 48000Hz, S16_LE, 6 channels
Sine wave rate is 400.0000Hz
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 12 to 2730
Period size range from 12 to 1364
Using max buffer size 2728
Periods = 4
was set period_size = 682
was set buffer_size = 2728
 0 - Front Left
 4 - Center
 1 - Front Right
 3 - Rear Right
 2 - Rear Left
 5 - LFE
Time per period = 5.977323
 0 - Front Left
 4 - Center
 1 - Front Right
 3 - Rear Right
 2 - Rear Left
 5 - LFE
^CTime per period = 5.619081
root@nvidia:~# [  847.626728] mttcan c310000.mttcan can0: Acknowledgement Error Detected
[  847.633255] mttcan c310000.mttcan can0: IR = 0x8000000 PSR 0x71b
[  847.639282] mttcan c310000.mttcan can0: entered error passive state
[  847.645552] mttcan c310000.mttcan can0: Acknowledgement Error Detected
[  847.652087] mttcan c310000.mttcan can0: IR = 0x9800000 PSR 0x77b
[  847.658108] mttcan c310000.mttcan can0: IR = 0x8001201 PSR 0x768

root@nvidia:~# 
root@nvidia:~# 
root@nvidia:~# 
root@nvidia:~# cat /sys/kernel/debug/tracing/trace
# tracer: nop
#
# entries-in-buffer/entries-written: 54/54   #P:6
#
#                              _-----=> irqs-off
#                             / _----=> need-resched
#                            | / _---=> hardirq/softirq
#                            || / _--=> preempt-depth
#                            ||| /     delay
#           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
#              | |       |   ||||       |         |
    speaker-test-13652 [000] ...1   830.716471: snd_soc_dapm_widget_power: widget=Playback 10 val=1
    speaker-test-13652 [000] ...1   830.716474: snd_soc_dapm_widget_power: widget=ADMAIF10 Receive val=1
    speaker-test-13652 [000] ...1   830.716523: snd_soc_dapm_widget_power: widget=ADMAIF10 RX val=1
    speaker-test-13652 [000] ...1   830.716527: snd_soc_dapm_widget_power: widget=MIXER1-4 Mux val=1
    speaker-test-13652 [000] ...1   830.716529: snd_soc_dapm_widget_power: widget=MIXER1-4 TX val=1
    speaker-test-13652 [000] ...1   830.716530: snd_soc_dapm_widget_power: widget=MIXER1-4 Transmit val=1
    speaker-test-13652 [000] ...1   830.716531: snd_soc_dapm_widget_power: widget=MIXER1-4 Transmit-RX4 Receive val=1
    speaker-test-13652 [000] ...1   830.716531: snd_soc_dapm_widget_power: widget=RX4 Receive val=1
    speaker-test-13652 [000] ...1   830.716532: snd_soc_dapm_widget_power: widget=RX4 val=1
    speaker-test-13652 [000] ...1   830.716534: snd_soc_dapm_widget_power: widget=Adder1 val=1
    speaker-test-13652 [000] ...1   830.716535: snd_soc_dapm_widget_power: widget=TX1 val=1
    speaker-test-13652 [000] ...1   830.716536: snd_soc_dapm_widget_power: widget=TX1 Transmit val=1
    speaker-test-13652 [000] ...1   830.716536: snd_soc_dapm_widget_power: widget=TX1 Transmit-MIXER1-1 Receive val=1
    speaker-test-13652 [000] ...1   830.716537: snd_soc_dapm_widget_power: widget=MIXER1-1 Receive val=1
    speaker-test-13652 [000] ...1   830.716539: snd_soc_dapm_widget_power: widget=MIXER1-1 RX val=1
    speaker-test-13652 [000] ...1   830.716544: snd_soc_dapm_widget_power: widget=I2S1 Mux val=1
    speaker-test-13652 [000] ...1   830.716546: snd_soc_dapm_widget_power: widget=I2S1 TX val=1
    speaker-test-13652 [000] ...1   830.716547: snd_soc_dapm_widget_power: widget=I2S1 Transmit val=1
    speaker-test-13652 [000] ...1   830.716547: snd_soc_dapm_widget_power: widget=I2S1 Transmit-I2S1 CIF Receive val=1
    speaker-test-13652 [000] ...1   830.716548: snd_soc_dapm_widget_power: widget=I2S1 CIF Receive val=1
    speaker-test-13652 [000] ...1   830.716549: snd_soc_dapm_widget_power: widget=I2S1 CIF RX val=1
    speaker-test-13652 [000] ...1   830.716550: snd_soc_dapm_widget_power: widget=I2S1 DAP TX val=1
    speaker-test-13652 [000] ...1   830.716550: snd_soc_dapm_widget_power: widget=I2S1 DAP Transmit val=1
    speaker-test-13652 [000] ...1   830.716551: snd_soc_dapm_widget_power: widget=I2S1 DAP Transmit-d Playback val=1
    speaker-test-13652 [000] ...1   830.716552: snd_soc_dapm_widget_power: widget=d Playback val=1
    speaker-test-13652 [000] ...1   830.716553: snd_soc_dapm_widget_power: widget=d OUT val=1
    speaker-test-13652 [000] ...1   830.716553: snd_soc_dapm_widget_power: widget=Headphone-d val=1
    speaker-test-13652 [003] ...1   842.314988: snd_soc_dapm_widget_power: widget=Playback 10 val=0
    speaker-test-13652 [003] ...1   842.314996: snd_soc_dapm_widget_power: widget=ADMAIF10 Receive val=0
    speaker-test-13652 [003] ...1   842.314997: snd_soc_dapm_widget_power: widget=ADMAIF10 RX val=0
    speaker-test-13652 [003] ...1   842.315001: snd_soc_dapm_widget_power: widget=MIXER1-4 Mux val=0
    speaker-test-13652 [003] ...1   842.315003: snd_soc_dapm_widget_power: widget=MIXER1-4 TX val=0
    speaker-test-13652 [003] ...1   842.315004: snd_soc_dapm_widget_power: widget=MIXER1-4 Transmit val=0
    speaker-test-13652 [003] ...1   842.315005: snd_soc_dapm_widget_power: widget=MIXER1-4 Transmit-RX4 Receive val=0
    speaker-test-13652 [003] ...1   842.315006: snd_soc_dapm_widget_power: widget=RX4 Receive val=0
    speaker-test-13652 [003] ...1   842.315006: snd_soc_dapm_widget_power: widget=RX4 val=0
    speaker-test-13652 [003] ...1   842.315009: snd_soc_dapm_widget_power: widget=Adder1 val=0
    speaker-test-13652 [003] ...1   842.315009: snd_soc_dapm_widget_power: widget=TX1 val=0
    speaker-test-13652 [003] ...1   842.315010: snd_soc_dapm_widget_power: widget=TX1 Transmit val=0
    speaker-test-13652 [003] ...1   842.315011: snd_soc_dapm_widget_power: widget=TX1 Transmit-MIXER1-1 Receive val=0
    speaker-test-13652 [003] ...1   842.315012: snd_soc_dapm_widget_power: widget=MIXER1-1 Receive val=0
    speaker-test-13652 [003] ...1   842.315013: snd_soc_dapm_widget_power: widget=MIXER1-1 RX val=0
    speaker-test-13652 [003] ...1   842.315018: snd_soc_dapm_widget_power: widget=I2S1 Mux val=0
    speaker-test-13652 [003] ...1   842.315020: snd_soc_dapm_widget_power: widget=I2S1 TX val=0
    speaker-test-13652 [003] ...1   842.315020: snd_soc_dapm_widget_power: widget=I2S1 Transmit val=0
    speaker-test-13652 [003] ...1   842.315021: snd_soc_dapm_widget_power: widget=I2S1 Transmit-I2S1 CIF Receive val=0
    speaker-test-13652 [003] ...1   842.315022: snd_soc_dapm_widget_power: widget=I2S1 CIF Receive val=0
    speaker-test-13652 [003] ...1   842.315022: snd_soc_dapm_widget_power: widget=I2S1 CIF RX val=0
    speaker-test-13652 [003] ...1   842.315023: snd_soc_dapm_widget_power: widget=I2S1 DAP TX val=0
    speaker-test-13652 [003] ...1   842.315024: snd_soc_dapm_widget_power: widget=I2S1 DAP Transmit val=0
    speaker-test-13652 [003] ...1   842.315024: snd_soc_dapm_widget_power: widget=I2S1 DAP Transmit-d Playback val=0
    speaker-test-13652 [003] ...1   842.315025: snd_soc_dapm_widget_power: widget=d Playback val=0
    speaker-test-13652 [003] ...1   842.315026: snd_soc_dapm_widget_power: widget=d OUT val=0
    speaker-test-13652 [003] ...1   842.315026: snd_soc_dapm_widget_power: widget=Headphone-d val=0

but I2S1 bus have garbage.

Andrei