Skip to content

[BUG] IO transfer timed out in kmod test on TGLU-SDW #2723

Closed

Description

@keqiaozhang

Describe the bug
This error happens when removing audio modules, but it won't impact audio functionality and sof can work after reloading.
Daily report ID:1867
Device:TGLU_SKU0A32_SDCA

To Reproduce
$ /sof-test/test-case/check-kmod-load-unload.sh

Reproduction Rate
100%.

Expected behavior
no errors during the kmod test

Impact
no functionality impact

Environment
Kernel Branch: topic/sof-dev
Kernel Commit: ba1a2f8-1
SOF Branch: master
SOF Commit: 0b2876b

Screenshots or console output

kernel: [ 6579.975684] sof-audio-pci 0000:00:1f.3: ipc tx succeeded: 0x50010000: GLB_COMP_MSG: SET_VALUE
kernel: [ 6579.975689] sof-audio-pci 0000:00:1f.3: ipc tx: 0x50010000: GLB_COMP_MSG: SET_VALUE
kernel: [ 6579.976035] sof-audio-pci 0000:00:1f.3: ipc tx succeeded: 0x50010000: GLB_COMP_MSG: SET_VALUE
kernel: [ 6579.976045] sof-audio-pci 0000:00:1f.3: ipc tx: 0x40020000: GLB_PM_MSG: CTX_RESTORE
kernel: [ 6579.976229] sof-audio-pci 0000:00:1f.3: ipc tx succeeded: 0x40020000: GLB_PM_MSG: CTX_RESTORE
kernel: [ 6579.976253] sof-audio-pci 0000:00:1f.3: ipc tx: 0x40010000: GLB_PM_MSG: CTX_SAVE
kernel: [ 6579.986613] sof-audio-pci 0000:00:1f.3: ipc tx succeeded: 0x40010000: GLB_PM_MSG: CTX_SAVE
kernel: [ 6579.987336] sof-audio-pci 0000:00:1f.3: FW Poll Status: reg=0x20140000 successful
kernel: [ 6580.547024] intel-sdw intel-sdw.0: IO transfer timed out, cmd 3 device 1 addr 5c len 1
kernel: [ 6580.547047] soundwire sdw-master-0: trf on Slave 1 failed:-110 write addr 5c count 0
kernel: [ 6581.051058] intel-sdw intel-sdw.0: IO transfer timed out, cmd 3 device 1 addr 5d len 1
kernel: [ 6581.051079] soundwire sdw-master-0: trf on Slave 1 failed:-110 write addr 5d count 0
kernel: [ 6581.051091] rt711-sdca sdw:0:25d:711:1: in rt711_sdca_jack_init disable
kernel: [ 6581.052090] sof-audio-pci 0000:00:1f.3: FW Poll Status: reg=0x9010f0f successful
kernel: [ 6581.052215] sof-audio-pci 0000:00:1f.3: FW Poll Status: reg=0xf0f successful
kernel: [ 6581.052223] sof-audio-pci 0000:00:1f.3: DSP core(s) enabled? 0 : core_mask 1

Activity

  1. added
    bugSomething isn't working
    TGLApplies to Tiger Lake platform
    on Jan 28, 2021
  2. self-assigned this
    on Jan 28, 2021
  3. bardliao commented on Jan 28, 2021

    @bardliao
    Collaborator

    @shumingfan @plbossart This issue was fixed by #2640. We use regcache_cache_only to avoid to access SDW_SCP_SDCA_INTMASK1 and SDW_SCP_SDCA_INTMASK2. However, after #2642 uses sdw_write_no_pm directly, regcache_cache_only can't protect it anymore. What is your idea here?

  4. shumingfan commented on Jan 28, 2021

    @shumingfan

    @bardliao @plbossart Could we remove the sdw_write_no_pm when the jack disable?
    The SDW_SCP_SDCA_INTMASK1/2 will be cleared by any reset anyway.

    @@ -477,10 +477,6 @@ static void rt711_sdca_jack_init(struct rt711_sdca_priv *rt711)
                    rt711_sdca_index_update_bits(rt711, RT711_VENDOR_HDA_CTL,
                            RT711_GE_MODE_RELATED_CTL, 0x0c00, 0x0000);
    
    -               /* set SCP_SDCA_IntMask1[0]=0 */
    -               sdw_write_no_pm(rt711->slave, SDW_SCP_SDCA_INTMASK1, 0);
    -               /* set SCP_SDCA_IntMask2[0]=0 */
    -               sdw_write_no_pm(rt711->slave, SDW_SCP_SDCA_INTMASK2, 0);
                    dev_dbg(&rt711->slave->dev, "in %s disable\n", __func__);
            }
    
    
  5. plbossart commented on Jan 28, 2021

    @plbossart
    Member

    I don't understand the issue, did we fix the problem or not? It seems we have the same report but a different error? Completely lost on what the problem is.

  6. bardliao commented on Jan 29, 2021

    @bardliao
    Collaborator

    @plbossart The issue is that snd_soc_component_set_jack(component, NULL, NULL) will be called when asoc component is removed. SoundWire bus is suspended at that moment, and we use sdw_write_no_pm() which was regmap_write() to set the SDW_SCP_SDCA_INTMASK in rt711's set_jack callback function. In other words, we call sdw_write_no_pm() when sdw bus is suspended which result in IO transfer timed out.
    The issue was fixed by setting regcache_cache_only() before calling regmap_write(), but now it is back due to we use sdw_write_no_pm() instead.

  7. added
    P2Critical bugs or normal features
    driver unload/reloadObserved when unloading/reloading kernel driver modules
    on Feb 1, 2021
  8. keqiaozhang commented on Feb 3, 2021

    @keqiaozhang
    Author

    This issue is fixed by #2728

  9. added
    SDWApplies to SoundWire bus for codec connection
    on Mar 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P2Critical bugs or normal featuresSDWApplies to SoundWire bus for codec connectionTGLApplies to Tiger Lake platformbugSomething isn't workingdriver unload/reloadObserved when unloading/reloading kernel driver modules

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions