intel-gfx.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/6] drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk
@ 2025-03-11 19:56 Ville Syrjala
  2025-03-11 19:56 ` [PATCH v2 1/6] drm/i915/pm: Simplify pm hook documentation Ville Syrjala
                   ` (9 more replies)
  0 siblings, 10 replies; 29+ messages in thread
From: Ville Syrjala @ 2025-03-11 19:56 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Attempt to make i915 rely more on the standard pci pm
code instead of hand rolling a bunch of
pci_save_state()+pci_set_power_state() stuff in the
driver.

v2: Drop the core pci changes for now since I couldn't
    get any real answers to them
    Drop some redundant pci_*() clals from the pm paths

Ville Syrjälä (6):
  drm/i915/pm: Simplify pm hook documentation
  drm/i915/pm: Hoist pci_save_state()+pci_set_power_state() to the end
    of pm _late() hook
  drm/i915/pm: Move the hibernate+D3 quirk stuff into noirq() pm hooks
  drm/i915/pm: Do pci_restore_state() in switcheroo resume hook
  drm/i915/pm: Allow drivers/pci to manage our pci state normally
  drm/i915/pm: Drop redundant pci stuff from suspend/resume paths

 drivers/gpu/drm/i915/i915_driver.c | 133 +++++++++++++++--------------
 1 file changed, 69 insertions(+), 64 deletions(-)

-- 
2.45.3


^ permalink raw reply	[flat|nested] 29+ messages in thread

* [PATCH v2 1/6] drm/i915/pm: Simplify pm hook documentation
  2025-03-11 19:56 [PATCH v2 0/6] drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk Ville Syrjala
@ 2025-03-11 19:56 ` Ville Syrjala
  2025-09-12 13:51   ` Hogander, Jouni
  2025-03-11 19:56 ` [PATCH v2 2/6] drm/i915/pm: Hoist pci_save_state()+pci_set_power_state() to the end of pm _late() hook Ville Syrjala
                   ` (8 subsequent siblings)
  9 siblings, 1 reply; 29+ messages in thread
From: Ville Syrjala @ 2025-03-11 19:56 UTC (permalink / raw)
  To: intel-gfx; +Cc: Rodrigo Vivi

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Stop spelling out each variant of the hook ("" vs. "_late" vs.
"_early") and just say eg. "@thaw*" to indicate all of them.
Avoids having to update the docs whenever we start/stop using
one of the variants.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_driver.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index ce3cc93ea211..be232caef9df 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -1664,18 +1664,18 @@ const struct dev_pm_ops i915_pm_ops = {
 
 	/*
 	 * S4 event handlers
-	 * @freeze, @freeze_late    : called (1) before creating the
-	 *                            hibernation image [PMSG_FREEZE] and
-	 *                            (2) after rebooting, before restoring
-	 *                            the image [PMSG_QUIESCE]
-	 * @thaw, @thaw_early       : called (1) after creating the hibernation
-	 *                            image, before writing it [PMSG_THAW]
-	 *                            and (2) after failing to create or
-	 *                            restore the image [PMSG_RECOVER]
-	 * @poweroff, @poweroff_late: called after writing the hibernation
-	 *                            image, before rebooting [PMSG_HIBERNATE]
-	 * @restore, @restore_early : called after rebooting and restoring the
-	 *                            hibernation image [PMSG_RESTORE]
+	 * @freeze*   : called (1) before creating the
+	 *              hibernation image [PMSG_FREEZE] and
+	 *              (2) after rebooting, before restoring
+	 *              the image [PMSG_QUIESCE]
+	 * @thaw*     : called (1) after creating the hibernation
+	 *              image, before writing it [PMSG_THAW]
+	 *              and (2) after failing to create or
+	 *              restore the image [PMSG_RECOVER]
+	 * @poweroff* : called after writing the hibernation
+	 *              image, before rebooting [PMSG_HIBERNATE]
+	 * @restore*  : called after rebooting and restoring the
+	 *              hibernation image [PMSG_RESTORE]
 	 */
 	.freeze = i915_pm_freeze,
 	.freeze_late = i915_pm_freeze_late,
-- 
2.45.3


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v2 2/6] drm/i915/pm: Hoist pci_save_state()+pci_set_power_state() to the end of pm _late() hook
  2025-03-11 19:56 [PATCH v2 0/6] drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk Ville Syrjala
  2025-03-11 19:56 ` [PATCH v2 1/6] drm/i915/pm: Simplify pm hook documentation Ville Syrjala
@ 2025-03-11 19:56 ` Ville Syrjala
  2025-03-15  0:51   ` Rodrigo Vivi
                     ` (2 more replies)
  2025-03-11 19:56 ` [PATCH v2 3/6] drm/i915/pm: Move the hibernate+D3 quirk stuff into noirq() pm hooks Ville Syrjala
                   ` (7 subsequent siblings)
  9 siblings, 3 replies; 29+ messages in thread
From: Ville Syrjala @ 2025-03-11 19:56 UTC (permalink / raw)
  To: intel-gfx; +Cc: Rodrigo Vivi

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

drivers/pci does the pci_save_state()+pci_set_power_state() from
the _noirq() pm hooks. Move our manual calls (needed for the
hibernate vs. D3 workaround with buggy BIOSes) towards that same
point. We currently have no _noirq() hooks, so end of _late()
hooks is the best we can do right now.

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_driver.c | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index be232caef9df..e06f2956382c 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -1045,7 +1045,6 @@ static int i915_drm_suspend(struct drm_device *dev)
 {
 	struct drm_i915_private *dev_priv = to_i915(dev);
 	struct intel_display *display = &dev_priv->display;
-	struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
 	pci_power_t opregion_target_state;
 
 	disable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
@@ -1059,8 +1058,6 @@ static int i915_drm_suspend(struct drm_device *dev)
 		intel_display_driver_disable_user_access(display);
 	}
 
-	pci_save_state(pdev);
-
 	intel_display_driver_suspend(display);
 
 	intel_irq_suspend(dev_priv);
@@ -1117,10 +1114,16 @@ static int i915_drm_suspend_late(struct drm_device *dev, bool hibernation)
 		drm_err(&dev_priv->drm, "Suspend complete failed: %d\n", ret);
 		intel_display_power_resume_early(display);
 
-		goto out;
+		goto fail;
 	}
 
+	enable_rpm_wakeref_asserts(rpm);
+
+	if (!dev_priv->uncore.user_forcewake_count)
+		intel_runtime_pm_driver_release(rpm);
+
 	pci_disable_device(pdev);
+
 	/*
 	 * During hibernation on some platforms the BIOS may try to access
 	 * the device even though it's already in D3 and hang the machine. So
@@ -1132,11 +1135,17 @@ static int i915_drm_suspend_late(struct drm_device *dev, bool hibernation)
 	 * Lenovo Thinkpad X301, X61s, X60, T60, X41
 	 * Fujitsu FSC S7110
 	 * Acer Aspire 1830T
+	 *
+	 * pci_save_state() prevents drivers/pci from
+	 * automagically putting the device into D3.
 	 */
+	pci_save_state(pdev);
 	if (!(hibernation && GRAPHICS_VER(dev_priv) < 6))
 		pci_set_power_state(pdev, PCI_D3hot);
 
-out:
+	return 0;
+
+fail:
 	enable_rpm_wakeref_asserts(rpm);
 	if (!dev_priv->uncore.user_forcewake_count)
 		intel_runtime_pm_driver_release(rpm);
-- 
2.45.3


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v2 3/6] drm/i915/pm: Move the hibernate+D3 quirk stuff into noirq() pm hooks
  2025-03-11 19:56 [PATCH v2 0/6] drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk Ville Syrjala
  2025-03-11 19:56 ` [PATCH v2 1/6] drm/i915/pm: Simplify pm hook documentation Ville Syrjala
  2025-03-11 19:56 ` [PATCH v2 2/6] drm/i915/pm: Hoist pci_save_state()+pci_set_power_state() to the end of pm _late() hook Ville Syrjala
@ 2025-03-11 19:56 ` Ville Syrjala
  2025-09-12 13:52   ` Hogander, Jouni
  2025-03-11 19:56 ` [PATCH v2 4/6] drm/i915/pm: Do pci_restore_state() in switcheroo resume hook Ville Syrjala
                   ` (6 subsequent siblings)
  9 siblings, 1 reply; 29+ messages in thread
From: Ville Syrjala @ 2025-03-11 19:56 UTC (permalink / raw)
  To: intel-gfx; +Cc: Rodrigo Vivi

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

If the driver doesn't call pci_save_state() drivers/pci will
normally save+power manage the device from the _noirq() pm hooks.

We can't let that happen as some old BIOSes fail to hibernate
when the device is in D3. However, we can get very close to
the standard behaviour by doing our explicit pci_save_state()
and pci_set_power_state() stuff from driver provided _noirq()
hooks.

This results in a change of behaviour where we no longer go
into D3 at the end of freeze_late, so when it comes time
to thaw() we'll already be in D0, and thus we can drop the
explicit pci_set_power_state(D0) call.

Presumably switcheroo suspend will want to go into D3 so
call the _noirq() stuff from the switcheroo suspend hook,
and since we dropped the pci_set_power_state(D0) from
resume_early() we'll need to add one back into the
switcheroo resume hook.

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_driver.c | 76 ++++++++++++++++++++----------
 1 file changed, 51 insertions(+), 25 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index e06f2956382c..995205e24ebf 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -1124,6 +1124,21 @@ static int i915_drm_suspend_late(struct drm_device *dev, bool hibernation)
 
 	pci_disable_device(pdev);
 
+	return 0;
+
+fail:
+	enable_rpm_wakeref_asserts(rpm);
+	if (!dev_priv->uncore.user_forcewake_count)
+		intel_runtime_pm_driver_release(rpm);
+
+	return ret;
+}
+
+static int i915_drm_suspend_noirq(struct drm_device *dev, bool hibernation)
+{
+	struct drm_i915_private *dev_priv = to_i915(dev);
+	struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
+
 	/*
 	 * During hibernation on some platforms the BIOS may try to access
 	 * the device even though it's already in D3 and hang the machine. So
@@ -1144,13 +1159,6 @@ static int i915_drm_suspend_late(struct drm_device *dev, bool hibernation)
 		pci_set_power_state(pdev, PCI_D3hot);
 
 	return 0;
-
-fail:
-	enable_rpm_wakeref_asserts(rpm);
-	if (!dev_priv->uncore.user_forcewake_count)
-		intel_runtime_pm_driver_release(rpm);
-
-	return ret;
 }
 
 int i915_driver_suspend_switcheroo(struct drm_i915_private *i915,
@@ -1169,7 +1177,15 @@ int i915_driver_suspend_switcheroo(struct drm_i915_private *i915,
 	if (error)
 		return error;
 
-	return i915_drm_suspend_late(&i915->drm, false);
+	error = i915_drm_suspend_late(&i915->drm, false);
+	if (error)
+		return error;
+
+	error = i915_drm_suspend_noirq(&i915->drm, false);
+	if (error)
+		return error;
+
+	return 0;
 }
 
 static int i915_drm_resume(struct drm_device *dev)
@@ -1277,23 +1293,6 @@ static int i915_drm_resume_early(struct drm_device *dev)
 	 * similar so that power domains can be employed.
 	 */
 
-	/*
-	 * Note that we need to set the power state explicitly, since we
-	 * powered off the device during freeze and the PCI core won't power
-	 * it back up for us during thaw. Powering off the device during
-	 * freeze is not a hard requirement though, and during the
-	 * suspend/resume phases the PCI core makes sure we get here with the
-	 * device powered on. So in case we change our freeze logic and keep
-	 * the device powered we can also remove the following set power state
-	 * call.
-	 */
-	ret = pci_set_power_state(pdev, PCI_D0);
-	if (ret) {
-		drm_err(&dev_priv->drm,
-			"failed to set PCI D0 power state (%d)\n", ret);
-		return ret;
-	}
-
 	/*
 	 * Note that pci_enable_device() first enables any parent bridge
 	 * device and only then sets the power state for this device. The
@@ -1331,11 +1330,16 @@ static int i915_drm_resume_early(struct drm_device *dev)
 
 int i915_driver_resume_switcheroo(struct drm_i915_private *i915)
 {
+	struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
 	int ret;
 
 	if (i915->drm.switch_power_state == DRM_SWITCH_POWER_OFF)
 		return 0;
 
+	ret = pci_set_power_state(pdev, PCI_D0);
+	if (ret)
+		return ret;
+
 	ret = i915_drm_resume_early(&i915->drm);
 	if (ret)
 		return ret;
@@ -1392,6 +1396,16 @@ static int i915_pm_suspend_late(struct device *kdev)
 	return i915_drm_suspend_late(&i915->drm, false);
 }
 
+static int i915_pm_suspend_noirq(struct device *kdev)
+{
+	struct drm_i915_private *i915 = kdev_to_i915(kdev);
+
+	if (i915->drm.switch_power_state == DRM_SWITCH_POWER_OFF)
+		return 0;
+
+	return i915_drm_suspend_noirq(&i915->drm, false);
+}
+
 static int i915_pm_poweroff_late(struct device *kdev)
 {
 	struct drm_i915_private *i915 = kdev_to_i915(kdev);
@@ -1402,6 +1416,16 @@ static int i915_pm_poweroff_late(struct device *kdev)
 	return i915_drm_suspend_late(&i915->drm, true);
 }
 
+static int i915_pm_poweroff_noirq(struct device *kdev)
+{
+	struct drm_i915_private *i915 = kdev_to_i915(kdev);
+
+	if (i915->drm.switch_power_state == DRM_SWITCH_POWER_OFF)
+		return 0;
+
+	return i915_drm_suspend_noirq(&i915->drm, true);
+}
+
 static int i915_pm_resume_early(struct device *kdev)
 {
 	struct drm_i915_private *i915 = kdev_to_i915(kdev);
@@ -1667,6 +1691,7 @@ const struct dev_pm_ops i915_pm_ops = {
 	.prepare = i915_pm_prepare,
 	.suspend = i915_pm_suspend,
 	.suspend_late = i915_pm_suspend_late,
+	.suspend_noirq = i915_pm_suspend_noirq,
 	.resume_early = i915_pm_resume_early,
 	.resume = i915_pm_resume,
 	.complete = i915_pm_complete,
@@ -1692,6 +1717,7 @@ const struct dev_pm_ops i915_pm_ops = {
 	.thaw = i915_pm_thaw,
 	.poweroff = i915_pm_suspend,
 	.poweroff_late = i915_pm_poweroff_late,
+	.poweroff_noirq = i915_pm_poweroff_noirq,
 	.restore_early = i915_pm_restore_early,
 	.restore = i915_pm_restore,
 
-- 
2.45.3


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v2 4/6] drm/i915/pm: Do pci_restore_state() in switcheroo resume hook
  2025-03-11 19:56 [PATCH v2 0/6] drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk Ville Syrjala
                   ` (2 preceding siblings ...)
  2025-03-11 19:56 ` [PATCH v2 3/6] drm/i915/pm: Move the hibernate+D3 quirk stuff into noirq() pm hooks Ville Syrjala
@ 2025-03-11 19:56 ` Ville Syrjala
  2025-03-15  0:55   ` Rodrigo Vivi
  2025-09-12 13:53   ` Hogander, Jouni
  2025-03-11 19:56 ` [PATCH v2 5/6] drm/i915/pm: Allow drivers/pci to manage our pci state normally Ville Syrjala
                   ` (5 subsequent siblings)
  9 siblings, 2 replies; 29+ messages in thread
From: Ville Syrjala @ 2025-03-11 19:56 UTC (permalink / raw)
  To: intel-gfx; +Cc: Rodrigo Vivi

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Since this switcheroo garbage bypasses all the core pm we
have to manually manage the pci state. To that end add the
missing pci_restore_state() to the switcheroo resume hook.
We already have the pci_save_state() counterpart on the
suspend side.

Arguably none of this code should exist in the driver
in the first place, and instead the entire switcheroo
mechanism should be rewritten and properly integrated into
core pm code...

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_driver.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index 995205e24ebf..a199e21c7bb4 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -1340,6 +1340,8 @@ int i915_driver_resume_switcheroo(struct drm_i915_private *i915)
 	if (ret)
 		return ret;
 
+	pci_restore_state(pdev);
+
 	ret = i915_drm_resume_early(&i915->drm);
 	if (ret)
 		return ret;
-- 
2.45.3


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v2 5/6] drm/i915/pm: Allow drivers/pci to manage our pci state normally
  2025-03-11 19:56 [PATCH v2 0/6] drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk Ville Syrjala
                   ` (3 preceding siblings ...)
  2025-03-11 19:56 ` [PATCH v2 4/6] drm/i915/pm: Do pci_restore_state() in switcheroo resume hook Ville Syrjala
@ 2025-03-11 19:56 ` Ville Syrjala
  2025-03-15  0:56   ` Rodrigo Vivi
  2025-09-12 13:53   ` Hogander, Jouni
  2025-03-11 19:56 ` [PATCH v2 6/6] drm/i915/pm: Drop redundant pci stuff from suspend/resume paths Ville Syrjala
                   ` (4 subsequent siblings)
  9 siblings, 2 replies; 29+ messages in thread
From: Ville Syrjala @ 2025-03-11 19:56 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Stop doing the pci_save_state(), except when we need to prevent
D3 due to BIOS bugs, so that the code in drivers/pci is allowed
to manage the state of the PCI device. Less chance something
getting left by the wayside by i915 if/when the things change in
drivers/pci.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_driver.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index a199e21c7bb4..503f1b6b694f 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -1154,9 +1154,8 @@ static int i915_drm_suspend_noirq(struct drm_device *dev, bool hibernation)
 	 * pci_save_state() prevents drivers/pci from
 	 * automagically putting the device into D3.
 	 */
-	pci_save_state(pdev);
-	if (!(hibernation && GRAPHICS_VER(dev_priv) < 6))
-		pci_set_power_state(pdev, PCI_D3hot);
+	if (hibernation && GRAPHICS_VER(dev_priv) < 6)
+		pci_save_state(pdev);
 
 	return 0;
 }
@@ -1164,6 +1163,7 @@ static int i915_drm_suspend_noirq(struct drm_device *dev, bool hibernation)
 int i915_driver_suspend_switcheroo(struct drm_i915_private *i915,
 				   pm_message_t state)
 {
+	struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
 	int error;
 
 	if (drm_WARN_ON_ONCE(&i915->drm, state.event != PM_EVENT_SUSPEND &&
@@ -1181,9 +1181,8 @@ int i915_driver_suspend_switcheroo(struct drm_i915_private *i915,
 	if (error)
 		return error;
 
-	error = i915_drm_suspend_noirq(&i915->drm, false);
-	if (error)
-		return error;
+	pci_save_state(pdev);
+	pci_set_power_state(pdev, PCI_D3hot);
 
 	return 0;
 }
-- 
2.45.3


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v2 6/6] drm/i915/pm: Drop redundant pci stuff from suspend/resume paths
  2025-03-11 19:56 [PATCH v2 0/6] drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk Ville Syrjala
                   ` (4 preceding siblings ...)
  2025-03-11 19:56 ` [PATCH v2 5/6] drm/i915/pm: Allow drivers/pci to manage our pci state normally Ville Syrjala
@ 2025-03-11 19:56 ` Ville Syrjala
  2025-03-15  1:00   ` Rodrigo Vivi
                     ` (2 more replies)
  2025-03-11 23:15 ` ✗ i915.CI.BAT: failure for drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev2) Patchwork
                   ` (3 subsequent siblings)
  9 siblings, 3 replies; 29+ messages in thread
From: Ville Syrjala @ 2025-03-11 19:56 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

I don't think there should be any need for us to call any of
pci_enable_device(), pci_disable_device() or pci_set_master()
from the suspend/resume paths. The config space save/restore should
take care of all of this.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_driver.c | 31 ------------------------------
 1 file changed, 31 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index 503f1b6b694f..d3d1b2d082dd 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -1092,7 +1092,6 @@ static int i915_drm_suspend_late(struct drm_device *dev, bool hibernation)
 {
 	struct drm_i915_private *dev_priv = to_i915(dev);
 	struct intel_display *display = &dev_priv->display;
-	struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
 	struct intel_runtime_pm *rpm = &dev_priv->runtime_pm;
 	struct intel_gt *gt;
 	int ret, i;
@@ -1113,21 +1112,10 @@ static int i915_drm_suspend_late(struct drm_device *dev, bool hibernation)
 	if (ret) {
 		drm_err(&dev_priv->drm, "Suspend complete failed: %d\n", ret);
 		intel_display_power_resume_early(display);
-
-		goto fail;
 	}
 
 	enable_rpm_wakeref_asserts(rpm);
 
-	if (!dev_priv->uncore.user_forcewake_count)
-		intel_runtime_pm_driver_release(rpm);
-
-	pci_disable_device(pdev);
-
-	return 0;
-
-fail:
-	enable_rpm_wakeref_asserts(rpm);
 	if (!dev_priv->uncore.user_forcewake_count)
 		intel_runtime_pm_driver_release(rpm);
 
@@ -1278,7 +1266,6 @@ static int i915_drm_resume_early(struct drm_device *dev)
 {
 	struct drm_i915_private *dev_priv = to_i915(dev);
 	struct intel_display *display = &dev_priv->display;
-	struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
 	struct intel_gt *gt;
 	int ret, i;
 
@@ -1292,24 +1279,6 @@ static int i915_drm_resume_early(struct drm_device *dev)
 	 * similar so that power domains can be employed.
 	 */
 
-	/*
-	 * Note that pci_enable_device() first enables any parent bridge
-	 * device and only then sets the power state for this device. The
-	 * bridge enabling is a nop though, since bridge devices are resumed
-	 * first. The order of enabling power and enabling the device is
-	 * imposed by the PCI core as described above, so here we preserve the
-	 * same order for the freeze/thaw phases.
-	 *
-	 * TODO: eventually we should remove pci_disable_device() /
-	 * pci_enable_enable_device() from suspend/resume. Due to how they
-	 * depend on the device enable refcount we can't anyway depend on them
-	 * disabling/enabling the device.
-	 */
-	if (pci_enable_device(pdev))
-		return -EIO;
-
-	pci_set_master(pdev);
-
 	disable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
 
 	ret = vlv_resume_prepare(dev_priv, false);
-- 
2.45.3


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* ✗ i915.CI.BAT: failure for drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev2)
  2025-03-11 19:56 [PATCH v2 0/6] drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk Ville Syrjala
                   ` (5 preceding siblings ...)
  2025-03-11 19:56 ` [PATCH v2 6/6] drm/i915/pm: Drop redundant pci stuff from suspend/resume paths Ville Syrjala
@ 2025-03-11 23:15 ` Patchwork
  2025-03-12  9:52   ` Ville Syrjälä
  2025-04-25 18:08 ` ✗ Fi.CI.BUILD: warning for drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev3) Patchwork
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 29+ messages in thread
From: Patchwork @ 2025-03-11 23:15 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 13095 bytes --]

== Series Details ==

Series: drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev2)
URL   : https://patchwork.freedesktop.org/series/139097/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_16265 -> Patchwork_139097v2
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_139097v2 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_139097v2, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/index.html

Participating hosts (44 -> 42)
------------------------------

  Missing    (2): bat-arlh-2 fi-snb-2520m 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_139097v2:

### IGT changes ###

#### Possible regressions ####

  * igt@debugfs_test@read_all_entries:
    - bat-twl-1:          [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16265/bat-twl-1/igt@debugfs_test@read_all_entries.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-twl-1/igt@debugfs_test@read_all_entries.html

  * igt@i915_pm_rpm@module-reload:
    - bat-adls-6:         NOTRUN -> [FAIL][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-adls-6/igt@i915_pm_rpm@module-reload.html
    - fi-tgl-1115g4:      [PASS][4] -> [FAIL][5]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16265/fi-tgl-1115g4/igt@i915_pm_rpm@module-reload.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-tgl-1115g4/igt@i915_pm_rpm@module-reload.html

  * igt@kms_addfb_basic@too-high:
    - fi-kbl-8809g:       NOTRUN -> [FAIL][6] +3 other tests fail
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-kbl-8809g/igt@kms_addfb_basic@too-high.html

  * igt@kms_force_connector_basic@force-connector-state:
    - fi-kbl-8809g:       NOTRUN -> [DMESG-WARN][7]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-kbl-8809g/igt@kms_force_connector_basic@force-connector-state.html

  * igt@kms_force_connector_basic@force-edid:
    - fi-kbl-8809g:       NOTRUN -> [DMESG-FAIL][8]
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-kbl-8809g/igt@kms_force_connector_basic@force-edid.html

  
Known issues
------------

  Here are the changes found in Patchwork_139097v2 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@core_auth@basic-auth:
    - fi-kbl-8809g:       NOTRUN -> [DMESG-WARN][9] ([i915#10462]) +1 other test dmesg-warn
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-kbl-8809g/igt@core_auth@basic-auth.html

  * igt@debugfs_test@basic-hwmon:
    - bat-twl-2:          NOTRUN -> [SKIP][10] ([i915#9318])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-twl-2/igt@debugfs_test@basic-hwmon.html

  * igt@dmabuf@all-tests:
    - fi-pnv-d510:        NOTRUN -> [INCOMPLETE][11] ([i915#12904]) +1 other test incomplete
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-pnv-d510/igt@dmabuf@all-tests.html
    - bat-apl-1:          NOTRUN -> [INCOMPLETE][12] ([i915#12904]) +1 other test incomplete
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-apl-1/igt@dmabuf@all-tests.html

  * igt@fbdev@info:
    - fi-kbl-8809g:       NOTRUN -> [SKIP][13] ([i915#1849])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-kbl-8809g/igt@fbdev@info.html

  * igt@gem_huc_copy@huc-copy:
    - fi-kbl-8809g:       NOTRUN -> [SKIP][14] ([i915#2190])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-kbl-8809g/igt@gem_huc_copy@huc-copy.html
    - fi-skl-6600u:       NOTRUN -> [SKIP][15] ([i915#2190])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-skl-6600u/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@basic:
    - bat-twl-2:          NOTRUN -> [SKIP][16] ([i915#10213] / [i915#11671]) +3 other tests skip
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-twl-2/igt@gem_lmem_swapping@basic.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - bat-adls-6:         NOTRUN -> [SKIP][17] ([i915#4613]) +3 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-adls-6/igt@gem_lmem_swapping@parallel-random-engines.html
    - fi-kbl-8809g:       NOTRUN -> [SKIP][18] ([i915#4613]) +3 other tests skip
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-kbl-8809g/igt@gem_lmem_swapping@parallel-random-engines.html
    - bat-apl-1:          NOTRUN -> [SKIP][19] +3 other tests skip
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-apl-1/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@gem_lmem_swapping@random-engines:
    - fi-skl-6600u:       NOTRUN -> [SKIP][20] ([i915#4613]) +3 other tests skip
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-skl-6600u/igt@gem_lmem_swapping@random-engines.html

  * igt@gem_tiled_pread_basic:
    - bat-twl-2:          NOTRUN -> [SKIP][21] ([i915#11031])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-twl-2/igt@gem_tiled_pread_basic.html

  * igt@i915_pm_rps@basic-api:
    - bat-twl-2:          NOTRUN -> [SKIP][22] ([i915#10209] / [i915#11681])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-twl-2/igt@i915_pm_rps@basic-api.html

  * igt@i915_selftest@live@active:
    - fi-bsw-nick:        [PASS][23] -> [DMESG-FAIL][24] ([i915#12435]) +1 other test dmesg-fail
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16265/fi-bsw-nick/igt@i915_selftest@live@active.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-bsw-nick/igt@i915_selftest@live@active.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - bat-twl-2:          NOTRUN -> [SKIP][25] ([i915#11030] / [i915#11731]) +1 other test skip
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-twl-2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_dsc@dsc-basic:
    - fi-kbl-8809g:       NOTRUN -> [SKIP][26] +62 other tests skip
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-kbl-8809g/igt@kms_dsc@dsc-basic.html
    - fi-skl-6600u:       NOTRUN -> [SKIP][27] +10 other tests skip
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-skl-6600u/igt@kms_dsc@dsc-basic.html
    - bat-twl-2:          NOTRUN -> [SKIP][28] ([i915#9886])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-twl-2/igt@kms_dsc@dsc-basic.html

  * igt@kms_force_connector_basic@force-load-detect:
    - bat-twl-2:          NOTRUN -> [SKIP][29] ([i915#11032])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-twl-2/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence:
    - bat-dg2-11:         [PASS][30] -> [SKIP][31] ([i915#9197]) +3 other tests skip
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16265/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html

  * igt@kms_psr@psr-primary-mmap-gtt:
    - fi-pnv-d510:        NOTRUN -> [SKIP][32] +33 other tests skip
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-pnv-d510/igt@kms_psr@psr-primary-mmap-gtt.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - bat-twl-2:          NOTRUN -> [SKIP][33] ([i915#8809])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-twl-2/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@prime_vgem@basic-fence-read:
    - bat-twl-2:          NOTRUN -> [SKIP][34] ([i915#10212] / [i915#3708])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-twl-2/igt@prime_vgem@basic-fence-read.html

  * igt@prime_vgem@basic-read:
    - bat-twl-2:          NOTRUN -> [SKIP][35] ([i915#10214] / [i915#3708])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-twl-2/igt@prime_vgem@basic-read.html

  * igt@prime_vgem@basic-write:
    - bat-twl-2:          NOTRUN -> [SKIP][36] ([i915#10216] / [i915#3708])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-twl-2/igt@prime_vgem@basic-write.html

  
#### Possible fixes ####

  * igt@core_hotunplug@unbind-rebind:
    - bat-adls-6:         [ABORT][37] ([i915#13571]) -> [PASS][38]
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16265/bat-adls-6/igt@core_hotunplug@unbind-rebind.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-adls-6/igt@core_hotunplug@unbind-rebind.html

  * igt@i915_selftest@live:
    - bat-mtlp-8:         [DMESG-FAIL][39] ([i915#12061]) -> [PASS][40] +1 other test pass
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16265/bat-mtlp-8/igt@i915_selftest@live.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-mtlp-8/igt@i915_selftest@live.html
    - fi-bsw-n3050:       [DMESG-FAIL][41] ([i915#12435]) -> [PASS][42] +1 other test pass
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16265/fi-bsw-n3050/igt@i915_selftest@live.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-bsw-n3050/igt@i915_selftest@live.html

  * igt@i915_selftest@live@workarounds:
    - bat-mtlp-9:         [DMESG-FAIL][43] ([i915#12061]) -> [PASS][44] +1 other test pass
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16265/bat-mtlp-9/igt@i915_selftest@live@workarounds.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-mtlp-9/igt@i915_selftest@live@workarounds.html
    - bat-arls-6:         [DMESG-FAIL][45] ([i915#12061]) -> [PASS][46] +1 other test pass
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16265/bat-arls-6/igt@i915_selftest@live@workarounds.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-arls-6/igt@i915_selftest@live@workarounds.html

  * igt@vgem_basic@unload:
    - bat-apl-1:          [ABORT][47] -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16265/bat-apl-1/igt@vgem_basic@unload.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/bat-apl-1/igt@vgem_basic@unload.html

  
  [i915#10209]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10209
  [i915#10212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10212
  [i915#10213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10213
  [i915#10214]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10214
  [i915#10216]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10216
  [i915#10462]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10462
  [i915#11030]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11030
  [i915#11031]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11031
  [i915#11032]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11032
  [i915#11671]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11671
  [i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
  [i915#11731]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11731
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
  [i915#12435]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12435
  [i915#12904]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12904
  [i915#13571]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13571
  [i915#1849]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1849
  [i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
  [i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
  [i915#8809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8809
  [i915#9197]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9197
  [i915#9318]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9318
  [i915#9886]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9886


Build changes
-------------

  * Linux: CI_DRM_16265 -> Patchwork_139097v2

  CI-20190529: 20190529
  CI_DRM_16265: eb17816e52395a403aa0b447aa0befa9d2f86dd5 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8270: 49751c5c11723262ec66e564c76503f74a9fa831 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_139097v2: eb17816e52395a403aa0b447aa0befa9d2f86dd5 @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/index.html

[-- Attachment #2: Type: text/html, Size: 15152 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ✗ i915.CI.BAT: failure for drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev2)
  2025-03-11 23:15 ` ✗ i915.CI.BAT: failure for drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev2) Patchwork
@ 2025-03-12  9:52   ` Ville Syrjälä
  2025-03-12 10:05     ` Saarinen, Jani
  0 siblings, 1 reply; 29+ messages in thread
From: Ville Syrjälä @ 2025-03-12  9:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: I915-ci-infra

On Tue, Mar 11, 2025 at 11:15:53PM -0000, Patchwork wrote:
> == Series Details ==
> 
> Series: drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev2)
> URL   : https://patchwork.freedesktop.org/series/139097/
> State : failure
> 
> == Summary ==
> 
> #### Possible regressions ####
>   * igt@kms_addfb_basic@too-high:
>     - fi-kbl-8809g:       NOTRUN -> [FAIL][6] +3 other tests fail
>    [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-kbl-8809g/igt@kms_addfb_basic@too-high.html

A bunch of stuff seems to have broken in CI:
- something is now loading amdgpu when we didn't want it loaded
- the full dmesg has been lost so I can't even find out when amdgpu
  got loaded

-- 
Ville Syrjälä
Intel

^ permalink raw reply	[flat|nested] 29+ messages in thread

* RE: ✗ i915.CI.BAT: failure for drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev2)
  2025-03-12  9:52   ` Ville Syrjälä
@ 2025-03-12 10:05     ` Saarinen, Jani
  2025-03-12 10:07       ` Saarinen, Jani
  2025-03-12 12:06       ` Knop, Ryszard
  0 siblings, 2 replies; 29+ messages in thread
From: Saarinen, Jani @ 2025-03-12 10:05 UTC (permalink / raw)
  To: Ville Syrjälä, intel-gfx@lists.freedesktop.org,
	I915-ci-infra@lists.freedesktop.org

Hi, 
> -----Original Message-----
> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Ville
> Syrjälä
> Sent: Wednesday, 12 March 2025 11.53
> To: intel-gfx@lists.freedesktop.org
> Cc: I915-ci-infra@lists.freedesktop.org
> Subject: Re: ✗ i915.CI.BAT: failure for drm/i915/pm: Clean up the hibernate
> vs. PCI D3 quirk (rev2)
> 
> On Tue, Mar 11, 2025 at 11:15:53PM -0000, Patchwork wrote:
> > == Series Details ==
> >
> > Series: drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev2)
> > URL   : https://patchwork.freedesktop.org/series/139097/
> > State : failure
> >
> > == Summary ==
> >
> > #### Possible regressions ####
> >   * igt@kms_addfb_basic@too-high:
> >     - fi-kbl-8809g:       NOTRUN -> [FAIL][6] +3 other tests fail
> >    [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-kbl-
> 8809g/igt@kms_addfb_basic@too-high.html
> 
> A bunch of stuff seems to have broken in CI:
> - something is now loading amdgpu when we didn't want it loaded
On boot I see 
<6>[    0.000000] Command line: BOOT_IMAGE=/boot/drm_intel root=/dev/nvme0n1p2 rootwait fsck.repair=yes nmi_watchdog=panic,auto panic=5 softdog.soft_panic=5 log_buf_len=1M trace_clock=global xe.force_probe=* i915.force_probe=* drm.debug=0xe modprobe.blacklist=xe,i915,ast modprobe.blacklist=amdgpu ro

Is that not enough? 

> - the full dmesg has been lost so I can't even find out when amdgpu  got loaded
CI team, can you get all logs transferred ? 
On digging internally I see from dmesg (start from that file) 

<7>[   39.365629] [IGT] i915_module_load: executing
<7>[   39.373992] [IGT] i915_module_load: starting subtest load
<7>[   39.376091] [IGT] i915_module_load: finished subtest load, SKIP
<7>[   39.376197] [IGT] i915_module_load: exiting, ret=77
<7>[   39.551743] [IGT] core_auth: executing
<6>[   42.196892] [drm] amdgpu kernel modesetting enabled.
<7>[   42.197065] [drm:amdgpu_acpi_detect [amdgpu]] No matching acpi device found for AMD3000
<6>[   42.198069] amdgpu: Virtual CRAT table created for CPU
<6>[   42.198933] amdgpu: Topology: Add CPU node
<6>[   42.200595] amdgpu 0000:01:00.0: enabling device (0006 -> 0007)
<6>[   42.201352] [drm] initializing kernel modesetting (VEGAM 0x1002:0x694C 0x8086:0x2073 0xC0).
<6>[   42.201418] [drm] register mmio base: 0xDB500000
<6>[   42.201420] [drm] register mmio size: 262144
<6>[   42.202307] amdgpu 0000:01:00.0: amdgpu: detected ip block number 0 <vi_common>
<6>[   42.202311] amdgpu 0000:01:00.0: amdgpu: detected ip block number 1 <gmc_v8_0>
<6>[   42.202314] amdgpu 0000:01:00.0: amdgpu: detected ip block number 2 <tonga_ih>
<6>[   42.202316] amdgpu 0000:01:00.0: amdgpu: detected ip block number 3 <gfx_v8_0>
<6>[   42.202318] amdgpu 0000:01:00.0: amdgpu: detected ip block number 4 <sdma_v3_0>
<6>[   42.202321] amdgpu 0000:01:00.0: amdgpu: detected ip block number 5 <powerplay>
<6>[   42.202323] amdgpu 0000:01:00.0: amdgpu: detected ip block number 6 <dm>
<6>[   42.202325] amdgpu 0000:01:00.0: amdgpu: detected ip block number 7 <uvd_v6_0>
<6>[   42.202327] amdgpu 0000:01:00.0: amdgpu: detected ip block number 8 <vce_v3_0>
<6>[   42.202427] amdgpu 0000:01:00.0: amdgpu: Fetched VBIOS from VFCT
<6>[   42.202449] amdgpu: ATOM BIOS: 408435.180301.04s
<6>[   42.228348] [drm] UVD is enabled in VM mode
<6>[   42.228353] [drm] UVD ENC is enabled in VM mode
<6>[   42.228356] [drm] VCE enabled in VM mode
<6>[   42.228734] amdgpu 0000:01:00.0: vgaarb: deactivate vga console

> 
> --
> Ville Syrjälä
> Intel

^ permalink raw reply	[flat|nested] 29+ messages in thread

* RE: ✗ i915.CI.BAT: failure for drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev2)
  2025-03-12 10:05     ` Saarinen, Jani
@ 2025-03-12 10:07       ` Saarinen, Jani
  2025-03-12 11:53         ` Saarinen, Jani
  2025-03-12 12:06       ` Knop, Ryszard
  1 sibling, 1 reply; 29+ messages in thread
From: Saarinen, Jani @ 2025-03-12 10:07 UTC (permalink / raw)
  To: Ville Syrjälä, intel-gfx@lists.freedesktop.org,
	I915-ci-infra@lists.freedesktop.org

Hi, 


> -----Original Message-----
> From: Saarinen, Jani
> Sent: Wednesday, 12 March 2025 12.06
> To: Ville Syrjälä <ville.syrjala@linux.intel.com>; intel-gfx@lists.freedesktop.org;
> I915-ci-infra@lists.freedesktop.org
> Subject: RE: ✗ i915.CI.BAT: failure for drm/i915/pm: Clean up the hibernate
> vs. PCI D3 quirk (rev2)
> 
> Hi,
> > -----Original Message-----
> > From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of
> > Ville Syrjälä
> > Sent: Wednesday, 12 March 2025 11.53
> > To: intel-gfx@lists.freedesktop.org
> > Cc: I915-ci-infra@lists.freedesktop.org
> > Subject: Re: ✗ i915.CI.BAT: failure for drm/i915/pm: Clean up the
> > hibernate vs. PCI D3 quirk (rev2)
> >
> > On Tue, Mar 11, 2025 at 11:15:53PM -0000, Patchwork wrote:
> > > == Series Details ==
> > >
> > > Series: drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev2)
> > > URL   : https://patchwork.freedesktop.org/series/139097/
> > > State : failure
> > >
> > > == Summary ==
> > >
> > > #### Possible regressions ####
> > >   * igt@kms_addfb_basic@too-high:
> > >     - fi-kbl-8809g:       NOTRUN -> [FAIL][6] +3 other tests fail
> > >    [6]:
> > > https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-kbl-
> > 8809g/igt@kms_addfb_basic@too-high.html
> >
> > A bunch of stuff seems to have broken in CI:
> > - something is now loading amdgpu when we didn't want it loaded
> On boot I see
> <6>[    0.000000] Command line: BOOT_IMAGE=/boot/drm_intel
> root=/dev/nvme0n1p2 rootwait fsck.repair=yes nmi_watchdog=panic,auto
> panic=5 softdog.soft_panic=5 log_buf_len=1M trace_clock=global
> xe.force_probe=* i915.force_probe=* drm.debug=0xe
> modprobe.blacklist=xe,i915,ast modprobe.blacklist=amdgpu ro
> 
> Is that not enough?
> 
> > - the full dmesg has been lost so I can't even find out when amdgpu
> > got loaded
> CI team, can you get all logs transferred ?
From runner log also some data : https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-kbl-8809g/igt_runner0.txt 


> On digging internally I see from dmesg (start from that file)
> 
> <7>[   39.365629] [IGT] i915_module_load: executing
> <7>[   39.373992] [IGT] i915_module_load: starting subtest load
> <7>[   39.376091] [IGT] i915_module_load: finished subtest load, SKIP
> <7>[   39.376197] [IGT] i915_module_load: exiting, ret=77
> <7>[   39.551743] [IGT] core_auth: executing
> <6>[   42.196892] [drm] amdgpu kernel modesetting enabled.
> <7>[   42.197065] [drm:amdgpu_acpi_detect [amdgpu]] No matching acpi
> device found for AMD3000
> <6>[   42.198069] amdgpu: Virtual CRAT table created for CPU
> <6>[   42.198933] amdgpu: Topology: Add CPU node
> <6>[   42.200595] amdgpu 0000:01:00.0: enabling device (0006 -> 0007)
> <6>[   42.201352] [drm] initializing kernel modesetting (VEGAM
> 0x1002:0x694C 0x8086:0x2073 0xC0).
> <6>[   42.201418] [drm] register mmio base: 0xDB500000
> <6>[   42.201420] [drm] register mmio size: 262144
> <6>[   42.202307] amdgpu 0000:01:00.0: amdgpu: detected ip block number
> 0 <vi_common>
> <6>[   42.202311] amdgpu 0000:01:00.0: amdgpu: detected ip block number
> 1 <gmc_v8_0>
> <6>[   42.202314] amdgpu 0000:01:00.0: amdgpu: detected ip block number
> 2 <tonga_ih>
> <6>[   42.202316] amdgpu 0000:01:00.0: amdgpu: detected ip block number
> 3 <gfx_v8_0>
> <6>[   42.202318] amdgpu 0000:01:00.0: amdgpu: detected ip block number
> 4 <sdma_v3_0>
> <6>[   42.202321] amdgpu 0000:01:00.0: amdgpu: detected ip block number
> 5 <powerplay>
> <6>[   42.202323] amdgpu 0000:01:00.0: amdgpu: detected ip block number
> 6 <dm>
> <6>[   42.202325] amdgpu 0000:01:00.0: amdgpu: detected ip block number
> 7 <uvd_v6_0>
> <6>[   42.202327] amdgpu 0000:01:00.0: amdgpu: detected ip block number
> 8 <vce_v3_0>
> <6>[   42.202427] amdgpu 0000:01:00.0: amdgpu: Fetched VBIOS from VFCT
> <6>[   42.202449] amdgpu: ATOM BIOS: 408435.180301.04s
> <6>[   42.228348] [drm] UVD is enabled in VM mode
> <6>[   42.228353] [drm] UVD ENC is enabled in VM mode
> <6>[   42.228356] [drm] VCE enabled in VM mode
> <6>[   42.228734] amdgpu 0000:01:00.0: vgaarb: deactivate vga console
> 
> >
> > --
> > Ville Syrjälä
> > Intel

^ permalink raw reply	[flat|nested] 29+ messages in thread

* RE: ✗ i915.CI.BAT: failure for drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev2)
  2025-03-12 10:07       ` Saarinen, Jani
@ 2025-03-12 11:53         ` Saarinen, Jani
  0 siblings, 0 replies; 29+ messages in thread
From: Saarinen, Jani @ 2025-03-12 11:53 UTC (permalink / raw)
  To: Ville Syrjälä, intel-gfx@lists.freedesktop.org,
	I915-ci-infra@lists.freedesktop.org

Hi, and one more

> -----Original Message-----
> From: Saarinen, Jani
> Sent: Wednesday, 12 March 2025 12.08
> To: Ville Syrjälä <ville.syrjala@linux.intel.com>; intel-gfx@lists.freedesktop.org;
> I915-ci-infra@lists.freedesktop.org
> Subject: RE: ✗ i915.CI.BAT: failure for drm/i915/pm: Clean up the hibernate
> vs. PCI D3 quirk (rev2)
> 
> Hi,
> 
> 
> > -----Original Message-----
> > From: Saarinen, Jani
> > Sent: Wednesday, 12 March 2025 12.06
> > To: Ville Syrjälä <ville.syrjala@linux.intel.com>;
> > intel-gfx@lists.freedesktop.org; I915-ci-infra@lists.freedesktop.org
> > Subject: RE: ✗ i915.CI.BAT: failure for drm/i915/pm: Clean up the
> > hibernate vs. PCI D3 quirk (rev2)
> >
> > Hi,
> > > -----Original Message-----
> > > From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf
> > > Of Ville Syrjälä
> > > Sent: Wednesday, 12 March 2025 11.53
> > > To: intel-gfx@lists.freedesktop.org
> > > Cc: I915-ci-infra@lists.freedesktop.org
> > > Subject: Re: ✗ i915.CI.BAT: failure for drm/i915/pm: Clean up the
> > > hibernate vs. PCI D3 quirk (rev2)
> > >
> > > On Tue, Mar 11, 2025 at 11:15:53PM -0000, Patchwork wrote:
> > > > == Series Details ==
> > > >
> > > > Series: drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev2)
> > > > URL   : https://patchwork.freedesktop.org/series/139097/
> > > > State : failure
> > > >
> > > > == Summary ==
> > > >
> > > > #### Possible regressions ####
> > > >   * igt@kms_addfb_basic@too-high:
> > > >     - fi-kbl-8809g:       NOTRUN -> [FAIL][6] +3 other tests fail
> > > >    [6]:
> > > > https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-kbl
> > > > -
> > > 8809g/igt@kms_addfb_basic@too-high.html
> > >
> > > A bunch of stuff seems to have broken in CI:
> > > - something is now loading amdgpu when we didn't want it loaded
> > On boot I see
> > <6>[    0.000000] Command line: BOOT_IMAGE=/boot/drm_intel
> > root=/dev/nvme0n1p2 rootwait fsck.repair=yes nmi_watchdog=panic,auto
> > panic=5 softdog.soft_panic=5 log_buf_len=1M trace_clock=global
> > xe.force_probe=* i915.force_probe=* drm.debug=0xe
> > modprobe.blacklist=xe,i915,ast modprobe.blacklist=amdgpu ro
> >
> > Is that not enough?
> >
> > > - the full dmesg has been lost so I can't even find out when amdgpu
> > > got loaded
> > CI team, can you get all logs transferred ?
> From runner log also some data : https://intel-gfx-ci.01.org/tree/drm-
> tip/Patchwork_139097v2/fi-kbl-8809g/igt_runner0.txt
> 
Should this fix the behavior https://patchwork.freedesktop.org/series/146170/ as we started not to blacklist snd_hda_intel at CI_DRM_16263 (deploy script change). 

Br,
Jani
> 
> > On digging internally I see from dmesg (start from that file)
> >
> > <7>[   39.365629] [IGT] i915_module_load: executing
> > <7>[   39.373992] [IGT] i915_module_load: starting subtest load
> > <7>[   39.376091] [IGT] i915_module_load: finished subtest load, SKIP
> > <7>[   39.376197] [IGT] i915_module_load: exiting, ret=77
> > <7>[   39.551743] [IGT] core_auth: executing
> > <6>[   42.196892] [drm] amdgpu kernel modesetting enabled.
> > <7>[   42.197065] [drm:amdgpu_acpi_detect [amdgpu]] No matching acpi
> > device found for AMD3000
> > <6>[   42.198069] amdgpu: Virtual CRAT table created for CPU
> > <6>[   42.198933] amdgpu: Topology: Add CPU node
> > <6>[   42.200595] amdgpu 0000:01:00.0: enabling device (0006 -> 0007)
> > <6>[   42.201352] [drm] initializing kernel modesetting (VEGAM
> > 0x1002:0x694C 0x8086:0x2073 0xC0).
> > <6>[   42.201418] [drm] register mmio base: 0xDB500000
> > <6>[   42.201420] [drm] register mmio size: 262144
> > <6>[   42.202307] amdgpu 0000:01:00.0: amdgpu: detected ip block
> number
> > 0 <vi_common>
> > <6>[   42.202311] amdgpu 0000:01:00.0: amdgpu: detected ip block
> number
> > 1 <gmc_v8_0>
> > <6>[   42.202314] amdgpu 0000:01:00.0: amdgpu: detected ip block
> number
> > 2 <tonga_ih>
> > <6>[   42.202316] amdgpu 0000:01:00.0: amdgpu: detected ip block
> number
> > 3 <gfx_v8_0>
> > <6>[   42.202318] amdgpu 0000:01:00.0: amdgpu: detected ip block
> number
> > 4 <sdma_v3_0>
> > <6>[   42.202321] amdgpu 0000:01:00.0: amdgpu: detected ip block
> number
> > 5 <powerplay>
> > <6>[   42.202323] amdgpu 0000:01:00.0: amdgpu: detected ip block
> number
> > 6 <dm>
> > <6>[   42.202325] amdgpu 0000:01:00.0: amdgpu: detected ip block
> number
> > 7 <uvd_v6_0>
> > <6>[   42.202327] amdgpu 0000:01:00.0: amdgpu: detected ip block
> number
> > 8 <vce_v3_0>
> > <6>[   42.202427] amdgpu 0000:01:00.0: amdgpu: Fetched VBIOS from
> VFCT
> > <6>[   42.202449] amdgpu: ATOM BIOS: 408435.180301.04s
> > <6>[   42.228348] [drm] UVD is enabled in VM mode
> > <6>[   42.228353] [drm] UVD ENC is enabled in VM mode
> > <6>[   42.228356] [drm] VCE enabled in VM mode
> > <6>[   42.228734] amdgpu 0000:01:00.0: vgaarb: deactivate vga console
> >
> > >
> > > --
> > > Ville Syrjälä
> > > Intel

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ✗ i915.CI.BAT: failure for drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev2)
  2025-03-12 10:05     ` Saarinen, Jani
  2025-03-12 10:07       ` Saarinen, Jani
@ 2025-03-12 12:06       ` Knop, Ryszard
  1 sibling, 0 replies; 29+ messages in thread
From: Knop, Ryszard @ 2025-03-12 12:06 UTC (permalink / raw)
  To: ville.syrjala@linux.intel.com,
	i915-ci-infra@lists.freedesktop.org,
	intel-gfx@lists.freedesktop.org, De Marchi, Lucas

On Wed, 2025-03-12 at 10:05 +0000, Saarinen, Jani wrote:
> Hi, 
> > -----Original Message-----
> > From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Ville
> > Syrjälä
> > Sent: Wednesday, 12 March 2025 11.53
> > To: intel-gfx@lists.freedesktop.org
> > Cc: I915-ci-infra@lists.freedesktop.org
> > Subject: Re: ✗ i915.CI.BAT: failure for drm/i915/pm: Clean up the hibernate
> > vs. PCI D3 quirk (rev2)
> > 
> > On Tue, Mar 11, 2025 at 11:15:53PM -0000, Patchwork wrote:
> > > == Series Details ==
> > > 
> > > Series: drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev2)
> > > URL   : https://patchwork.freedesktop.org/series/139097/
> > > State : failure
> > > 
> > > == Summary ==
> > > 
> > > #### Possible regressions ####
> > >   * igt@kms_addfb_basic@too-high:
> > >     - fi-kbl-8809g:       NOTRUN -> [FAIL][6] +3 other tests fail
> > >    [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v2/fi-kbl-
> > 8809g/igt@kms_addfb_basic@too-high.html
> > 
> > A bunch of stuff seems to have broken in CI:
> > - something is now loading amdgpu when we didn't want it loaded
> On boot I see 
> <6>[    0.000000] Command line: BOOT_IMAGE=/boot/drm_intel root=/dev/nvme0n1p2 rootwait fsck.repair=yes nmi_watchdog=panic,auto panic=5 softdog.soft_panic=5 log_buf_len=1M trace_clock=global xe.force_probe=* i915.force_probe=* drm.debug=0xe modprobe.blacklist=xe,i915,ast modprobe.blacklist=amdgpu ro
> 
> Is that not enough? 

It looks like removing the snd_hda_intel blacklist causes this, see:

testrunner@fi-kbl-8809g:~$ lspci -v -s "01:00.1"
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Polaris 22 HDMI Audio
        Subsystem: Intel Corporation Polaris 22 HDMI Audio
        Flags: bus master, fast devsel, latency 0, IRQ 163, IOMMU group 1
        Memory at db560000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel

+Lucas, should we revert that?

> 
> > - the full dmesg has been lost so I can't even find out when amdgpu  got loaded
> CI team, can you get all logs transferred ? 
> On digging internally I see from dmesg (start from that file) 
> 
> <7>[   39.365629] [IGT] i915_module_load: executing
> <7>[   39.373992] [IGT] i915_module_load: starting subtest load
> <7>[   39.376091] [IGT] i915_module_load: finished subtest load, SKIP
> <7>[   39.376197] [IGT] i915_module_load: exiting, ret=77
> <7>[   39.551743] [IGT] core_auth: executing
> <6>[   42.196892] [drm] amdgpu kernel modesetting enabled.
> <7>[   42.197065] [drm:amdgpu_acpi_detect [amdgpu]] No matching acpi device found for AMD3000
> <6>[   42.198069] amdgpu: Virtual CRAT table created for CPU
> <6>[   42.198933] amdgpu: Topology: Add CPU node
> <6>[   42.200595] amdgpu 0000:01:00.0: enabling device (0006 -> 0007)
> <6>[   42.201352] [drm] initializing kernel modesetting (VEGAM 0x1002:0x694C 0x8086:0x2073 0xC0).
> <6>[   42.201418] [drm] register mmio base: 0xDB500000
> <6>[   42.201420] [drm] register mmio size: 262144
> <6>[   42.202307] amdgpu 0000:01:00.0: amdgpu: detected ip block number 0 <vi_common>
> <6>[   42.202311] amdgpu 0000:01:00.0: amdgpu: detected ip block number 1 <gmc_v8_0>
> <6>[   42.202314] amdgpu 0000:01:00.0: amdgpu: detected ip block number 2 <tonga_ih>
> <6>[   42.202316] amdgpu 0000:01:00.0: amdgpu: detected ip block number 3 <gfx_v8_0>
> <6>[   42.202318] amdgpu 0000:01:00.0: amdgpu: detected ip block number 4 <sdma_v3_0>
> <6>[   42.202321] amdgpu 0000:01:00.0: amdgpu: detected ip block number 5 <powerplay>
> <6>[   42.202323] amdgpu 0000:01:00.0: amdgpu: detected ip block number 6 <dm>
> <6>[   42.202325] amdgpu 0000:01:00.0: amdgpu: detected ip block number 7 <uvd_v6_0>
> <6>[   42.202327] amdgpu 0000:01:00.0: amdgpu: detected ip block number 8 <vce_v3_0>
> <6>[   42.202427] amdgpu 0000:01:00.0: amdgpu: Fetched VBIOS from VFCT
> <6>[   42.202449] amdgpu: ATOM BIOS: 408435.180301.04s
> <6>[   42.228348] [drm] UVD is enabled in VM mode
> <6>[   42.228353] [drm] UVD ENC is enabled in VM mode
> <6>[   42.228356] [drm] VCE enabled in VM mode
> <6>[   42.228734] amdgpu 0000:01:00.0: vgaarb: deactivate vga console
> 
> > 
> > --
> > Ville Syrjälä
> > Intel


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v2 2/6] drm/i915/pm: Hoist pci_save_state()+pci_set_power_state() to the end of pm _late() hook
  2025-03-11 19:56 ` [PATCH v2 2/6] drm/i915/pm: Hoist pci_save_state()+pci_set_power_state() to the end of pm _late() hook Ville Syrjala
@ 2025-03-15  0:51   ` Rodrigo Vivi
  2025-03-17  7:17   ` Raag Jadav
  2025-09-12 13:52   ` Hogander, Jouni
  2 siblings, 0 replies; 29+ messages in thread
From: Rodrigo Vivi @ 2025-03-15  0:51 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On Tue, Mar 11, 2025 at 09:56:20PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> drivers/pci does the pci_save_state()+pci_set_power_state() from
> the _noirq() pm hooks. Move our manual calls (needed for the
> hibernate vs. D3 workaround with buggy BIOSes) towards that same
> point. We currently have no _noirq() hooks, so end of _late()
> hooks is the best we can do right now.

fair enough, let's just get CI back and try it again there

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>


> 
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_driver.c | 19 ++++++++++++++-----
>  1 file changed, 14 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> index be232caef9df..e06f2956382c 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -1045,7 +1045,6 @@ static int i915_drm_suspend(struct drm_device *dev)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(dev);
>  	struct intel_display *display = &dev_priv->display;
> -	struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
>  	pci_power_t opregion_target_state;
>  
>  	disable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
> @@ -1059,8 +1058,6 @@ static int i915_drm_suspend(struct drm_device *dev)
>  		intel_display_driver_disable_user_access(display);
>  	}
>  
> -	pci_save_state(pdev);
> -
>  	intel_display_driver_suspend(display);
>  
>  	intel_irq_suspend(dev_priv);
> @@ -1117,10 +1114,16 @@ static int i915_drm_suspend_late(struct drm_device *dev, bool hibernation)
>  		drm_err(&dev_priv->drm, "Suspend complete failed: %d\n", ret);
>  		intel_display_power_resume_early(display);
>  
> -		goto out;
> +		goto fail;
>  	}
>  
> +	enable_rpm_wakeref_asserts(rpm);
> +
> +	if (!dev_priv->uncore.user_forcewake_count)
> +		intel_runtime_pm_driver_release(rpm);
> +
>  	pci_disable_device(pdev);
> +
>  	/*
>  	 * During hibernation on some platforms the BIOS may try to access
>  	 * the device even though it's already in D3 and hang the machine. So
> @@ -1132,11 +1135,17 @@ static int i915_drm_suspend_late(struct drm_device *dev, bool hibernation)
>  	 * Lenovo Thinkpad X301, X61s, X60, T60, X41
>  	 * Fujitsu FSC S7110
>  	 * Acer Aspire 1830T
> +	 *
> +	 * pci_save_state() prevents drivers/pci from
> +	 * automagically putting the device into D3.
>  	 */
> +	pci_save_state(pdev);
>  	if (!(hibernation && GRAPHICS_VER(dev_priv) < 6))
>  		pci_set_power_state(pdev, PCI_D3hot);
>  
> -out:
> +	return 0;
> +
> +fail:
>  	enable_rpm_wakeref_asserts(rpm);
>  	if (!dev_priv->uncore.user_forcewake_count)
>  		intel_runtime_pm_driver_release(rpm);
> -- 
> 2.45.3
> 

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v2 4/6] drm/i915/pm: Do pci_restore_state() in switcheroo resume hook
  2025-03-11 19:56 ` [PATCH v2 4/6] drm/i915/pm: Do pci_restore_state() in switcheroo resume hook Ville Syrjala
@ 2025-03-15  0:55   ` Rodrigo Vivi
  2025-09-12 13:53   ` Hogander, Jouni
  1 sibling, 0 replies; 29+ messages in thread
From: Rodrigo Vivi @ 2025-03-15  0:55 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On Tue, Mar 11, 2025 at 09:56:22PM +0200, Ville Syrjala wrote:
61;7802;1c> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Since this switcheroo garbage bypasses all the core pm we
> have to manually manage the pci state. To that end add the
> missing pci_restore_state() to the switcheroo resume hook.
> We already have the pci_save_state() counterpart on the
> suspend side.
> 
> Arguably none of this code should exist in the driver
> in the first place, and instead the entire switcheroo
> mechanism should be rewritten and properly integrated into
> core pm code...

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> 
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_driver.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> index 995205e24ebf..a199e21c7bb4 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -1340,6 +1340,8 @@ int i915_driver_resume_switcheroo(struct drm_i915_private *i915)
>  	if (ret)
>  		return ret;
>  
> +	pci_restore_state(pdev);
> +
>  	ret = i915_drm_resume_early(&i915->drm);
>  	if (ret)
>  		return ret;
> -- 
> 2.45.3
> 

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v2 5/6] drm/i915/pm: Allow drivers/pci to manage our pci state normally
  2025-03-11 19:56 ` [PATCH v2 5/6] drm/i915/pm: Allow drivers/pci to manage our pci state normally Ville Syrjala
@ 2025-03-15  0:56   ` Rodrigo Vivi
  2025-09-12 13:53   ` Hogander, Jouni
  1 sibling, 0 replies; 29+ messages in thread
From: Rodrigo Vivi @ 2025-03-15  0:56 UTC (permalink / raw)
  To: Ville Syrjala, Badal Nilawar; +Cc: intel-gfx

On Tue, Mar 11, 2025 at 09:56:23PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Stop doing the pci_save_state(), except when we need to prevent
> D3 due to BIOS bugs, so that the code in drivers/pci is allowed
> to manage the state of the PCI device. Less chance something
> getting left by the wayside by i915 if/when the things change in
> drivers/pci.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_driver.c | 11 +++++------
>  1 file changed, 5 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> index a199e21c7bb4..503f1b6b694f 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -1154,9 +1154,8 @@ static int i915_drm_suspend_noirq(struct drm_device *dev, bool hibernation)
>  	 * pci_save_state() prevents drivers/pci from
>  	 * automagically putting the device into D3.
>  	 */
> -	pci_save_state(pdev);
> -	if (!(hibernation && GRAPHICS_VER(dev_priv) < 6))
> -		pci_set_power_state(pdev, PCI_D3hot);
> +	if (hibernation && GRAPHICS_VER(dev_priv) < 6)
> +		pci_save_state(pdev);
>  
>  	return 0;
>  }
> @@ -1164,6 +1163,7 @@ static int i915_drm_suspend_noirq(struct drm_device *dev, bool hibernation)
>  int i915_driver_suspend_switcheroo(struct drm_i915_private *i915,
>  				   pm_message_t state)
>  {
> +	struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
>  	int error;
>  
>  	if (drm_WARN_ON_ONCE(&i915->drm, state.event != PM_EVENT_SUSPEND &&
> @@ -1181,9 +1181,8 @@ int i915_driver_suspend_switcheroo(struct drm_i915_private *i915,
>  	if (error)
>  		return error;
>  
> -	error = i915_drm_suspend_noirq(&i915->drm, false);
> -	if (error)
> -		return error;
> +	pci_save_state(pdev);
> +	pci_set_power_state(pdev, PCI_D3hot);

Cc: Badal Nilawar <badal.nilawar@intel.com>

he hit an issue in Xe recently related to the lack of this iirc.
Hopefully this is right here and we can get this right here and port to Xe.

>  
>  	return 0;
>  }
> -- 
> 2.45.3
> 

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v2 6/6] drm/i915/pm: Drop redundant pci stuff from suspend/resume paths
  2025-03-11 19:56 ` [PATCH v2 6/6] drm/i915/pm: Drop redundant pci stuff from suspend/resume paths Ville Syrjala
@ 2025-03-15  1:00   ` Rodrigo Vivi
  2025-09-12  9:44   ` Hogander, Jouni
  2025-09-12 13:54   ` Hogander, Jouni
  2 siblings, 0 replies; 29+ messages in thread
From: Rodrigo Vivi @ 2025-03-15  1:00 UTC (permalink / raw)
  To: Ville Syrjala, Karthik Poosa; +Cc: intel-gfx

On Tue, Mar 11, 2025 at 09:56:24PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> I don't think there should be any need for us to call any of
> pci_enable_device(), pci_disable_device() or pci_set_master()
> from the suspend/resume paths. The config space save/restore should
> take care of all of this.

Cc: Karthik Poosa <karthik.poosa@intel.com>

Karthik, I believe we should do the same on Xe and test this against that strange D3Cold bug on BMG


> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_driver.c | 31 ------------------------------
>  1 file changed, 31 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> index 503f1b6b694f..d3d1b2d082dd 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -1092,7 +1092,6 @@ static int i915_drm_suspend_late(struct drm_device *dev, bool hibernation)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(dev);
>  	struct intel_display *display = &dev_priv->display;
> -	struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
>  	struct intel_runtime_pm *rpm = &dev_priv->runtime_pm;
>  	struct intel_gt *gt;
>  	int ret, i;
> @@ -1113,21 +1112,10 @@ static int i915_drm_suspend_late(struct drm_device *dev, bool hibernation)
>  	if (ret) {
>  		drm_err(&dev_priv->drm, "Suspend complete failed: %d\n", ret);
>  		intel_display_power_resume_early(display);
> -
> -		goto fail;
>  	}
>  
>  	enable_rpm_wakeref_asserts(rpm);
>  
> -	if (!dev_priv->uncore.user_forcewake_count)
> -		intel_runtime_pm_driver_release(rpm);
> -
> -	pci_disable_device(pdev);
> -
> -	return 0;
> -
> -fail:
> -	enable_rpm_wakeref_asserts(rpm);
>  	if (!dev_priv->uncore.user_forcewake_count)
>  		intel_runtime_pm_driver_release(rpm);
>  
> @@ -1278,7 +1266,6 @@ static int i915_drm_resume_early(struct drm_device *dev)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(dev);
>  	struct intel_display *display = &dev_priv->display;
> -	struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
>  	struct intel_gt *gt;
>  	int ret, i;
>  
> @@ -1292,24 +1279,6 @@ static int i915_drm_resume_early(struct drm_device *dev)
>  	 * similar so that power domains can be employed.
>  	 */
>  
> -	/*
> -	 * Note that pci_enable_device() first enables any parent bridge
> -	 * device and only then sets the power state for this device. The
> -	 * bridge enabling is a nop though, since bridge devices are resumed
> -	 * first. The order of enabling power and enabling the device is
> -	 * imposed by the PCI core as described above, so here we preserve the
> -	 * same order for the freeze/thaw phases.
> -	 *
> -	 * TODO: eventually we should remove pci_disable_device() /
> -	 * pci_enable_enable_device() from suspend/resume. Due to how they
> -	 * depend on the device enable refcount we can't anyway depend on them
> -	 * disabling/enabling the device.
> -	 */
> -	if (pci_enable_device(pdev))
> -		return -EIO;
> -
> -	pci_set_master(pdev);

We need more tests, but let's try it and clean things up.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> -
>  	disable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
>  
>  	ret = vlv_resume_prepare(dev_priv, false);
> -- 
> 2.45.3
> 

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v2 2/6] drm/i915/pm: Hoist pci_save_state()+pci_set_power_state() to the end of pm _late() hook
  2025-03-11 19:56 ` [PATCH v2 2/6] drm/i915/pm: Hoist pci_save_state()+pci_set_power_state() to the end of pm _late() hook Ville Syrjala
  2025-03-15  0:51   ` Rodrigo Vivi
@ 2025-03-17  7:17   ` Raag Jadav
  2025-09-12 13:52   ` Hogander, Jouni
  2 siblings, 0 replies; 29+ messages in thread
From: Raag Jadav @ 2025-03-17  7:17 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx, Rodrigo Vivi, anshuman.gupta

On Tue, Mar 11, 2025 at 09:56:20PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> drivers/pci does the pci_save_state()+pci_set_power_state() from
> the _noirq() pm hooks. Move our manual calls (needed for the
> hibernate vs. D3 workaround with buggy BIOSes) towards that same
> point. We currently have no _noirq() hooks, so end of _late()
> hooks is the best we can do right now.
> 
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_driver.c | 19 ++++++++++++++-----
>  1 file changed, 14 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> index be232caef9df..e06f2956382c 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -1045,7 +1045,6 @@ static int i915_drm_suspend(struct drm_device *dev)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(dev);
>  	struct intel_display *display = &dev_priv->display;
> -	struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
>  	pci_power_t opregion_target_state;
>  
>  	disable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
> @@ -1059,8 +1058,6 @@ static int i915_drm_suspend(struct drm_device *dev)
>  		intel_display_driver_disable_user_access(display);
>  	}
>  
> -	pci_save_state(pdev);
> -
>  	intel_display_driver_suspend(display);
>  
>  	intel_irq_suspend(dev_priv);
> @@ -1117,10 +1114,16 @@ static int i915_drm_suspend_late(struct drm_device *dev, bool hibernation)
>  		drm_err(&dev_priv->drm, "Suspend complete failed: %d\n", ret);
>  		intel_display_power_resume_early(display);
>  
> -		goto out;
> +		goto fail;
>  	}
>  
> +	enable_rpm_wakeref_asserts(rpm);
> +
> +	if (!dev_priv->uncore.user_forcewake_count)
> +		intel_runtime_pm_driver_release(rpm);
> +
>  	pci_disable_device(pdev);
> +
>  	/*
>  	 * During hibernation on some platforms the BIOS may try to access
>  	 * the device even though it's already in D3 and hang the machine. So
> @@ -1132,11 +1135,17 @@ static int i915_drm_suspend_late(struct drm_device *dev, bool hibernation)
>  	 * Lenovo Thinkpad X301, X61s, X60, T60, X41
>  	 * Fujitsu FSC S7110
>  	 * Acer Aspire 1830T
> +	 *
> +	 * pci_save_state() prevents drivers/pci from
> +	 * automagically putting the device into D3.
>  	 */
> +	pci_save_state(pdev);

I might be missing something, but looking at the comment it seems like
the problem is with certain gens and their BIOS? Not sure why we need
to do it for all gens.

Shouldn't we let PCI PM take care of it, atleast for devices that don't
have this problem?

>  	if (!(hibernation && GRAPHICS_VER(dev_priv) < 6))
>  		pci_set_power_state(pdev, PCI_D3hot);

Raag

^ permalink raw reply	[flat|nested] 29+ messages in thread

* ✗ Fi.CI.BUILD: warning for drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev3)
  2025-03-11 19:56 [PATCH v2 0/6] drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk Ville Syrjala
                   ` (6 preceding siblings ...)
  2025-03-11 23:15 ` ✗ i915.CI.BAT: failure for drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev2) Patchwork
@ 2025-04-25 18:08 ` Patchwork
  2025-04-25 19:40 ` ✓ i915.CI.BAT: success " Patchwork
  2025-04-26  3:56 ` ✓ i915.CI.Full: " Patchwork
  9 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2025-04-25 18:08 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev3)
URL   : https://patchwork.freedesktop.org/series/139097/
State : warning

== Summary ==

Error: patch https://patchwork.freedesktop.org/api/1.0/series/139097/revisions/3/mbox/ not found



^ permalink raw reply	[flat|nested] 29+ messages in thread

* ✓ i915.CI.BAT: success for drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev3)
  2025-03-11 19:56 [PATCH v2 0/6] drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk Ville Syrjala
                   ` (7 preceding siblings ...)
  2025-04-25 18:08 ` ✗ Fi.CI.BUILD: warning for drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev3) Patchwork
@ 2025-04-25 19:40 ` Patchwork
  2025-04-26  3:56 ` ✓ i915.CI.Full: " Patchwork
  9 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2025-04-25 19:40 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 3158 bytes --]

== Series Details ==

Series: drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev3)
URL   : https://patchwork.freedesktop.org/series/139097/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_16465 -> Patchwork_139097v3
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/index.html

Participating hosts (42 -> 42)
------------------------------

  No changes in participating hosts

Known issues
------------

  Here are the changes found in Patchwork_139097v3 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@dmabuf@all-tests@dma_fence_chain:
    - fi-bsw-n3050:       [PASS][1] -> [INCOMPLETE][2] ([i915#12904]) +1 other test incomplete
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/fi-bsw-n3050/igt@dmabuf@all-tests@dma_fence_chain.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/fi-bsw-n3050/igt@dmabuf@all-tests@dma_fence_chain.html

  * igt@i915_selftest@live@workarounds:
    - bat-arls-5:         [PASS][3] -> [DMESG-FAIL][4] ([i915#12061]) +1 other test dmesg-fail
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/bat-arls-5/igt@i915_selftest@live@workarounds.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/bat-arls-5/igt@i915_selftest@live@workarounds.html

  
#### Possible fixes ####

  * igt@i915_selftest@live:
    - bat-mtlp-8:         [DMESG-FAIL][5] ([i915#12061]) -> [PASS][6] +1 other test pass
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/bat-mtlp-8/igt@i915_selftest@live.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/bat-mtlp-8/igt@i915_selftest@live.html

  * igt@i915_selftest@live@workarounds:
    - bat-mtlp-6:         [DMESG-FAIL][7] ([i915#12061]) -> [PASS][8] +1 other test pass
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/bat-mtlp-6/igt@i915_selftest@live@workarounds.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/bat-mtlp-6/igt@i915_selftest@live@workarounds.html

  * igt@kms_hdmi_inject@inject-audio:
    - bat-arls-6:         [FAIL][9] ([i915#13930]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/bat-arls-6/igt@kms_hdmi_inject@inject-audio.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/bat-arls-6/igt@kms_hdmi_inject@inject-audio.html

  
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
  [i915#12904]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12904
  [i915#13930]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13930


Build changes
-------------

  * Linux: CI_DRM_16465 -> Patchwork_139097v3

  CI-20190529: 20190529
  CI_DRM_16465: 6e67a7af43567bb9f23fe156fde7efa3d214fd20 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8338: 8338
  Patchwork_139097v3: 6e67a7af43567bb9f23fe156fde7efa3d214fd20 @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/index.html

[-- Attachment #2: Type: text/html, Size: 4024 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* ✓ i915.CI.Full: success for drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev3)
  2025-03-11 19:56 [PATCH v2 0/6] drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk Ville Syrjala
                   ` (8 preceding siblings ...)
  2025-04-25 19:40 ` ✓ i915.CI.BAT: success " Patchwork
@ 2025-04-26  3:56 ` Patchwork
  9 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2025-04-26  3:56 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 67903 bytes --]

== Series Details ==

Series: drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev3)
URL   : https://patchwork.freedesktop.org/series/139097/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_16465_full -> Patchwork_139097v3_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (10 -> 10)
------------------------------

  No changes in participating hosts

Known issues
------------

  Here are the changes found in Patchwork_139097v3_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@api_intel_bb@blit-reloc-keep-cache:
    - shard-rkl:          NOTRUN -> [SKIP][1] ([i915#8411])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@api_intel_bb@blit-reloc-keep-cache.html

  * igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-smem-lmem0:
    - shard-dg2:          NOTRUN -> [INCOMPLETE][2] ([i915#12392] / [i915#13356])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-7/igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-smem-lmem0.html

  * igt@gem_close_race@multigpu-basic-process:
    - shard-rkl:          NOTRUN -> [SKIP][3] ([i915#7697])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@gem_close_race@multigpu-basic-process.html

  * igt@gem_close_race@multigpu-basic-threads:
    - shard-dg2:          NOTRUN -> [SKIP][4] ([i915#7697])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@gem_close_race@multigpu-basic-threads.html

  * igt@gem_create@create-ext-cpu-access-big:
    - shard-dg2:          NOTRUN -> [ABORT][5] ([i915#13427])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@gem_create@create-ext-cpu-access-big.html

  * igt@gem_ctx_isolation@preservation-s3@rcs0:
    - shard-glk:          [PASS][6] -> [INCOMPLETE][7] ([i915#12353])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-glk1/igt@gem_ctx_isolation@preservation-s3@rcs0.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-glk2/igt@gem_ctx_isolation@preservation-s3@rcs0.html

  * igt@gem_ctx_sseu@invalid-args:
    - shard-rkl:          NOTRUN -> [SKIP][8] ([i915#280])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-3/igt@gem_ctx_sseu@invalid-args.html

  * igt@gem_eio@execbuf:
    - shard-mtlp:         NOTRUN -> [ABORT][9] ([i915#13193] / [i915#13723])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-7/igt@gem_eio@execbuf.html

  * igt@gem_eio@hibernate:
    - shard-dg2:          [PASS][10] -> [ABORT][11] ([i915#10030] / [i915#7975] / [i915#8213])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-4/igt@gem_eio@hibernate.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-1/igt@gem_eio@hibernate.html

  * igt@gem_eio@in-flight-contexts-immediate:
    - shard-mtlp:         [PASS][12] -> [ABORT][13] ([i915#13193] / [i915#13723]) +1 other test abort
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-mtlp-3/igt@gem_eio@in-flight-contexts-immediate.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-7/igt@gem_eio@in-flight-contexts-immediate.html

  * igt@gem_exec_balancer@bonded-false-hang:
    - shard-dg2-9:        NOTRUN -> [SKIP][14] ([i915#4812])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@gem_exec_balancer@bonded-false-hang.html

  * igt@gem_exec_balancer@bonded-sync:
    - shard-dg2-9:        NOTRUN -> [SKIP][15] ([i915#4771]) +1 other test skip
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@gem_exec_balancer@bonded-sync.html

  * igt@gem_exec_balancer@bonded-true-hang:
    - shard-dg2:          NOTRUN -> [SKIP][16] ([i915#4812])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@gem_exec_balancer@bonded-true-hang.html

  * igt@gem_exec_balancer@noheartbeat:
    - shard-dg2:          NOTRUN -> [SKIP][17] ([i915#8555])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@gem_exec_balancer@noheartbeat.html

  * igt@gem_exec_endless@dispatch@ccs0:
    - shard-dg2:          [PASS][18] -> [TIMEOUT][19] ([i915#3778] / [i915#7016]) +1 other test timeout
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-5/igt@gem_exec_endless@dispatch@ccs0.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-8/igt@gem_exec_endless@dispatch@ccs0.html

  * igt@gem_exec_flush@basic-uc-pro-default:
    - shard-dg2-9:        NOTRUN -> [SKIP][20] ([i915#3539] / [i915#4852])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@gem_exec_flush@basic-uc-pro-default.html

  * igt@gem_exec_flush@basic-uc-prw-default:
    - shard-dg2:          NOTRUN -> [SKIP][21] ([i915#3539])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@gem_exec_flush@basic-uc-prw-default.html

  * igt@gem_exec_flush@basic-uc-ro-default:
    - shard-dg2:          NOTRUN -> [SKIP][22] ([i915#3539] / [i915#4852])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@gem_exec_flush@basic-uc-ro-default.html

  * igt@gem_exec_reloc@basic-cpu-gtt:
    - shard-dg2-9:        NOTRUN -> [SKIP][23] ([i915#3281]) +1 other test skip
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@gem_exec_reloc@basic-cpu-gtt.html

  * igt@gem_exec_reloc@basic-cpu-noreloc:
    - shard-dg2:          NOTRUN -> [SKIP][24] ([i915#3281])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@gem_exec_reloc@basic-cpu-noreloc.html

  * igt@gem_exec_reloc@basic-gtt-read-noreloc:
    - shard-rkl:          NOTRUN -> [SKIP][25] ([i915#3281]) +2 other tests skip
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@gem_exec_reloc@basic-gtt-read-noreloc.html

  * igt@gem_exec_schedule@preempt-queue-contexts-chain:
    - shard-dg2:          NOTRUN -> [SKIP][26] ([i915#4537] / [i915#4812])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@gem_exec_schedule@preempt-queue-contexts-chain.html

  * igt@gem_exec_suspend@basic-s0@lmem0:
    - shard-dg2:          NOTRUN -> [INCOMPLETE][27] ([i915#11441])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-4/igt@gem_exec_suspend@basic-s0@lmem0.html

  * igt@gem_exec_suspend@basic-s0@smem:
    - shard-rkl:          NOTRUN -> [INCOMPLETE][28] ([i915#13304]) +1 other test incomplete
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-3/igt@gem_exec_suspend@basic-s0@smem.html

  * igt@gem_exec_suspend@basic-s4-devices:
    - shard-dg2:          [PASS][29] -> [ABORT][30] ([i915#7975] / [i915#8213]) +1 other test abort
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-11/igt@gem_exec_suspend@basic-s4-devices.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-1/igt@gem_exec_suspend@basic-s4-devices.html

  * igt@gem_fenced_exec_thrash@no-spare-fences-busy-interruptible:
    - shard-dg2:          NOTRUN -> [SKIP][31] ([i915#4860])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@gem_fenced_exec_thrash@no-spare-fences-busy-interruptible.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - shard-rkl:          NOTRUN -> [SKIP][32] ([i915#4613]) +2 other tests skip
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-3/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@gem_lmem_swapping@verify-ccs:
    - shard-mtlp:         NOTRUN -> [SKIP][33] ([i915#4613])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@gem_lmem_swapping@verify-ccs.html

  * igt@gem_media_vme:
    - shard-dg2-9:        NOTRUN -> [SKIP][34] ([i915#284])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@gem_media_vme.html
    - shard-rkl:          NOTRUN -> [SKIP][35] ([i915#284])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@gem_media_vme.html

  * igt@gem_mmap_gtt@cpuset-big-copy:
    - shard-dg2:          NOTRUN -> [SKIP][36] ([i915#4077]) +4 other tests skip
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@gem_mmap_gtt@cpuset-big-copy.html

  * igt@gem_mmap_gtt@cpuset-medium-copy:
    - shard-mtlp:         NOTRUN -> [SKIP][37] ([i915#4077])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@gem_mmap_gtt@cpuset-medium-copy.html

  * igt@gem_mmap_gtt@fault-concurrent-x:
    - shard-dg2-9:        NOTRUN -> [SKIP][38] ([i915#4077]) +2 other tests skip
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@gem_mmap_gtt@fault-concurrent-x.html

  * igt@gem_mmap_wc@close:
    - shard-dg2-9:        NOTRUN -> [SKIP][39] ([i915#4083]) +1 other test skip
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@gem_mmap_wc@close.html

  * igt@gem_mmap_wc@invalid-flags:
    - shard-dg2:          NOTRUN -> [SKIP][40] ([i915#4083]) +2 other tests skip
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@gem_mmap_wc@invalid-flags.html

  * igt@gem_mmap_wc@write-prefaulted:
    - shard-mtlp:         NOTRUN -> [SKIP][41] ([i915#4083])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-7/igt@gem_mmap_wc@write-prefaulted.html

  * igt@gem_pread@self:
    - shard-mtlp:         NOTRUN -> [SKIP][42] ([i915#3282])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@gem_pread@self.html

  * igt@gem_pread@uncached:
    - shard-rkl:          NOTRUN -> [SKIP][43] ([i915#3282]) +4 other tests skip
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@gem_pread@uncached.html

  * igt@gem_pxp@regular-baseline-src-copy-readible:
    - shard-dg2-9:        NOTRUN -> [SKIP][44] ([i915#4270])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@gem_pxp@regular-baseline-src-copy-readible.html

  * igt@gem_pxp@reject-modify-context-protection-off-2:
    - shard-dg2:          NOTRUN -> [SKIP][45] ([i915#4270])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@gem_pxp@reject-modify-context-protection-off-2.html

  * igt@gem_render_copy@y-tiled-ccs-to-y-tiled:
    - shard-dg2-9:        NOTRUN -> [SKIP][46] ([i915#5190] / [i915#8428]) +1 other test skip
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@gem_render_copy@y-tiled-ccs-to-y-tiled.html

  * igt@gem_render_copy@y-tiled-to-vebox-yf-tiled:
    - shard-dg2:          NOTRUN -> [SKIP][47] ([i915#5190] / [i915#8428]) +1 other test skip
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@gem_render_copy@y-tiled-to-vebox-yf-tiled.html

  * igt@gem_render_copy@yf-tiled-to-vebox-y-tiled:
    - shard-mtlp:         NOTRUN -> [SKIP][48] ([i915#8428]) +1 other test skip
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@gem_render_copy@yf-tiled-to-vebox-y-tiled.html

  * igt@gem_render_tiled_blits@basic:
    - shard-dg2-9:        NOTRUN -> [SKIP][49] ([i915#4079])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@gem_render_tiled_blits@basic.html

  * igt@gem_unfence_active_buffers:
    - shard-dg2:          NOTRUN -> [SKIP][50] ([i915#4879])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@gem_unfence_active_buffers.html

  * igt@gem_userptr_blits@coherency-unsync:
    - shard-dg2:          NOTRUN -> [SKIP][51] ([i915#3297])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@gem_userptr_blits@coherency-unsync.html

  * igt@gem_userptr_blits@forbidden-operations:
    - shard-dg2:          NOTRUN -> [SKIP][52] ([i915#3282] / [i915#3297])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@gem_userptr_blits@forbidden-operations.html

  * igt@gem_userptr_blits@relocations:
    - shard-rkl:          NOTRUN -> [SKIP][53] ([i915#3281] / [i915#3297])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-3/igt@gem_userptr_blits@relocations.html

  * igt@gem_userptr_blits@set-cache-level:
    - shard-mtlp:         NOTRUN -> [SKIP][54] ([i915#3297])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-7/igt@gem_userptr_blits@set-cache-level.html

  * igt@gem_userptr_blits@unsync-unmap-after-close:
    - shard-rkl:          NOTRUN -> [SKIP][55] ([i915#3297]) +3 other tests skip
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@gem_userptr_blits@unsync-unmap-after-close.html

  * igt@gen7_exec_parse@basic-allocation:
    - shard-mtlp:         NOTRUN -> [SKIP][56] +5 other tests skip
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-7/igt@gen7_exec_parse@basic-allocation.html

  * igt@gen9_exec_parse@batch-invalid-length:
    - shard-rkl:          NOTRUN -> [SKIP][57] ([i915#2527]) +1 other test skip
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@gen9_exec_parse@batch-invalid-length.html

  * igt@gen9_exec_parse@unaligned-access:
    - shard-dg2-9:        NOTRUN -> [SKIP][58] ([i915#2856])
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@gen9_exec_parse@unaligned-access.html

  * igt@gen9_exec_parse@unaligned-jump:
    - shard-dg2:          NOTRUN -> [SKIP][59] ([i915#2856])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@gen9_exec_parse@unaligned-jump.html

  * igt@i915_drm_fdinfo@busy-idle-check-all@rcs0:
    - shard-mtlp:         NOTRUN -> [SKIP][60] ([i915#11527]) +6 other tests skip
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@i915_drm_fdinfo@busy-idle-check-all@rcs0.html

  * igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0:
    - shard-dg1:          [PASS][61] -> [FAIL][62] ([i915#3591]) +1 other test fail
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg1-12/igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg1-13/igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0.html

  * igt@i915_pm_rps@min-max-config-idle:
    - shard-dg2-9:        NOTRUN -> [SKIP][63] ([i915#11681] / [i915#6621])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@i915_pm_rps@min-max-config-idle.html

  * igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling:
    - shard-mtlp:         NOTRUN -> [SKIP][64] ([i915#4212]) +1 other test skip
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-7/igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling.html

  * igt@kms_addfb_basic@addfb25-x-tiled-legacy:
    - shard-dg2:          NOTRUN -> [SKIP][65] ([i915#4212])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html

  * igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-b-hdmi-a-3-4-rc-ccs-cc:
    - shard-dg2:          NOTRUN -> [SKIP][66] ([i915#8709]) +7 other tests skip
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-7/igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-b-hdmi-a-3-4-rc-ccs-cc.html

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-d-hdmi-a-2-4-mc-ccs:
    - shard-dg2-9:        NOTRUN -> [SKIP][67] ([i915#8709]) +7 other tests skip
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-d-hdmi-a-2-4-mc-ccs.html

  * igt@kms_async_flips@invalid-async-flip:
    - shard-mtlp:         NOTRUN -> [SKIP][68] ([i915#12967] / [i915#6228])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@kms_async_flips@invalid-async-flip.html

  * igt@kms_atomic_transition@plane-all-modeset-transition:
    - shard-dg2:          [PASS][69] -> [FAIL][70] ([i915#5956])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-2/igt@kms_atomic_transition@plane-all-modeset-transition.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-8/igt@kms_atomic_transition@plane-all-modeset-transition.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels:
    - shard-dg2-9:        NOTRUN -> [SKIP][71] ([i915#1769] / [i915#3555])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html

  * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [FAIL][72] ([i915#5956])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-8/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180:
    - shard-rkl:          NOTRUN -> [SKIP][73] ([i915#5286]) +2 other tests skip
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180.html

  * igt@kms_big_fb@y-tiled-32bpp-rotate-180:
    - shard-dg2-9:        NOTRUN -> [SKIP][74] ([i915#4538] / [i915#5190]) +4 other tests skip
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_big_fb@y-tiled-32bpp-rotate-180.html

  * igt@kms_big_fb@y-tiled-8bpp-rotate-90:
    - shard-rkl:          NOTRUN -> [SKIP][75] ([i915#3638]) +2 other tests skip
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180:
    - shard-dg2:          NOTRUN -> [SKIP][76] ([i915#4538] / [i915#5190]) +4 other tests skip
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip:
    - shard-rkl:          NOTRUN -> [SKIP][77] +13 other tests skip
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-mtl-mc-ccs@pipe-b-hdmi-a-3:
    - shard-dg1:          NOTRUN -> [SKIP][78] ([i915#6095]) +87 other tests skip
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg1-13/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-mc-ccs@pipe-b-hdmi-a-3.html

  * igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][79] ([i915#10307] / [i915#10434] / [i915#6095])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-8/igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-1.html

  * igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][80] ([i915#10307] / [i915#6095]) +166 other tests skip
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-7/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-3.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs:
    - shard-mtlp:         NOTRUN -> [SKIP][81] ([i915#12313])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][82] ([i915#12313]) +2 other tests skip
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][83] ([i915#14098] / [i915#6095]) +7 other tests skip
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][84] ([i915#6095]) +7 other tests skip
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-2:
    - shard-dg2-9:        NOTRUN -> [SKIP][85] ([i915#6095]) +4 other tests skip
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs@pipe-c-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][86] ([i915#6095]) +15 other tests skip
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-5/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs@pipe-c-hdmi-a-3.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs@pipe-d-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][87] ([i915#6095]) +14 other tests skip
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs@pipe-d-edp-1.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [DMESG-WARN][88] ([i915#4423])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg1-15/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-4.html

  * igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-2:
    - shard-dg2-9:        NOTRUN -> [SKIP][89] ([i915#10307] / [i915#6095]) +29 other tests skip
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-2.html

  * igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][90] ([i915#13781]) +3 other tests skip
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-7/igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-3.html

  * igt@kms_cdclk@plane-scaling:
    - shard-rkl:          NOTRUN -> [SKIP][91] ([i915#3742])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_cdclk@plane-scaling.html

  * igt@kms_chamelium_color@ctm-max:
    - shard-dg2:          NOTRUN -> [SKIP][92] +2 other tests skip
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_chamelium_color@ctm-max.html

  * igt@kms_chamelium_edid@dp-edid-change-during-suspend:
    - shard-mtlp:         NOTRUN -> [SKIP][93] ([i915#11151] / [i915#7828]) +1 other test skip
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-7/igt@kms_chamelium_edid@dp-edid-change-during-suspend.html

  * igt@kms_chamelium_hpd@hdmi-hpd-storm:
    - shard-dg2:          NOTRUN -> [SKIP][94] ([i915#11151] / [i915#7828]) +3 other tests skip
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_chamelium_hpd@hdmi-hpd-storm.html

  * igt@kms_chamelium_hpd@vga-hpd-fast:
    - shard-rkl:          NOTRUN -> [SKIP][95] ([i915#11151] / [i915#7828]) +8 other tests skip
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-3/igt@kms_chamelium_hpd@vga-hpd-fast.html

  * igt@kms_chamelium_hpd@vga-hpd-for-each-pipe:
    - shard-dg2-9:        NOTRUN -> [SKIP][96] ([i915#11151] / [i915#7828]) +2 other tests skip
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_chamelium_hpd@vga-hpd-for-each-pipe.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-rkl:          NOTRUN -> [SKIP][97] ([i915#7118] / [i915#9424])
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_content_protection@lic-type-0:
    - shard-rkl:          NOTRUN -> [SKIP][98] ([i915#9424])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-3/igt@kms_content_protection@lic-type-0.html

  * igt@kms_content_protection@srm:
    - shard-dg2:          NOTRUN -> [FAIL][99] ([i915#7173]) +1 other test fail
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_content_protection@srm.html

  * igt@kms_cursor_crc@cursor-offscreen-512x170:
    - shard-rkl:          NOTRUN -> [SKIP][100] ([i915#13049])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_cursor_crc@cursor-offscreen-512x170.html

  * igt@kms_cursor_crc@cursor-onscreen-32x10:
    - shard-dg2:          NOTRUN -> [SKIP][101] ([i915#3555]) +2 other tests skip
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_cursor_crc@cursor-onscreen-32x10.html

  * igt@kms_cursor_crc@cursor-onscreen-32x32:
    - shard-rkl:          NOTRUN -> [SKIP][102] ([i915#3555]) +4 other tests skip
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_cursor_crc@cursor-onscreen-32x32.html

  * igt@kms_cursor_crc@cursor-random-512x512:
    - shard-dg2-9:        NOTRUN -> [SKIP][103] ([i915#13049])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_cursor_crc@cursor-random-512x512.html

  * igt@kms_cursor_crc@cursor-rapid-movement-512x512:
    - shard-dg2:          NOTRUN -> [SKIP][104] ([i915#13049])
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions:
    - shard-dg2-9:        NOTRUN -> [SKIP][105] ([i915#13046] / [i915#5354])
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic:
    - shard-mtlp:         NOTRUN -> [SKIP][106] ([i915#9809])
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size:
    - shard-dg2:          NOTRUN -> [SKIP][107] ([i915#13046] / [i915#5354]) +2 other tests skip
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
    - shard-mtlp:         NOTRUN -> [SKIP][108] ([i915#4213])
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html

  * igt@kms_dp_linktrain_fallback@dp-fallback:
    - shard-rkl:          NOTRUN -> [SKIP][109] ([i915#13707]) +1 other test skip
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_dp_linktrain_fallback@dp-fallback.html

  * igt@kms_dsc@dsc-basic:
    - shard-dg2:          NOTRUN -> [SKIP][110] ([i915#3555] / [i915#3840])
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_dsc@dsc-basic.html

  * igt@kms_dsc@dsc-with-output-formats:
    - shard-dg2-9:        NOTRUN -> [SKIP][111] ([i915#3555] / [i915#3840])
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_dsc@dsc-with-output-formats.html

  * igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-different-formats:
    - shard-dg2:          NOTRUN -> [SKIP][112] ([i915#13798])
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-different-formats.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-dg2-9:        NOTRUN -> [INCOMPLETE][113] ([i915#9878])
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@2x-flip-vs-dpms-on-nop:
    - shard-mtlp:         NOTRUN -> [SKIP][114] ([i915#9934])
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@kms_flip@2x-flip-vs-dpms-on-nop.html

  * igt@kms_flip@2x-flip-vs-panning-vs-hang:
    - shard-dg2-9:        NOTRUN -> [SKIP][115] ([i915#9934]) +4 other tests skip
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_flip@2x-flip-vs-panning-vs-hang.html

  * igt@kms_flip@2x-flip-vs-suspend@ab-vga1-hdmi-a1:
    - shard-snb:          [PASS][116] -> [TIMEOUT][117] ([i915#14033]) +1 other test timeout
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-snb7/igt@kms_flip@2x-flip-vs-suspend@ab-vga1-hdmi-a1.html
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-snb4/igt@kms_flip@2x-flip-vs-suspend@ab-vga1-hdmi-a1.html

  * igt@kms_flip@2x-flip-vs-wf_vblank:
    - shard-dg2:          NOTRUN -> [SKIP][118] ([i915#9934]) +1 other test skip
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_flip@2x-flip-vs-wf_vblank.html

  * igt@kms_flip@2x-wf_vblank-ts-check-interruptible:
    - shard-rkl:          NOTRUN -> [SKIP][119] ([i915#9934]) +3 other tests skip
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-3/igt@kms_flip@2x-wf_vblank-ts-check-interruptible.html

  * igt@kms_flip@plain-flip-fb-recreate:
    - shard-rkl:          NOTRUN -> [FAIL][120] ([i915#13734]) +1 other test fail
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_flip@plain-flip-fb-recreate.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling:
    - shard-dg2:          NOTRUN -> [SKIP][121] ([i915#2672] / [i915#3555]) +1 other test skip
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode:
    - shard-dg2:          NOTRUN -> [SKIP][122] ([i915#2672]) +1 other test skip
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-default-mode:
    - shard-mtlp:         NOTRUN -> [SKIP][123] ([i915#2672] / [i915#8813])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling:
    - shard-rkl:          NOTRUN -> [SKIP][124] ([i915#2672] / [i915#3555]) +2 other tests skip
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling@pipe-a-valid-mode:
    - shard-rkl:          NOTRUN -> [SKIP][125] ([i915#2672]) +2 other tests skip
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling:
    - shard-mtlp:         NOTRUN -> [SKIP][126] ([i915#2672] / [i915#3555] / [i915#8813]) +2 other tests skip
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-7/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc:
    - shard-rkl:          NOTRUN -> [SKIP][127] ([i915#1825]) +23 other tests skip
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-cpu:
    - shard-mtlp:         NOTRUN -> [SKIP][128] ([i915#1825]) +5 other tests skip
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-move:
    - shard-dg2-9:        NOTRUN -> [SKIP][129] ([i915#5354]) +4 other tests skip
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][130] ([i915#8708]) +2 other tests skip
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render:
    - shard-dg2-9:        NOTRUN -> [SKIP][131] ([i915#3458]) +6 other tests skip
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-msflip-blt:
    - shard-dg2:          NOTRUN -> [SKIP][132] ([i915#5354]) +7 other tests skip
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render:
    - shard-dg2:          NOTRUN -> [SKIP][133] ([i915#3458]) +4 other tests skip
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render.html

  * igt@kms_frontbuffer_tracking@pipe-fbc-rte:
    - shard-rkl:          NOTRUN -> [SKIP][134] ([i915#9766])
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-blt:
    - shard-rkl:          NOTRUN -> [SKIP][135] ([i915#3023]) +15 other tests skip
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-3/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-mtlp:         NOTRUN -> [SKIP][136] ([i915#8708]) +3 other tests skip
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc:
    - shard-dg2-9:        NOTRUN -> [SKIP][137] ([i915#8708]) +8 other tests skip
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_getfb@getfb-reject-ccs:
    - shard-dg2:          NOTRUN -> [SKIP][138] ([i915#6118])
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_getfb@getfb-reject-ccs.html

  * igt@kms_hdr@invalid-hdr:
    - shard-dg2-9:        NOTRUN -> [SKIP][139] ([i915#3555] / [i915#8228])
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_hdr@invalid-hdr.html

  * igt@kms_hdr@invalid-metadata-sizes:
    - shard-rkl:          NOTRUN -> [SKIP][140] ([i915#3555] / [i915#8228]) +1 other test skip
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_hdr@invalid-metadata-sizes.html

  * igt@kms_hdr@static-swap:
    - shard-mtlp:         NOTRUN -> [SKIP][141] ([i915#3555] / [i915#8228])
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-7/igt@kms_hdr@static-swap.html

  * igt@kms_hdr@static-toggle-suspend:
    - shard-dg2:          [PASS][142] -> [SKIP][143] ([i915#3555] / [i915#8228])
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-10/igt@kms_hdr@static-toggle-suspend.html
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-7/igt@kms_hdr@static-toggle-suspend.html

  * igt@kms_joiner@basic-big-joiner:
    - shard-dg2:          NOTRUN -> [SKIP][144] ([i915#10656])
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_joiner@basic-big-joiner.html

  * igt@kms_joiner@invalid-modeset-force-big-joiner:
    - shard-dg2:          [PASS][145] -> [SKIP][146] ([i915#12388])
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-10/igt@kms_joiner@invalid-modeset-force-big-joiner.html
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-7/igt@kms_joiner@invalid-modeset-force-big-joiner.html

  * igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
    - shard-snb:          NOTRUN -> [SKIP][147] +15 other tests skip
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-snb7/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html

  * igt@kms_panel_fitting@legacy:
    - shard-dg2:          NOTRUN -> [SKIP][148] ([i915#6301])
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_panel_fitting@legacy.html

  * igt@kms_pipe_b_c_ivb@pipe-b-double-modeset-then-modeset-pipe-c:
    - shard-dg2-9:        NOTRUN -> [SKIP][149] +2 other tests skip
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_pipe_b_c_ivb@pipe-b-double-modeset-then-modeset-pipe-c.html

  * igt@kms_plane_multiple@2x-tiling-none:
    - shard-rkl:          NOTRUN -> [SKIP][150] ([i915#13958])
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_plane_multiple@2x-tiling-none.html

  * igt@kms_plane_multiple@2x-tiling-x:
    - shard-mtlp:         NOTRUN -> [SKIP][151] ([i915#13958])
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@kms_plane_multiple@2x-tiling-x.html

  * igt@kms_plane_scaling@intel-max-src-size:
    - shard-mtlp:         NOTRUN -> [SKIP][152] ([i915#6953])
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@kms_plane_scaling@intel-max-src-size.html
    - shard-dg2:          [PASS][153] -> [SKIP][154] ([i915#6953] / [i915#9423])
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-11/igt@kms_plane_scaling@intel-max-src-size.html
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-3/igt@kms_plane_scaling@intel-max-src-size.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format:
    - shard-dg2-9:        NOTRUN -> [SKIP][155] ([i915#12247] / [i915#9423])
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-d:
    - shard-dg2-9:        NOTRUN -> [SKIP][156] ([i915#12247]) +11 other tests skip
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-d.html

  * igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation@pipe-c:
    - shard-rkl:          NOTRUN -> [SKIP][157] ([i915#12247]) +11 other tests skip
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation@pipe-c.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25:
    - shard-dg2-9:        NOTRUN -> [SKIP][158] ([i915#12247] / [i915#6953] / [i915#9423])
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_plane_scaling@planes-downscale-factor-0-25.html

  * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25:
    - shard-dg2-9:        NOTRUN -> [SKIP][159] ([i915#12247] / [i915#3555] / [i915#9423])
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25.html

  * igt@kms_pm_backlight@brightness-with-dpms:
    - shard-rkl:          NOTRUN -> [SKIP][160] ([i915#12343])
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-3/igt@kms_pm_backlight@brightness-with-dpms.html

  * igt@kms_pm_dc@dc3co-vpb-simulation:
    - shard-rkl:          NOTRUN -> [SKIP][161] ([i915#9685])
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_pm_dc@dc3co-vpb-simulation.html

  * igt@kms_pm_rpm@i2c:
    - shard-dg1:          [PASS][162] -> [DMESG-WARN][163] ([i915#4423]) +3 other tests dmesg-warn
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg1-15/igt@kms_pm_rpm@i2c.html
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg1-14/igt@kms_pm_rpm@i2c.html

  * igt@kms_pm_rpm@modeset-lpsp-stress:
    - shard-rkl:          NOTRUN -> [SKIP][164] ([i915#9519])
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-3/igt@kms_pm_rpm@modeset-lpsp-stress.html

  * igt@kms_prime@d3hot:
    - shard-rkl:          NOTRUN -> [SKIP][165] ([i915#6524])
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_prime@d3hot.html

  * igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf:
    - shard-mtlp:         NOTRUN -> [SKIP][166] ([i915#12316])
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf:
    - shard-dg2-9:        NOTRUN -> [SKIP][167] ([i915#11520]) +3 other tests skip
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area:
    - shard-rkl:          NOTRUN -> [SKIP][168] ([i915#11520]) +5 other tests skip
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-3/igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area:
    - shard-dg2:          NOTRUN -> [SKIP][169] ([i915#11520]) +3 other tests skip
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area.html

  * igt@kms_psr@fbc-psr2-sprite-plane-onoff:
    - shard-mtlp:         NOTRUN -> [SKIP][170] ([i915#9688]) +4 other tests skip
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@kms_psr@fbc-psr2-sprite-plane-onoff.html

  * igt@kms_psr@pr-cursor-plane-onoff:
    - shard-rkl:          NOTRUN -> [SKIP][171] ([i915#1072] / [i915#9732]) +13 other tests skip
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_psr@pr-cursor-plane-onoff.html

  * igt@kms_psr@pr-primary-mmap-gtt:
    - shard-dg2-9:        NOTRUN -> [SKIP][172] ([i915#1072] / [i915#9732]) +6 other tests skip
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_psr@pr-primary-mmap-gtt.html

  * igt@kms_psr@psr2-sprite-plane-onoff:
    - shard-dg2:          NOTRUN -> [SKIP][173] ([i915#1072] / [i915#9732]) +4 other tests skip
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@kms_psr@psr2-sprite-plane-onoff.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
    - shard-rkl:          NOTRUN -> [SKIP][174] ([i915#5289])
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html

  * igt@kms_selftest@drm_framebuffer:
    - shard-rkl:          NOTRUN -> [ABORT][175] ([i915#13179]) +1 other test abort
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@kms_selftest@drm_framebuffer.html

  * igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_free:
    - shard-dg2-9:        NOTRUN -> [ABORT][176] ([i915#13179]) +1 other test abort
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_free.html

  * igt@kms_vrr@flip-dpms:
    - shard-dg2-9:        NOTRUN -> [SKIP][177] ([i915#3555]) +1 other test skip
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_vrr@flip-dpms.html

  * igt@kms_vrr@seamless-rr-switch-drrs:
    - shard-dg2-9:        NOTRUN -> [SKIP][178] ([i915#9906])
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_vrr@seamless-rr-switch-drrs.html

  * igt@kms_writeback@writeback-check-output:
    - shard-mtlp:         NOTRUN -> [SKIP][179] ([i915#2437])
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@kms_writeback@writeback-check-output.html

  * igt@kms_writeback@writeback-fb-id-xrgb2101010:
    - shard-dg2-9:        NOTRUN -> [SKIP][180] ([i915#2437] / [i915#9412])
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-9/igt@kms_writeback@writeback-fb-id-xrgb2101010.html

  * igt@perf@gen8-unprivileged-single-ctx-counters:
    - shard-rkl:          NOTRUN -> [SKIP][181] ([i915#2436])
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-rkl-8/igt@perf@gen8-unprivileged-single-ctx-counters.html

  * igt@perf@global-sseu-config-invalid:
    - shard-dg2:          NOTRUN -> [SKIP][182] ([i915#7387])
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@perf@global-sseu-config-invalid.html

  * igt@perf_pmu@module-unload:
    - shard-mtlp:         [PASS][183] -> [INCOMPLETE][184] ([i915#13520])
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-mtlp-1/igt@perf_pmu@module-unload.html
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-8/igt@perf_pmu@module-unload.html

  * igt@perf_pmu@rc6@other-idle-gt0:
    - shard-dg2:          NOTRUN -> [SKIP][185] ([i915#8516])
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-10/igt@perf_pmu@rc6@other-idle-gt0.html

  * igt@prime_vgem@fence-flip-hang:
    - shard-mtlp:         NOTRUN -> [SKIP][186] ([i915#3708])
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@prime_vgem@fence-flip-hang.html

  
#### Possible fixes ####

  * igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0:
    - shard-dg2:          [INCOMPLETE][187] ([i915#13356]) -> [PASS][188]
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-1/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0.html
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-7/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0.html

  * igt@gem_eio@unwedge-stress:
    - shard-mtlp:         [ABORT][189] ([i915#13193] / [i915#13723]) -> [PASS][190]
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-mtlp-7/igt@gem_eio@unwedge-stress.html
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-2/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_suspend@basic-s0@smem:
    - shard-dg2:          [INCOMPLETE][191] ([i915#11441] / [i915#13304]) -> [PASS][192]
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-1/igt@gem_exec_suspend@basic-s0@smem.html
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-4/igt@gem_exec_suspend@basic-s0@smem.html

  * igt@gem_fence_thrash@bo-write-verify-none:
    - shard-snb:          [INCOMPLETE][193] -> [PASS][194]
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-snb5/igt@gem_fence_thrash@bo-write-verify-none.html
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-snb7/igt@gem_fence_thrash@bo-write-verify-none.html

  * igt@gem_lmem_swapping@smem-oom@lmem0:
    - shard-dg2:          [TIMEOUT][195] ([i915#5493]) -> [PASS][196] +1 other test pass
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-10/igt@gem_lmem_swapping@smem-oom@lmem0.html
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-7/igt@gem_lmem_swapping@smem-oom@lmem0.html
    - shard-dg1:          [TIMEOUT][197] ([i915#14044] / [i915#5493]) -> [PASS][198] +1 other test pass
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg1-16/igt@gem_lmem_swapping@smem-oom@lmem0.html
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg1-16/igt@gem_lmem_swapping@smem-oom@lmem0.html

  * igt@kms_atomic_transition@plane-toggle-modeset-transition:
    - shard-dg2:          [FAIL][199] ([i915#5956]) -> [PASS][200] +1 other test pass
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-11/igt@kms_atomic_transition@plane-toggle-modeset-transition.html
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-11/igt@kms_atomic_transition@plane-toggle-modeset-transition.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-0:
    - shard-dg1:          [DMESG-WARN][201] ([i915#4423]) -> [PASS][202] +3 other tests pass
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg1-17/igt@kms_big_fb@x-tiled-16bpp-rotate-0.html
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg1-18/igt@kms_big_fb@x-tiled-16bpp-rotate-0.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@b-edp1:
    - shard-mtlp:         [FAIL][203] ([i915#13734]) -> [PASS][204]
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-mtlp-4/igt@kms_flip@flip-vs-blocking-wf-vblank@b-edp1.html
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-mtlp-6/igt@kms_flip@flip-vs-blocking-wf-vblank@b-edp1.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render:
    - shard-dg2:          [DMESG-WARN][205] -> [PASS][206]
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-1/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render.html
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-4/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render.html

  * igt@kms_hdr@bpc-switch:
    - shard-dg2:          [SKIP][207] ([i915#3555] / [i915#8228]) -> [PASS][208]
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-5/igt@kms_hdr@bpc-switch.html
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-11/igt@kms_hdr@bpc-switch.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress:
    - shard-dg2:          [SKIP][209] ([i915#9519]) -> [PASS][210] +2 other tests pass
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-4/igt@kms_pm_rpm@modeset-non-lpsp-stress.html
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-1/igt@kms_pm_rpm@modeset-non-lpsp-stress.html

  * igt@kms_vrr@negative-basic:
    - shard-dg2:          [SKIP][211] ([i915#3555] / [i915#9906]) -> [PASS][212]
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-3/igt@kms_vrr@negative-basic.html
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-11/igt@kms_vrr@negative-basic.html

  * igt@perf_pmu@busy-double-start@vecs1:
    - shard-dg2:          [FAIL][213] ([i915#4349]) -> [PASS][214] +2 other tests pass
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-5/igt@perf_pmu@busy-double-start@vecs1.html
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-11/igt@perf_pmu@busy-double-start@vecs1.html

  * igt@perf_pmu@module-unload:
    - shard-dg1:          [INCOMPLETE][215] ([i915#13520]) -> [PASS][216]
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg1-18/igt@perf_pmu@module-unload.html
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg1-17/igt@perf_pmu@module-unload.html

  
#### Warnings ####

  * igt@kms_atomic@plane-primary-overlay-mutable-zpos:
    - shard-dg1:          [SKIP][217] ([i915#9531]) -> [SKIP][218] ([i915#4423] / [i915#9531])
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg1-13/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg1-15/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip:
    - shard-dg1:          [SKIP][219] ([i915#4538] / [i915#5286]) -> [SKIP][220] ([i915#4423] / [i915#4538] / [i915#5286])
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg1-13/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg1-15/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip.html

  * igt@kms_ccs@bad-pixel-format-yf-tiled-ccs@pipe-a-hdmi-a-4:
    - shard-dg1:          [SKIP][221] ([i915#4423] / [i915#6095]) -> [SKIP][222] ([i915#6095]) +1 other test skip
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg1-15/igt@kms_ccs@bad-pixel-format-yf-tiled-ccs@pipe-a-hdmi-a-4.html
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg1-16/igt@kms_ccs@bad-pixel-format-yf-tiled-ccs@pipe-a-hdmi-a-4.html

  * igt@kms_content_protection@atomic:
    - shard-dg2:          [FAIL][223] ([i915#7173]) -> [SKIP][224] ([i915#7118] / [i915#9424])
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-10/igt@kms_content_protection@atomic.html
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-7/igt@kms_content_protection@atomic.html

  * igt@kms_content_protection@type1:
    - shard-dg2:          [SKIP][225] ([i915#7118] / [i915#9424]) -> [SKIP][226] ([i915#7118] / [i915#7162] / [i915#9424])
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-5/igt@kms_content_protection@type1.html
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-11/igt@kms_content_protection@type1.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling:
    - shard-dg1:          [SKIP][227] ([i915#2672] / [i915#3555] / [i915#4423]) -> [SKIP][228] ([i915#2672] / [i915#3555])
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg1-18/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling.html
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg1-17/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling@pipe-a-valid-mode:
    - shard-dg1:          [SKIP][229] ([i915#2587] / [i915#2672] / [i915#4423]) -> [SKIP][230] ([i915#2587] / [i915#2672])
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg1-18/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling@pipe-a-valid-mode.html
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg1-17/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling@pipe-a-valid-mode.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-mmap-cpu:
    - shard-dg2:          [SKIP][231] ([i915#10433] / [i915#3458]) -> [SKIP][232] ([i915#3458]) +1 other test skip
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-mmap-cpu.html
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-pgflip-blt:
    - shard-dg1:          [SKIP][233] ([i915#3458] / [i915#4423]) -> [SKIP][234] ([i915#3458])
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg1-15/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-pgflip-blt.html
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move:
    - shard-dg2:          [SKIP][235] ([i915#3458]) -> [SKIP][236] ([i915#10433] / [i915#3458]) +1 other test skip
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move.html
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-dg2:          [SKIP][237] ([i915#13331]) -> [SKIP][238] ([i915#12713])
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg2-11/igt@kms_hdr@brightness-with-hdr.html
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg2-3/igt@kms_hdr@brightness-with-hdr.html
    - shard-dg1:          [SKIP][239] ([i915#12713]) -> [SKIP][240] ([i915#1187] / [i915#12713])
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16465/shard-dg1-12/igt@kms_hdr@brightness-with-hdr.html
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139097v3/shard-dg1-13/igt@kms_hdr@brightness-with-hdr.html

  
  [i915#10030]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10030
  [i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
  [i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433
  [i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
  [i915#10656]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10656
  [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
  [i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
  [i915#11441]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11441
  [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
  [i915#11527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11527
  [i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
  [i915#1187]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1187
  [i915#12247]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12247
  [i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
  [i915#12316]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12316
  [i915#12343]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12343
  [i915#12353]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12353
  [i915#12388]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12388
  [i915#12392]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12392
  [i915#12713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12713
  [i915#12967]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12967
  [i915#13046]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13046
  [i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049
  [i915#13179]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13179
  [i915#13193]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13193
  [i915#13304]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13304
  [i915#13331]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13331
  [i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356
  [i915#13427]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13427
  [i915#13520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13520
  [i915#13707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13707
  [i915#13723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13723
  [i915#13734]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13734
  [i915#13781]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13781
  [i915#13798]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13798
  [i915#13958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13958
  [i915#14033]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14033
  [i915#14044]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14044
  [i915#14098]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14098
  [i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
  [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
  [i915#2436]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2436
  [i915#2437]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
  [i915#2587]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2587
  [i915#2672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2672
  [i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280
  [i915#284]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/284
  [i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
  [i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
  [i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
  [i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458
  [i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
  [i915#3591]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3591
  [i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638
  [i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
  [i915#3742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3742
  [i915#3778]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3778
  [i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
  [i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
  [i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
  [i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
  [i915#4349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4349
  [i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
  [i915#4537]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4537
  [i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
  [i915#4771]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4771
  [i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812
  [i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852
  [i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860
  [i915#4879]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4879
  [i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
  [i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
  [i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289
  [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
  [i915#5493]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5493
  [i915#5956]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5956
  [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
  [i915#6118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6118
  [i915#6228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6228
  [i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301
  [i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
  [i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6621
  [i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
  [i915#7016]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7016
  [i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118
  [i915#7162]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7162
  [i915#7173]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7173
  [i915#7387]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7387
  [i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697
  [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
  [i915#7975]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7975
  [i915#8213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8213
  [i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
  [i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411
  [i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428
  [i915#8516]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8516
  [i915#8555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8555
  [i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
  [i915#8709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8709
  [i915#8813]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8813
  [i915#9412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9412
  [i915#9423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9423
  [i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424
  [i915#9519]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9519
  [i915#9531]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9531
  [i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685
  [i915#9688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9688
  [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
  [i915#9766]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9766
  [i915#9809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9809
  [i915#9878]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9878
  [i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
  [i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934


Build changes
-------------

  * Linux: CI_DRM_16465 -> Patchwork_139097v3

  CI-20190529: 20190529
  CI_DRM_16465: 6e67a7af43567bb9f23fe156fde7efa3d214fd20 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8338: 8338
  Patchwork_139097v3: 6e67a7af43567bb9f23fe156fde7efa3d214fd20 @ 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_139097v3/index.html

[-- Attachment #2: Type: text/html, Size: 85189 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v2 6/6] drm/i915/pm: Drop redundant pci stuff from suspend/resume paths
  2025-03-11 19:56 ` [PATCH v2 6/6] drm/i915/pm: Drop redundant pci stuff from suspend/resume paths Ville Syrjala
  2025-03-15  1:00   ` Rodrigo Vivi
@ 2025-09-12  9:44   ` Hogander, Jouni
  2025-09-12 12:56     ` Ville Syrjälä
  2025-09-12 13:54   ` Hogander, Jouni
  2 siblings, 1 reply; 29+ messages in thread
From: Hogander, Jouni @ 2025-09-12  9:44 UTC (permalink / raw)
  To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org

On Tue, 2025-03-11 at 21:56 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> I don't think there should be any need for us to call any of
> pci_enable_device(), pci_disable_device() or pci_set_master()
> from the suspend/resume paths. The config space save/restore should
> take care of all of this.

I couldn't find out what save/restore you are referring here. At least
driver/pci isn't doing these in it's suspend/resume paths. Can you
please point me out?

BR,

Jouni Högander
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_driver.c | 31 ----------------------------
> --
>  1 file changed, 31 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_driver.c
> b/drivers/gpu/drm/i915/i915_driver.c
> index 503f1b6b694f..d3d1b2d082dd 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -1092,7 +1092,6 @@ static int i915_drm_suspend_late(struct
> drm_device *dev, bool hibernation)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(dev);
>  	struct intel_display *display = &dev_priv->display;
> -	struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
>  	struct intel_runtime_pm *rpm = &dev_priv->runtime_pm;
>  	struct intel_gt *gt;
>  	int ret, i;
> @@ -1113,21 +1112,10 @@ static int i915_drm_suspend_late(struct
> drm_device *dev, bool hibernation)
>  	if (ret) {
>  		drm_err(&dev_priv->drm, "Suspend complete failed:
> %d\n", ret);
>  		intel_display_power_resume_early(display);
> -
> -		goto fail;
>  	}
>  
>  	enable_rpm_wakeref_asserts(rpm);
>  
> -	if (!dev_priv->uncore.user_forcewake_count)
> -		intel_runtime_pm_driver_release(rpm);
> -
> -	pci_disable_device(pdev);
> -
> -	return 0;
> -
> -fail:
> -	enable_rpm_wakeref_asserts(rpm);
>  	if (!dev_priv->uncore.user_forcewake_count)
>  		intel_runtime_pm_driver_release(rpm);
>  
> @@ -1278,7 +1266,6 @@ static int i915_drm_resume_early(struct
> drm_device *dev)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(dev);
>  	struct intel_display *display = &dev_priv->display;
> -	struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
>  	struct intel_gt *gt;
>  	int ret, i;
>  
> @@ -1292,24 +1279,6 @@ static int i915_drm_resume_early(struct
> drm_device *dev)
>  	 * similar so that power domains can be employed.
>  	 */
>  
> -	/*
> -	 * Note that pci_enable_device() first enables any parent
> bridge
> -	 * device and only then sets the power state for this
> device. The
> -	 * bridge enabling is a nop though, since bridge devices are
> resumed
> -	 * first. The order of enabling power and enabling the
> device is
> -	 * imposed by the PCI core as described above, so here we
> preserve the
> -	 * same order for the freeze/thaw phases.
> -	 *
> -	 * TODO: eventually we should remove pci_disable_device() /
> -	 * pci_enable_enable_device() from suspend/resume. Due to
> how they
> -	 * depend on the device enable refcount we can't anyway
> depend on them
> -	 * disabling/enabling the device.
> -	 */
> -	if (pci_enable_device(pdev))
> -		return -EIO;
> -
> -	pci_set_master(pdev);
> -
>  	disable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
>  
>  	ret = vlv_resume_prepare(dev_priv, false);


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v2 6/6] drm/i915/pm: Drop redundant pci stuff from suspend/resume paths
  2025-09-12  9:44   ` Hogander, Jouni
@ 2025-09-12 12:56     ` Ville Syrjälä
  0 siblings, 0 replies; 29+ messages in thread
From: Ville Syrjälä @ 2025-09-12 12:56 UTC (permalink / raw)
  To: Hogander, Jouni; +Cc: intel-gfx@lists.freedesktop.org

On Fri, Sep 12, 2025 at 09:44:15AM +0000, Hogander, Jouni wrote:
> On Tue, 2025-03-11 at 21:56 +0200, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > I don't think there should be any need for us to call any of
> > pci_enable_device(), pci_disable_device() or pci_set_master()
> > from the suspend/resume paths. The config space save/restore should
> > take care of all of this.
> 
> I couldn't find out what save/restore you are referring here. At least
> driver/pci isn't doing these in it's suspend/resume paths. Can you
> please point me out?

The save/restore of config space. IIRC the io, mem, and
busmaster enable bits all live in the pci command register.

> 
> BR,
> 
> Jouni Högander
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/i915_driver.c | 31 ----------------------------
> > --
> >  1 file changed, 31 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_driver.c
> > b/drivers/gpu/drm/i915/i915_driver.c
> > index 503f1b6b694f..d3d1b2d082dd 100644
> > --- a/drivers/gpu/drm/i915/i915_driver.c
> > +++ b/drivers/gpu/drm/i915/i915_driver.c
> > @@ -1092,7 +1092,6 @@ static int i915_drm_suspend_late(struct
> > drm_device *dev, bool hibernation)
> >  {
> >  	struct drm_i915_private *dev_priv = to_i915(dev);
> >  	struct intel_display *display = &dev_priv->display;
> > -	struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
> >  	struct intel_runtime_pm *rpm = &dev_priv->runtime_pm;
> >  	struct intel_gt *gt;
> >  	int ret, i;
> > @@ -1113,21 +1112,10 @@ static int i915_drm_suspend_late(struct
> > drm_device *dev, bool hibernation)
> >  	if (ret) {
> >  		drm_err(&dev_priv->drm, "Suspend complete failed:
> > %d\n", ret);
> >  		intel_display_power_resume_early(display);
> > -
> > -		goto fail;
> >  	}
> >  
> >  	enable_rpm_wakeref_asserts(rpm);
> >  
> > -	if (!dev_priv->uncore.user_forcewake_count)
> > -		intel_runtime_pm_driver_release(rpm);
> > -
> > -	pci_disable_device(pdev);
> > -
> > -	return 0;
> > -
> > -fail:
> > -	enable_rpm_wakeref_asserts(rpm);
> >  	if (!dev_priv->uncore.user_forcewake_count)
> >  		intel_runtime_pm_driver_release(rpm);
> >  
> > @@ -1278,7 +1266,6 @@ static int i915_drm_resume_early(struct
> > drm_device *dev)
> >  {
> >  	struct drm_i915_private *dev_priv = to_i915(dev);
> >  	struct intel_display *display = &dev_priv->display;
> > -	struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
> >  	struct intel_gt *gt;
> >  	int ret, i;
> >  
> > @@ -1292,24 +1279,6 @@ static int i915_drm_resume_early(struct
> > drm_device *dev)
> >  	 * similar so that power domains can be employed.
> >  	 */
> >  
> > -	/*
> > -	 * Note that pci_enable_device() first enables any parent
> > bridge
> > -	 * device and only then sets the power state for this
> > device. The
> > -	 * bridge enabling is a nop though, since bridge devices are
> > resumed
> > -	 * first. The order of enabling power and enabling the
> > device is
> > -	 * imposed by the PCI core as described above, so here we
> > preserve the
> > -	 * same order for the freeze/thaw phases.
> > -	 *
> > -	 * TODO: eventually we should remove pci_disable_device() /
> > -	 * pci_enable_enable_device() from suspend/resume. Due to
> > how they
> > -	 * depend on the device enable refcount we can't anyway
> > depend on them
> > -	 * disabling/enabling the device.
> > -	 */
> > -	if (pci_enable_device(pdev))
> > -		return -EIO;
> > -
> > -	pci_set_master(pdev);
> > -
> >  	disable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
> >  
> >  	ret = vlv_resume_prepare(dev_priv, false);
> 

-- 
Ville Syrjälä
Intel

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v2 1/6] drm/i915/pm: Simplify pm hook documentation
  2025-03-11 19:56 ` [PATCH v2 1/6] drm/i915/pm: Simplify pm hook documentation Ville Syrjala
@ 2025-09-12 13:51   ` Hogander, Jouni
  0 siblings, 0 replies; 29+ messages in thread
From: Hogander, Jouni @ 2025-09-12 13:51 UTC (permalink / raw)
  To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org
  Cc: Vivi, Rodrigo

On Tue, 2025-03-11 at 21:56 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Stop spelling out each variant of the hook ("" vs. "_late" vs.
> "_early") and just say eg. "@thaw*" to indicate all of them.
> Avoids having to update the docs whenever we start/stop using
> one of the variants.
> 
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jouni Högander <jouni.hogander@intel.com>

> ---
>  drivers/gpu/drm/i915/i915_driver.c | 24 ++++++++++++------------
>  1 file changed, 12 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_driver.c
> b/drivers/gpu/drm/i915/i915_driver.c
> index ce3cc93ea211..be232caef9df 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -1664,18 +1664,18 @@ const struct dev_pm_ops i915_pm_ops = {
>  
>  	/*
>  	 * S4 event handlers
> -	 * @freeze, @freeze_late    : called (1) before creating the
> -	 *                            hibernation image
> [PMSG_FREEZE] and
> -	 *                            (2) after rebooting, before
> restoring
> -	 *                            the image [PMSG_QUIESCE]
> -	 * @thaw, @thaw_early       : called (1) after creating the
> hibernation
> -	 *                            image, before writing it
> [PMSG_THAW]
> -	 *                            and (2) after failing to
> create or
> -	 *                            restore the image
> [PMSG_RECOVER]
> -	 * @poweroff, @poweroff_late: called after writing the
> hibernation
> -	 *                            image, before rebooting
> [PMSG_HIBERNATE]
> -	 * @restore, @restore_early : called after rebooting and
> restoring the
> -	 *                            hibernation image
> [PMSG_RESTORE]
> +	 * @freeze*   : called (1) before creating the
> +	 *              hibernation image [PMSG_FREEZE] and
> +	 *              (2) after rebooting, before restoring
> +	 *              the image [PMSG_QUIESCE]
> +	 * @thaw*     : called (1) after creating the hibernation
> +	 *              image, before writing it [PMSG_THAW]
> +	 *              and (2) after failing to create or
> +	 *              restore the image [PMSG_RECOVER]
> +	 * @poweroff* : called after writing the hibernation
> +	 *              image, before rebooting [PMSG_HIBERNATE]
> +	 * @restore*  : called after rebooting and restoring the
> +	 *              hibernation image [PMSG_RESTORE]
>  	 */
>  	.freeze = i915_pm_freeze,
>  	.freeze_late = i915_pm_freeze_late,


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v2 2/6] drm/i915/pm: Hoist pci_save_state()+pci_set_power_state() to the end of pm _late() hook
  2025-03-11 19:56 ` [PATCH v2 2/6] drm/i915/pm: Hoist pci_save_state()+pci_set_power_state() to the end of pm _late() hook Ville Syrjala
  2025-03-15  0:51   ` Rodrigo Vivi
  2025-03-17  7:17   ` Raag Jadav
@ 2025-09-12 13:52   ` Hogander, Jouni
  2 siblings, 0 replies; 29+ messages in thread
From: Hogander, Jouni @ 2025-09-12 13:52 UTC (permalink / raw)
  To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org
  Cc: Vivi, Rodrigo

On Tue, 2025-03-11 at 21:56 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> drivers/pci does the pci_save_state()+pci_set_power_state() from
> the _noirq() pm hooks. Move our manual calls (needed for the
> hibernate vs. D3 workaround with buggy BIOSes) towards that same
> point. We currently have no _noirq() hooks, so end of _late()
> hooks is the best we can do right now.
> 
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_driver.c | 19 ++++++++++++++-----
>  1 file changed, 14 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_driver.c
> b/drivers/gpu/drm/i915/i915_driver.c
> index be232caef9df..e06f2956382c 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -1045,7 +1045,6 @@ static int i915_drm_suspend(struct drm_device
> *dev)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(dev);
>  	struct intel_display *display = &dev_priv->display;
> -	struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
>  	pci_power_t opregion_target_state;
>  
>  	disable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
> @@ -1059,8 +1058,6 @@ static int i915_drm_suspend(struct drm_device
> *dev)
>  		intel_display_driver_disable_user_access(display);
>  	}
>  
> -	pci_save_state(pdev);
> -
>  	intel_display_driver_suspend(display);
>  
>  	intel_irq_suspend(dev_priv);
> @@ -1117,10 +1114,16 @@ static int i915_drm_suspend_late(struct
> drm_device *dev, bool hibernation)
>  		drm_err(&dev_priv->drm, "Suspend complete failed:
> %d\n", ret);
>  		intel_display_power_resume_early(display);
>  
> -		goto out;
> +		goto fail;
>  	}
>  
> +	enable_rpm_wakeref_asserts(rpm);
> +
> +	if (!dev_priv->uncore.user_forcewake_count)
> +		intel_runtime_pm_driver_release(rpm);
> +
>  	pci_disable_device(pdev);
> +
>  	/*
>  	 * During hibernation on some platforms the BIOS may try to
> access
>  	 * the device even though it's already in D3 and hang the
> machine. So
> @@ -1132,11 +1135,17 @@ static int i915_drm_suspend_late(struct
> drm_device *dev, bool hibernation)
>  	 * Lenovo Thinkpad X301, X61s, X60, T60, X41
>  	 * Fujitsu FSC S7110
>  	 * Acer Aspire 1830T
> +	 *
> +	 * pci_save_state() prevents drivers/pci from
> +	 * automagically putting the device into D3.
>  	 */
> +	pci_save_state(pdev);
>  	if (!(hibernation && GRAPHICS_VER(dev_priv) < 6))
>  		pci_set_power_state(pdev, PCI_D3hot);
>  
> -out:
> +	return 0;
> +
> +fail:
>  	enable_rpm_wakeref_asserts(rpm);
>  	if (!dev_priv->uncore.user_forcewake_count)
>  		intel_runtime_pm_driver_release(rpm);


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v2 3/6] drm/i915/pm: Move the hibernate+D3 quirk stuff into noirq() pm hooks
  2025-03-11 19:56 ` [PATCH v2 3/6] drm/i915/pm: Move the hibernate+D3 quirk stuff into noirq() pm hooks Ville Syrjala
@ 2025-09-12 13:52   ` Hogander, Jouni
  0 siblings, 0 replies; 29+ messages in thread
From: Hogander, Jouni @ 2025-09-12 13:52 UTC (permalink / raw)
  To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org
  Cc: Vivi, Rodrigo

On Tue, 2025-03-11 at 21:56 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> If the driver doesn't call pci_save_state() drivers/pci will
> normally save+power manage the device from the _noirq() pm hooks.
> 
> We can't let that happen as some old BIOSes fail to hibernate
> when the device is in D3. However, we can get very close to
> the standard behaviour by doing our explicit pci_save_state()
> and pci_set_power_state() stuff from driver provided _noirq()
> hooks.
> 
> This results in a change of behaviour where we no longer go
> into D3 at the end of freeze_late, so when it comes time
> to thaw() we'll already be in D0, and thus we can drop the
> explicit pci_set_power_state(D0) call.
> 
> Presumably switcheroo suspend will want to go into D3 so
> call the _noirq() stuff from the switcheroo suspend hook,
> and since we dropped the pci_set_power_state(D0) from
> resume_early() we'll need to add one back into the
> switcheroo resume hook.
> 
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_driver.c | 76 ++++++++++++++++++++--------
> --
>  1 file changed, 51 insertions(+), 25 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_driver.c
> b/drivers/gpu/drm/i915/i915_driver.c
> index e06f2956382c..995205e24ebf 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -1124,6 +1124,21 @@ static int i915_drm_suspend_late(struct
> drm_device *dev, bool hibernation)
>  
>  	pci_disable_device(pdev);
>  
> +	return 0;
> +
> +fail:
> +	enable_rpm_wakeref_asserts(rpm);
> +	if (!dev_priv->uncore.user_forcewake_count)
> +		intel_runtime_pm_driver_release(rpm);
> +
> +	return ret;
> +}
> +
> +static int i915_drm_suspend_noirq(struct drm_device *dev, bool
> hibernation)
> +{
> +	struct drm_i915_private *dev_priv = to_i915(dev);
> +	struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
> +
>  	/*
>  	 * During hibernation on some platforms the BIOS may try to
> access
>  	 * the device even though it's already in D3 and hang the
> machine. So
> @@ -1144,13 +1159,6 @@ static int i915_drm_suspend_late(struct
> drm_device *dev, bool hibernation)
>  		pci_set_power_state(pdev, PCI_D3hot);
>  
>  	return 0;
> -
> -fail:
> -	enable_rpm_wakeref_asserts(rpm);
> -	if (!dev_priv->uncore.user_forcewake_count)
> -		intel_runtime_pm_driver_release(rpm);
> -
> -	return ret;
>  }
>  
>  int i915_driver_suspend_switcheroo(struct drm_i915_private *i915,
> @@ -1169,7 +1177,15 @@ int i915_driver_suspend_switcheroo(struct
> drm_i915_private *i915,
>  	if (error)
>  		return error;
>  
> -	return i915_drm_suspend_late(&i915->drm, false);
> +	error = i915_drm_suspend_late(&i915->drm, false);
> +	if (error)
> +		return error;
> +
> +	error = i915_drm_suspend_noirq(&i915->drm, false);
> +	if (error)
> +		return error;
> +
> +	return 0;
>  }
>  
>  static int i915_drm_resume(struct drm_device *dev)
> @@ -1277,23 +1293,6 @@ static int i915_drm_resume_early(struct
> drm_device *dev)
>  	 * similar so that power domains can be employed.
>  	 */
>  
> -	/*
> -	 * Note that we need to set the power state explicitly,
> since we
> -	 * powered off the device during freeze and the PCI core
> won't power
> -	 * it back up for us during thaw. Powering off the device
> during
> -	 * freeze is not a hard requirement though, and during the
> -	 * suspend/resume phases the PCI core makes sure we get here
> with the
> -	 * device powered on. So in case we change our freeze logic
> and keep
> -	 * the device powered we can also remove the following set
> power state
> -	 * call.
> -	 */
> -	ret = pci_set_power_state(pdev, PCI_D0);
> -	if (ret) {
> -		drm_err(&dev_priv->drm,
> -			"failed to set PCI D0 power state (%d)\n",
> ret);
> -		return ret;
> -	}
> -
>  	/*
>  	 * Note that pci_enable_device() first enables any parent
> bridge
>  	 * device and only then sets the power state for this
> device. The
> @@ -1331,11 +1330,16 @@ static int i915_drm_resume_early(struct
> drm_device *dev)
>  
>  int i915_driver_resume_switcheroo(struct drm_i915_private *i915)
>  {
> +	struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
>  	int ret;
>  
>  	if (i915->drm.switch_power_state == DRM_SWITCH_POWER_OFF)
>  		return 0;
>  
> +	ret = pci_set_power_state(pdev, PCI_D0);
> +	if (ret)
> +		return ret;
> +
>  	ret = i915_drm_resume_early(&i915->drm);
>  	if (ret)
>  		return ret;
> @@ -1392,6 +1396,16 @@ static int i915_pm_suspend_late(struct device
> *kdev)
>  	return i915_drm_suspend_late(&i915->drm, false);
>  }
>  
> +static int i915_pm_suspend_noirq(struct device *kdev)
> +{
> +	struct drm_i915_private *i915 = kdev_to_i915(kdev);
> +
> +	if (i915->drm.switch_power_state == DRM_SWITCH_POWER_OFF)
> +		return 0;
> +
> +	return i915_drm_suspend_noirq(&i915->drm, false);
> +}
> +
>  static int i915_pm_poweroff_late(struct device *kdev)
>  {
>  	struct drm_i915_private *i915 = kdev_to_i915(kdev);
> @@ -1402,6 +1416,16 @@ static int i915_pm_poweroff_late(struct device
> *kdev)
>  	return i915_drm_suspend_late(&i915->drm, true);
>  }
>  
> +static int i915_pm_poweroff_noirq(struct device *kdev)
> +{
> +	struct drm_i915_private *i915 = kdev_to_i915(kdev);
> +
> +	if (i915->drm.switch_power_state == DRM_SWITCH_POWER_OFF)
> +		return 0;
> +
> +	return i915_drm_suspend_noirq(&i915->drm, true);
> +}
> +
>  static int i915_pm_resume_early(struct device *kdev)
>  {
>  	struct drm_i915_private *i915 = kdev_to_i915(kdev);
> @@ -1667,6 +1691,7 @@ const struct dev_pm_ops i915_pm_ops = {
>  	.prepare = i915_pm_prepare,
>  	.suspend = i915_pm_suspend,
>  	.suspend_late = i915_pm_suspend_late,
> +	.suspend_noirq = i915_pm_suspend_noirq,
>  	.resume_early = i915_pm_resume_early,
>  	.resume = i915_pm_resume,
>  	.complete = i915_pm_complete,
> @@ -1692,6 +1717,7 @@ const struct dev_pm_ops i915_pm_ops = {
>  	.thaw = i915_pm_thaw,
>  	.poweroff = i915_pm_suspend,
>  	.poweroff_late = i915_pm_poweroff_late,
> +	.poweroff_noirq = i915_pm_poweroff_noirq,
>  	.restore_early = i915_pm_restore_early,
>  	.restore = i915_pm_restore,
>  


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v2 4/6] drm/i915/pm: Do pci_restore_state() in switcheroo resume hook
  2025-03-11 19:56 ` [PATCH v2 4/6] drm/i915/pm: Do pci_restore_state() in switcheroo resume hook Ville Syrjala
  2025-03-15  0:55   ` Rodrigo Vivi
@ 2025-09-12 13:53   ` Hogander, Jouni
  1 sibling, 0 replies; 29+ messages in thread
From: Hogander, Jouni @ 2025-09-12 13:53 UTC (permalink / raw)
  To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org
  Cc: Vivi, Rodrigo

On Tue, 2025-03-11 at 21:56 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Since this switcheroo garbage bypasses all the core pm we
> have to manually manage the pci state. To that end add the
> missing pci_restore_state() to the switcheroo resume hook.
> We already have the pci_save_state() counterpart on the
> suspend side.
> 
> Arguably none of this code should exist in the driver
> in the first place, and instead the entire switcheroo
> mechanism should be rewritten and properly integrated into
> core pm code...
> 
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_driver.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_driver.c
> b/drivers/gpu/drm/i915/i915_driver.c
> index 995205e24ebf..a199e21c7bb4 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -1340,6 +1340,8 @@ int i915_driver_resume_switcheroo(struct
> drm_i915_private *i915)
>  	if (ret)
>  		return ret;
>  
> +	pci_restore_state(pdev);
> +
>  	ret = i915_drm_resume_early(&i915->drm);
>  	if (ret)
>  		return ret;


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v2 5/6] drm/i915/pm: Allow drivers/pci to manage our pci state normally
  2025-03-11 19:56 ` [PATCH v2 5/6] drm/i915/pm: Allow drivers/pci to manage our pci state normally Ville Syrjala
  2025-03-15  0:56   ` Rodrigo Vivi
@ 2025-09-12 13:53   ` Hogander, Jouni
  1 sibling, 0 replies; 29+ messages in thread
From: Hogander, Jouni @ 2025-09-12 13:53 UTC (permalink / raw)
  To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org

On Tue, 2025-03-11 at 21:56 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Stop doing the pci_save_state(), except when we need to prevent
> D3 due to BIOS bugs, so that the code in drivers/pci is allowed
> to manage the state of the PCI device. Less chance something
> getting left by the wayside by i915 if/when the things change in
> drivers/pci.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jouni Högander <jouni.hogander@intel.com>

> ---
>  drivers/gpu/drm/i915/i915_driver.c | 11 +++++------
>  1 file changed, 5 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_driver.c
> b/drivers/gpu/drm/i915/i915_driver.c
> index a199e21c7bb4..503f1b6b694f 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -1154,9 +1154,8 @@ static int i915_drm_suspend_noirq(struct
> drm_device *dev, bool hibernation)
>  	 * pci_save_state() prevents drivers/pci from
>  	 * automagically putting the device into D3.
>  	 */
> -	pci_save_state(pdev);
> -	if (!(hibernation && GRAPHICS_VER(dev_priv) < 6))
> -		pci_set_power_state(pdev, PCI_D3hot);
> +	if (hibernation && GRAPHICS_VER(dev_priv) < 6)
> +		pci_save_state(pdev);
>  
>  	return 0;
>  }
> @@ -1164,6 +1163,7 @@ static int i915_drm_suspend_noirq(struct
> drm_device *dev, bool hibernation)
>  int i915_driver_suspend_switcheroo(struct drm_i915_private *i915,
>  				   pm_message_t state)
>  {
> +	struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
>  	int error;
>  
>  	if (drm_WARN_ON_ONCE(&i915->drm, state.event !=
> PM_EVENT_SUSPEND &&
> @@ -1181,9 +1181,8 @@ int i915_driver_suspend_switcheroo(struct
> drm_i915_private *i915,
>  	if (error)
>  		return error;
>  
> -	error = i915_drm_suspend_noirq(&i915->drm, false);
> -	if (error)
> -		return error;
> +	pci_save_state(pdev);
> +	pci_set_power_state(pdev, PCI_D3hot);
>  
>  	return 0;
>  }


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v2 6/6] drm/i915/pm: Drop redundant pci stuff from suspend/resume paths
  2025-03-11 19:56 ` [PATCH v2 6/6] drm/i915/pm: Drop redundant pci stuff from suspend/resume paths Ville Syrjala
  2025-03-15  1:00   ` Rodrigo Vivi
  2025-09-12  9:44   ` Hogander, Jouni
@ 2025-09-12 13:54   ` Hogander, Jouni
  2 siblings, 0 replies; 29+ messages in thread
From: Hogander, Jouni @ 2025-09-12 13:54 UTC (permalink / raw)
  To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org

On Tue, 2025-03-11 at 21:56 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> I don't think there should be any need for us to call any of
> pci_enable_device(), pci_disable_device() or pci_set_master()
> from the suspend/resume paths. The config space save/restore should
> take care of all of this.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_driver.c | 31 ----------------------------
> --
>  1 file changed, 31 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_driver.c
> b/drivers/gpu/drm/i915/i915_driver.c
> index 503f1b6b694f..d3d1b2d082dd 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -1092,7 +1092,6 @@ static int i915_drm_suspend_late(struct
> drm_device *dev, bool hibernation)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(dev);
>  	struct intel_display *display = &dev_priv->display;
> -	struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
>  	struct intel_runtime_pm *rpm = &dev_priv->runtime_pm;
>  	struct intel_gt *gt;
>  	int ret, i;
> @@ -1113,21 +1112,10 @@ static int i915_drm_suspend_late(struct
> drm_device *dev, bool hibernation)
>  	if (ret) {
>  		drm_err(&dev_priv->drm, "Suspend complete failed:
> %d\n", ret);
>  		intel_display_power_resume_early(display);
> -
> -		goto fail;
>  	}
>  
>  	enable_rpm_wakeref_asserts(rpm);
>  
> -	if (!dev_priv->uncore.user_forcewake_count)
> -		intel_runtime_pm_driver_release(rpm);
> -
> -	pci_disable_device(pdev);
> -
> -	return 0;
> -
> -fail:
> -	enable_rpm_wakeref_asserts(rpm);
>  	if (!dev_priv->uncore.user_forcewake_count)
>  		intel_runtime_pm_driver_release(rpm);
>  
> @@ -1278,7 +1266,6 @@ static int i915_drm_resume_early(struct
> drm_device *dev)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(dev);
>  	struct intel_display *display = &dev_priv->display;
> -	struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
>  	struct intel_gt *gt;
>  	int ret, i;
>  
> @@ -1292,24 +1279,6 @@ static int i915_drm_resume_early(struct
> drm_device *dev)
>  	 * similar so that power domains can be employed.
>  	 */
>  
> -	/*
> -	 * Note that pci_enable_device() first enables any parent
> bridge
> -	 * device and only then sets the power state for this
> device. The
> -	 * bridge enabling is a nop though, since bridge devices are
> resumed
> -	 * first. The order of enabling power and enabling the
> device is
> -	 * imposed by the PCI core as described above, so here we
> preserve the
> -	 * same order for the freeze/thaw phases.
> -	 *
> -	 * TODO: eventually we should remove pci_disable_device() /
> -	 * pci_enable_enable_device() from suspend/resume. Due to
> how they
> -	 * depend on the device enable refcount we can't anyway
> depend on them
> -	 * disabling/enabling the device.
> -	 */
> -	if (pci_enable_device(pdev))
> -		return -EIO;
> -
> -	pci_set_master(pdev);
> -
>  	disable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
>  
>  	ret = vlv_resume_prepare(dev_priv, false);


^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2025-09-12 13:54 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-11 19:56 [PATCH v2 0/6] drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk Ville Syrjala
2025-03-11 19:56 ` [PATCH v2 1/6] drm/i915/pm: Simplify pm hook documentation Ville Syrjala
2025-09-12 13:51   ` Hogander, Jouni
2025-03-11 19:56 ` [PATCH v2 2/6] drm/i915/pm: Hoist pci_save_state()+pci_set_power_state() to the end of pm _late() hook Ville Syrjala
2025-03-15  0:51   ` Rodrigo Vivi
2025-03-17  7:17   ` Raag Jadav
2025-09-12 13:52   ` Hogander, Jouni
2025-03-11 19:56 ` [PATCH v2 3/6] drm/i915/pm: Move the hibernate+D3 quirk stuff into noirq() pm hooks Ville Syrjala
2025-09-12 13:52   ` Hogander, Jouni
2025-03-11 19:56 ` [PATCH v2 4/6] drm/i915/pm: Do pci_restore_state() in switcheroo resume hook Ville Syrjala
2025-03-15  0:55   ` Rodrigo Vivi
2025-09-12 13:53   ` Hogander, Jouni
2025-03-11 19:56 ` [PATCH v2 5/6] drm/i915/pm: Allow drivers/pci to manage our pci state normally Ville Syrjala
2025-03-15  0:56   ` Rodrigo Vivi
2025-09-12 13:53   ` Hogander, Jouni
2025-03-11 19:56 ` [PATCH v2 6/6] drm/i915/pm: Drop redundant pci stuff from suspend/resume paths Ville Syrjala
2025-03-15  1:00   ` Rodrigo Vivi
2025-09-12  9:44   ` Hogander, Jouni
2025-09-12 12:56     ` Ville Syrjälä
2025-09-12 13:54   ` Hogander, Jouni
2025-03-11 23:15 ` ✗ i915.CI.BAT: failure for drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev2) Patchwork
2025-03-12  9:52   ` Ville Syrjälä
2025-03-12 10:05     ` Saarinen, Jani
2025-03-12 10:07       ` Saarinen, Jani
2025-03-12 11:53         ` Saarinen, Jani
2025-03-12 12:06       ` Knop, Ryszard
2025-04-25 18:08 ` ✗ Fi.CI.BUILD: warning for drm/i915/pm: Clean up the hibernate vs. PCI D3 quirk (rev3) Patchwork
2025-04-25 19:40 ` ✓ i915.CI.BAT: success " Patchwork
2025-04-26  3:56 ` ✓ i915.CI.Full: " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).