[alsa-devel] [PATCH 5/5] ALSA: hda - Make device D3 during runtime suspend

Takashi Iwai tiwai at suse.de
Tue Nov 26 13:34:08 CET 2013


At Tue, 26 Nov 2013 09:29:13 +0100,
Takashi Iwai wrote:
> 
> We can make the device D3 for saving more power during the runtime
> suspend.  Meanwhile, I observed that Haswell HDMI codecs gets
> corrupted ELD bytes when woken up from runtime suspend with D3.
> As a quick workaround, exclude these chips from D3.

Scratch this.  After reading the PCI core code, I found this patch is
just a nonsense.


Takashi

> 
> Signed-off-by: Takashi Iwai <tiwai at suse.de>
> ---
>  sound/pci/hda/hda_intel.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
> index b001aa6da3bc..c0b2c9079607 100644
> --- a/sound/pci/hda/hda_intel.c
> +++ b/sound/pci/hda/hda_intel.c
> @@ -2997,6 +2997,13 @@ static int azx_runtime_suspend(struct device *dev)
>  	if (!chip->bus->avoid_link_reset)
>  		azx_enter_link_reset(chip);
>  	azx_clear_irq_pending(chip);
> +
> +	/* Haswell HDMI/DP shows the broken ELD read after runtime PM */
> +	if (chip->driver_type != AZX_DRIVER_HDMI) {
> +		pci_save_state(chip->pci);
> +		pci_set_power_state(chip->pci, PCI_D3hot);
> +	}
> +
>  	if (chip->driver_caps & AZX_DCAPS_I915_POWERWELL)
>  		hda_display_power(false);
>  	return 0;
> @@ -3019,6 +3026,11 @@ static int azx_runtime_resume(struct device *dev)
>  	if (chip->driver_caps & AZX_DCAPS_I915_POWERWELL)
>  		hda_display_power(true);
>  
> +	if (chip->driver_type != AZX_DRIVER_HDMI) {
> +		pci_set_power_state(chip->pci, PCI_D0);
> +		pci_restore_state(chip->pci);
> +	}
> +
>  	/* Read STATESTS before controller reset */
>  	status = azx_readw(chip, STATESTS);
>  
> -- 
> 1.8.4.3
> 
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 


More information about the Alsa-devel mailing list