diff mbox series

drm/i915/dgfx: Disable d3cold Correctly

Message ID 20220606122656.31479-1-anshuman.gupta@intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915/dgfx: Disable d3cold Correctly | expand

Commit Message

Gupta, Anshuman June 6, 2022, 12:26 p.m. UTC
Currently i915 disables d3cold for i915 pci dev.
This blocks D3 for i915 gfx pci upstream bridge (VSP).
Let's disable d3cold at gfx root port to make sure that
i915 gfx VSP can transition to D3 to save some power.

Fixes: 1a085e23411d ("drm/i915: Disable D3Cold in s2idle and runtime pm")
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
 drivers/gpu/drm/i915/i915_driver.c | 34 +++++++++++++-----------------
 1 file changed, 15 insertions(+), 19 deletions(-)

Comments

Luca Coelho June 6, 2022, 2:22 p.m. UTC | #1
On Mon, 2022-06-06 at 17:56 +0530, Anshuman Gupta wrote:
> Currently i915 disables d3cold for i915 pci dev.
> This blocks D3 for i915 gfx pci upstream bridge (VSP).
> Let's disable d3cold at gfx root port to make sure that
> i915 gfx VSP can transition to D3 to save some power.

(nit) It's better to use imperative in the commit message, so "Disable
d3cold at gfx root port..." would be easier to read.

Also, from the code, it's clear that you're disabling d3cold in the
root now, instead of in the pdev itself.  But you don't explain why you
moved the enabling/disabling to hw_probe and remove_hw from the actual
PM calls...

--
Cheers,
Luca.
Gupta, Anshuman June 7, 2022, 10:55 a.m. UTC | #2
> -----Original Message-----
> From: Luca Coelho <luca@coelho.fi>
> Sent: Monday, June 6, 2022 7:53 PM
> To: Gupta, Anshuman <anshuman.gupta@intel.com>; intel-
> gfx@lists.freedesktop.org
> Cc: Vivi, Rodrigo <rodrigo.vivi@intel.com>
> Subject: Re: [Intel-gfx] [PATCH] drm/i915/dgfx: Disable d3cold Correctly
> 
> On Mon, 2022-06-06 at 17:56 +0530, Anshuman Gupta wrote:
> > Currently i915 disables d3cold for i915 pci dev.
> > This blocks D3 for i915 gfx pci upstream bridge (VSP).
> > Let's disable d3cold at gfx root port to make sure that
> > i915 gfx VSP can transition to D3 to save some power.
> 
> (nit) It's better to use imperative in the commit message, so "Disable d3cold at
> gfx root port..." would be easier to read.
Thanks for comment, i will fix this,
> 
> Also, from the code, it's clear that you're disabling d3cold in the root now,
> instead of in the pdev itself.  But you don't explain why you moved the
> enabling/disabling to hw_probe and remove_hw from the actual PM calls...
We don't need to disable/enable root port d3cold multiple times in PM suspend handlers, doing this
in probe should be suffice.

Regards,
Anshuman Gupta.
> 
> --
> Cheers,
> Luca.
Nilawar, Badal June 13, 2022, 10:26 a.m. UTC | #3
On 06-06-2022 17:56, Anshuman Gupta wrote:
> Currently i915 disables d3cold for i915 pci dev.
> This blocks D3 for i915 gfx pci upstream bridge (VSP).
> Let's disable d3cold at gfx root port to make sure that
> i915 gfx VSP can transition to D3 to save some power.
> 
> Fixes: 1a085e23411d ("drm/i915: Disable D3Cold in s2idle and runtime pm")
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> ---
>   drivers/gpu/drm/i915/i915_driver.c | 34 +++++++++++++-----------------
>   1 file changed, 15 insertions(+), 19 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> index d26dcca7e654..86f9f0be76a6 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -546,6 +546,7 @@ 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))
> @@ -657,6 +658,15 @@ 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_msi:
> @@ -680,11 +690,16 @@ 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);
>   
>   	if (pdev->msi_enabled)
>   		pci_disable_msi(pdev);
> +
> +	root_pdev = pcie_find_root_port(pdev);
> +	if (root_pdev)
> +		pci_d3cold_enable(root_pdev);
>   }
This looks good to me.

Reviewed-by: Badal Nilawar <badal.nilawar@intel.com>

Regards,
Badal Nilawar
>   
>   /**
> @@ -1209,14 +1224,6 @@ static int i915_drm_suspend_late(struct drm_device *dev, bool hibernation)
>   		goto out;
>   	}
>   
> -	/*
> -	 * 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.
> -	 */
> -	if (suspend_to_idle(dev_priv))
> -		pci_d3cold_disable(pdev);
> -
>   	pci_disable_device(pdev);
>   	/*
>   	 * During hibernation on some platforms the BIOS may try to access
> @@ -1381,8 +1388,6 @@ static int i915_drm_resume_early(struct drm_device *dev)
>   
>   	pci_set_master(pdev);
>   
> -	pci_d3cold_enable(pdev);
> -
>   	disable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
>   
>   	ret = vlv_resume_prepare(dev_priv, false);
> @@ -1559,7 +1564,6 @@ 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);
>   	int ret;
>   
>   	if (drm_WARN_ON_ONCE(&dev_priv->drm, !HAS_RUNTIME_PM(dev_priv)))
> @@ -1605,12 +1609,6 @@ 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 and on s2idle cases.
> -	 */
> -	pci_d3cold_disable(pdev);
>   	rpm->suspended = true;
>   
>   	/*
> @@ -1649,7 +1647,6 @@ 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);
>   	int ret;
>   
>   	if (drm_WARN_ON_ONCE(&dev_priv->drm, !HAS_RUNTIME_PM(dev_priv)))
> @@ -1662,7 +1659,6 @@ static int intel_runtime_resume(struct device *kdev)
>   
>   	intel_opregion_notify_adapter(dev_priv, PCI_D0);
>   	rpm->suspended = false;
> -	pci_d3cold_enable(pdev);
>   	if (intel_uncore_unclaimed_mmio(&dev_priv->uncore))
>   		drm_dbg(&dev_priv->drm,
>   			"Unclaimed access during suspend, bios?\n");
Gupta, Anshuman June 27, 2022, 11:59 a.m. UTC | #4
On 2022-06-17 at 00:16:25 +0000, Patchwork wrote:
> == Series Details ==
> 
> Series: drm/i915/dgfx: Disable d3cold Correctly (rev2)
> URL   : https://patchwork.freedesktop.org/series/104770/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_11768_full -> Patchwork_104770v2_full
> ====================================================
> 
> Summary
> -------
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with Patchwork_104770v2_full absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in Patchwork_104770v2_full, please notify your bug team to allow them
>   to document this new failure mode, which will reduce false positives in CI.
> 
>   
> 
> Participating hosts (12 -> 10)
> ------------------------------
> 
>   Missing    (2): shard-rkl shard-tglu 
> 
> Possible new issues
> -------------------
> 
>   Here are the unknown changes that may have been introduced in Patchwork_104770v2_full:
> 
> ### IGT changes ###
> 
> #### Possible regressions ####
Below are unrelated failures on GLK, not cause by this patch.
Pushed to drm-intel-next, thanks for Ack and Review.
Br,
Anshuman Gupta.
> 
>   * igt@kms_concurrent@pipe-b:
>     - shard-glk:          NOTRUN -> [TIMEOUT][1]
>    [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-glk7/igt@kms_concurrent@pipe-b.html
> 
>   * igt@perf@enable-disable:
>     - shard-glk:          [PASS][2] -> [TIMEOUT][3] +1 similar issue
>    [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-glk7/igt@perf@enable-disable.html
>    [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-glk7/igt@perf@enable-disable.html
> 
>   
> #### Warnings ####
> 
>   * igt@kms_chamelium@dp-crc-single:
>     - shard-glk:          [SKIP][4] ([fdo#109271] / [fdo#111827]) -> [TIMEOUT][5]
>    [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-glk7/igt@kms_chamelium@dp-crc-single.html
>    [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-glk7/igt@kms_chamelium@dp-crc-single.html
> 
>   
> Known issues
> ------------
> 
>   Here are the changes found in Patchwork_104770v2_full that come from known issues:
> 
> ### IGT changes ###
> 
> #### Issues hit ####
> 
>   * igt@gem_eio@in-flight-contexts-immediate:
>     - shard-apl:          [PASS][6] -> [TIMEOUT][7] ([i915#3063])
>    [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-apl6/igt@gem_eio@in-flight-contexts-immediate.html
>    [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl4/igt@gem_eio@in-flight-contexts-immediate.html
> 
>   * igt@gem_eio@in-flight-immediate:
>     - shard-tglb:         [PASS][8] -> [TIMEOUT][9] ([i915#3063]) +1 similar issue
>    [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-tglb3/igt@gem_eio@in-flight-immediate.html
>    [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-tglb3/igt@gem_eio@in-flight-immediate.html
> 
>   * igt@gem_eio@suspend:
>     - shard-skl:          [PASS][10] -> [DMESG-WARN][11] ([i915#1982])
>    [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-skl10/igt@gem_eio@suspend.html
>    [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-skl9/igt@gem_eio@suspend.html
> 
>   * igt@gem_eio@unwedge-stress:
>     - shard-tglb:         [PASS][12] -> [FAIL][13] ([i915#5784])
>    [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-tglb7/igt@gem_eio@unwedge-stress.html
>    [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-tglb1/igt@gem_eio@unwedge-stress.html
> 
>   * igt@gem_exec_balancer@parallel:
>     - shard-iclb:         [PASS][14] -> [SKIP][15] ([i915#4525])
>    [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-iclb1/igt@gem_exec_balancer@parallel.html
>    [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb5/igt@gem_exec_balancer@parallel.html
> 
>   * igt@gem_exec_capture@pi@vcs0:
>     - shard-iclb:         [PASS][16] -> [INCOMPLETE][17] ([i915#3371])
>    [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-iclb1/igt@gem_exec_capture@pi@vcs0.html
>    [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb5/igt@gem_exec_capture@pi@vcs0.html
> 
>   * igt@gem_exec_fair@basic-none@vcs0:
>     - shard-kbl:          [PASS][18] -> [FAIL][19] ([i915#2842]) +2 similar issues
>    [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-kbl1/igt@gem_exec_fair@basic-none@vcs0.html
>    [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-kbl1/igt@gem_exec_fair@basic-none@vcs0.html
> 
>   * igt@gem_exec_fair@basic-pace-share@rcs0:
>     - shard-glk:          [PASS][20] -> [FAIL][21] ([i915#2842])
>    [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-glk8/igt@gem_exec_fair@basic-pace-share@rcs0.html
>    [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-glk6/igt@gem_exec_fair@basic-pace-share@rcs0.html
> 
>   * igt@gem_exec_params@no-vebox:
>     - shard-iclb:         NOTRUN -> [SKIP][22] ([fdo#109283])
>    [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb2/igt@gem_exec_params@no-vebox.html
> 
>   * igt@gem_lmem_swapping@basic:
>     - shard-apl:          NOTRUN -> [SKIP][23] ([fdo#109271] / [i915#4613]) +1 similar issue
>    [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl6/igt@gem_lmem_swapping@basic.html
> 
>   * igt@gem_lmem_swapping@heavy-random:
>     - shard-skl:          NOTRUN -> [SKIP][24] ([fdo#109271] / [i915#4613]) +3 similar issues
>    [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-skl9/igt@gem_lmem_swapping@heavy-random.html
> 
>   * igt@gem_lmem_swapping@parallel-random-verify-ccs:
>     - shard-iclb:         NOTRUN -> [SKIP][25] ([i915#4613])
>    [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb2/igt@gem_lmem_swapping@parallel-random-verify-ccs.html
> 
>   * igt@gem_render_copy@y-tiled-to-vebox-yf-tiled:
>     - shard-iclb:         NOTRUN -> [SKIP][26] ([i915#768])
>    [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb2/igt@gem_render_copy@y-tiled-to-vebox-yf-tiled.html
> 
>   * igt@gem_userptr_blits@dmabuf-sync:
>     - shard-skl:          NOTRUN -> [SKIP][27] ([fdo#109271] / [i915#3323])
>    [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-skl9/igt@gem_userptr_blits@dmabuf-sync.html
> 
>   * igt@gen9_exec_parse@allowed-all:
>     - shard-glk:          [PASS][28] -> [DMESG-WARN][29] ([i915#5566] / [i915#716]) +1 similar issue
>    [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-glk4/igt@gen9_exec_parse@allowed-all.html
>    [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-glk3/igt@gen9_exec_parse@allowed-all.html
> 
>   * igt@gen9_exec_parse@allowed-single:
>     - shard-apl:          [PASS][30] -> [DMESG-WARN][31] ([i915#5566] / [i915#716])
>    [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-apl7/igt@gen9_exec_parse@allowed-single.html
>    [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl8/igt@gen9_exec_parse@allowed-single.html
> 
>   * igt@i915_pm_dc@dc9-dpms:
>     - shard-apl:          [PASS][32] -> [FAIL][33] ([i915#4275])
>    [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-apl6/igt@i915_pm_dc@dc9-dpms.html
>    [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl4/igt@i915_pm_dc@dc9-dpms.html
> 
>   * igt@i915_selftest@live@hangcheck:
>     - shard-tglb:         [PASS][34] -> [DMESG-WARN][35] ([i915#5591])
>    [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-tglb1/igt@i915_selftest@live@hangcheck.html
>    [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-tglb1/igt@i915_selftest@live@hangcheck.html
> 
>   * igt@i915_suspend@forcewake:
>     - shard-kbl:          [PASS][36] -> [DMESG-WARN][37] ([i915#180]) +1 similar issue
>    [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-kbl3/igt@i915_suspend@forcewake.html
>    [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-kbl4/igt@i915_suspend@forcewake.html
> 
>   * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0:
>     - shard-iclb:         NOTRUN -> [SKIP][38] ([i915#5286])
>    [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb2/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0.html
> 
>   * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
>     - shard-skl:          NOTRUN -> [FAIL][39] ([i915#3743]) +1 similar issue
>    [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-skl2/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
> 
>   * igt@kms_big_fb@y-tiled-8bpp-rotate-90:
>     - shard-iclb:         NOTRUN -> [SKIP][40] ([fdo#110725] / [fdo#111614])
>    [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb2/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html
> 
>   * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
>     - shard-skl:          NOTRUN -> [FAIL][41] ([i915#3763])
>    [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-skl2/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
> 
>   * igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
>     - shard-apl:          NOTRUN -> [SKIP][42] ([fdo#109271] / [i915#3886])
>    [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl6/igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html
> 
>   * igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs:
>     - shard-skl:          NOTRUN -> [SKIP][43] ([fdo#109271] / [i915#3886]) +5 similar issues
>    [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-skl1/igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html
> 
>   * igt@kms_ccs@pipe-d-random-ccs-data-y_tiled_ccs:
>     - shard-iclb:         NOTRUN -> [SKIP][44] ([fdo#109278]) +3 similar issues
>    [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb2/igt@kms_ccs@pipe-d-random-ccs-data-y_tiled_ccs.html
> 
>   * igt@kms_chamelium@hdmi-crc-nonplanar-formats:
>     - shard-apl:          NOTRUN -> [SKIP][45] ([fdo#109271] / [fdo#111827]) +2 similar issues
>    [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl6/igt@kms_chamelium@hdmi-crc-nonplanar-formats.html
> 
>   * igt@kms_color@pipe-d-ctm-blue-to-red:
>     - shard-iclb:         NOTRUN -> [SKIP][46] ([fdo#109278] / [i915#1149])
>    [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb2/igt@kms_color@pipe-d-ctm-blue-to-red.html
> 
>   * igt@kms_color_chamelium@pipe-b-ctm-0-25:
>     - shard-skl:          NOTRUN -> [SKIP][47] ([fdo#109271] / [fdo#111827]) +11 similar issues
>    [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-skl9/igt@kms_color_chamelium@pipe-b-ctm-0-25.html
> 
>   * igt@kms_content_protection@lic:
>     - shard-apl:          NOTRUN -> [TIMEOUT][48] ([i915#1319])
>    [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl6/igt@kms_content_protection@lic.html
> 
>   * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy:
>     - shard-iclb:         NOTRUN -> [SKIP][49] ([fdo#109274] / [fdo#109278])
>    [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb2/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html
> 
>   * igt@kms_cursor_legacy@cursor-vs-flip-toggle:
>     - shard-iclb:         [PASS][50] -> [FAIL][51] ([i915#5072])
>    [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-iclb6/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html
>    [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb7/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html
> 
>   * igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a2:
>     - shard-glk:          [PASS][52] -> [FAIL][53] ([i915#79])
>    [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-glk3/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a2.html
>    [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-glk3/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a2.html
> 
>   * igt@kms_flip@flip-vs-suspend@a-dp1:
>     - shard-apl:          [PASS][54] -> [DMESG-WARN][55] ([i915#180]) +3 similar issues
>    [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-apl1/igt@kms_flip@flip-vs-suspend@a-dp1.html
>    [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl1/igt@kms_flip@flip-vs-suspend@a-dp1.html
> 
>   * igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt:
>     - shard-apl:          NOTRUN -> [SKIP][56] ([fdo#109271]) +31 similar issues
>    [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt.html
> 
>   * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render:
>     - shard-iclb:         NOTRUN -> [SKIP][57] ([fdo#109280])
>    [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb2/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render.html
> 
>   * igt@kms_hdr@bpc-switch-dpms@pipe-a-dp-1:
>     - shard-kbl:          [PASS][58] -> [FAIL][59] ([i915#1188])
>    [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-kbl1/igt@kms_hdr@bpc-switch-dpms@pipe-a-dp-1.html
>    [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-kbl7/igt@kms_hdr@bpc-switch-dpms@pipe-a-dp-1.html
> 
>   * igt@kms_pipe_crc_basic@read-crc-pipe-d-frame-sequence:
>     - shard-skl:          NOTRUN -> [SKIP][60] ([fdo#109271] / [i915#533]) +1 similar issue
>    [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-skl2/igt@kms_pipe_crc_basic@read-crc-pipe-d-frame-sequence.html
> 
>   * igt@kms_plane_alpha_blend@pipe-b-alpha-basic:
>     - shard-skl:          NOTRUN -> [FAIL][61] ([fdo#108145] / [i915#265])
>    [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-skl2/igt@kms_plane_alpha_blend@pipe-b-alpha-basic.html
> 
>   * igt@kms_psr2_sf@cursor-plane-move-continuous-sf:
>     - shard-skl:          NOTRUN -> [SKIP][62] ([fdo#109271] / [i915#658])
>    [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-skl9/igt@kms_psr2_sf@cursor-plane-move-continuous-sf.html
> 
>   * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area:
>     - shard-apl:          NOTRUN -> [SKIP][63] ([fdo#109271] / [i915#658])
>    [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl6/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html
> 
>   * igt@kms_psr@psr2_sprite_blt:
>     - shard-iclb:         [PASS][64] -> [SKIP][65] ([fdo#109441]) +1 similar issue
>    [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-iclb2/igt@kms_psr@psr2_sprite_blt.html
>    [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb1/igt@kms_psr@psr2_sprite_blt.html
> 
>   * igt@kms_rotation_crc@primary-4-tiled-reflect-x-180:
>     - shard-skl:          NOTRUN -> [SKIP][66] ([fdo#109271]) +127 similar issues
>    [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-skl9/igt@kms_rotation_crc@primary-4-tiled-reflect-x-180.html
> 
>   * igt@nouveau_crc@pipe-c-source-outp-inactive:
>     - shard-iclb:         NOTRUN -> [SKIP][67] ([i915#2530])
>    [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb2/igt@nouveau_crc@pipe-c-source-outp-inactive.html
> 
>   * igt@perf@polling-parameterized:
>     - shard-glk:          [PASS][68] -> [FAIL][69] ([i915#5639])
>    [68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-glk6/igt@perf@polling-parameterized.html
>    [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-glk9/igt@perf@polling-parameterized.html
> 
>   
> #### Possible fixes ####
> 
>   * igt@gem_ctx_persistence@many-contexts:
>     - shard-tglb:         [FAIL][70] ([i915#2410]) -> [PASS][71]
>    [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-tglb8/igt@gem_ctx_persistence@many-contexts.html
>    [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-tglb8/igt@gem_ctx_persistence@many-contexts.html
> 
>   * igt@gem_eio@unwedge-stress:
>     - shard-iclb:         [TIMEOUT][72] ([i915#3070]) -> [PASS][73]
>    [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-iclb8/igt@gem_eio@unwedge-stress.html
>    [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb6/igt@gem_eio@unwedge-stress.html
> 
>   * igt@gem_exec_balancer@parallel-contexts:
>     - shard-iclb:         [SKIP][74] ([i915#4525]) -> [PASS][75]
>    [74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-iclb5/igt@gem_exec_balancer@parallel-contexts.html
>    [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb4/igt@gem_exec_balancer@parallel-contexts.html
> 
>   * igt@gem_exec_fair@basic-none-share@rcs0:
>     - shard-glk:          [FAIL][76] ([i915#2842]) -> [PASS][77]
>    [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-glk1/igt@gem_exec_fair@basic-none-share@rcs0.html
>    [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-glk5/igt@gem_exec_fair@basic-none-share@rcs0.html
> 
>   * igt@gem_exec_fair@basic-none-solo@rcs0:
>     - shard-apl:          [FAIL][78] ([i915#2842]) -> [PASS][79]
>    [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-apl3/igt@gem_exec_fair@basic-none-solo@rcs0.html
>    [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl6/igt@gem_exec_fair@basic-none-solo@rcs0.html
> 
>   * igt@gem_exec_fair@basic-pace@bcs0:
>     - shard-tglb:         [FAIL][80] ([i915#2842]) -> [PASS][81]
>    [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-tglb1/igt@gem_exec_fair@basic-pace@bcs0.html
>    [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-tglb1/igt@gem_exec_fair@basic-pace@bcs0.html
> 
>   * igt@gem_exec_fair@basic-pace@vecs0:
>     - shard-kbl:          [FAIL][82] ([i915#2842]) -> [PASS][83] +1 similar issue
>    [82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-kbl1/igt@gem_exec_fair@basic-pace@vecs0.html
>    [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-kbl7/igt@gem_exec_fair@basic-pace@vecs0.html
> 
>   * igt@gem_exec_fair@basic-throttle@rcs0:
>     - shard-iclb:         [FAIL][84] ([i915#2849]) -> [PASS][85]
>    [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-iclb8/igt@gem_exec_fair@basic-throttle@rcs0.html
>    [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb7/igt@gem_exec_fair@basic-throttle@rcs0.html
> 
>   * igt@gem_exec_whisper@basic-queues-all:
>     - shard-glk:          [DMESG-WARN][86] ([i915#118]) -> [PASS][87]
>    [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-glk2/igt@gem_exec_whisper@basic-queues-all.html
>    [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-glk4/igt@gem_exec_whisper@basic-queues-all.html
> 
>   * igt@i915_selftest@live@hangcheck:
>     - shard-iclb:         [INCOMPLETE][88] -> [PASS][89]
>    [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-iclb1/igt@i915_selftest@live@hangcheck.html
>    [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb2/igt@i915_selftest@live@hangcheck.html
> 
>   * igt@i915_suspend@forcewake:
>     - shard-apl:          [DMESG-WARN][90] ([i915#180]) -> [PASS][91]
>    [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-apl6/igt@i915_suspend@forcewake.html
>    [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl6/igt@i915_suspend@forcewake.html
> 
>   * igt@kms_async_flips@alternate-sync-async-flip@pipe-a-edp-1:
>     - shard-skl:          [FAIL][92] ([i915#2521]) -> [PASS][93]
>    [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-skl1/igt@kms_async_flips@alternate-sync-async-flip@pipe-a-edp-1.html
>    [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-skl4/igt@kms_async_flips@alternate-sync-async-flip@pipe-a-edp-1.html
> 
>   * igt@kms_flip@2x-flip-vs-expired-vblank@bc-hdmi-a1-hdmi-a2:
>     - shard-glk:          [FAIL][94] ([i915#79]) -> [PASS][95]
>    [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-glk2/igt@kms_flip@2x-flip-vs-expired-vblank@bc-hdmi-a1-hdmi-a2.html
>    [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-glk4/igt@kms_flip@2x-flip-vs-expired-vblank@bc-hdmi-a1-hdmi-a2.html
> 
>   * igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a1:
>     - shard-glk:          [FAIL][96] ([i915#2122]) -> [PASS][97]
>    [96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-glk7/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a1.html
>    [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-glk3/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a1.html
> 
>   * igt@kms_flip@flip-vs-suspend@c-edp1:
>     - shard-skl:          [INCOMPLETE][98] ([i915#4839]) -> [PASS][99]
>    [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-skl6/igt@kms_flip@flip-vs-suspend@c-edp1.html
>    [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-skl4/igt@kms_flip@flip-vs-suspend@c-edp1.html
> 
>   * igt@kms_flip@plain-flip-ts-check@a-edp1:
>     - shard-skl:          [FAIL][100] ([i915#2122]) -> [PASS][101]
>    [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-skl4/igt@kms_flip@plain-flip-ts-check@a-edp1.html
>    [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-skl10/igt@kms_flip@plain-flip-ts-check@a-edp1.html
> 
>   * igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1:
>     - shard-kbl:          [FAIL][102] ([i915#1188]) -> [PASS][103]
>    [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-kbl1/igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1.html
>    [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-kbl7/igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1.html
> 
>   * igt@kms_psr@psr2_cursor_blt:
>     - shard-iclb:         [SKIP][104] ([fdo#109441]) -> [PASS][105] +2 similar issues
>    [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-iclb4/igt@kms_psr@psr2_cursor_blt.html
>    [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb2/igt@kms_psr@psr2_cursor_blt.html
> 
>   * igt@perf@polling-small-buf:
>     - shard-skl:          [FAIL][106] ([i915#1722]) -> [PASS][107]
>    [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-skl6/igt@perf@polling-small-buf.html
>    [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-skl7/igt@perf@polling-small-buf.html
> 
>   
> #### Warnings ####
> 
>   * igt@gem_exec_fair@basic-none-share@rcs0:
>     - shard-skl:          [SKIP][108] ([fdo#109271] / [i915#1888]) -> [SKIP][109] ([fdo#109271])
>    [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-skl7/igt@gem_exec_fair@basic-none-share@rcs0.html
>    [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-skl1/igt@gem_exec_fair@basic-none-share@rcs0.html
> 
>   * igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-fully-sf:
>     - shard-iclb:         [SKIP][110] ([i915#2920]) -> [SKIP][111] ([i915#658]) +1 similar issue
>    [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-iclb2/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-fully-sf.html
>    [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb6/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-fully-sf.html
> 
>   * igt@kms_psr2_sf@plane-move-sf-dmg-area:
>     - shard-iclb:         [SKIP][112] ([fdo#111068] / [i915#658]) -> [SKIP][113] ([i915#2920])
>    [112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-iclb3/igt@kms_psr2_sf@plane-move-sf-dmg-area.html
>    [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb2/igt@kms_psr2_sf@plane-move-sf-dmg-area.html
> 
>   * igt@kms_psr2_su@page_flip-nv12:
>     - shard-iclb:         [FAIL][114] ([i915#5939]) -> [SKIP][115] ([fdo#109642] / [fdo#111068] / [i915#658])
>    [114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-iclb2/igt@kms_psr2_su@page_flip-nv12.html
>    [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-iclb1/igt@kms_psr2_su@page_flip-nv12.html
> 
>   * igt@runner@aborted:
>     - shard-apl:          ([FAIL][116], [FAIL][117], [FAIL][118], [FAIL][119], [FAIL][120]) ([i915#180] / [i915#3002] / [i915#4312] / [i915#5257]) -> ([FAIL][121], [FAIL][122], [FAIL][123], [FAIL][124], [FAIL][125], [FAIL][126], [FAIL][127], [FAIL][128]) ([fdo#109271] / [i915#180] / [i915#3002] / [i915#4312] / [i915#5257])
>    [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-apl2/igt@runner@aborted.html
>    [117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-apl1/igt@runner@aborted.html
>    [118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-apl7/igt@runner@aborted.html
>    [119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-apl6/igt@runner@aborted.html
>    [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-apl6/igt@runner@aborted.html
>    [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl8/igt@runner@aborted.html
>    [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl4/igt@runner@aborted.html
>    [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl3/igt@runner@aborted.html
>    [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl1/igt@runner@aborted.html
>    [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl7/igt@runner@aborted.html
>    [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl1/igt@runner@aborted.html
>    [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl8/igt@runner@aborted.html
>    [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-apl6/igt@runner@aborted.html
>     - shard-kbl:          ([FAIL][129], [FAIL][130], [FAIL][131]) ([i915#3002] / [i915#4312] / [i915#5257]) -> ([FAIL][132], [FAIL][133], [FAIL][134], [FAIL][135], [FAIL][136]) ([i915#180] / [i915#3002] / [i915#4312] / [i915#5257])
>    [129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-kbl3/igt@runner@aborted.html
>    [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-kbl4/igt@runner@aborted.html
>    [131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11768/shard-kbl6/igt@runner@aborted.html
>    [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-kbl6/igt@runner@aborted.html
>    [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-kbl4/igt@runner@aborted.html
>    [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-kbl4/igt@runner@aborted.html
>    [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-kbl7/igt@runner@aborted.html
>    [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/shard-kbl4/igt@runner@aborted.html
> 
>   
>   {name}: This element is suppressed. This means it is ignored when computing
>           the status of the difference (SUCCESS, WARNING, or FAILURE).
> 
>   [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
>   [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
>   [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
>   [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
>   [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
>   [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
>   [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
>   [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
>   [fdo#110725]: https://bugs.freedesktop.org/show_bug.cgi?id=110725
>   [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
>   [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
>   [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
>   [i915#1149]: https://gitlab.freedesktop.org/drm/intel/issues/1149
>   [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
>   [i915#1188]: https://gitlab.freedesktop.org/drm/intel/issues/1188
>   [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
>   [i915#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722
>   [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
>   [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
>   [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
>   [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
>   [i915#2410]: https://gitlab.freedesktop.org/drm/intel/issues/2410
>   [i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521
>   [i915#2530]: https://gitlab.freedesktop.org/drm/intel/issues/2530
>   [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
>   [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
>   [i915#2849]: https://gitlab.freedesktop.org/drm/intel/issues/2849
>   [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
>   [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002
>   [i915#3063]: https://gitlab.freedesktop.org/drm/intel/issues/3063
>   [i915#3070]: https://gitlab.freedesktop.org/drm/intel/issues/3070
>   [i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
>   [i915#3371]: https://gitlab.freedesktop.org/drm/intel/issues/3371
>   [i915#3743]: https://gitlab.freedesktop.org/drm/intel/issues/3743
>   [i915#3763]: https://gitlab.freedesktop.org/drm/intel/issues/3763
>   [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
>   [i915#4275]: https://gitlab.freedesktop.org/drm/intel/issues/4275
>   [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
>   [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
>   [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
>   [i915#4839]: https://gitlab.freedesktop.org/drm/intel/issues/4839
>   [i915#5072]: https://gitlab.freedesktop.org/drm/intel/issues/5072
>   [i915#5257]: https://gitlab.freedesktop.org/drm/intel/issues/5257
>   [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
>   [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
>   [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
>   [i915#5591]: https://gitlab.freedesktop.org/drm/intel/issues/5591
>   [i915#5639]: https://gitlab.freedesktop.org/drm/intel/issues/5639
>   [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
>   [i915#5939]: https://gitlab.freedesktop.org/drm/intel/issues/5939
>   [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
>   [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
>   [i915#768]: https://gitlab.freedesktop.org/drm/intel/issues/768
>   [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
> 
> 
> Build changes
> -------------
> 
>   * Linux: CI_DRM_11768 -> Patchwork_104770v2
> 
>   CI-20190529: 20190529
>   CI_DRM_11768: 6da0a0872a9b44e2be9645c1d7045fe88e035c25 @ git://anongit.freedesktop.org/gfx-ci/linux
>   IGT_6533: 6b5107d91827962808441db6b98e478aa9e67bdb @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
>   Patchwork_104770v2: 6da0a0872a9b44e2be9645c1d7045fe88e035c25 @ git://anongit.freedesktop.org/gfx-ci/linux
>   piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
> 
> == Logs ==
> 
> For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_104770v2/index.html
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index d26dcca7e654..86f9f0be76a6 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -546,6 +546,7 @@  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))
@@ -657,6 +658,15 @@  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_msi:
@@ -680,11 +690,16 @@  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);
 
 	if (pdev->msi_enabled)
 		pci_disable_msi(pdev);
+
+	root_pdev = pcie_find_root_port(pdev);
+	if (root_pdev)
+		pci_d3cold_enable(root_pdev);
 }
 
 /**
@@ -1209,14 +1224,6 @@  static int i915_drm_suspend_late(struct drm_device *dev, bool hibernation)
 		goto out;
 	}
 
-	/*
-	 * 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.
-	 */
-	if (suspend_to_idle(dev_priv))
-		pci_d3cold_disable(pdev);
-
 	pci_disable_device(pdev);
 	/*
 	 * During hibernation on some platforms the BIOS may try to access
@@ -1381,8 +1388,6 @@  static int i915_drm_resume_early(struct drm_device *dev)
 
 	pci_set_master(pdev);
 
-	pci_d3cold_enable(pdev);
-
 	disable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
 
 	ret = vlv_resume_prepare(dev_priv, false);
@@ -1559,7 +1564,6 @@  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);
 	int ret;
 
 	if (drm_WARN_ON_ONCE(&dev_priv->drm, !HAS_RUNTIME_PM(dev_priv)))
@@ -1605,12 +1609,6 @@  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 and on s2idle cases.
-	 */
-	pci_d3cold_disable(pdev);
 	rpm->suspended = true;
 
 	/*
@@ -1649,7 +1647,6 @@  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);
 	int ret;
 
 	if (drm_WARN_ON_ONCE(&dev_priv->drm, !HAS_RUNTIME_PM(dev_priv)))
@@ -1662,7 +1659,6 @@  static int intel_runtime_resume(struct device *kdev)
 
 	intel_opregion_notify_adapter(dev_priv, PCI_D0);
 	rpm->suspended = false;
-	pci_d3cold_enable(pdev);
 	if (intel_uncore_unclaimed_mmio(&dev_priv->uncore))
 		drm_dbg(&dev_priv->drm,
 			"Unclaimed access during suspend, bios?\n");