Re: snd_hda_intel/sst-acpi sound breakage on suspend/resume since 5.6-rc1

From: Pierre-Louis Bossart
Date: Wed Mar 18 2020 - 13:29:34 EST




On 3/18/20 12:19 PM, Dominik Brodowski wrote:
On Wed, Mar 18, 2020 at 12:08:24PM -0500, Pierre-Louis Bossart wrote:
On 3/18/20 11:20 AM, Dominik Brodowski wrote:
On Wed, Mar 18, 2020 at 10:13:54AM -0500, Pierre-Louis Bossart wrote:


While 5.5.x works fine, mainline as of ac309e7744be (v5.6-rc6+) causes me
some sound-related trouble: after boot, the sound works fine -- but once I
suspend and resume my broadwell-based XPS13, I need to switch to headphone
and back to speaker to hear something. But what I hear isn't music but
garbled output.

It's my understanding that the use of the haswell driver is opt-in for Dell
XPS13 9343. When we run the SOF driver on this device, we have to explicitly
bypass an ACPI quirk that forces HDAudio to be used:

https://github.com/thesofproject/linux/commit/944b6a2d620a556424ed4195c8428485fcb6c2bd

Have you tried to run in plain vanilla HDAudio mode?

I had (see 18d78b64fddc), but not any more in years (and I'd like to keep
using I2S, which has worked flawlessly in these years).

ok. I don't think Intel folks have this device available, or it's used for
other things, but if you want to bisect on you may want to use [1] to solve
DRM issues. I used it to make Broadwell/Samus work again with SOF.

[1] https://gitlab.freedesktop.org/drm/intel/uploads/ef10c6c27fdc53d114f827bb72b078aa/0001-drm-i915-psr-Force-PSR-probe-only-after-full-initial.patch.txt

An alternate path would be to switch to SOF. It's still viewed as a
developer option but Broadwell/Samus work reliably for me and we have a
Broadwell-rt286 platform used for CI.

What do you mean with SOF? And no other ideas on the root cause than a
tedious bisect?

Sound Open Firmware (SOF) [1]. You can build your own audio firmware for Broadwell and the driver is supported in the mainline (you'd need to disable the legacy driver [2]).

I can't think of any changes to that haswell/broadwell legacy driver, apart from Takashi's buffer management changes 3f93b1ed4ac1e2.

But there were multiple changes to the ASoC core, so it's possible that they impact suspend/resume. Just a blind guess.

[1] https://thesofproject.github.io/latest/index.html
[2] https://github.com/thesofproject/kconfig/blob/023cc25cd0b26a9757592d0bbbbe719825dd728d/sof-dev-defconfig#L20