Repository navigation
[BUG] IO transfer timed out in kmod test on TGLU-SDW #2723
Copy link
Copy link
Closed
Labels
P2Critical bugs or normal featuresCritical bugs or normal featuresSDWApplies to SoundWire bus for codec connectionApplies to SoundWire bus for codec connectionTGLApplies to Tiger Lake platformApplies to Tiger Lake platformbugSomething isn't workingSomething isn't workingdriver unload/reloadObserved when unloading/reloading kernel driver modulesObserved when unloading/reloading kernel driver modules
Description
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
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
P2Critical bugs or normal featuresCritical bugs or normal featuresSDWApplies to SoundWire bus for codec connectionApplies to SoundWire bus for codec connectionTGLApplies to Tiger Lake platformApplies to Tiger Lake platformbugSomething isn't workingSomething isn't workingdriver unload/reloadObserved when unloading/reloading kernel driver modulesObserved when unloading/reloading kernel driver modules
Activity
bardliao commentedon Jan 28, 2021
@shumingfan @plbossart This issue was fixed by #2640. We use
regcache_cache_onlyto avoid to accessSDW_SCP_SDCA_INTMASK1andSDW_SCP_SDCA_INTMASK2. However, after #2642 uses sdw_write_no_pm directly,regcache_cache_onlycan't protect it anymore. What is your idea here?shumingfan commentedon Jan 28, 2021
@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.
plbossart commentedon Jan 28, 2021
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.
bardliao commentedon Jan 29, 2021
@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 wasregmap_write()to set the SDW_SCP_SDCA_INTMASK in rt711's set_jack callback function. In other words, we callsdw_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 callingregmap_write(), but now it is back due to we usesdw_write_no_pm()instead.keqiaozhang commentedon Feb 3, 2021
This issue is fixed by #2728