-
Notifications
You must be signed in to change notification settings - Fork 321
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] Audio become 'metallic' after few pause/resume cycle #8986
Comments
I could now reproduce this with aplay and SOF 2.9 release on a TGL UP i11 board. |
I can NOT reproduce this on a MTL SDW device using tplg intel/sof-ace-tplg/sof-mtl-rt713-l0-rt1316-l12.tplg , sof-dev f80b8f32f46500e1d71f9d9061090b683f813900 used as driver and SOF2.9 (tag sof-2.9) used as FW. Tried also a few different FW and kernel versions, but could not reproduce the error. With same kernel+FW, I could easily reproduce on the TGL i11 UP board. |
@kv2019i, I just tried that sof-dev commit on my MTL SDW device which loads sof-mtl-rt713-l0-rt1316-l12-rt1713-l3.tplg and I can reproduce the issue.
After few seconds of holding < SPACE > I can hear metallic 'glitches' instead of the choppy pause/resume. |
Are you sure the metallic noises are not part of the track "came_back_haunted_48K_32bit.wav" haha? |
OK, so bare with me on this :D In short, the blamed commit is: 9831a9d ("audio: dai-zephyr: reset DMA buffer cursors on TRIGGER_RELEASE") But it is a bit more complicated than that as the commit actually fixes the 'metallic' sound 😕 I encountered with the issue on upx-i11 first. It is an HDA device with FW built from sof:main, then I confirmed it on two SDW device with released (2.8.1 and older) firmware as they use production key. I knew that I have once fixed similar issue, I started from there and then with long and painful bisect I ended up at this commit and indeed, reverting it fixes the issue on upx-i11 (HDA). So, the commit fixes non HDA-DMA serviced dais while breaking the HDA-DMA serviced ones. Nice, I'm not yet sure what information we can use to fix the regression while keeping the fix applied when needed.. FYI, @plbossart, @kv2019i, @lgirdwood, @dbaluta |
…RIGGER_RELEASE During DMA stop/config/start the read/write pointer of HD-DMA is not reset unlike other DMAs (GPDMA, DMAC). Only call the audio_stream_reset() if the link is not serviced by HD-DMA. Link: thesofproject#8986 Fixes: 9831a9d ("audio: dai-zephyr: reset DMA buffer cursors on TRIGGER_RELEASE") Signed-off-by: Peter Ujfalusi <[email protected]>
nice find @ujfalusi, surprising results! I would put my money on the special 'pause' state for the HDaudio DMA. Other DMAs don't have this concept, so there's probably something getting in the way or missing. |
…RIGGER_RELEASE During DMA stop/config/start the read/write pointer of HD-DMA is not reset unlike other DMAs (GPDMA, DMAC). Only call the audio_stream_reset() if the link is not serviced by HD-DMA. Link: #8986 Fixes: 9831a9d ("audio: dai-zephyr: reset DMA buffer cursors on TRIGGER_RELEASE") Signed-off-by: Peter Ujfalusi <[email protected]>
…RIGGER_RELEASE During DMA stop/config/start the read/write pointer of HD-DMA is not reset unlike other DMAs (GPDMA, DMAC). Only call the audio_stream_reset() if the link is not serviced by HD-DMA. Link: thesofproject#8986 Fixes: 9831a9d ("audio: dai-zephyr: reset DMA buffer cursors on TRIGGER_RELEASE") Signed-off-by: Peter Ujfalusi <[email protected]>
Describe the bug
Doing pause/resume cycle can result in 'metallic' sounding audio. The number of cycles are random, but it can be reproduced with few iterations.
Further pause/resume can recover from the 'metallic' sound to be clean.
It is similar, but not the same as #7478 was.
To Reproduce
Play audio with aplay:
On SDW (MTL/TGL): aplay -iv -Dhw:0,2 file.wav
On HDA: aplay -iv -Dhw:0,0 file.wav
Press < SPACE > to pause, press < SPACE > to resume, keep some time between the key presses. It can be reproduced by holding the < SPACE > and releasing randomly.
Reproduction Rate
2/10 - not all pause/resume cycle will result 'metallic' distortion
Expected behavior
Audio is clean after each resume.
Impact
Audio quality degrades if pause/resume is used severely
Environment
The text was updated successfully, but these errors were encountered: