Comment # 21
on bug 106597
from Lukas Wunner
Okay so the reason the HDA controller doesn't suspend is because the codec_powered bitmask is not null: snd_hda_intel 0000:01:00.1: azx_runtime_idle: !power_save_controller = 0, !azx_has_pm_runtime(chip) = 0, azx_bus(chip)->codec_powered = 0x1, !chip->running = 0 The lowest bit is set. In other words, the single codec on that HDA bus is considered powered on, so the HDA controller is prevented from suspending. Bits in the codec_powered bitmask are set or cleared using snd_hdac_codec_link_up() and snd_hdac_codec_link_down(), which are only called during runtime suspend and resume of the codec. Looking at hda_codec_runtime_suspend(), we can see that the bit is only cleared conditionally: https://elixir.bootlin.com/linux/latest/source/sound/pci/hda/hda_codec.c#L2906 if (codec_has_clkstop(codec) && codec_has_epss(codec) && (state & AC_PWRST_CLK_STOP_OK)) snd_hdac_codec_link_down(&codec->core); The codec_has_clkstop() and codec_has_epss() macros just query bits in the power_caps bitmask. That bitmask can also be retrieved from sysfs, could you please post the output of: grep . /sys/bus/hdaudio/devices/hdaudioC1D0/widgets/*/power_caps I'll prepare another debug patch so that we get a better understanding why the codec isn't powered down. We've either got a bug in the HDA code here or we're missing a quirk for this specific HDA controller. Sooner or later we'll have to pull in Takashi Iwai (hda maintainer) and/or AMD engineers responsible for the HDA portion of their GPUs. Previously we just papered over such issues by forcing the HDA controller off when the GPU runtime suspends, but since my commit 07f4f97d7b4b such bugs are now exposed as we deliberately keep the GPU awake as long as the HDA controller is in use. Thanks for helping identify and tracking down this issue.
You are receiving this mail because:
- You are the assignee for the bug.
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel