On Thu, 17 Oct 2019 17:04:11 +0200, Lukas Wunner wrote: > > Przemysław Kopa reports that since commit b516ea586d71 ("PCI: Enable > NVIDIA HDA controllers"), the discrete GPU Nvidia GeForce GT 540M on his > 2011 Samsung laptop refuses to runtime suspend, resulting in a power > regression and excessive heat. > > Rivera Valdez witnesses the same issue with a GeForce GT 525M (GF108M) > of the same era, as does another Arch Linux user named "R0AR" with a > more recent GeForce GTX 1050 Ti (GP107M). > > The commit exposes the discrete GPU's HDA controller and all four codecs > on the controller do not set the CLKSTOP and EPSS bits in the Supported > Power States Response. They also do not set the PS-ClkStopOk bit in the > Get Power State Response. hda_codec_runtime_suspend() therefore does > not call snd_hdac_codec_link_down(), which prevents each codec and the > PCI device from runtime suspending. > > The same issue is present on some AMD discrete GPUs and we addressed it > by forcing runtime PM despite the bits not being set, see commit > 57cb54e53bdd ("ALSA: hda - Force to link down at runtime suspend on > ATI/AMD HDMI"). > > Do the same for Nvidia HDMI codecs. > > Fixes: b516ea586d71 ("PCI: Enable NVIDIA HDA controllers") > Link: https://bbs.archlinux.org/viewtopic.php?pid=1865512 > Link: https://bugs.freedesktop.org/show_bug.cgi?id=75985#c81 > Reported-by: Przemysław Kopa <prymoo@xxxxxxxxx> > Reported-by: Rivera Valdez <riveravaldez@xxxxxxxxxxxxxxx> > Signed-off-by: Lukas Wunner <lukas@xxxxxxxxx> > Cc: Daniel Drake <dan@xxxxxxxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx # v5.3+ Applied now. Thanks. Takashi > --- > sound/pci/hda/patch_hdmi.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c > index bca5de7..795cbda 100644 > --- a/sound/pci/hda/patch_hdmi.c > +++ b/sound/pci/hda/patch_hdmi.c > @@ -3474,6 +3474,8 @@ static int patch_nvhdmi(struct hda_codec *codec) > nvhdmi_chmap_cea_alloc_validate_get_type; > spec->chmap.ops.chmap_validate = nvhdmi_chmap_validate; > > + codec->link_down_at_suspend = 1; > + > generic_acomp_init(codec, &nvhdmi_audio_ops, nvhdmi_port2pin); > > return 0; > -- > 2.20.1 > > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel