On Thu, 11 Jun 2020 19:09:08 +0200, Lu, Brent wrote:
Hi Brent,
Thanks for the patch. Is this fix for a specific issue you're seeing? If so, could you please give us some details about it?
Thanks, Ranjani
Hi Ranjani,
It's reported to happen on GLK Chromebook 'Fleex' that sometimes it cannot output the audio stream to external display. The kernel is Chrome v4.14 branch. Following is the reproduce step provided by ODM but I could reproduce it simply running aplay or cras_test_client so I think it's not about the cable plug/unplug handling.
What steps will reproduce the problem?
Play YouTube video on Chromebook and connect it to external monitor with Type C to DP dongle
Press monitor power button to turn off the monitor
Press monitor power button again to turn on the monitor
Continue to play YouTube video and check audio playback
No sound comes out from built-in speaker of external monitor when turn on external monitor
I added debug messages to print the RIRBWP register and realize that response could come between the read of RIRBWP in the snd_hdac_bus_update_rirb() function and the interrupt clear in the hda_dsp_stream_interrupt() function. The response is not handled but the interrupt is already cleared. It will cause timeout unless more responses coming to RIRB.
Now I noticed that the legacy driver already addressed it recently via commit 6d011d5057ff ALSA: hda: Clear RIRB status before reading WP
We should have checked SOF at the same time, too...
thanks,
Takashi