[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