Re: [PATCH] ALSA: hda - Force runtime PM on Nvidia HDMI codecs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux