Skip to content

Conversation

@xiulipan
Copy link

@xiulipan xiulipan commented Nov 14, 2019

SND_SOC_DAILINK_DEF will crete structure, if reuse the same dummy structure
for cpu dai and platform. snd_soc_fixup_dai_links_platform_name will not only
overwrite the platform name but also the CPU DAI name.
Fix the issue by create a sperate dummyplatform for dummy platform.

Wake on voice is not supported for SOF on BDW, so ignore the dai.

Copy link
Member

@plbossart plbossart left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure I understand the issue here.
I managed to do playback in the past on Broadwell/Samus without this change?

SND_SOC_DAILINK_REG(ssp0_pin, codec, platform),
#else
SND_SOC_DAILINK_REG(dummy, codec, dummy),
#endif
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this needed?
we've managed to make things work in the past without this change.
What is the problem and what are you fixing here?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@plbossart The old one what to map to a dummy BE, but we only have a dummy BE with nocodec support.
Now nocodec is default disabled with HDA link enabled, so the change is required.

Or we should add dummy BE to SOF BDW platform drvier.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xiulipan with the nocodec machine drv, we dont use the dummy CPU DAI, we actually use the ones defined in the dai_drv[]. We use dummy dai only for the codec dai.

Anyway, how does it work with the broadwell legacy driver with the dummy CPU DAI? We never register the dummy codec DAI in SOF. So why isnt the dummy CPU DAI already registered too?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure, but from the test and log, it says

[  217.561885] broadwell-audio broadwell-audio: info: override BE DAI link Codec
[  217.561898] broadwell-audio broadwell-audio: ASoC: CPU DAI snd-soc-dummy-dai not registered
[  218.048635] sof-audio-acpi INT3438:00: ipc rx: 0x90020000: GLB_TRACE_MSG

And we do have something in nocodec

links[i].codecs->dai_name = "snd-soc-dummy-dai";
links[i].codecs->name = "snd-soc-dummy";

@ranj063
Copy link
Collaborator

ranj063 commented Nov 15, 2019

@xiulipan are you missing virtual widgets maybe?

@xiulipan
Copy link
Author

@ranj063 I tried to add virtual widgets, but it will not solved the map issue here. It will still show error "SSP0 CODEC IN/OUT" do not have sink/source. I think the map to this codec related widgets is in the SST tplg. As we have our own tplg for this mapping, so I think it maybe easier to remove the map for this.

@ranj063
Copy link
Collaborator

ranj063 commented Nov 15, 2019

@xiulipan can you please post the full error log?

@xiulipan
Copy link
Author

@ranj063

original states/without fix for BE dai link
[  217.547039] sof-audio-acpi INT3438:00: booting DSP firmware
[  217.547769] sof-audio-acpi INT3438:00: ipc rx: 0x70000000: FW_READY
[  217.547771] sof-audio-acpi INT3438:00: ipc: DSP is ready 0x70000000 offset 0x9e000
[  217.547795] sof-audio-acpi INT3438:00: Firmware info: version 1:1:0-143c9
[  217.547796] sof-audio-acpi INT3438:00: Firmware: ABI 3:11:0 Kernel ABI 3:11:0
[  217.547797] sof-audio-acpi INT3438:00: Firmware debug build 2 on Nov 14 2019-16:15:55 - options:
                GDB: disabled
                lock debug: disabled
                lock vdebug: disabled
[  217.547831] sof-audio-acpi INT3438:00: found ext header type 1 size 0xa0
[  217.547870] sof-audio-acpi INT3438:00:  mailbox upstream 0x9e000 - size 0x400
[  217.547871] sof-audio-acpi INT3438:00:  mailbox downstream 0x9e400 - size 0x400
[  217.547872] sof-audio-acpi INT3438:00:  stream region 0x9ea00 - size 0x200
[  217.547874] sof-audio-acpi INT3438:00: ipc rx done: 0x70000000: FW_READY
[  217.547875] sof-audio-acpi INT3438:00: firmware boot complete
[  217.547890] sof-audio-acpi INT3438:00: generating page table for 000000006cc73005 size 0x10000 pages 16
[  217.547893] sof-audio-acpi INT3438:00: dma_trace_pages: 16
[  217.547896] sof-audio-acpi INT3438:00: stream_tag: 0
[  217.547899] sof-audio-acpi INT3438:00: ipc tx: 0x90030000: GLB_TRACE_MSG
[  217.548253] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x90030000: GLB_TRACE_MSG
[  217.548317] sof-audio-acpi INT3438:00: created machine broadwell-audio
[  217.561885] broadwell-audio broadwell-audio: info: override BE DAI link Codec
[  217.561898] broadwell-audio broadwell-audio: ASoC: CPU DAI snd-soc-dummy-dai not registered
[  218.048635] sof-audio-acpi INT3438:00: ipc rx: 0x90020000: GLB_TRACE_MSG
with fix for BE dai link only
[  768.187905] sof-audio-acpi INT3438:00: booting DSP firmware
[  768.188638] sof-audio-acpi INT3438:00: ipc rx: 0x70000000: FW_READY
[  768.188640] sof-audio-acpi INT3438:00: ipc: DSP is ready 0x70000000 offset 0x9e000
[  768.188663] sof-audio-acpi INT3438:00: Firmware info: version 1:1:0-143c9
[  768.188664] sof-audio-acpi INT3438:00: Firmware: ABI 3:11:0 Kernel ABI 3:11:0
[  768.188666] sof-audio-acpi INT3438:00: Firmware debug build 2 on Nov 14 2019-16:15:55 - options:
                GDB: disabled
                lock debug: disabled
                lock vdebug: disabled
[  768.188700] sof-audio-acpi INT3438:00: found ext header type 1 size 0xa0
[  768.188715] sof-audio-acpi INT3438:00:  mailbox upstream 0x9e000 - size 0x400
[  768.188716] sof-audio-acpi INT3438:00:  mailbox downstream 0x9e400 - size 0x400
[  768.188717] sof-audio-acpi INT3438:00:  stream region 0x9ea00 - size 0x200
[  768.188719] sof-audio-acpi INT3438:00: ipc rx done: 0x70000000: FW_READY
[  768.188726] sof-audio-acpi INT3438:00: firmware boot complete
[  768.188740] sof-audio-acpi INT3438:00: generating page table for 0000000061985e98 size 0x10000 pages 16
[  768.188741] sof-audio-acpi INT3438:00: dma_trace_pages: 16
[  768.188743] sof-audio-acpi INT3438:00: stream_tag: 0
[  768.188746] sof-audio-acpi INT3438:00: ipc tx: 0x90030000: GLB_TRACE_MSG
[  768.189094] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x90030000: GLB_TRACE_MSG
[  768.189147] sof-audio-acpi INT3438:00: created machine broadwell-audio
[  768.202943] broadwell-audio broadwell-audio: info: override BE DAI link Codec
[  768.202986] sof-audio-acpi INT3438:00: loading topology:intel/sof-tplg/sof-bdw-rt286.tplg
[  768.203029] sof-audio-acpi INT3438:00: Topology: ABI 3:11:0 Kernel ABI 3:11:0
[  768.203032] sof-audio-acpi INT3438:00: tplg: ready widget id 0 pipe 1 type 23 name : PCM0P stream Low Latency Playback 0
[  768.203034] sof-audio-acpi INT3438:00: loaded host PCM0P
[  768.203036] sof-audio-acpi INT3438:00:  config: periods snk 2 src 0 fmt 0
[  768.203039] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.203157] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.203161] sof-audio-acpi INT3438:00: tplg: load control type 1 name : 1 PCM 0 Playback Volume
[  768.203166] sof-audio-acpi INT3438:00: tplg: load kcontrol index 1 chans 2
[  768.203168] sof-audio-acpi INT3438:00: tplg: ready widget id 1 pipe 1 type 6 name : PGA1.0 stream none
[  768.203170] sof-audio-acpi INT3438:00:  config: periods snk 2 src 2 fmt 2
[  768.203173] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.203303] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.203308] sof-audio-acpi INT3438:00: tplg: load control type 1 name : 1 Master Playback Volume
[  768.203322] sof-audio-acpi INT3438:00: tplg: load kcontrol index 2 chans 2
[  768.203324] sof-audio-acpi INT3438:00: tplg: ready widget id 2 pipe 1 type 6 name : PGA1.1 stream none
[  768.203326] sof-audio-acpi INT3438:00:  config: periods snk 2 src 2 fmt 2
[  768.203329] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.203412] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.203414] sof-audio-acpi INT3438:00: tplg: ready widget id 3 pipe 1 type 4 name : MIXER1.0 stream none
[  768.203415] sof-audio-acpi INT3438:00:  config: periods snk 2 src 2 fmt 2
[  768.203417] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.203487] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.203489] sof-audio-acpi INT3438:00: tplg: ready widget id 4 pipe 1 type 31 name : BUF1.0 stream none
[  768.203490] sof-audio-acpi INT3438:00: buffer BUF1.0: size 768 caps 0x61
[  768.203492] sof-audio-acpi INT3438:00: ipc tx: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  768.203575] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  768.203577] sof-audio-acpi INT3438:00: tplg: ready widget id 5 pipe 1 type 31 name : BUF1.1 stream none
[  768.203578] sof-audio-acpi INT3438:00: buffer BUF1.1: size 768 caps 0x41
[  768.203580] sof-audio-acpi INT3438:00: ipc tx: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  768.203661] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  768.203663] sof-audio-acpi INT3438:00: tplg: ready widget id 6 pipe 1 type 31 name : BUF1.2 stream none
[  768.203664] sof-audio-acpi INT3438:00: buffer BUF1.2: size 768 caps 0x41
[  768.203666] sof-audio-acpi INT3438:00: ipc tx: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  768.203748] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  768.203749] sof-audio-acpi INT3438:00: tplg: ready widget id 7 pipe 1 type 31 name : BUF1.3 stream none
[  768.203750] sof-audio-acpi INT3438:00: buffer BUF1.3: size 768 caps 0x61
[  768.203752] sof-audio-acpi INT3438:00: ipc tx: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  768.203814] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  768.203816] sof-audio-acpi INT3438:00: tplg: ready widget id 8 pipe 1 type 27 name : SSP0.OUT stream Codec
[  768.203818] sof-audio-acpi INT3438:00: dai SSP0.OUT: type 1 index 0
[  768.203819] sof-audio-acpi INT3438:00:  config: periods snk 0 src 2 fmt 1
[  768.203821] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.203884] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.203886] sof-audio-acpi INT3438:00: tplg: connected widget SSP0.OUT -> DAI link Codec
[  768.203890] sof-audio-acpi INT3438:00: tplg: ready widget id 9 pipe 1 type 32 name : PIPELINE.1.SSP0.OUT stream SSP0.OUT
[  768.203893] sof-audio-acpi INT3438:00: tplg: pipeline id 1 comp 9 scheduling comp id 8
[  768.203896] sof-audio-acpi INT3438:00: pipeline PIPELINE.1.SSP0.OUT: period 1000 pri 0 mips 5000 core 0 frames 0
[  768.203899] sof-audio-acpi INT3438:00: ipc tx: 0x30100000: GLB_TPLG_MSG: PIPE_NEW
[  768.203946] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30100000: GLB_TPLG_MSG: PIPE_NEW
[  768.203949] sof-audio-acpi INT3438:00: ipc tx: 0x40070000: GLB_PM_MSG: CORE_ENABLE
[  768.203979] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x40070000: GLB_PM_MSG: CORE_ENABLE
[  768.203984] sof-audio-acpi INT3438:00: tplg: ready widget id 10 pipe 2 type 24 name : PCM0C stream Low Latency Capture 0
[  768.203986] sof-audio-acpi INT3438:00: loaded host PCM0C
[  768.203987] sof-audio-acpi INT3438:00:  config: periods snk 0 src 2 fmt 0
[  768.203991] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.204053] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.204057] sof-audio-acpi INT3438:00: tplg: load control type 1 name : 2 PCM 0 Capture Volume
[  768.204063] sof-audio-acpi INT3438:00: tplg: load kcontrol index 11 chans 2
[  768.204065] sof-audio-acpi INT3438:00: tplg: ready widget id 11 pipe 2 type 6 name : PGA2.0 stream none
[  768.204068] sof-audio-acpi INT3438:00:  config: periods snk 2 src 2 fmt 2
[  768.204072] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.204134] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.204137] sof-audio-acpi INT3438:00: tplg: ready widget id 12 pipe 2 type 31 name : BUF2.0 stream none
[  768.204139] sof-audio-acpi INT3438:00: buffer BUF2.0: size 768 caps 0x61
[  768.204142] sof-audio-acpi INT3438:00: ipc tx: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  768.204214] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  768.204217] sof-audio-acpi INT3438:00: tplg: ready widget id 13 pipe 2 type 31 name : BUF2.1 stream none
[  768.204220] sof-audio-acpi INT3438:00: buffer BUF2.1: size 768 caps 0x61
[  768.204222] sof-audio-acpi INT3438:00: ipc tx: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  768.204287] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  768.204291] sof-audio-acpi INT3438:00: tplg: ready widget id 14 pipe 2 type 28 name : SSP0.IN stream Codec
[  768.204293] sof-audio-acpi INT3438:00: dai SSP0.IN: type 1 index 0
[  768.204295] sof-audio-acpi INT3438:00:  config: periods snk 2 src 0 fmt 1
[  768.204298] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.204359] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.204361] sof-audio-acpi INT3438:00: tplg: connected widget SSP0.IN -> DAI link Codec
[  768.204365] sof-audio-acpi INT3438:00: tplg: ready widget id 15 pipe 2 type 32 name : PIPELINE.2.SSP0.IN stream SSP0.IN
[  768.204367] sof-audio-acpi INT3438:00: tplg: pipeline id 2 comp 15 scheduling comp id 14
[  768.204369] sof-audio-acpi INT3438:00: pipeline PIPELINE.2.SSP0.IN: period 1000 pri 0 mips 5000 core 0 frames 0
[  768.204372] sof-audio-acpi INT3438:00: ipc tx: 0x30100000: GLB_TPLG_MSG: PIPE_NEW
[  768.204416] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30100000: GLB_TPLG_MSG: PIPE_NEW
[  768.204419] sof-audio-acpi INT3438:00: ipc tx: 0x40070000: GLB_PM_MSG: CORE_ENABLE
[  768.204448] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x40070000: GLB_PM_MSG: CORE_ENABLE
[  768.204451] sof-audio-acpi INT3438:00: tplg: ready widget id 16 pipe 3 type 23 name : PCM1P stream Media Playback 1
[  768.204453] sof-audio-acpi INT3438:00: loaded host PCM1P
[  768.204455] sof-audio-acpi INT3438:00:  config: periods snk 2 src 0 fmt 0
[  768.204458] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.204518] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.204521] sof-audio-acpi INT3438:00: tplg: load control type 1 name : 3 PCM 1 Playback Volume
[  768.204526] sof-audio-acpi INT3438:00: tplg: load kcontrol index 17 chans 2
[  768.204529] sof-audio-acpi INT3438:00: tplg: ready widget id 17 pipe 3 type 6 name : PGA3.0 stream none
[  768.204531] sof-audio-acpi INT3438:00:  config: periods snk 2 src 2 fmt 2
[  768.204535] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.204598] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.204602] sof-audio-acpi INT3438:00: tplg: ready widget id 18 pipe 3 type 34 name : SRC3.0 stream none
[  768.204605] sof-audio-acpi INT3438:00: src SRC3.0: source rate 0 sink rate 48000
[  768.204606] sof-audio-acpi INT3438:00:  config: periods snk 2 src 2 fmt 2
[  768.204610] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.204666] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  768.204669] sof-audio-acpi INT3438:00: tplg: ready widget id 19 pipe 3 type 31 name : BUF3.0 stream none
[  768.204672] sof-audio-acpi INT3438:00: buffer BUF3.0: size 6144 caps 0x61
[  768.204674] sof-audio-acpi INT3438:00: ipc tx: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  768.204858] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  768.204864] sof-audio-acpi INT3438:00: tplg: ready widget id 20 pipe 3 type 31 name : BUF3.1 stream none
[  768.204867] sof-audio-acpi INT3438:00: buffer BUF3.1: size 6144 caps 0x41
[  768.204871] sof-audio-acpi INT3438:00: ipc tx: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  768.205056] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  768.205060] sof-audio-acpi INT3438:00: tplg: ready widget id 21 pipe 3 type 31 name : BUF3.2 stream none
[  768.205062] sof-audio-acpi INT3438:00: buffer BUF3.2: size 6144 caps 0x41
[  768.205064] sof-audio-acpi INT3438:00: ipc tx: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  768.205256] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  768.205259] sof-audio-acpi INT3438:00: tplg: ready widget id 22 pipe 3 type 32 name : PIPELINE.3. stream none
[  768.205261] sof-audio-acpi INT3438:00: error: widget PIPELINE.3. refers to non existent widget
[  768.205265] sof-audio-acpi INT3438:00: error: DSP failed to add widget id 0 type 32 name : PIPELINE.3. stream none reply 0
[  768.205268] sof-audio-acpi INT3438:00: ASoC: failed to load widget PIPELINE.3.
[  768.205275] sof-audio-acpi INT3438:00: error: tplg component load failed -22
[  768.205280] sof-audio-acpi INT3438:00: error: failed to load DSP topology -22
[  768.205282] sof-audio-acpi INT3438:00: ASoC: failed to probe component -22
[  768.205292] broadwell-audio broadwell-audio: ASoC: failed to instantiate card -22
[  768.205319] broadwell-audio: probe of broadwell-audio failed with error -22
[  768.689474] sof-audio-acpi INT3438:00: ipc rx: 0x90020000: GLB_TRACE_MSG
[  768.689482] sof-audio-acpi INT3438:00: ipc rx done: 0x90020000: GLB_TRACE_MSG

with fix for BE dai link and https://github.com/thesofproject/sof/pull/2095
[  485.085870] sof-audio-acpi INT3438:00: booting DSP firmware
[  485.086585] sof-audio-acpi INT3438:00: ipc rx: 0x70000000: FW_READY
[  485.086587] sof-audio-acpi INT3438:00: ipc: DSP is ready 0x70000000 offset 0x9e000
[  485.086610] sof-audio-acpi INT3438:00: Firmware info: version 1:1:0-143c9
[  485.086611] sof-audio-acpi INT3438:00: Firmware: ABI 3:11:0 Kernel ABI 3:11:0
[  485.086612] sof-audio-acpi INT3438:00: Firmware debug build 2 on Nov 14 2019-16:15:55 - options:
                GDB: disabled
                lock debug: disabled
                lock vdebug: disabled
[  485.086647] sof-audio-acpi INT3438:00: found ext header type 1 size 0xa0
[  485.086661] sof-audio-acpi INT3438:00:  mailbox upstream 0x9e000 - size 0x400
[  485.086662] sof-audio-acpi INT3438:00:  mailbox downstream 0x9e400 - size 0x400
[  485.086663] sof-audio-acpi INT3438:00:  stream region 0x9ea00 - size 0x200
[  485.086665] sof-audio-acpi INT3438:00: ipc rx done: 0x70000000: FW_READY
[  485.086668] sof-audio-acpi INT3438:00: firmware boot complete
[  485.086685] sof-audio-acpi INT3438:00: generating page table for 00000000c8db03a0 size 0x10000 pages 16
[  485.086688] sof-audio-acpi INT3438:00: dma_trace_pages: 16
[  485.086692] sof-audio-acpi INT3438:00: stream_tag: 0
[  485.086696] sof-audio-acpi INT3438:00: ipc tx: 0x90030000: GLB_TRACE_MSG
[  485.087017] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x90030000: GLB_TRACE_MSG
[  485.087073] sof-audio-acpi INT3438:00: created machine broadwell-audio
[  485.101857] broadwell-audio broadwell-audio: info: override BE DAI link Codec
[  485.101897] sof-audio-acpi INT3438:00: loading topology:intel/sof-tplg/sof-bdw-rt286.tplg
[  485.101926] sof-audio-acpi INT3438:00: Topology: ABI 3:11:0 Kernel ABI 3:11:0
[  485.101930] sof-audio-acpi INT3438:00: tplg: ready widget id 0 pipe 1 type 23 name : PCM0P stream Low Latency Playback 0
[  485.101932] sof-audio-acpi INT3438:00: loaded host PCM0P
[  485.101933] sof-audio-acpi INT3438:00:  config: periods snk 2 src 0 fmt 0
[  485.101937] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.102016] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.102020] sof-audio-acpi INT3438:00: tplg: load control type 1 name : 1 PCM 0 Playback Volume
[  485.102024] sof-audio-acpi INT3438:00: tplg: load kcontrol index 1 chans 2
[  485.102026] sof-audio-acpi INT3438:00: tplg: ready widget id 1 pipe 1 type 6 name : PGA1.0 stream none
[  485.102027] sof-audio-acpi INT3438:00:  config: periods snk 2 src 2 fmt 2
[  485.102030] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.102105] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.102107] sof-audio-acpi INT3438:00: tplg: load control type 1 name : 1 Master Playback Volume
[  485.102110] sof-audio-acpi INT3438:00: tplg: load kcontrol index 2 chans 2
[  485.102111] sof-audio-acpi INT3438:00: tplg: ready widget id 2 pipe 1 type 6 name : PGA1.1 stream none
[  485.102112] sof-audio-acpi INT3438:00:  config: periods snk 2 src 2 fmt 2
[  485.102115] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.102223] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.102302] sof-audio-acpi INT3438:00: tplg: ready widget id 3 pipe 1 type 4 name : MIXER1.0 stream none
[  485.102387] sof-audio-acpi INT3438:00:  config: periods snk 2 src 2 fmt 2
[  485.102390] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.102480] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.102482] sof-audio-acpi INT3438:00: tplg: ready widget id 4 pipe 1 type 31 name : BUF1.0 stream none
[  485.102483] sof-audio-acpi INT3438:00: buffer BUF1.0: size 768 caps 0x61
[  485.102485] sof-audio-acpi INT3438:00: ipc tx: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  485.102547] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  485.102550] sof-audio-acpi INT3438:00: tplg: ready widget id 5 pipe 1 type 31 name : BUF1.1 stream none
[  485.102552] sof-audio-acpi INT3438:00: buffer BUF1.1: size 768 caps 0x41
[  485.102553] sof-audio-acpi INT3438:00: ipc tx: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  485.102670] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  485.102671] sof-audio-acpi INT3438:00: tplg: ready widget id 6 pipe 1 type 31 name : BUF1.2 stream none
[  485.102748] sof-audio-acpi INT3438:00: buffer BUF1.2: size 768 caps 0x41
[  485.102749] sof-audio-acpi INT3438:00: ipc tx: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  485.102929] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  485.102931] sof-audio-acpi INT3438:00: tplg: ready widget id 7 pipe 1 type 31 name : BUF1.3 stream none
[  485.102932] sof-audio-acpi INT3438:00: buffer BUF1.3: size 768 caps 0x61
[  485.103010] sof-audio-acpi INT3438:00: ipc tx: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  485.103082] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  485.103087] sof-audio-acpi INT3438:00: tplg: ready widget id 8 pipe 1 type 27 name : SSP0.OUT stream Codec
[  485.103090] sof-audio-acpi INT3438:00: dai SSP0.OUT: type 1 index 0
[  485.103091] sof-audio-acpi INT3438:00:  config: periods snk 0 src 2 fmt 1
[  485.103094] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.103190] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.103191] sof-audio-acpi INT3438:00: tplg: connected widget SSP0.OUT -> DAI link Codec
[  485.103193] sof-audio-acpi INT3438:00: tplg: ready widget id 9 pipe 1 type 32 name : PIPELINE.1.SSP0.OUT stream SSP0.OUT
[  485.103194] sof-audio-acpi INT3438:00: tplg: pipeline id 1 comp 9 scheduling comp id 8
[  485.103196] sof-audio-acpi INT3438:00: pipeline PIPELINE.1.SSP0.OUT: period 1000 pri 0 mips 5000 core 0 frames 0
[  485.103198] sof-audio-acpi INT3438:00: ipc tx: 0x30100000: GLB_TPLG_MSG: PIPE_NEW
[  485.103239] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30100000: GLB_TPLG_MSG: PIPE_NEW
[  485.103241] sof-audio-acpi INT3438:00: ipc tx: 0x40070000: GLB_PM_MSG: CORE_ENABLE
[  485.103269] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x40070000: GLB_PM_MSG: CORE_ENABLE
[  485.103271] sof-audio-acpi INT3438:00: tplg: ready widget id 10 pipe 1 type 0 name : SSP0 RT286 IN stream none
[  485.103273] sof-audio-acpi INT3438:00: warning: widget type 0 name SSP0 RT286 IN not handled
[  485.103275] sof-audio-acpi INT3438:00: tplg: ready widget id 11 pipe 2 type 24 name : PCM0C stream Low Latency Capture 0
[  485.103276] sof-audio-acpi INT3438:00: loaded host PCM0C
[  485.103277] sof-audio-acpi INT3438:00:  config: periods snk 0 src 2 fmt 0
[  485.103281] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.103339] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.103342] sof-audio-acpi INT3438:00: tplg: load control type 1 name : 2 PCM 0 Capture Volume
[  485.103346] sof-audio-acpi INT3438:00: tplg: load kcontrol index 12 chans 2
[  485.103348] sof-audio-acpi INT3438:00: tplg: ready widget id 12 pipe 2 type 6 name : PGA2.0 stream none
[  485.103349] sof-audio-acpi INT3438:00:  config: periods snk 2 src 2 fmt 2
[  485.103351] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.103414] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.103416] sof-audio-acpi INT3438:00: tplg: ready widget id 13 pipe 2 type 31 name : BUF2.0 stream none
[  485.103418] sof-audio-acpi INT3438:00: buffer BUF2.0: size 768 caps 0x61
[  485.103420] sof-audio-acpi INT3438:00: ipc tx: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  485.103482] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  485.103484] sof-audio-acpi INT3438:00: tplg: ready widget id 14 pipe 2 type 31 name : BUF2.1 stream none
[  485.103486] sof-audio-acpi INT3438:00: buffer BUF2.1: size 768 caps 0x61
[  485.103488] sof-audio-acpi INT3438:00: ipc tx: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  485.103551] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  485.103553] sof-audio-acpi INT3438:00: tplg: ready widget id 15 pipe 2 type 28 name : SSP0.IN stream Codec
[  485.103555] sof-audio-acpi INT3438:00: dai SSP0.IN: type 1 index 0
[  485.103556] sof-audio-acpi INT3438:00:  config: periods snk 2 src 0 fmt 1
[  485.103559] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.103619] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.103620] sof-audio-acpi INT3438:00: tplg: connected widget SSP0.IN -> DAI link Codec
[  485.103623] sof-audio-acpi INT3438:00: tplg: ready widget id 16 pipe 2 type 32 name : PIPELINE.2.SSP0.IN stream SSP0.IN
[  485.103624] sof-audio-acpi INT3438:00: tplg: pipeline id 2 comp 16 scheduling comp id 15
[  485.103626] sof-audio-acpi INT3438:00: pipeline PIPELINE.2.SSP0.IN: period 1000 pri 0 mips 5000 core 0 frames 0
[  485.103627] sof-audio-acpi INT3438:00: ipc tx: 0x30100000: GLB_TPLG_MSG: PIPE_NEW
[  485.103671] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30100000: GLB_TPLG_MSG: PIPE_NEW
[  485.103768] sof-audio-acpi INT3438:00: ipc tx: 0x40070000: GLB_PM_MSG: CORE_ENABLE
[  485.103769] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x40070000: GLB_PM_MSG: CORE_ENABLE
[  485.103936] sof-audio-acpi INT3438:00: tplg: ready widget id 17 pipe 2 type 1 name : SSP0 RT286 OUT stream none
[  485.103937] sof-audio-acpi INT3438:00: warning: widget type 1 name SSP0 RT286 OUT not handled
[  485.103941] sof-audio-acpi INT3438:00: tplg: ready widget id 18 pipe 3 type 23 name : PCM1P stream Media Playback 1
[  485.103942] sof-audio-acpi INT3438:00: loaded host PCM1P
[  485.103943] sof-audio-acpi INT3438:00:  config: periods snk 2 src 0 fmt 0
[  485.103947] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.104048] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.104137] sof-audio-acpi INT3438:00: tplg: load control type 1 name : 3 PCM 1 Playback Volume
[  485.104216] sof-audio-acpi INT3438:00: tplg: load kcontrol index 19 chans 2
[  485.104218] sof-audio-acpi INT3438:00: tplg: ready widget id 19 pipe 3 type 6 name : PGA3.0 stream none
[  485.104219] sof-audio-acpi INT3438:00:  config: periods snk 2 src 2 fmt 2
[  485.104221] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.104283] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.104285] sof-audio-acpi INT3438:00: tplg: ready widget id 20 pipe 3 type 34 name : SRC3.0 stream none
[  485.104287] sof-audio-acpi INT3438:00: src SRC3.0: source rate 0 sink rate 48000
[  485.104288] sof-audio-acpi INT3438:00:  config: periods snk 2 src 2 fmt 2
[  485.104291] sof-audio-acpi INT3438:00: ipc tx: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.104345] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30010000: GLB_TPLG_MSG: COMP_NEW
[  485.104347] sof-audio-acpi INT3438:00: tplg: ready widget id 21 pipe 3 type 31 name : BUF3.0 stream none
[  485.104348] sof-audio-acpi INT3438:00: buffer BUF3.0: size 3072 caps 0x61
[  485.104350] sof-audio-acpi INT3438:00: ipc tx: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  485.104536] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  485.104537] sof-audio-acpi INT3438:00: tplg: ready widget id 22 pipe 3 type 31 name : BUF3.1 stream none
[  485.104538] sof-audio-acpi INT3438:00: buffer BUF3.1: size 3072 caps 0x41
[  485.104622] sof-audio-acpi INT3438:00: ipc tx: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  485.104803] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  485.104804] sof-audio-acpi INT3438:00: tplg: ready widget id 23 pipe 3 type 31 name : BUF3.2 stream none
[  485.104805] sof-audio-acpi INT3438:00: buffer BUF3.2: size 3072 caps 0x41
[  485.104888] sof-audio-acpi INT3438:00: ipc tx: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  485.105000] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30200000: GLB_TPLG_MSG: BUFFER_NEW
[  485.105003] sof-audio-acpi INT3438:00: tplg: ready widget id 24 pipe 3 type 32 name : PIPELINE.3.SSP0.OUT stream SSP0.OUT
[  485.105006] sof-audio-acpi INT3438:00: tplg: pipeline id 3 comp 24 scheduling comp id 8
[  485.105008] sof-audio-acpi INT3438:00: pipeline PIPELINE.3.SSP0.OUT: period 1000 pri 0 mips 100000 core 0 frames 0
[  485.105010] sof-audio-acpi INT3438:00: ipc tx: 0x30100000: GLB_TPLG_MSG: PIPE_NEW
[  485.105074] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30100000: GLB_TPLG_MSG: PIPE_NEW
[  485.105077] sof-audio-acpi INT3438:00: ipc tx: 0x40070000: GLB_PM_MSG: CORE_ENABLE
[  485.105117] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x40070000: GLB_PM_MSG: CORE_ENABLE
[  485.105121] sof-audio-acpi INT3438:00: tplg: load pcm Low Latency 0
[  485.105145] sof-audio-acpi INT3438:00: tplg: load pcm Media Playback 1
[  485.105159] sof-audio-acpi INT3438:00: sink BUF1.0 control none source PCM0P
[  485.105163] sof-audio-acpi INT3438:00: ipc tx: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.105209] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.105212] sof-audio-acpi INT3438:00: sink PGA1.0 control none source BUF1.0
[  485.105215] sof-audio-acpi INT3438:00: ipc tx: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.105258] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.105261] sof-audio-acpi INT3438:00: sink BUF1.1 control none source PGA1.0
[  485.105265] sof-audio-acpi INT3438:00: ipc tx: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.105330] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.105409] sof-audio-acpi INT3438:00: sink MIXER1.0 control none source BUF1.1
[  485.105411] sof-audio-acpi INT3438:00: ipc tx: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.105508] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.105510] sof-audio-acpi INT3438:00: sink BUF1.2 control none source MIXER1.0
[  485.105512] sof-audio-acpi INT3438:00: ipc tx: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.105600] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.105602] sof-audio-acpi INT3438:00: sink PGA1.1 control none source BUF1.2
[  485.105604] sof-audio-acpi INT3438:00: ipc tx: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.105637] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.105639] sof-audio-acpi INT3438:00: sink BUF1.3 control none source PGA1.1
[  485.105641] sof-audio-acpi INT3438:00: ipc tx: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.105673] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.105676] sof-audio-acpi INT3438:00: sink PCM0C control none source BUF2.1
[  485.105678] sof-audio-acpi INT3438:00: ipc tx: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.105718] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.105720] sof-audio-acpi INT3438:00: sink BUF2.1 control none source PGA2.0
[  485.105721] sof-audio-acpi INT3438:00: ipc tx: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.105755] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.105926] sof-audio-acpi INT3438:00: sink PGA2.0 control none source BUF2.0
[  485.106012] sof-audio-acpi INT3438:00: ipc tx: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.106107] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.106192] sof-audio-acpi INT3438:00: sink SSP0.OUT control none source BUF1.3
[  485.106194] sof-audio-acpi INT3438:00: ipc tx: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.106285] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.106287] sof-audio-acpi INT3438:00: sink BUF2.0 control none source SSP0.IN
[  485.106288] sof-audio-acpi INT3438:00: ipc tx: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.106323] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.106326] sof-audio-acpi INT3438:00: sink BUF3.0 control none source PCM1P
[  485.106328] sof-audio-acpi INT3438:00: ipc tx: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.106362] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.106364] sof-audio-acpi INT3438:00: sink PGA3.0 control none source BUF3.0
[  485.106366] sof-audio-acpi INT3438:00: ipc tx: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.106400] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.106402] sof-audio-acpi INT3438:00: sink BUF3.1 control none source PGA3.0
[  485.106404] sof-audio-acpi INT3438:00: ipc tx: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.106513] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.106514] sof-audio-acpi INT3438:00: sink SRC3.0 control none source BUF3.1
[  485.106604] sof-audio-acpi INT3438:00: ipc tx: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.106605] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.106689] sof-audio-acpi INT3438:00: sink BUF3.2 control none source SRC3.0
[  485.106690] sof-audio-acpi INT3438:00: ipc tx: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.106781] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.106783] sof-audio-acpi INT3438:00: sink MIXER1.0 control none source BUF3.2
[  485.106871] sof-audio-acpi INT3438:00: ipc tx: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.106965] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30030000: GLB_TPLG_MSG: COMP_CONNECT
[  485.106971] sof-audio-acpi INT3438:00: tplg: 1 hw_configs found, default id: 0!
[  485.106974] sof-audio-acpi INT3438:00: tplg: config SSP0 fmt 0x4001 mclk 24000000 bclk 2400000 fclk 48000 width (24)25 slots 2 mclk id 0 quirks 0
[  485.106978] sof-audio-acpi INT3438:00: ipc tx: 0x80010000: GLB_DAI_MSG: CONFIG
[  485.107042] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x80010000: GLB_DAI_MSG: CONFIG
[  485.107044] sof-audio-acpi INT3438:00: ASoC: Parent card not yet available, widget card binding deferred
[  485.107046] sof-audio-acpi INT3438:00: tplg: complete pipeline PIPELINE.3.SSP0.OUT id 24
[  485.107047] sof-audio-acpi INT3438:00: ipc tx: 0x30130000: GLB_TPLG_MSG: PIPE_COMPLETE
[  485.107140] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30130000: GLB_TPLG_MSG: PIPE_COMPLETE
[  485.107141] sof-audio-acpi INT3438:00: tplg: complete pipeline PIPELINE.2.SSP0.IN id 16
[  485.107143] sof-audio-acpi INT3438:00: ipc tx: 0x30130000: GLB_TPLG_MSG: PIPE_COMPLETE
[  485.107417] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30130000: GLB_TPLG_MSG: PIPE_COMPLETE
[  485.107418] sof-audio-acpi INT3438:00: tplg: complete pipeline PIPELINE.1.SSP0.OUT id 9
[  485.107419] sof-audio-acpi INT3438:00: ipc tx: 0x30130000: GLB_TPLG_MSG: PIPE_COMPLETE
[  485.107424] sof-audio-acpi INT3438:00: ipc rx: 0x90020000: GLB_TRACE_MSG
[  485.107434] sof-audio-acpi INT3438:00: ipc rx done: 0x90020000: GLB_TRACE_MSG
[  485.107528] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x30130000: GLB_TPLG_MSG: PIPE_COMPLETE
[  485.107635] sof-audio-acpi INT3438:00: ipc tx: 0x50020000: GLB_COMP_MSG: GET_VALUE
[  485.107637] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x50020000: GLB_COMP_MSG: GET_VALUE
[  485.107640] sof-audio-acpi INT3438:00: ipc tx: 0x50020000: GLB_COMP_MSG: GET_VALUE
[  485.107707] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x50020000: GLB_COMP_MSG: GET_VALUE
[  485.107712] sof-audio-acpi INT3438:00: ipc tx: 0x50020000: GLB_COMP_MSG: GET_VALUE
[  485.107779] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x50020000: GLB_COMP_MSG: GET_VALUE
[  485.107782] sof-audio-acpi INT3438:00: ipc tx: 0x50020000: GLB_COMP_MSG: GET_VALUE
[  485.107851] sof-audio-acpi INT3438:00: ipc tx succeeded: 0x50020000: GLB_COMP_MSG: GET_VALUE
[  485.108619] rt286 i2c-INT343A:00: ASoC: sink widget DMIC1 overwritten
[  485.108625] rt286 i2c-INT343A:00: ASoC: source widget DMIC1 overwritten
[  485.111123] broadwell-audio broadwell-audio: rt286-aif1 <-> ssp0-port mapping ok
[  485.111293] sof-audio-acpi INT3438:00: creating new PCM Low Latency
[  485.111294] sof-audio-acpi INT3438:00: spcm: allocate Low Latency Playback 0 playback DMA buffer size 0x10000 max 0x10000
[  485.111307] sof-audio-acpi INT3438:00: spcm: allocate Low Latency Capture 0 capture DMA buffer size 0x10000 max 0x10000
[  485.111315] broadwell-audio broadwell-audio: snd-soc-dummy-dai <-> Low Latency 0 mapping ok
[  485.111322] sof-audio-acpi INT3438:00: creating new PCM Media Playback 1
[  485.111323] sof-audio-acpi INT3438:00: spcm: allocate Media Playback 1 playback DMA buffer size 0x800000 max 0x800000
[  485.112484] broadwell-audio broadwell-audio: snd-soc-dummy-dai <-> Media Playback 1 mapping ok
[  485.112512] broadwell-audio broadwell-audio: ASoC: no sink widget found for SSP0 CODEC IN
[  485.112514] broadwell-audio broadwell-audio: ASoC: Failed to add route AIF1 Capture -> direct -> SSP0 CODEC IN
[  485.112517] broadwell-audio broadwell-audio: ASoC: no source widget found for SSP0 CODEC OUT
[  485.112518] broadwell-audio broadwell-audio: ASoC: Failed to add route SSP0 CODEC OUT -> direct -> AIF1 Playback
[  485.607447] sof-audio-acpi INT3438:00: ipc rx: 0x90020000: GLB_TRACE_MSG
[  485.607456] sof-audio-acpi INT3438:00: ipc rx done: 0x90020000: GLB_TRACE_MSG
[  486.107472] sof-audio-acpi INT3438:00: ipc rx: 0x90020000: GLB_TRACE_MSG
[  486.107483] sof-audio-acpi INT3438:00: ipc rx done: 0x90020000: GLB_TRACE_MSG

@ranj063
Copy link
Collaborator

ranj063 commented Nov 15, 2019

@xiulipan what does "with fix for BE Dai link" mean? Sorry I am not following it at all.

The last log shows this:
[ 485.112512] broadwell-audio broadwell-audio: ASoC: no sink widget found for SSP0 CODEC IN
[ 485.112514] broadwell-audio broadwell-audio: ASoC: Failed to add route AIF1 Capture -> direct -> SSP0 CODEC IN
[ 485.112517] broadwell-audio broadwell-audio: ASoC: no source widget found for SSP0 CODEC OUT
[ 485.112518] broadwell-audio broadwell-audio: ASoC: Failed to add route SSP0 CODEC OUT -> direct -> AIF1 Playback

This should be fixed with adding virtual widgets for "SSP0 CODEC IN" and "SSP0 CODEC OUT" in tplg

@xiulipan
Copy link
Author

@ranj063

fix for BE Dai link
means this part code.

#if IS_ENABLED(CONFIG_SND_SOC_SOF_BROADWELL)
		SND_SOC_DAILINK_REG(ssp0_pin, codec, platform),
#else
		SND_SOC_DAILINK_REG(dummy, codec, dummy),
#endif

I tried to add the

diff --git a/tools/topology/sof-bdw-codec.m4 b/tools/topology/sof-bdw-codec.m4
index 902774f87208..8639464743c1 100644
--- a/tools/topology/sof-bdw-codec.m4
+++ b/tools/topology/sof-bdw-codec.m4
@@ -96,3 +96,6 @@ DAI_CONFIG(SSP, 0, 0, Codec,
                      SSP_CLOCK(fsync, 48000, codec_slave),
                      SSP_TDM(2, 25, 3, 3),
                      SSP_CONFIG_DATA(SSP, 0, 24)))
+
+VIRTUAL_WIDGET(SSP0 CODEC IN, out_drv, 1)
+VIRTUAL_WIDGET(SSP0 CODEC OUT, out_drv, 1)

but still got

[13283.429606] broadwell-audio broadwell-audio: ASoC: no sink widget found for SSP0 CODEC IN
[13283.429611] broadwell-audio broadwell-audio: ASoC: Failed to add route AIF1 Capture -> direct -> SSP0 CODEC IN
[13283.429614] broadwell-audio broadwell-audio: ASoC: no source widget found for SSP0 CODEC OUT
[13283.429616] broadwell-audio broadwell-audio: ASoC: Failed to add route SSP0 CODEC OUT -> direct -> AIF1 Playback

@xiulipan
Copy link
Author

@ranj063 I redo some test and found I was fooled by m4. It expend the SSP0 CODEC IN to SSP0 RT286 IN in my case. I update the PR and I will also update the tplg PR.

@plbossart plbossart added the Unclear No agreement on problem statement and resolution label Dec 7, 2019
@plbossart
Copy link
Member

@xiulipan is this PR current or abandoned? I can't figure out what this is about?

@xiulipan
Copy link
Author

xiulipan commented Dec 9, 2019

@plbossart I will make add an update to this PR and the tplg PR.

The basic idea here is that in the BDW machine driver, we need SND_SOC_DAILINK_REG(ssp0_pin, codec, platform), instead of SND_SOC_DAILINK_REG(dummy, codec, dummy), for the BE dai name and platform name. As we have remove the dummy support for SOF (It used to be nocodec, but we disable nocodec by default now.)

@plbossart
Copy link
Member

@plbossart I will make add an update to this PR and the tplg PR.

The basic idea here is that in the BDW machine driver, we need SND_SOC_DAILINK_REG(ssp0_pin, codec, platform), instead of SND_SOC_DAILINK_REG(dummy, codec, dummy), for the BE dai name and platform name. As we have remove the dummy support for SOF (It used to be nocodec, but we disable nocodec by default now.)

?? the bdw-rt6777 does not need any change of this nature, why would we need it for this machine driver?

@xiulipan
Copy link
Author

@plbossart But I will get some error messages:

[  217.548317] sof-audio-acpi INT3438:00: created machine broadwell-audio
[  217.561885] broadwell-audio broadwell-audio: info: override BE DAI link Codec
[  217.561898] broadwell-audio broadwell-audio: ASoC: CPU DAI snd-soc-dummy-dai not registered

It says about we do not have CPU DAI snd-soc-dummy-dai. So my fix here is to change it to CPU DAI ssp0-port from our bdw.c

Could you give some advice about the fixing? @ranj063 @kv2019i @bardliao

/* Broadwell DAIs */
static struct snd_soc_dai_driver bdw_dai[] = {
{
.name = "ssp0-port",
},
{
.name = "ssp1-port",
},
};

PS: I believe in the past we will have no such issue, as sof-nocodec will have some map like this. But as we have disable nocodec support by default now. I think there is no such DAI now.

@bardliao
Copy link
Collaborator

@xiulipan The dummy cpu and dai should be defined on soc-utils.c. Could you check why "ASoC: CPU DAI snd-soc-dummy-dai not registered"?

@xiulipan
Copy link
Author

@plbossart Test with an BDW RT5677 with latset sof-dev with kconfig-sof-default.sh
It also shows some issues. Indeed I missed patch for the bdw-rt5677 machine driver

[    2.061916] bdw-rt5677 bdw-rt5677: info: override BE DAI link Codec DSP
[    2.061920] bdw-rt5677 bdw-rt5677: info: override BE DAI link Codec
[    2.061950] bdw-rt5677 bdw-rt5677: ASoC: CPU DAI spi-RT5677AA:00 not registered

It seems we need to handle these WoV thing for BDW RT5677?

/* Wake on voice interface */
SND_SOC_DAILINK_DEFS(dsp,
DAILINK_COMP_ARRAY(COMP_CPU("spi-RT5677AA:00")),
DAILINK_COMP_ARRAY(COMP_CODEC("i2c-RT5677CE:00", "rt5677-dspbuffer")),
DAILINK_COMP_ARRAY(COMP_PLATFORM("spi-RT5677AA:00")));

/* Non-DPCM links */
{
.name = "Codec DSP",
.stream_name = "Wake on Voice",
.ops = &bdw_rt5677_dsp_ops,
SND_SOC_DAILINK_REG(dsp),
},

@xiulipan
Copy link
Author

@bardliao @plbossart I dump the names for the dai in soc.

diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 062653ab03a3..97a82de767ef 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -899,9 +899,13 @@ struct snd_soc_dai *snd_soc_find_dai(
 
        /* Find CPU DAI from registered DAIs */
        for_each_component(component) {
+               dev_info(component->dev, "PXL: dlc name %s, component name %s\n",
+                        dlc->name, component->name);
                if (!snd_soc_is_matching_component(dlc, component))
                        continue;
                for_each_component_dais(component, dai) {
+                       dev_info(component->dev, "PXL: dlc dai_name %s, component dai_name %s\n",
+                        dlc->dai_name, dai->name);
                        if (dlc->dai_name && strcmp(dai->name, dlc->dai_name)
                            && (!dai->driver->name
                                || strcmp(dai->driver->name, dlc->dai_name)))
[ 1338.965094] bdw-rt5677 bdw-rt5677: ASoC: binding Codec
[ 1338.965114] rt5677 i2c-RT5677CE:00: PXL: dlc name INT3438:00, component name i2c-RT5677CE:00
[ 1338.965116] sof-audio-acpi INT3438:00: PXL: dlc name INT3438:00, component name INT3438:00
[ 1338.965117] sof-audio-acpi INT3438:00: PXL: dlc dai_name snd-soc-dummy-dai, component dai_name ssp0-port
[ 1338.965119] sof-audio-acpi INT3438:00: PXL: dlc dai_name snd-soc-dummy-dai, component dai_name ssp1-port
[ 1338.965121] snd-soc-dummy snd-soc-dummy: PXL: dlc name INT3438:00, component name snd-soc-dummy
[ 1338.965122] snd-soc-dummy snd-soc-dummy: PXL: dlc name INT3438:00, component name snd-soc-dummy
[ 1338.965123] bdw-rt5677 bdw-rt5677: ASoC: CPU DAI snd-soc-dummy-dai not registered

I think we will still the fix to set the right dai name for SOF in the machine drivers when work with SOF.

@xiulipan
Copy link
Author

@plbossart @bardliao It seems there is snd-soc-dummy-dai in component snd-soc-dummy.
But the machine driver wants to find some snd-soc-dummy-dai in component INT3438:00.

So if we want to use SOF as platform driver, we need to change the dai-name to match what we have in SOF platform driver.

This PR test with thesofproject/sof#2188 and thesofproject/sof#2095 on both bdw-rt5677 and bdw-rt286.

@fredoh9 can you help to check if the sound output on bdw-rt5677 is good?

@ranj063
Copy link
Collaborator

ranj063 commented Dec 12, 2019

@xiulipan I have a suspicion there was an error in the patch 3f6c2a2. I believe the right fix for this issue might be:

diff --git a/sound/soc/intel/boards/bdw-rt5677.c b/sound/soc/intel/boards/bdw-rt5677.c
index 2af8e5a62da8..322f514788ef 100644
--- a/sound/soc/intel/boards/bdw-rt5677.c
+++ b/sound/soc/intel/boards/bdw-rt5677.c
@@ -286,6 +286,9 @@ static int bdw_rt5677_init(struct snd_soc_pcm_runtime *rtd)
 SND_SOC_DAILINK_DEF(dummy,
        DAILINK_COMP_ARRAY(COMP_DUMMY()));
 
+SND_SOC_DAILINK_DEF(dummy_platform,
+       DAILINK_COMP_ARRAY(COMP_PLATFORM("snd-soc-dummy")));
+
 SND_SOC_DAILINK_DEF(fe,
        DAILINK_COMP_ARRAY(COMP_CPU("System Pin")));
 
@@ -342,7 +345,7 @@ static struct snd_soc_dai_link bdw_rt5677_dais[] = {
                .dpcm_playback = 1,
                .dpcm_capture = 1,
                .init = bdw_rt5677_init,
-               SND_SOC_DAILINK_REG(dummy, be, dummy),
+               SND_SOC_DAILINK_REG(dummy, be, dummy_platform),
        },
 };

@ranj063
Copy link
Collaborator

ranj063 commented Dec 12, 2019

@xiulipan I have a suspicion there was an error in the patch 3f6c2a2. I believe the right fix for this issue might be:

@xiulipan hmm this isnt the right fix after all. But you know what I am not sure why the dummy comp isnt working. Take a look at this new machine drv from Curtis. This has very similar dai link definitions too:
https://mailman.alsa-project.org/pipermail/alsa-devel/2019-December/159435.html

@ranj063
Copy link
Collaborator

ranj063 commented Dec 12, 2019

@xiulipan I have a suspicion there was an error in the patch 3f6c2a2. I believe the right fix for this issue might be:

@xiulipan hmm this isnt the right fix after all. But you know what I am not sure why the dummy comp isnt working. Take a look at this new machine drv from Curtis. This has very similar dai link definitions too:
https://mailman.alsa-project.org/pipermail/alsa-devel/2019-December/159435.html

@xiulipan could you please give my patch above a try anyway and see what happens? Actually a better change would just be:

diff --git a/sound/soc/intel/boards/bdw-rt5677.c b/sound/soc/intel/boards/bdw-rt5677.c
index 2af8e5a62da8..3ac49cf0f6a1 100644
--- a/sound/soc/intel/boards/bdw-rt5677.c
+++ b/sound/soc/intel/boards/bdw-rt5677.c
@@ -342,7 +342,7 @@ static struct snd_soc_dai_link bdw_rt5677_dais[] = {
                .dpcm_playback = 1,
                .dpcm_capture = 1,
                .init = bdw_rt5677_init,
-               SND_SOC_DAILINK_REG(dummy, be, dummy),
+               SND_SOC_DAILINK_REG(dummy, be, platform),
        },
 };

@ranj063
Copy link
Collaborator

ranj063 commented Dec 13, 2019

diff --git a/sound/soc/intel/boards/bdw-rt5677.c b/sound/soc/intel/boards/bdw-rt5677.c
index 2af8e5a62da8..3ac49cf0f6a1 100644
--- a/sound/soc/intel/boards/bdw-rt5677.c
+++ b/sound/soc/intel/boards/bdw-rt5677.c
@@ -342,7 +342,7 @@ static struct snd_soc_dai_link bdw_rt5677_dais[] = {
                .dpcm_playback = 1,
                .dpcm_capture = 1,
                .init = bdw_rt5677_init,
-               SND_SOC_DAILINK_REG(dummy, be, dummy),
+               SND_SOC_DAILINK_REG(dummy, be, platform),
        },
 };

@xiulipan So the right fix for the BDW machine drv probe problem is as above and @cujomalainey has helped me verify it with the legacy SST driver as well. Here's the rationale for it:

" With the introduction of snd_soc_fixup_dai_links_platform_name() to override the platform name, the CPU and platform components for the DAI links cannot be the same anymore. In the case of the bdw-rt5677 driver, using the same dummy component for the CPU and platform components results in the CPU component's name also getting overridden by the platform name set by the SOF driver. This results in DAI link binding failure because of the component name mismatch when searching for the snd-soc-dummy-dai CPU DAI. In order to prevent this, change the platform component so that it is different from the CPU component. This change has also been tested to work with the legacy driver"

@plbossart let me know what you think of this.

@cujomalainey
Copy link

In this case it was tested on the bdw-rt5650 driver, but I can also test on the 5677 if needed

@xiulipan
Copy link
Author

@ranj063 @bardliao I have confirmed the issue here. It seems we have the same structure for the struct snd_soc_dai_link_component *cpus; and struct snd_soc_dai_link_component *platforms; even through we just want them to have same names. We need to avoid reuse SND_SOC_DAILINK_REG between cpu dai and platform.

[ 4047.486351] broadwell-audio broadwell-audio: PXL: fixup Codec from snd-soc-dummy to INT3438:00
[ 4047.486354] broadwell-audio broadwell-audio: PXL: after fixup Codec platform ptr 000000009365e317 cpu ptr 000000009365e317
[ 4047.486356] broadwell-audio broadwell-audio: PXL: after fixup Codec platform name INT3438:00 cpu name INT3438:00

So I have some try like following:

diff --git a/sound/soc/intel/boards/broadwell.c b/sound/soc/intel/boards/broadwell.c
index db7e1e87156d..d98ef549e9ad 100644
--- a/sound/soc/intel/boards/broadwell.c
+++ b/sound/soc/intel/boards/broadwell.c
@@ -158,6 +158,9 @@ SND_SOC_DAILINK_DEF(loopback,
 SND_SOC_DAILINK_DEF(dummy,
        DAILINK_COMP_ARRAY(COMP_DUMMY()));
 
+SND_SOC_DAILINK_DEF(dummyplatform,
+       DAILINK_COMP_ARRAY(COMP_DUMMY()));
+
 SND_SOC_DAILINK_DEF(platform,
        DAILINK_COMP_ARRAY(COMP_PLATFORM("haswell-pcm-audio")));
 
@@ -218,7 +221,7 @@ static struct snd_soc_dai_link broadwell_rt286_dais[] = {
                .ops = &broadwell_rt286_ops,
                .dpcm_playback = 1,
                .dpcm_capture = 1,
-               SND_SOC_DAILINK_REG(dummy, codec, dummy),
+               SND_SOC_DAILINK_REG(dummy, codec, dummyplatform),
        },
 };

Now the fix up will not influence the CPU anymore

[ 4504.919534] broadwell-audio broadwell-audio: PXL: fixup Codec from snd-soc-dummy to INT3438:00
[ 4504.919537] broadwell-audio broadwell-audio: PXL: after fixup Codec platform ptr 000000009365e317 cpu ptr 000000006940239d
[ 4504.919539] broadwell-audio broadwell-audio: PXL: after fixup Codec platform name INT3438:00 cpu name snd-soc-dummy

So I think we need to add some warning to mention this issue when use SND_SOC_DAILINK_REG otherwise even you do not use the dummy but same SND_SOC_DAILINK_DEF in cpus and platforms, it will still be overwritten by the platform name fixup again.

@morimoto Could you take a look about our analysis about this issue to see if we need to add any patch to the SND_SOC_DAILINK_* macros to avoid issues happen when use SND_SOC_DAILINK_REG(dummy, codec, dummy), in 3f6c2a2 4c3db47 77b365b

or we just should not use same dai_link for cpu and platform from the beginning.

@ranj063
Copy link
Collaborator

ranj063 commented Dec 13, 2019

@morimoto Could you take a look about our analysis about this issue to see if we need to add any patch to the SND_SOC_DAILINK_* macros to avoid issues happen when use SND_SOC_DAILINK_REG(dummy, codec, dummy), in 3f6c2a2 4c3db47 77b365b

@xiulipan like I mentioned in my comment, they do have to be different comps. Having just one macro for COMP_DUMMY() and using the same everywhere will lead to conflicts we're seeing. @morimoto could you please confirm this?

@ranj063
Copy link
Collaborator

ranj063 commented Dec 16, 2019

@ranj063 Reuse the macro COMP_DUMMY() is OK. But you need to have different SND_SOC_DAILINK_DEF like below:

+SND_SOC_DAILINK_DEF(dummyplatform,
+       DAILINK_COMP_ARRAY(COMP_DUMMY()));
+

@xiulipan thats good. Do you mind updating the PR?

Copy link
Member

@plbossart plbossart left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see comments below @xiulipan

.ops = &bdw_rt5677_dsp_ops,
SND_SOC_DAILINK_REG(dsp),
},
#endif
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is wrong I believe. @cujomalainey please correct me if I am smoking.
the WakeOnVoice is handled by the rt5677 codec IIRC, so there's no reason why it should be commented out.
However we need to check that the FE override does not prevent this from working.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@plbossart the problem is this is a non-DPCM link and we do not override it at all with SOF. This was one of the questions @dbaluta was asking as well.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's good if it's not overridden!

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xiulipan care to explain why we need to comment this out?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The only dependency on the platform is a DAPM link to force the I2S clk. If SOF can provide that clock then WoV should work fine with SOF as the audio bypasses the DSP on a SPI link.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cujomalainey can you elaborate here? I don't remember what the expectation is for clocks here, and quite frankly whether we use SOF or not the hardware is the same, so there's not really any magic we can do...

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The RT5677 needs the I2S MCLK running in order to drive its DSP. Locally we have 0d2135e reverted (the same patch that causes DMA boot issues on samus and DSP crashes on buddy.) By reverting it, the kernel allows the bdw DSP to suspend and leave the MCLK running so everything is fine for us.

If we don't have that clock bad things start to happen very quickly. All I2C writes silently fail is one example and the registers read back garbage values (usually 0xBEEF).

Copy link
Member

@plbossart plbossart Dec 17, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The MCLK is not controlled by the DSP, did you mean SCLK or BCLK?

I read rt5677 and thought CHT/BSW.
For Broadwell I don't think we play with the audio PLL and change the MCLK in the SOF driver. The code you are referring to is only used by the legacy, and no one knows what the issue might be...

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nope I mean MCLK. It is controlled by the DSP kernel driver, at least that is where it is in SST builds.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cujomalainey @plbossart I will test with this FE kept and see if we can find the link there.
Then I think we can decided if we need to keep this here.

@plbossart plbossart added BDW Applies to Broadwell platform and removed Unclear No agreement on problem statement and resolution labels Dec 17, 2019
@xiulipan
Copy link
Author

update, blocked by new regression thesofproject/sof#2227
Will update the PR and test result later.

@xiulipan xiulipan changed the title ASoC: Intel: fix BDW machine driver load issue with SOF Fix BDW machine drivers load issue with SOF Dec 20, 2019
@xiulipan
Copy link
Author

@plbossart @ranj063 Update the patch.
@cujomalainey Test with rt5677 and find the rt5677-spi could not be probed. Also test with SST driver on the device. The machine driver can also not be loaded. I think the WoV feature may need some other effect to enable. So I disable the WoV feature to let SOF probe.

Logs for the codec dai load, no spi-RT5677AA:00 loaded from codec driver snd_soc_rt5677_spi

[ 1594.885960] snd-soc-dummy snd-soc-dummy: ASoC: dynamically register DAI snd-soc-dummy
[ 1594.885963] snd-soc-dummy snd-soc-dummy: ASoC: Registered DAI 'snd-soc-dummy-dai'
[ 1603.562987] rt5677 i2c-RT5677CE:00: ASoC: dynamically register DAI i2c-RT5677CE:00
[ 1603.562992] rt5677 i2c-RT5677CE:00: ASoC: Registered DAI 'rt5677-aif1'
[ 1603.562995] rt5677 i2c-RT5677CE:00: ASoC: dynamically register DAI i2c-RT5677CE:00
[ 1603.562997] rt5677 i2c-RT5677CE:00: ASoC: Registered DAI 'rt5677-aif2'
[ 1603.562999] rt5677 i2c-RT5677CE:00: ASoC: dynamically register DAI i2c-RT5677CE:00
[ 1603.563003] rt5677 i2c-RT5677CE:00: ASoC: Registered DAI 'rt5677-aif3'
[ 1603.563006] rt5677 i2c-RT5677CE:00: ASoC: dynamically register DAI i2c-RT5677CE:00
[ 1603.563009] rt5677 i2c-RT5677CE:00: ASoC: Registered DAI 'rt5677-aif4'
[ 1603.563011] rt5677 i2c-RT5677CE:00: ASoC: dynamically register DAI i2c-RT5677CE:00
[ 1603.563013] rt5677 i2c-RT5677CE:00: ASoC: Registered DAI 'rt5677-slimbus'
[ 1603.563015] rt5677 i2c-RT5677CE:00: ASoC: dynamically register DAI i2c-RT5677CE:00
[ 1603.563018] rt5677 i2c-RT5677CE:00: ASoC: Registered DAI 'rt5677-dspbuffer'

Copy link
Collaborator

@ranj063 ranj063 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typos in commit message "crete" "sperate"

@plbossart
Copy link
Member

plbossart commented Dec 20, 2019 via email

@cujomalainey
Copy link

Is CONFIG_SPI enabled?

@plbossart
Copy link
Member

Is CONFIG_SPI enabled?

should be, we have all this enabled in the base-defconfig:

base-defconfig:# SPI
base-defconfig:CONFIG_SPI=y
base-defconfig:# CONFIG_SPI_DEBUG is not set
base-defconfig:CONFIG_SPI_MASTER=y
base-defconfig:CONFIG_REGMAP_SPI=y
base-defconfig:CONFIG_SPI_DESIGNWARE=m
base-defconfig:CONFIG_SPI_DW_PCI=m
base-defconfig:CONFIG_SPI_DW_MID_DMA=y
base-defconfig:CONFIG_SPI_DW_MMIO=m
base-defconfig:# CONFIG_MMC_SPI is not set
base-defconfig:# CONFIG_SND_SPI is not set

@cujomalainey
Copy link

cujomalainey commented Dec 21, 2019

Ah, i didn't realize there was a CONFIG_SND_SOC_RT5677_SPI, that is probably the issue. I will send a patch to #ifdef that link out when I get back from vacation. Apologies.

The legacy driver uses dummy cpu_dai and platform, SOF requires actual
values to bind.

Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
@plbossart
Copy link
Member

@xiulipan can you clarify for me what the status is on BDW/rt5640? Do you get clear sound on capture and playback? Do you have a UCM file?

@plbossart
Copy link
Member

@xiulipan can you clarify for me what the status is on BDW/rt5640? Do you get clear sound on capture and playback? Do you have a UCM file?

also @lgirdwood do you have a Broadwell XPS on your side to test this out?

@lgirdwood
Copy link
Member

@plbossart I do, will start charging it (version with funky BIOS where you need to enabled DSP in BIOS and boot Linux twice before DSP is really enabled by BIOS).

@plbossart plbossart merged commit 19a221f into thesofproject:topic/sof-dev Jan 7, 2020
@xiulipan
Copy link
Author

xiulipan commented Jan 8, 2020

@plbossart I only test on a BDW rt286.
I will try to add bdw into CI from now.

@plbossart
Copy link
Member

@plbossart I only test on a BDW rt286.
I will try to add bdw into CI from now.

right, yes it's haswell that has rt5640.
we'd need a UCM file for the RT286 case, same as what I tried with bdw-rt5677 so that pulseaudio works out of the box. let's not use alsa-conf/state...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

BDW Applies to Broadwell platform

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants