Skip to content

LNL SDW AIOC: controller timeout on bank switch #4823

Closed

Description

@plbossart

Intel daily tests

#/result/planresultdetail/37931?model=LNLM_SDW_AIOC&testcase=multiple-pipeline-playback-50

[ 2306.620665] kernel: soundwire_cadence:cdns_update_slave_status_work: soundwire_intel soundwire_intel.link.0: Slave status change: 0x4000000
[ 2309.418584] kernel: soundwire sdw-master-0-0: Controller Timed out on bank switch
[ 2309.418602] kernel: soundwire sdw-master-0-0: multi link bank switch failed: -110
[ 2309.418612] kernel: _sdw_prepare_stream: do_bank_switch failed: -110
[ 2309.418629] kernel:  SDW0-Playback: ASoC: error at snd_soc_link_prepare on SDW0-Playback: -110
[ 2309.418636] kernel:  SDW0-Playback: ASoC: error at __soc_pcm_prepare on SDW0-Playback: -110
[ 2309.418643] kernel:  Deepbuffer Jack Out: ASoC: error at dpcm_be_dai_prepare on Deepbuffer Jack Out: -110
[ 2309.418655] kernel:  Deepbuffer Jack Out: ASoC: error at dpcm_fe_dai_prepare on Deepbuffer Jack Out: -110
[ 2309.922501] kernel: soundwire_intel soundwire_intel.link.0: IO transfer timed out, cmd 2 device 6 addr 302 len 1
[ 2309.922565] kernel: soundwire sdw-master-0-0: trf on Slave 6 failed:-110 read addr 302 count 0
[ 2309.922575] kernel: rt711-sdca sdw:0:0:025d:0711:01: DPN_PortCtrl register write failed for port 3
[ 2309.922582] kernel: soundwire sdw-master-0-0: Program transport params failed: -110
[ 2309.922587] kernel: soundwire sdw-master-0-0: Program params failed: -110
[ 2309.922598] kernel:  SDW0-Playback: ASoC: error at snd_soc_link_prepare on SDW0-Playback: -110
[ 2309.922605] kernel:  SDW0-Playback: ASoC: error at __soc_pcm_prepare on SDW0-Playback: -110
[ 2309.922611] kernel:  Jack Out: ASoC: error at dpcm_be_dai_prepare on Jack Out: -110
[ 2309.922623] kernel:  Jack Out: ASoC: error at dpcm_fe_dai_prepare on Jack Out: -110
[ 2309.922822] kernel: snd_sof:sof_pcm_hw_free: sof-audio-pci-intel-lnl 0000:00:1f.3: pcm: free stream 31 dir 0

This did not reproduce on the last test, we'd need to check how many times this happened before, if ever.

The trace suggests that we have an alert status during a bank switch, that's a potential red flag or a sign of a race condition.

@bardliao FYI

cc:

Activity

  1. added
    LNLApplies to Lunar Lake platform
    SDWApplies to SoundWire bus for codec connection
    on Feb 16, 2024
  2. bardliao commented on Feb 19, 2024

    @bardliao
    Collaborator

    The issue happened on check-suspend-resume-with-playback-5.sh and check-suspend-resume-with-capture-5.sh, too.

  3. plbossart commented on Feb 20, 2024

    @plbossart
    MemberAuthor

    Humm, I don't see the link between multiple pipelines and suspend with audio cases. Weird.

  4. bardliao commented on Feb 20, 2024

    @bardliao
    Collaborator

    @plbossart The issue only happens on devices in JF. Let's wait Fred to upgrade the BIOS to the correct version and check it again.

  5. fredoh9 commented on Feb 21, 2024

    @fredoh9
    Collaborator

    I will flash right BIOS tomorrow morning. Sorry about the delay.

  6. fredoh9 commented on Feb 21, 2024

    @fredoh9
    Collaborator

    I updated the BIOS with same version from SH device. I was able to test twice multiple-pipeline-playback-50 on each device. It looks stable now.
    Sorry again, I tested only the sound card enumeration and playback once when I upgraded the latest BIOS.

  7. marc-hb commented on Feb 21, 2024

    @marc-hb
    Collaborator

    BIOS versions printed for all devices thanks to one-line change thesofproject/sof-test#1161, please review.

  8. keqiaozhang commented on Mar 4, 2024

    @keqiaozhang

    This issue cannot be reproduced after BIOS upgrade. Closing this bug.

  9. plbossart commented on Mar 4, 2024

    @plbossart
    MemberAuthor

    This issue cannot be reproduced after BIOS upgrade. Closing this bug.

    That's good, I had no idea where to start on this one... Thanks @keqiaozhang

  10. marc-hb commented on May 20, 2024

    @marc-hb
    Collaborator

    This re-appeared, see internal issue 566

  11. 11 remaining items

  12. bardliao commented on Jun 5, 2024

    @bardliao
    Collaborator

    I tried to reproduce the issue today. But I can't reproduce it with any test. I run check-playback-3times.sh check-capture-3times.sh check-playback-3rounds.sh check-capture-3rounds.sh check-pause-resume-playback-100.sh check-pause-resume-capture-100.sh so many times on jf-lnlm-rvp-sdw-1, and I can't get a single failure. But it is quite easy to reproduce in a PR test. I started a PR test without any PR applied, and it does report the issue on 5 test cases. That is really interesting.

  13. plbossart commented on Jun 5, 2024

    @plbossart
    MemberAuthor

    Does your test platform have the updated BIOS @bardliao ? This issue seems related to either resources or timing handled by the BIOS/IFWI.

  14. bardliao commented on Jun 5, 2024

    @bardliao
    Collaborator

    Does your test platform have the updated BIOS @bardliao ?

    I am using the same device as PR test. And the issue happens on both JF and BA's devices.

    Edit: CI reported the issue on both JF and BA's devices, but I can't reproduce it by manually run the PR test cases.

  15. plbossart commented on Jun 6, 2024

    @plbossart
    MemberAuthor

    Summary as of June 6 16:00 UTC of experiments I started and expanded by @bardliao

    • the problem is not related to the jack codec interrupt, it can happen on different links such as amplifiers
    • the problem is not related to a race condition between the bank switch and the normal writes (although the code inspection shows that acquire_locks() has a potential for an AB/BA deadlock).
    • the last traces show the interrupt as a result of the bank switch is not handled, see [HACK] soundwire: add traces to debug bank switch issues  #5042

    It's not clear if the issue is identical to #4943 where interrupts were missed as well, since the problems happen in completely different stages (was during enumeration, here it's during prepare).

    @ujfalusi @lgirdwood FYI, if you have suggestions we're all ears.

  16. plbossart commented on Jun 7, 2024

    @plbossart
    MemberAuthor

    The last logs show the Controller Timed out error happens when we don't get an interrupt after a write.

    https://sof-ci.01.org/linuxpr/PR5042/build3462/devicetest/index.html?model=LNLM_SDW_AIOC&testcase=check-capture-10sec

    [  359.587934] kernel: soundwire sdw-master-0-0: sdw_transfer
    [  359.588016] kernel: soundwire_intel soundwire_intel.link.0: sdw_cdns_irq int_status 0x80000004
    [  359.588025] kernel: soundwire sdw-master-0-0: sdw_transfer
    [  359.588027] kernel: soundwire_intel soundwire_intel.link.1: sdw_cdns_irq int_status 0x0
    [  359.588079] kernel: soundwire_intel soundwire_intel.link.0: sdw_cdns_irq int_status 0x80000004
    [  359.588088] kernel: soundwire sdw-master-0-0: sdw_transfer
    [  359.588090] kernel: soundwire_intel soundwire_intel.link.1: sdw_cdns_irq int_status 0x0
    [  359.588143] kernel: soundwire_intel soundwire_intel.link.0: sdw_cdns_irq int_status 0x80000004
    [  359.588152] kernel: soundwire sdw-master-0-0: sdw_transfer
    [  359.588154] kernel: soundwire_intel soundwire_intel.link.1: sdw_cdns_irq int_status 0x0
    [  359.588208] kernel: soundwire_intel soundwire_intel.link.0: sdw_cdns_irq int_status 0x80000004
    [  359.588218] kernel: soundwire_intel soundwire_intel.link.1: sdw_cdns_irq int_status 0x0
    [  359.588222] kernel: soundwire sdw-master-0-0: sdw_transfer
    [  359.588272] kernel: soundwire_intel soundwire_intel.link.0: sdw_cdns_irq int_status 0x80000004
    [  359.588283] kernel: soundwire_intel soundwire_intel.link.1: sdw_cdns_irq int_status 0x0
    [  359.588287] kernel: soundwire sdw-master-0-0: sdw_transfer
    [  359.588335] kernel: soundwire_intel soundwire_intel.link.0: sdw_cdns_irq int_status 0x80000004
    [  359.588347] kernel: soundwire_intel soundwire_intel.link.1: sdw_cdns_irq int_status 0x0
    [  359.588351] kernel: soundwire sdw-master-0-0: sdw_transfer
    [  359.588399] kernel: soundwire_intel soundwire_intel.link.0: sdw_cdns_irq int_status 0x80000004
    [  359.588411] kernel: soundwire_intel soundwire_intel.link.1: sdw_cdns_irq int_status 0x0
    [  359.588414] kernel: soundwire sdw-master-0-0: sdw_transfer
    [  359.588463] kernel: soundwire_intel soundwire_intel.link.0: sdw_cdns_irq int_status 0x80000004
    [  359.588475] kernel: soundwire_intel soundwire_intel.link.1: sdw_cdns_irq int_status 0x0
    [  359.588478] kernel: soundwire sdw-master-0-0: sdw_transfer
    [  359.588527] kernel: soundwire_intel soundwire_intel.link.0: sdw_cdns_irq int_status 0x80000004
    [  359.588539] kernel: soundwire_intel soundwire_intel.link.1: sdw_cdns_irq int_status 0x0
    [  359.588548] kernel: _sdw_prepare_stream: before bank switch for stream subdevice #0-Capture
    [  359.588556] kernel: soundwire sdw-master-0-0: do_transfer_defer
    [  359.615681] kernel: soundwire sdw-master-0-0: sdw_transfer
    
    <<<< no sdw_cdns_irq trace here and timeout after 3s.
    
    [  362.626598] kernel: soundwire sdw-master-0-0: Controller Timed out on bank switch
    [  362.626696] kernel: soundwire sdw-master-0-0: multi link bank switch failed: -110
    [  362.626735] kernel: _sdw_prepare_stream: do_bank_switch failed for stream subdevice #0-Capture: -110
    [  362.626775] kernel: sdw_release_bus_lock: releasing locks for stream subdevice #0-Capture
    [  362.626779] kernel: sdw_release_bus_lock: released locks for stream subdevice #0-Capture
    [  362.626784] kernel:  SDW0-Capture: ASoC: error at snd_soc_link_prepare on SDW0-Capture: -110
    [  362.626817] kernel:  SDW0-Capture: ASoC: error at __soc_pcm_prepare on SDW0-Capture: -110
    [  362.626844] kernel:  Jack In: ASoC: error at dpcm_be_dai_prepare on Jack In: -110
    [  362.626871] kernel:  Jack In: ASoC: error at dpcm_fe_dai_prepare on Jack In: -110
    
  17. bardliao commented on Jun 7, 2024

    @bardliao
    Collaborator

    Another log

    [  448.815161] kernel: _sdw_prepare_stream: before bank switch for stream subdevice #0-Playback
    [  448.815170] kernel: soundwire sdw-master-0-0: do_transfer_defer
    [  449.406195] kernel: soundwire sdw-master-0-1: sdw_transfer
    [  449.406257] kernel: soundwire_intel soundwire_intel.link.0: sdw_cdns_irq int_status 0x0
    [  449.406264] kernel: soundwire_intel soundwire_intel.link.1: sdw_cdns_irq int_status 0x80000004
    
    <<<< We can get interrupt from link 1, but not from link 0.
    Not sure what happens to link 0.
    
    [  449.406278] kernel: soundwire_intel soundwire_intel.link.2: sdw_cdns_irq int_status 0x0
    [  449.406284] kernel: soundwire_intel soundwire_intel.link.3: sdw_cdns_irq int_status 0x0
    [  449.406299] kernel: soundwire sdw-master-0-1: sdw_transfer
    [  449.406373] kernel: soundwire_intel soundwire_intel.link.0: sdw_cdns_irq int_status 0x0
    [  449.406380] kernel: soundwire_intel soundwire_intel.link.1: sdw_cdns_irq int_status 0x80000004
    [  449.406393] kernel: soundwire_intel soundwire_intel.link.2: sdw_cdns_irq int_status 0x0
    [  449.406399] kernel: soundwire_intel soundwire_intel.link.3: sdw_cdns_irq int_status 0x0
    [  449.406414] kernel: soundwire_bus:sdw_bus_wait_for_clk_prep_deprep: soundwire sdw-master-0-1: clock stop prepare done slave:15
    [  449.406422] kernel: soundwire sdw-master-0-1: sdw_transfer
    [  449.406519] kernel: soundwire_intel soundwire_intel.link.0: sdw_cdns_irq int_status 0x0
    [  449.406525] kernel: soundwire_intel soundwire_intel.link.1: sdw_cdns_irq int_status 0x80000004
    [  449.406538] kernel: soundwire_intel soundwire_intel.link.2: sdw_cdns_irq int_status 0x0
    [  449.406544] kernel: soundwire_intel soundwire_intel.link.3: sdw_cdns_irq int_status 0x0
    [  451.837950] kernel: soundwire sdw-master-0-0: Controller Timed out on bank switch
    [  451.838038] kernel: soundwire sdw-master-0-0: multi link bank switch failed: -110
    [  451.838100] kernel: _sdw_prepare_stream: do_bank_switch failed for stream subdevice #0-Playback: -110
    [  451.838196] kernel: sdw_release_bus_lock: releasing locks for stream subdevice #0-Playback
    [  451.838206] kernel: sdw_release_bus_lock: released locks for stream subdevice #0-Playback
    [  451.838241] kernel:  SDW0-Playback: ASoC: error at snd_soc_link_prepare on SDW0-Playback: -110
    [  451.838352] kernel:  SDW0-Playback: ASoC: error at __soc_pcm_prepare on SDW0-Playback: -110
    [  451.838380] kernel:  Jack Out: ASoC: error at dpcm_be_dai_prepare on Jack Out: -110
    [  451.838407] kernel:  Jack Out: ASoC: error at dpcm_fe_dai_prepare on Jack Out: -110
    
  18. plbossart commented on Jun 11, 2024

    @plbossart
    MemberAuthor

    https://sof-ci.01.org/linuxpr/PR5047/build3543/devicetest/index.html?model=LNLM_SDW_AIOC&testcase=check-signal-stop-start-capture-10

    interesting interaction of bank switch not completing and jack detection

    [  758.975798] kernel: soundwire sdw-master-0-0: do_transfer_defer
    [  758.975803] kernel: soundwire_intel soundwire_intel.link.0: intel_sync_go_unlocked: started
    [  758.975809] kernel: soundwire_intel soundwire_intel.link.0: intel_sync_go_unlocked: done
    [  758.975810] kernel: soundwire_intel soundwire_intel.link.0: intel_post_bank_switch: sync_go wait start
    [  758.977934] kernel: soundwire_intel soundwire_intel.link.0: intel_post_bank_switch: sync_go wait done
    [  759.002976] kernel: soundwire sdw-master-0-0: sdw_transfer: dev 7 addr 0x8490 flags 0x0
    [  761.995912] kernel: soundwire sdw-master-0-0: sdw_ml_sync_bank_switch: master 0:0 timed out on bank switch
    [  761.996057] kernel: soundwire sdw-master-0-0: multi link bank switch failed: -110
    [  761.996133] kernel: _sdw_prepare_stream: do_bank_switch failed for stream subdevice #0-Capture: -110
    [  761.996167] kernel: soundwire sdw-master-0-0: sdw_transfer: after mutex
    [  761.996225] kernel: sdw_release_bus_lock: releasing locks for stream subdevice #0-Capture
    [  761.996237] kernel: sdw_release_bus_lock: released locks for stream subdevice #0-Capture
    [  761.996245] kernel:  SDW0-Capture: ASoC: error at snd_soc_link_prepare on SDW0-Capture: -110
    [  761.996333] kernel:  SDW0-Capture: ASoC: error at __soc_pcm_prepare on SDW0-Capture: -110
    [  761.996414] kernel:  Jack In: ASoC: error at dpcm_be_dai_prepare on Jack In: -110
    [  761.996492] kernel:  Jack In: ASoC: error at dpcm_fe_dai_prepare on Jack In: -110
    [  761.997017] kernel: snd_sof:sof_pcm_hw_free: sof-audio-pci-intel-lnl 0000:00:1f.3: pcm: free stream 1 dir 1
    [  761.997050] kernel: snd_sof_intel_hda_common:hda_dsp_stream_trigger: sof-audio-pci-intel-lnl 0000:00:1f.3: FW Poll Status: reg[0x80]=0x140000 successful
    [  761.997062] kernel: snd_sof:sof_ipc4_trigger_pipelines: sof-audio-pci-intel-lnl 0000:00:1f.3: trigger cmd: 0 state: 2
    [  761.997073] kernel: snd_sof:sof_ipc4_log_header: sof-audio-pci-intel-lnl 0000:00:1f.3: ipc tx      : 0x13000002|0x1: GLB_SET_PIPELINE_STATE [data size: 12]
    [  761.997456] kernel: snd_sof:sof_ipc4_log_header: sof-audio-pci-intel-lnl 0000:00:1f.3: ipc tx reply: 0x33000000|0x1: GLB_SET_PIPELINE_STATE
    [  761.997483] kernel: snd_sof:sof_ipc4_log_header: sof-audio-pci-intel-lnl 0000:00:1f.3: ipc tx done : 0x13000002|0x1: GLB_SET_PIPELINE_STATE [data size: 12]
    [  761.997491] kernel: Message payload: 00000000: 00000002 00000001 00000000
    [  761.997523] kernel: snd_sof:sof_ipc4_route_free: sof-audio-pci-intel-lnl 0000:00:1f.3: unbind modules alh-copier.SDW0-Capture.0:0 -> eqiir.11.0:0
    [  761.997533] kernel: snd_sof:sof_widget_free_unlocked: sof-audio-pci-intel-lnl 0000:00:1f.3: widget alh-copier.SDW0-Capture.0 freed
    [  761.997538] kernel: snd_sof:sof_ipc4_route_free: sof-audio-pci-intel-lnl 0000:00:1f.3: unbind modules eqiir.11.0:0 -> host-copier.1.capture:0
    [  761.997544] kernel: snd_sof:sof_ipc4_log_header: sof-audio-pci-intel-lnl 0000:00:1f.3: ipc tx      : 0x46000010|0x10004: MOD_UNBIND
    [  761.997973] kernel: snd_sof:sof_ipc4_log_header: sof-audio-pci-intel-lnl 0000:00:1f.3: ipc tx reply: 0x66000000|0x10004: MOD_UNBIND
    [  761.997994] kernel: snd_sof:sof_ipc4_log_header: sof-audio-pci-intel-lnl 0000:00:1f.3: ipc tx done : 0x46000010|0x10004: MOD_UNBIND
    [  761.998004] kernel: snd_sof:sof_ipc4_log_header: sof-audio-pci-intel-lnl 0000:00:1f.3: ipc tx      : 0x12000000|0x0: GLB_DELETE_PIPELINE
    [  761.998669] kernel: snd_sof:sof_ipc4_log_header: sof-audio-pci-intel-lnl 0000:00:1f.3: ipc tx reply: 0x32000000|0x0: GLB_DELETE_PIPELINE
    [  761.998686] kernel: snd_sof:sof_ipc4_log_header: sof-audio-pci-intel-lnl 0000:00:1f.3: ipc tx done : 0x12000000|0x0: GLB_DELETE_PIPELINE
    [  761.998692] kernel: snd_sof:sof_widget_free_unlocked: sof-audio-pci-intel-lnl 0000:00:1f.3: widget pipeline.11 freed
    [  761.998695] kernel: snd_sof:sof_widget_free_unlocked: sof-audio-pci-intel-lnl 0000:00:1f.3: widget eqiir.11.0 freed
    [  761.998702] kernel: snd_sof:sof_ipc4_log_header: sof-audio-pci-intel-lnl 0000:00:1f.3: ipc tx      : 0x12010000|0x0: GLB_DELETE_PIPELINE
    [  761.999120] kernel: snd_sof:sof_ipc4_log_header: sof-audio-pci-intel-lnl 0000:00:1f.3: ipc tx reply: 0x32000000|0x0: GLB_DELETE_PIPELINE
    [  761.999138] kernel: snd_sof:sof_ipc4_log_header: sof-audio-pci-intel-lnl 0000:00:1f.3: ipc tx done : 0x12010000|0x0: GLB_DELETE_PIPELINE
    [  761.999143] kernel: snd_sof:sof_widget_free_unlocked: sof-audio-pci-intel-lnl 0000:00:1f.3: widget pipeline.10 freed
    [  761.999147] kernel: snd_sof:sof_widget_free_unlocked: sof-audio-pci-intel-lnl 0000:00:1f.3: widget host-copier.1.capture freed
    [  761.999171] kernel: sdw_acquire_bus_lock: acquiring locks for stream subdevice #0-Capture
    [  761.999175] kernel: sdw_acquire_bus_lock: acquired locks for stream subdevice #0-Capture
    [  761.999179] kernel: sdw_deprepare_stream: subdevice #0-Capture: inconsistent state state 1
    [  761.999274] kernel: sdw_release_bus_lock: releasing locks for stream subdevice #0-Capture
    [  761.999277] kernel: sdw_release_bus_lock: released locks for stream subdevice #0-Capture
    [  761.999368] kernel: snd_sof:sof_pcm_close: sof-audio-pci-intel-lnl 0000:00:1f.3: pcm: close stream 1 dir 1
    [  762.499996] kernel: soundwire_intel soundwire_intel.link.0: SCP Msg trf timed out
    [  762.500109] kernel: soundwire sdw-master-0-0: trf on Slave 7 failed:-5 read addr 8490 count 0
    [  762.500143] kernel: soundwire sdw-master-0-0: sdw_transfer: done
    [  762.500224] kernel: IO error in rt711_sdca_headset_detect, ret -5
    
  19. bardliao commented on Jun 13, 2024

    @bardliao
    Collaborator

    It turns out that is related to DSDT provided by BIOS. The new BIOS added 9.6MHz clock rate support on sdw bus. But, we didn't implement corresponding change to fit the 9.6MHz clock rate in kernel yet. The test result of #5059 shows no bank switch timed out with 4.8MHz clock rate.

  20. plbossart commented on Jun 17, 2024

    @plbossart
    MemberAuthor

    this is most likely fixed by #5064, we haven't seen this error since

    Closing to mark this problem as resolved. Of course this needs to be re-opened if tests prove us wrong.

  21. marc-hb commented on Jun 17, 2024

    @marc-hb
    Collaborator

    Last daily test run with these failures was just before #5064 was merged:

    Start Time: 2024-06-14 13:04:00 UTC
    End Time: 2024-06-14 15:53:23 UTC

    Linux Branch: topic/sof-dev
    Linux Commit: 8ce6e1a
    KConfig Branch: master
    KConfig Commit: c3171afedc63

    Then we had 2 runs on the 16th and 17th and they were both clean (wrt. to this failure)

  22. marc-hb commented on Jun 21, 2024

    @marc-hb
    Collaborator

    and now we just saw that error for the first time on... jf-cml-sku0983-sdw-1

    Maybe because of #5064?

    Re-open or new bug?

    stable-v2.2 daily test run 43002?model=CML_SKU0983_SDW-ipc3&testcase=multiple-pipeline-playback-50

    Linux Branch: topic/sof-dev
    Linux Commit: e9eea140a1d9
    KConfig Branch: master
    KConfig Commit: c3171afedc63

    Jun 21 17:14:29 jf-cml-sku0983-sdw-1 kernel: snd_sof:ipc3_log_header: sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx: 0x80010000: GLB_DAI_MSG: CONFIG
    Jun 21 17:14:29 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_pcm_hw_free: sof-audio-pci-intel-cnl 0000:00:1f.3: pcm: free stream 5 dir 0
    Jun 21 17:14:29 jf-cml-sku0983-sdw-1 kernel: snd_sof:ipc3_log_header: sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx: 0x80010000: GLB_DAI_MSG: CONFIG
    Jun 21 17:14:29 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_pcm_close: sof-audio-pci-intel-cnl 0000:00:1f.3: pcm: close stream 5 dir 0
    Jun 21 17:14:29 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_pcm_hw_free: sof-audio-pci-intel-cnl 0000:00:1f.3: pcm: free stream 6 dir 0
    Jun 21 17:14:29 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_pcm_close: sof-audio-pci-intel-cnl 0000:00:1f.3: pcm: close stream 6 dir 0
    Jun 21 17:14:30 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-1: Controller Timed out on bank switch
    Jun 21 17:14:30 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-0: Controller Timed out on bank switch
    Jun 21 17:14:30 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-1: multi link bank switch failed: -110
    Jun 21 17:14:30 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-0: multi link bank switch failed: -110
    Jun 21 17:14:30 jf-cml-sku0983-sdw-1 kernel: _sdw_disable_stream: do_bank_switch failed: -110
    Jun 21 17:14:30 jf-cml-sku0983-sdw-1 kernel: _sdw_disable_stream: do_bank_switch failed: -110
    Jun 21 17:14:30 jf-cml-sku0983-sdw-1 kernel:  SDW1-Playback: sdw_trigger trigger 0 failed: -110
    Jun 21 17:14:30 jf-cml-sku0983-sdw-1 kernel:  SDW0-Playback: sdw_trigger trigger 0 failed: -110
    Jun 21 17:14:30 jf-cml-sku0983-sdw-1 kernel:  SDW1-Playback: ASoC: error at soc_link_trigger on SDW1-Playback: -110
    Jun 21 17:14:30 jf-cml-sku0983-sdw-1 kernel:  SDW0-Playback: ASoC: error at soc_link_trigger on SDW0-Playback: -110
    Jun 21 17:14:30 jf-cml-sku0983-sdw-1 kernel:  Speaker: ASoC: error at dpcm_be_dai_trigger on Speaker: -110
    Jun 21 17:14:30 jf-cml-sku0983-sdw-1 kernel:  Jack Out: ASoC: error at dpcm_be_dai_trigger on Jack Out: -110
    Jun 21 17:14:30 jf-cml-sku0983-sdw-1 kernel:  Speaker: ASoC: trigger FE cmd: 0 failed: -110
    Jun 21 17:14:30 jf-cml-sku0983-sdw-1 kernel:  Jack Out: ASoC: trigger FE cmd: 0 failed: -110
    Jun 21 17:14:30 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_pcm_hw_free: sof-audio-pci-intel-cnl 0000:00:1f.3: pcm: free stream 2 dir 0
    Jun 21 17:14:30 jf-cml-sku0983-sdw-1 kernel: snd_sof:ipc3_log_header: sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx: 0x60030000: GLB_STREAM_MSG: PCM_FREE
    Jun 21 17:14:30 jf-cml-sku0983-sdw-1 kernel: snd_sof:ipc3_log_header: sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx: 0x90040000: GLB_TRACE_MSG: FILTER_UPDATE
    Jun 21 17:14:30 jf-cml-sku0983-sdw-1 kernel: snd_sof:ipc3_log_header: sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx: 0x90040000: GLB_TRACE_MSG: FILTER_UPDATE
    Jun 21 17:14:31 jf-cml-sku0983-sdw-1 kernel: soundwire_intel soundwire_intel.link.1: SCP Msg trf timed out
    Jun 21 17:14:31 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-1: trf on Slave 1 failed:-5 write addr c103 count 0
    Jun 21 17:14:31 jf-cml-sku0983-sdw-1 kernel: rt1308 sdw:0:1:025d:1308:00: ASoC: error at snd_soc_component_update_bits on sdw:0:1:025d:1308:00 for register: [0x0000c103] -5
    Jun 21 17:14:31 jf-cml-sku0983-sdw-1 kernel: soundwire_intel soundwire_intel.link.1: SCP Msg trf timed out
    Jun 21 17:14:31 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-1: trf on Slave 1 failed:-5 write addr c360 count 0
    Jun 21 17:14:31 jf-cml-sku0983-sdw-1 kernel: rt1308 sdw:0:1:025d:1308:00: ASoC: error at snd_soc_component_update_bits on sdw:0:1:025d:1308:00 for register: [0x0000c360] -5
    Jun 21 17:14:32 jf-cml-sku0983-sdw-1 kernel: soundwire_intel soundwire_intel.link.1: SCP Msg trf timed out
    Jun 21 17:14:32 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-1: trf on Slave 1 failed:-5 write addr c320 count 0
    Jun 21 17:14:32 jf-cml-sku0983-sdw-1 kernel: rt1308 sdw:0:1:025d:1308:00: ASoC: error at snd_soc_component_update_bits on sdw:0:1:025d:1308:00 for register: [0x0000c320] -5
    Jun 21 17:14:33 jf-cml-sku0983-sdw-1 kernel: soundwire_intel soundwire_intel.link.1: SCP Msg trf timed out
    Jun 21 17:14:33 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-1: trf on Slave 1 failed:-5 read addr c321 count 0
    Jun 21 17:14:33 jf-cml-sku0983-sdw-1 kernel: rt1308 sdw:0:1:025d:1308:00: ASoC: error at snd_soc_component_update_bits on sdw:0:1:025d:1308:00 for register: [0x0000c321] -5
    Jun 21 17:14:33 jf-cml-sku0983-sdw-1 kernel: soundwire_intel soundwire_intel.link.1: SCP Msg trf timed out
    Jun 21 17:14:33 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-1: trf on Slave 1 failed:-5 write addr c322 count 0
    Jun 21 17:14:33 jf-cml-sku0983-sdw-1 kernel: rt1308 sdw:0:1:025d:1308:00: ASoC: error at snd_soc_component_update_bits on sdw:0:1:025d:1308:00 for register: [0x0000c322] -5
    Jun 21 17:14:33 jf-cml-sku0983-sdw-1 kernel: soundwire_generic_allocation:sdw_compute_master_ports: soundwire sdw-master-0-1: sdw_compute_master_ports p_rt->lane 0
    Jun 21 17:14:33 jf-cml-sku0983-sdw-1 kernel: soundwire_generic_allocation:sdw_compute_slave_ports: rt1308 sdw:0:1:025d:1308:00: sdw_compute_slave_ports p_rt->lane 0
    Jun 21 17:14:34 jf-cml-sku0983-sdw-1 kernel: soundwire_intel soundwire_intel.link.1: IO transfer timed out, cmd 2 device 1 addr 102 len 1
    Jun 21 17:14:34 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-1: trf on Slave 1 failed:-110 read addr 102 count 0
    Jun 21 17:14:34 jf-cml-sku0983-sdw-1 kernel: rt1308 sdw:0:1:025d:1308:00: DPN_PortCtrl register write failed for port 1
    Jun 21 17:14:34 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-1: Program transport params failed: -110
    Jun 21 17:14:34 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-1: _sdw_deprepare_stream: Program params failed: -110
    Jun 21 17:14:34 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_pcm_close: sof-audio-pci-intel-cnl 0000:00:1f.3: pcm: close stream 2 dir 0
    Jun 21 17:14:34 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_pcm_hw_free: sof-audio-pci-intel-cnl 0000:00:1f.3: pcm: free stream 0 dir 0
    Jun 21 17:14:34 jf-cml-sku0983-sdw-1 kernel: snd_sof:ipc3_log_header: sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx: 0x60030000: GLB_STREAM_MSG: PCM_FREE
    Jun 21 17:14:34 jf-cml-sku0983-sdw-1 kernel: soundwire_intel soundwire_intel.link.0: IO transfer timed out, cmd 3 device 6 addr 7321 len 1
    Jun 21 17:14:34 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-0: trf on Slave 6 failed:-110 write addr 7321 count 0
    Jun 21 17:14:35 jf-cml-sku0983-sdw-1 kernel: soundwire_intel soundwire_intel.link.0: IO transfer timed out, cmd 3 device 6 addr 3603 len 1
    Jun 21 17:14:35 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-0: trf on Slave 6 failed:-110 write addr 3603 count 0
    Jun 21 17:14:35 jf-cml-sku0983-sdw-1 kernel: soundwire_intel soundwire_intel.link.0: IO transfer timed out, cmd 3 device 6 addr 3501 len 1
    Jun 21 17:14:35 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-0: trf on Slave 6 failed:-110 write addr 3501 count 0
    Jun 21 17:14:35 jf-cml-sku0983-sdw-1 kernel: soundwire_generic_allocation:sdw_compute_master_ports: soundwire sdw-master-0-0: sdw_compute_master_ports p_rt->lane 0
    Jun 21 17:14:35 jf-cml-sku0983-sdw-1 kernel: soundwire_generic_allocation:sdw_compute_slave_ports: rt711 sdw:0:0:025d:0711:00: sdw_compute_slave_ports p_rt->lane 0
    Jun 21 17:14:36 jf-cml-sku0983-sdw-1 kernel: soundwire_intel soundwire_intel.link.0: IO transfer timed out, cmd 2 device 6 addr 302 len 1
    Jun 21 17:14:36 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-0: trf on Slave 6 failed:-110 read addr 302 count 0
    Jun 21 17:14:36 jf-cml-sku0983-sdw-1 kernel: rt711 sdw:0:0:025d:0711:00: DPN_PortCtrl register write failed for port 3
    Jun 21 17:14:36 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-0: Program transport params failed: -110
    Jun 21 17:14:36 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-0: _sdw_deprepare_stream: Program params failed: -110
    Jun 21 17:14:36 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_pcm_close: sof-audio-pci-intel-cnl 0000:00:1f.3: pcm: close stream 0 dir 0
    Jun 21 17:14:36 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_pcm_open: sof-audio-pci-intel-cnl 0000:00:1f.3: pcm: open stream 2 dir 0
    Jun 21 17:14:36 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_pcm_open: sof-audio-pci-intel-cnl 0000:00:1f.3: period min 192 max 16384 bytes
    Jun 21 17:14:36 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_pcm_open: sof-audio-pci-intel-cnl 0000:00:1f.3: period count 2 max 16
    Jun 21 17:14:36 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_pcm_open: sof-audio-pci-intel-cnl 0000:00:1f.3: buffer max 65536 bytes
    Jun 21 17:14:36 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_pcm_open: sof-audio-pci-intel-cnl 0000:00:1f.3: pcm: open stream 0 dir 0
    Jun 21 17:14:36 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_pcm_open: sof-audio-pci-intel-cnl 0000:00:1f.3: period min 192 max 16384 bytes
    Jun 21 17:14:36 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_pcm_open: sof-audio-pci-intel-cnl 0000:00:1f.3: period count 2 max 16
    Jun 21 17:14:36 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_pcm_open: sof-audio-pci-intel-cnl 0000:00:1f.3: buffer max 65536 bytes
    Jun 21 17:14:36 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_pcm_close: sof-audio-pci-intel-cnl 0000:00:1f.3: pcm: close stream 2 dir 0
    Jun 21 17:14:36 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_pcm_close: sof-audio-pci-intel-cnl 0000:00:1f.3: pcm: close stream 0 dir 0
    Jun 21 17:14:39 jf-cml-sku0983-sdw-1 kernel: soundwire_intel soundwire_intel.link.0: IO transfer timed out, cmd 3 device 6 addr 45 len 1
    Jun 21 17:14:39 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-0: trf on Slave 6 failed:-110 write addr 45 count 0
    Jun 21 17:14:39 jf-cml-sku0983-sdw-1 kernel: rt711 sdw:0:0:025d:0711:00: SDW_SCP_SYSTEMCTRL write failed:-110
    Jun 21 17:14:39 jf-cml-sku0983-sdw-1 kernel: rt711 sdw:0:0:025d:0711:00: clock stop prepare failed:-110
    Jun 21 17:14:39 jf-cml-sku0983-sdw-1 kernel: soundwire_intel soundwire_intel.link.0: prepare clock stop failed -110
    Jun 21 17:14:39 jf-cml-sku0983-sdw-1 kernel: soundwire_intel soundwire_intel.link.0: intel_stop_bus: cannot stop clock: -110
    Jun 21 17:14:40 jf-cml-sku0983-sdw-1 kernel: soundwire_intel soundwire_intel.link.1: IO transfer timed out, cmd 3 device 1 addr 45 len 1
    Jun 21 17:14:40 jf-cml-sku0983-sdw-1 kernel: soundwire sdw-master-0-1: trf on Slave 1 failed:-110 write addr 45 count 0
    Jun 21 17:14:40 jf-cml-sku0983-sdw-1 kernel: rt1308 sdw:0:1:025d:1308:00: SDW_SCP_SYSTEMCTRL write failed:-110
    Jun 21 17:14:40 jf-cml-sku0983-sdw-1 kernel: rt1308 sdw:0:1:025d:1308:00: clock stop prepare failed:-110
    Jun 21 17:14:40 jf-cml-sku0983-sdw-1 kernel: soundwire_intel soundwire_intel.link.1: prepare clock stop failed -110
    Jun 21 17:14:40 jf-cml-sku0983-sdw-1 kernel: soundwire_intel soundwire_intel.link.1: intel_stop_bus: cannot stop clock: -110
    Jun 21 17:14:40 jf-cml-sku0983-sdw-1 kernel: soundwire_intel:intel_link_power_down: soundwire_intel soundwire_intel.link.1: powering down all links
    Jun 21 17:14:40 jf-cml-sku0983-sdw-1 kernel: snd_sof:ipc3_log_header: sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx: 0x30210000: GLB_TPLG_MSG: BUFFER_FREE
    Jun 21 17:14:40 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_widget_free_unlocked: sof-audio-pci-intel-cnl 0000:00:1f.3: widget BUF30.1 freed
    Jun 21 17:14:40 jf-cml-sku0983-sdw-1 kernel: snd_sof:ipc3_log_header: sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx: 0x30210000: GLB_TPLG_MSG: BUFFER_FREE
    Jun 21 17:14:40 jf-cml-sku0983-sdw-1 kernel: snd_sof:sof_widget_free_unlocked: sof-audio-pci-intel-cnl 0000:00:1f.3: widget BUF30.0 freed
    Jun 21 17:14:40 jf-cml-sku0983-sdw-1 kernel: snd_sof:ipc3_log_header: sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx: 0x30020000: GLB_TPLG_MSG: COMP_FREE
    
  23. bardliao commented on Jun 24, 2024

    @bardliao
    Collaborator

    #5064 should not impact CML_SKU0983_SDW. #5064 will only take effect when there are more than one sdw frequency is supported. I.e. prop->num_clk_freq > 1. And I checked the DSDT of jf-cml-sku0983-sdw-1, it supported just one frequency.

                            Package (0x02)
                            {
                                "mipi-sdw-clock-frequencies-supported",
                                Package (0x01)
                                {
                                    0x005B8D80
                                }
                            },
    

    I also checked the clock on dmesg

    [ 2954.470694] kernel: snd_soc_rt711:rt711_clock_config: rt711 sdw:0:0:025d:0711:00: rt711_clock_config complete, clk_freq=6000000
    [ 2954.470694] kernel: snd_soc_rt1308_sdw:rt1308_clock_config: rt1308 sdw:0:1:025d:1308:00: rt1308_clock_config complete, clk_freq=6000000
    

    clk_freq=6000000 which is exactly the value listed by DSDT.
    I would suggest that we create a new bug for the CML bank switch timed out issue.

  24. plbossart commented on Jun 24, 2024

    @plbossart
    MemberAuthor

    it's definitively a different error, the problem happened only on LNL/ACE2.x, and this is CML/cAVS 1.8, three generations earlier -> new bug.

    It's also not clear if this is reproducible, it's been a week since we merged #5064.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    LNLApplies to Lunar Lake platformSDWApplies to SoundWire bus for codec connectionproduction

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions