[Intel-gfx] [PATCH 2/3] drm/i915: Disallow D3Cold.

Gupta, Anshuman anshuman.gupta at intel.com
Mon Sep 13 10:52:51 UTC 2021



> -----Original Message-----
> From: Intel-gfx <intel-gfx-bounces at lists.freedesktop.org> On Behalf Of Rodrigo
> Vivi
> Sent: Friday, September 10, 2021 11:15 PM
> To: intel-gfx at lists.freedesktop.org
> Cc: Vivi, Rodrigo <rodrigo.vivi at intel.com>; Tangudu, Tilak
> <tilak.tangudu at intel.com>; Deak, Imre <imre.deak at intel.com>
> Subject: [Intel-gfx] [PATCH 2/3] drm/i915: Disallow D3Cold.
> 
> During runtime or s2idle suspend and resume cases on discrete cards, if D3Cold
> is really achieved, we will blow everything up and freeze the machine because
> we are not yet handling the pci states properly.
> 
> On Integrated it simply doesn't matter because D3hot is the maximum that we
> will get anyway, unless the system is on S3/S4 and our power is cut.
> 
> Let's put this hammer for now everywhere. So we can work to enable the auto-
> suspend by default without blowing up the world.
> 
> Then, this should be removed when we finally fix the D3Cold flow.
> 
> Cc: Tilak Tangudu <tilak.tangudu at intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
> Acked-by: Imre Deak <imre.deak at intel.com>
> ---
>  drivers/gpu/drm/i915/i915_drv.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index a40b5d806321..086a9a475ce8 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -301,6 +301,7 @@ static void sanitize_gpu(struct drm_i915_private *i915)
>   */
>  static int i915_driver_early_probe(struct drm_i915_private *dev_priv)  {
> +	struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
>  	int ret = 0;
> 
>  	if (i915_inject_probe_failure(dev_priv))
> @@ -331,6 +332,13 @@ static int i915_driver_early_probe(struct
> drm_i915_private *dev_priv)
>  	if (ret < 0)
>  		return ret;
> 
> +	/*
> +	 * FIXME: Temporary hammer to avoid freezing the machine on our
> DGFX
> +	 * This should be totally removed when we handle the pci states
> properly
> +	 * on runtime PM and on s2idle cases.
> +	 */
> +	pci_d3cold_disable(pdev);
	This still doesn't protect, if user space enables d3cold via sys-fs.
	d3cold_allowed_store() may call pci_d3cold_enable()
	Is it possible to disable it via PCI PM Caps at early probe?
	Otherwise it should done in respective suspend callback to make sure
	d3cold is disabled.

Thanks,
Anshuman Gupta.
> +
>  	ret = vlv_suspend_init(dev_priv);
>  	if (ret < 0)
>  		goto err_workqueues;
> --
> 2.31.1



More information about the Intel-gfx mailing list