From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Anshuman Gupta <anshuman.gupta@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH] drm/i915/dgfx: Enable d3cold at s2idle
Date: Mon, 14 Aug 2023 12:03:23 -0400 [thread overview]
Message-ID: <ZNpQS0kVEslsVNg2@intel.com> (raw)
In-Reply-To: <20230814110418.1557979-1-anshuman.gupta@intel.com>
On Mon, Aug 14, 2023 at 04:34:18PM +0530, Anshuman Gupta wrote:
> System wide suspend already has support for lmem save/restore during
> suspend therefore enabling d3cold for s2idle and keepng it disable for
> runtime PM.(Refer below commit for d3cold runtime PM disable justification)
> 'commit 66eb93e71a7a ("drm/i915/dgfx: Keep PCI autosuspend control
> 'on' by default on all dGPU")'
>
> It will reduce the DG2 Card power consumption to ~0 Watt
> for s2idle power KPI.
>
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/8755
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> drivers/gpu/drm/i915/i915_driver.c | 33 ++++++++++++++++--------------
> 1 file changed, 18 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> index b870c0df081a..ec4d26b3c17c 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -443,7 +443,6 @@ static int i915_pcode_init(struct drm_i915_private *i915)
> static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
> {
> struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
> - struct pci_dev *root_pdev;
> int ret;
>
> if (i915_inject_probe_failure(dev_priv))
> @@ -557,15 +556,6 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
>
> intel_bw_init_hw(dev_priv);
>
> - /*
> - * 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.
> - */
> - root_pdev = pcie_find_root_port(pdev);
> - if (root_pdev)
> - pci_d3cold_disable(root_pdev);
> -
> return 0;
>
> err_opregion:
> @@ -591,7 +581,6 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
> static void i915_driver_hw_remove(struct drm_i915_private *dev_priv)
> {
> struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
> - struct pci_dev *root_pdev;
>
> i915_perf_fini(dev_priv);
>
> @@ -599,10 +588,6 @@ static void i915_driver_hw_remove(struct drm_i915_private *dev_priv)
>
> if (pdev->msi_enabled)
> pci_disable_msi(pdev);
> -
> - root_pdev = pcie_find_root_port(pdev);
> - if (root_pdev)
> - pci_d3cold_enable(root_pdev);
> }
>
> /**
> @@ -1519,6 +1504,8 @@ static int intel_runtime_suspend(struct device *kdev)
> {
> struct drm_i915_private *dev_priv = kdev_to_i915(kdev);
> struct intel_runtime_pm *rpm = &dev_priv->runtime_pm;
> + struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
> + struct pci_dev *root_pdev;
> struct intel_gt *gt;
> int ret, i;
>
> @@ -1570,6 +1557,15 @@ static int intel_runtime_suspend(struct device *kdev)
> drm_err(&dev_priv->drm,
> "Unclaimed access detected prior to suspending\n");
>
> + /*
> + * 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.
> + */
> + root_pdev = pcie_find_root_port(pdev);
> + if (root_pdev)
> + pci_d3cold_disable(root_pdev);
> +
> rpm->suspended = true;
>
> /*
> @@ -1608,6 +1604,8 @@ static int intel_runtime_resume(struct device *kdev)
> {
> struct drm_i915_private *dev_priv = kdev_to_i915(kdev);
> struct intel_runtime_pm *rpm = &dev_priv->runtime_pm;
> + struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
> + struct pci_dev *root_pdev;
> struct intel_gt *gt;
> int ret, i;
>
> @@ -1621,6 +1619,11 @@ static int intel_runtime_resume(struct device *kdev)
>
> intel_opregion_notify_adapter(dev_priv, PCI_D0);
> rpm->suspended = false;
> +
> + root_pdev = pcie_find_root_port(pdev);
> + if (root_pdev)
> + pci_d3cold_enable(root_pdev);
> +
> if (intel_uncore_unclaimed_mmio(&dev_priv->uncore))
> drm_dbg(&dev_priv->drm,
> "Unclaimed access during suspend, bios?\n");
> --
> 2.25.1
>
next prev parent reply other threads:[~2023-08-14 16:10 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-14 11:04 [Intel-gfx] [PATCH] drm/i915/dgfx: Enable d3cold at s2idle Anshuman Gupta
2023-08-14 11:35 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2023-08-14 11:35 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2023-08-14 11:54 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-08-14 14:24 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2023-08-14 16:03 ` Rodrigo Vivi [this message]
2023-08-15 7:29 ` [Intel-gfx] [PATCH] " Gupta, Anshuman
2023-08-15 13:58 ` Rodrigo Vivi
2023-08-16 12:29 ` Gupta, Anshuman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZNpQS0kVEslsVNg2@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=anshuman.gupta@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.