* [PATCH 1/4] drm/i915/hpd: plumb keep_hpd through irq reset
2026-08-26 22:53 [PATCH 0/4] PM_PME support on display hotplug Vinod Govindapillai
@ 2026-08-26 22:53 ` Vinod Govindapillai
2026-08-26 23:08 ` sashiko-bot
2026-08-26 22:53 ` [PATCH 2/4] drm/xe/pm: plumb PME capability to runtime suspend handler Vinod Govindapillai
` (5 subsequent siblings)
6 siblings, 1 reply; 11+ messages in thread
From: Vinod Govindapillai @ 2026-08-26 22:53 UTC (permalink / raw)
To: intel-xe, intel-gfx; +Cc: vinod.govindapillai, imre.deak, pranay.samala
xe_irq_suspend() resets all display interrupt registers, including the
HPD enable/mask registers. When runtime suspending to D3hot with PME
armed, this leaves the display unable to generate the hotplug event that
would wake the device, so a plug goes unnoticed until something else
resumes it.
As we are going to support PME and avoid HPD polling during the runtime
suspend, we need a way to preserve the HPD related interrupt registers.
A keep_hpd flag is used for that purpose and the HPD related interrupt
registers are reset / preserved based on this flag. But we need to plug
this keep_hpd in the existing IRQ suspend / reset mechanism. At this
point this flag is set to false until the PME capability is implemented.
Assisted-by: GitHub_Copilot:claude-opus-5
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
---
.../gpu/drm/i915/display/intel_display_irq.c | 46 +++++++++++++------
.../gpu/drm/i915/display/intel_display_irq.h | 2 +-
drivers/gpu/drm/i915/i915_irq.c | 16 +++----
drivers/gpu/drm/xe/display/xe_display.c | 4 +-
drivers/gpu/drm/xe/display/xe_display.h | 4 +-
drivers/gpu/drm/xe/xe_device.c | 2 +-
drivers/gpu/drm/xe/xe_irq.c | 18 +++++---
drivers/gpu/drm/xe/xe_irq.h | 2 +-
drivers/gpu/drm/xe/xe_pm.c | 4 +-
9 files changed, 59 insertions(+), 39 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display_irq.c b/drivers/gpu/drm/i915/display/intel_display_irq.c
index a59b75830bd1..26fc90ff7299 100644
--- a/drivers/gpu/drm/i915/display/intel_display_irq.c
+++ b/drivers/gpu/drm/i915/display/intel_display_irq.c
@@ -1976,16 +1976,20 @@ static void _vlv_display_irq_reset(struct intel_display *display)
display->irq.vlv_imr_mask = ~0u;
}
-static void vlv_display_irq_reset(struct intel_display *display)
+static void vlv_display_irq_reset(struct intel_display *display, bool keep_hpd)
{
+ drm_WARN_ON(display->drm, keep_hpd);
+
spin_lock_irq(&display->irq.lock);
if (display->irq.vlv_display_irqs_enabled)
_vlv_display_irq_reset(display);
spin_unlock_irq(&display->irq.lock);
}
-static void i9xx_display_irq_reset(struct intel_display *display)
+static void i9xx_display_irq_reset(struct intel_display *display, bool keep_hpd)
{
+ drm_WARN_ON(display->drm, keep_hpd);
+
if (HAS_HOTPLUG(display)) {
i915_hotplug_interrupt_update(display, 0xffffffff, 0);
intel_de_rmw(display, PORT_HOTPLUG_STAT(display), 0, 0);
@@ -2177,8 +2181,10 @@ static void ibx_display_irq_reset(struct intel_display *display)
intel_de_write(display, SERR_INT, 0xffffffff);
}
-static void ilk_display_irq_reset(struct intel_display *display)
+static void ilk_display_irq_reset(struct intel_display *display, bool keep_hpd)
{
+ drm_WARN_ON(display->drm, keep_hpd);
+
irq_reset(display, DE_IRQ_REGS);
display->irq.ilk_de_imr_mask = ~0u;
@@ -2193,10 +2199,12 @@ static void ilk_display_irq_reset(struct intel_display *display)
ibx_display_irq_reset(display);
}
-static void gen8_display_irq_reset(struct intel_display *display)
+static void gen8_display_irq_reset(struct intel_display *display, bool keep_hpd)
{
enum pipe pipe;
+ drm_WARN_ON(display->drm, keep_hpd);
+
intel_de_write(display, EDP_PSR_IMR, 0xffffffff);
intel_de_write(display, EDP_PSR_IIR, 0xffffffff);
@@ -2212,13 +2220,14 @@ static void gen8_display_irq_reset(struct intel_display *display)
ibx_display_irq_reset(display);
}
-static void gen11_display_irq_reset(struct intel_display *display)
+static void gen11_display_irq_reset(struct intel_display *display, bool keep_hpd)
{
enum pipe pipe;
u32 trans_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) |
BIT(TRANSCODER_C) | BIT(TRANSCODER_D);
- intel_de_write(display, GEN11_DISPLAY_INT_CTL, 0);
+ if (!keep_hpd)
+ intel_de_write(display, GEN11_DISPLAY_INT_CTL, 0);
if (DISPLAY_VER(display) >= 12) {
enum transcoder trans;
@@ -2250,13 +2259,20 @@ static void gen11_display_irq_reset(struct intel_display *display)
irq_reset(display, GEN8_DE_PORT_IRQ_REGS);
irq_reset(display, GEN8_DE_MISC_IRQ_REGS);
- if (DISPLAY_VER(display) >= 14)
- irq_reset(display, PICAINTERRUPT_IRQ_REGS);
- else
- irq_reset(display, GEN11_DE_HPD_IRQ_REGS);
+ /*
+ * When runtime suspending to D3hot with PME armed, leave the HPD
+ * interrupt registers programmed so that a hotplug can still
+ * generate the wake event. Everything else is reset as usual.
+ */
+ if (!keep_hpd) {
+ if (DISPLAY_VER(display) >= 14)
+ irq_reset(display, PICAINTERRUPT_IRQ_REGS);
+ else
+ irq_reset(display, GEN11_DE_HPD_IRQ_REGS);
- if (INTEL_PCH_TYPE(display) >= PCH_ICP)
- irq_reset(display, SDE_IRQ_REGS);
+ if (INTEL_PCH_TYPE(display) >= PCH_ICP)
+ irq_reset(display, SDE_IRQ_REGS);
+ }
}
void gen8_irq_power_well_post_enable(struct intel_display *display,
@@ -2542,7 +2558,7 @@ static void gen11_de_irq_postinstall(struct intel_display *display)
}
struct intel_display_irq_funcs {
- void (*reset)(struct intel_display *display);
+ void (*reset)(struct intel_display *display, bool keep_hpd);
void (*postinstall)(struct intel_display *display);
void (*ack)(struct intel_display *display, struct intel_display_irq_state *state);
bool (*handler)(struct intel_display *display, const struct intel_display_irq_state *state);
@@ -2587,12 +2603,12 @@ static const struct intel_display_irq_funcs i915_display_irq_funcs = {
.handler = i915_display_irq_handler,
};
-void intel_display_irq_reset(struct intel_display *display)
+void intel_display_irq_reset(struct intel_display *display, bool keep_hpd)
{
if (!HAS_DISPLAY(display))
return;
- display->irq.funcs->reset(display);
+ display->irq.funcs->reset(display, keep_hpd);
}
void intel_display_irq_postinstall(struct intel_display *display)
diff --git a/drivers/gpu/drm/i915/display/intel_display_irq.h b/drivers/gpu/drm/i915/display/intel_display_irq.h
index 84446bf53401..106f6d979f71 100644
--- a/drivers/gpu/drm/i915/display/intel_display_irq.h
+++ b/drivers/gpu/drm/i915/display/intel_display_irq.h
@@ -64,7 +64,7 @@ struct intel_display_irq_state {
u32 pipe_stats[I915_MAX_PIPES];
};
-void intel_display_irq_reset(struct intel_display *display);
+void intel_display_irq_reset(struct intel_display *display, bool keep_hpd);
void intel_display_irq_postinstall(struct intel_display *display);
void intel_display_irq_ack(struct intel_display *display, struct intel_display_irq_state *state);
bool intel_display_irq_handler(struct intel_display *display, const struct intel_display_irq_state *state);
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 932409b943ad..db53b6e82d8e 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -599,7 +599,7 @@ static void ilk_irq_reset(struct drm_i915_private *dev_priv)
struct intel_display *display = dev_priv->display;
/* The master interrupt enable is in DEIER, reset display irq first */
- intel_display_irq_reset(display);
+ intel_display_irq_reset(display, false);
gen5_gt_irq_reset(to_gt(dev_priv));
}
@@ -612,7 +612,7 @@ static void valleyview_irq_reset(struct drm_i915_private *dev_priv)
gen5_gt_irq_reset(to_gt(dev_priv));
- intel_display_irq_reset(display);
+ intel_display_irq_reset(display, false);
}
static void gen8_irq_reset(struct drm_i915_private *dev_priv)
@@ -623,7 +623,7 @@ static void gen8_irq_reset(struct drm_i915_private *dev_priv)
gen8_master_intr_disable(intel_uncore_regs(uncore));
gen8_gt_irq_reset(to_gt(dev_priv));
- intel_display_irq_reset(display);
+ intel_display_irq_reset(display, false);
gen2_irq_reset(uncore, GEN8_PCU_IRQ_REGS);
}
@@ -636,7 +636,7 @@ static void gen11_irq_reset(struct drm_i915_private *dev_priv)
gen11_master_intr_disable(intel_uncore_regs(&dev_priv->uncore));
gen11_gt_irq_reset(gt);
- intel_display_irq_reset(display);
+ intel_display_irq_reset(display, false);
gen2_irq_reset(uncore, GEN11_GU_MISC_IRQ_REGS);
gen2_irq_reset(uncore, GEN8_PCU_IRQ_REGS);
@@ -654,7 +654,7 @@ static void dg1_irq_reset(struct drm_i915_private *dev_priv)
for_each_gt(gt, dev_priv, i)
gen11_gt_irq_reset(gt);
- intel_display_irq_reset(display);
+ intel_display_irq_reset(display, false);
gen2_irq_reset(uncore, GEN11_GU_MISC_IRQ_REGS);
gen2_irq_reset(uncore, GEN8_PCU_IRQ_REGS);
@@ -674,7 +674,7 @@ static void cherryview_irq_reset(struct drm_i915_private *dev_priv)
gen2_irq_reset(uncore, GEN8_PCU_IRQ_REGS);
- intel_display_irq_reset(display);
+ intel_display_irq_reset(display, false);
}
static void ilk_irq_postinstall(struct drm_i915_private *dev_priv)
@@ -823,7 +823,7 @@ static void i915_irq_reset(struct drm_i915_private *dev_priv)
struct intel_display *display = dev_priv->display;
struct intel_uncore *uncore = &dev_priv->uncore;
- intel_display_irq_reset(display);
+ intel_display_irq_reset(display, false);
gen2_error_reset(uncore, GEN2_ERROR_REGS);
gen2_irq_reset(uncore, GEN2_IRQ_REGS);
@@ -900,7 +900,7 @@ static void i965_irq_reset(struct drm_i915_private *dev_priv)
struct intel_display *display = dev_priv->display;
struct intel_uncore *uncore = &dev_priv->uncore;
- intel_display_irq_reset(display);
+ intel_display_irq_reset(display, false);
gen2_error_reset(uncore, GEN2_ERROR_REGS);
gen2_irq_reset(uncore, GEN2_IRQ_REGS);
diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
index 7b25c0814674..6f1f8e0b25b5 100644
--- a/drivers/gpu/drm/xe/display/xe_display.c
+++ b/drivers/gpu/drm/xe/display/xe_display.c
@@ -216,14 +216,14 @@ void xe_display_irq_enable(struct xe_device *xe, u32 gu_misc_iir)
intel_opregion_asle_intr(display);
}
-void xe_display_irq_reset(struct xe_device *xe)
+void xe_display_irq_reset(struct xe_device *xe, bool keep_hpd)
{
struct intel_display *display = xe->display;
if (!xe->info.probe_display)
return;
- intel_display_irq_reset(display);
+ intel_display_irq_reset(display, keep_hpd);
}
void xe_display_irq_postinstall(struct xe_device *xe)
diff --git a/drivers/gpu/drm/xe/display/xe_display.h b/drivers/gpu/drm/xe/display/xe_display.h
index 0babb50bfc77..19f313eba6fb 100644
--- a/drivers/gpu/drm/xe/display/xe_display.h
+++ b/drivers/gpu/drm/xe/display/xe_display.h
@@ -34,7 +34,7 @@ void xe_display_shutdown_late(struct xe_device *xe);
void xe_display_irq_handler(struct xe_device *xe, u32 master_ctl);
void xe_display_irq_enable(struct xe_device *xe, u32 gu_misc_iir);
-void xe_display_irq_reset(struct xe_device *xe);
+void xe_display_irq_reset(struct xe_device *xe, bool keep_hpd);
void xe_display_irq_postinstall(struct xe_device *xe);
void xe_display_pm_suspend(struct xe_device *xe);
@@ -72,7 +72,7 @@ static inline void xe_display_shutdown_late(struct xe_device *xe) {}
static inline void xe_display_irq_handler(struct xe_device *xe, u32 master_ctl) {}
static inline void xe_display_irq_enable(struct xe_device *xe, u32 gu_misc_iir) {}
-static inline void xe_display_irq_reset(struct xe_device *xe) {}
+static inline void xe_display_irq_reset(struct xe_device *xe, bool keep_hpd) {}
static inline void xe_display_irq_postinstall(struct xe_device *xe) {}
static inline void xe_display_pm_suspend(struct xe_device *xe) {}
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 74d566693dfd..2c586dd3e187 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -1190,7 +1190,7 @@ void xe_device_shutdown(struct xe_device *xe)
xe_display_shutdown(xe);
- xe_irq_suspend(xe);
+ xe_irq_suspend(xe, false);
for_each_gt(gt, xe, id)
xe_gt_shutdown(gt);
diff --git a/drivers/gpu/drm/xe/xe_irq.c b/drivers/gpu/drm/xe/xe_irq.c
index 9e49e2241da4..eb240615455c 100644
--- a/drivers/gpu/drm/xe/xe_irq.c
+++ b/drivers/gpu/drm/xe/xe_irq.c
@@ -644,7 +644,7 @@ static void vf_irq_reset(struct xe_device *xe)
}
}
-static void xe_irq_reset(struct xe_device *xe)
+static void xe_irq_reset(struct xe_device *xe, bool keep_hpd)
{
struct xe_tile *tile;
u8 id;
@@ -666,7 +666,7 @@ static void xe_irq_reset(struct xe_device *xe)
tile = xe_device_get_root_tile(xe);
mask_and_disable(tile, GU_MISC_IRQ_OFFSET);
- xe_display_irq_reset(xe);
+ xe_display_irq_reset(xe, keep_hpd);
xe_i2c_irq_reset(xe);
/*
@@ -789,7 +789,7 @@ static void irq_uninstall(void *arg)
if (!atomic_xchg(&xe->irq.enabled, 0))
return;
- xe_irq_reset(xe);
+ xe_irq_reset(xe, false);
if (xe_device_has_msix(xe))
xe_irq_msix_free(xe);
@@ -813,7 +813,7 @@ int xe_irq_install(struct xe_device *xe)
xe_hw_error_init(xe);
- xe_irq_reset(xe);
+ xe_irq_reset(xe, false);
if (xe_device_has_msix(xe)) {
nvec = xe->irq.msix.nvec;
@@ -843,7 +843,7 @@ static void xe_irq_msi_synchronize_irq(struct xe_device *xe)
synchronize_irq(to_pci_dev(xe->drm.dev)->irq);
}
-void xe_irq_suspend(struct xe_device *xe)
+void xe_irq_suspend(struct xe_device *xe, bool keep_hpd)
{
atomic_set(&xe->irq.enabled, 0); /* no new irqs */
@@ -852,7 +852,7 @@ void xe_irq_suspend(struct xe_device *xe)
xe_irq_msix_synchronize_irq(xe);
else
xe_irq_msi_synchronize_irq(xe);
- xe_irq_reset(xe); /* turn irqs off */
+ xe_irq_reset(xe, keep_hpd); /* turn irqs off */
}
void xe_irq_resume(struct xe_device *xe)
@@ -866,7 +866,11 @@ void xe_irq_resume(struct xe_device *xe)
* 2. display is not yet resumed
*/
atomic_set(&xe->irq.enabled, 1);
- xe_irq_reset(xe);
+ /*
+ * Always a full reset here: once awake, HPD is delivered as a normal
+ * interrupt again and the postinstall below re-arms that path.
+ */
+ xe_irq_reset(xe, false);
xe_irq_postinstall(xe); /* turn irqs on */
for_each_gt(gt, xe, id)
diff --git a/drivers/gpu/drm/xe/xe_irq.h b/drivers/gpu/drm/xe/xe_irq.h
index a28bd577ba52..eb9eb2060ff5 100644
--- a/drivers/gpu/drm/xe/xe_irq.h
+++ b/drivers/gpu/drm/xe/xe_irq.h
@@ -16,7 +16,7 @@ struct xe_gt;
int xe_irq_init(struct xe_device *xe);
int xe_irq_install(struct xe_device *xe);
-void xe_irq_suspend(struct xe_device *xe);
+void xe_irq_suspend(struct xe_device *xe, bool keep_hpd);
void xe_irq_resume(struct xe_device *xe);
void xe_irq_enable_hwe(struct xe_gt *gt);
int xe_irq_msix_request_irq(struct xe_device *xe, irq_handler_t handler, void *irq_buf,
diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index f517bf453b54..1488c4dfcc05 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -202,7 +202,7 @@ int xe_pm_suspend(struct xe_device *xe)
goto err_display;
}
- xe_irq_suspend(xe);
+ xe_irq_suspend(xe, false);
xe_display_pm_suspend_late(xe);
@@ -639,7 +639,7 @@ int xe_pm_runtime_suspend(struct xe_device *xe)
goto out_resume;
}
- xe_irq_suspend(xe);
+ xe_irq_suspend(xe, false);
xe_display_pm_runtime_suspend_late(xe);
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* [PATCH 2/4] drm/xe/pm: plumb PME capability to runtime suspend handler
2026-08-26 22:53 [PATCH 0/4] PM_PME support on display hotplug Vinod Govindapillai
2026-08-26 22:53 ` [PATCH 1/4] drm/i915/hpd: plumb keep_hpd through irq reset Vinod Govindapillai
@ 2026-08-26 22:53 ` Vinod Govindapillai
2026-08-26 23:04 ` sashiko-bot
2026-08-26 22:53 ` [PATCH 3/4] drm/xe/pm: allow the device to signal PME from D3hot Vinod Govindapillai
` (4 subsequent siblings)
6 siblings, 1 reply; 11+ messages in thread
From: Vinod Govindapillai @ 2026-08-26 22:53 UTC (permalink / raw)
To: intel-xe, intel-gfx; +Cc: vinod.govindapillai, imre.deak, pranay.samala
If the device is PME capable, we don't need to start the HPD polling
during the runtime suspend. So to differentiate, plumb pme_capable
flag which is set to true only if the platform supports PME and
the device is PME capable. In i915, this is set to false. But for xe
it will be set based on the PME capability. Until the PME capability
support is added, this flag hard coded to false. Also cases like
D3Cold where PME is not supported, this is set to false by default.
Assisted-by: GitHub_Copilot:claude-opus-5
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
---
drivers/gpu/drm/i915/display/intel_display_driver.c | 3 ++-
drivers/gpu/drm/i915/display/intel_display_driver.h | 3 ++-
drivers/gpu/drm/i915/i915_driver.c | 2 +-
drivers/gpu/drm/xe/display/xe_display.c | 4 ++--
drivers/gpu/drm/xe/display/xe_display.h | 4 ++--
drivers/gpu/drm/xe/xe_pci.c | 2 +-
drivers/gpu/drm/xe/xe_pm.c | 7 ++++---
drivers/gpu/drm/xe/xe_pm.h | 2 +-
8 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c
index 70d112fd4287..ba494827c9cb 100644
--- a/drivers/gpu/drm/i915/display/intel_display_driver.c
+++ b/drivers/gpu/drm/i915/display/intel_display_driver.c
@@ -904,7 +904,8 @@ void intel_display_driver_pm_runtime_suspend(struct intel_display *display)
}
/* after irq suspend */
-void intel_display_driver_pm_runtime_suspend_late(struct intel_display *display)
+void intel_display_driver_pm_runtime_suspend_late(struct intel_display *display,
+ bool pme_capable)
{
intel_display_power_runtime_suspend(display);
diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.h b/drivers/gpu/drm/i915/display/intel_display_driver.h
index 1ae2ad7e95f6..a8bc663bb840 100644
--- a/drivers/gpu/drm/i915/display/intel_display_driver.h
+++ b/drivers/gpu/drm/i915/display/intel_display_driver.h
@@ -47,7 +47,8 @@ void intel_display_driver_runtime_pm_enable(struct intel_display *display);
void intel_display_driver_runtime_pm_disable(struct intel_display *display);
void intel_display_driver_pm_runtime_suspend(struct intel_display *display);
-void intel_display_driver_pm_runtime_suspend_late(struct intel_display *display);
+void intel_display_driver_pm_runtime_suspend_late(struct intel_display *display,
+ bool pme_capable);
void intel_display_driver_pm_runtime_resume_early(struct intel_display *display);
void intel_display_driver_pm_runtime_resume(struct intel_display *display);
diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index ce6d20958320..2899683c6b0b 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -1518,7 +1518,7 @@ static int i915_pm_runtime_suspend(struct device *kdev)
for_each_gt(gt, dev_priv, i)
intel_uncore_suspend(gt->uncore);
- intel_display_driver_pm_runtime_suspend_late(display);
+ intel_display_driver_pm_runtime_suspend_late(display, false);
ret = vlv_suspend_complete(dev_priv);
if (ret) {
diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
index 6f1f8e0b25b5..16085b85444f 100644
--- a/drivers/gpu/drm/xe/display/xe_display.c
+++ b/drivers/gpu/drm/xe/display/xe_display.c
@@ -362,7 +362,7 @@ void xe_display_pm_runtime_suspend(struct xe_device *xe)
}
/* after irq suspend */
-void xe_display_pm_runtime_suspend_late(struct xe_device *xe)
+void xe_display_pm_runtime_suspend_late(struct xe_device *xe, bool pme_capable)
{
struct intel_display *display = xe->display;
@@ -376,7 +376,7 @@ void xe_display_pm_runtime_suspend_late(struct xe_device *xe)
return;
}
- intel_display_driver_pm_runtime_suspend_late(display);
+ intel_display_driver_pm_runtime_suspend_late(display, pme_capable);
}
/* before irq resume */
diff --git a/drivers/gpu/drm/xe/display/xe_display.h b/drivers/gpu/drm/xe/display/xe_display.h
index 19f313eba6fb..636b3768d882 100644
--- a/drivers/gpu/drm/xe/display/xe_display.h
+++ b/drivers/gpu/drm/xe/display/xe_display.h
@@ -42,7 +42,7 @@ void xe_display_pm_suspend_late(struct xe_device *xe);
void xe_display_pm_resume_early(struct xe_device *xe);
void xe_display_pm_resume(struct xe_device *xe);
void xe_display_pm_runtime_suspend(struct xe_device *xe);
-void xe_display_pm_runtime_suspend_late(struct xe_device *xe);
+void xe_display_pm_runtime_suspend_late(struct xe_device *xe, bool pme_capable);
void xe_display_pm_runtime_resume_early(struct xe_device *xe);
void xe_display_pm_runtime_resume(struct xe_device *xe);
@@ -80,7 +80,7 @@ static inline void xe_display_pm_suspend_late(struct xe_device *xe) {}
static inline void xe_display_pm_resume_early(struct xe_device *xe) {}
static inline void xe_display_pm_resume(struct xe_device *xe) {}
static inline void xe_display_pm_runtime_suspend(struct xe_device *xe) {}
-static inline void xe_display_pm_runtime_suspend_late(struct xe_device *xe) {}
+static inline void xe_display_pm_runtime_suspend_late(struct xe_device *xe, bool pme_capable) {}
static inline void xe_display_pm_runtime_resume_early(struct xe_device *xe) {}
static inline void xe_display_pm_runtime_resume(struct xe_device *xe) {}
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index ab4da1d9a9f1..c22b40045f7b 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -1392,7 +1392,7 @@ static int xe_pci_runtime_suspend(struct device *dev)
xe_assert(xe, !IS_SRIOV_VF(xe));
xe_assert(xe, !pci_num_vf(pdev));
- err = xe_pm_runtime_suspend(xe);
+ err = xe_pm_runtime_suspend(xe, false);
if (err)
return err;
diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index 1488c4dfcc05..c3a53c5f8b33 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -574,10 +574,11 @@ bool xe_pm_runtime_suspended(struct xe_device *xe)
/**
* xe_pm_runtime_suspend - Prepare our device for D3hot/D3Cold
* @xe: xe device instance
+ * @pme_capable: indicates if the device can raise PME from runtime D3hot.
*
* Returns 0 for success, negative error code otherwise.
*/
-int xe_pm_runtime_suspend(struct xe_device *xe)
+int xe_pm_runtime_suspend(struct xe_device *xe, bool pme_capable)
{
struct xe_bo *bo, *on;
struct xe_gt *gt;
@@ -639,9 +640,9 @@ int xe_pm_runtime_suspend(struct xe_device *xe)
goto out_resume;
}
- xe_irq_suspend(xe, false);
+ xe_irq_suspend(xe, pme_capable);
- xe_display_pm_runtime_suspend_late(xe);
+ xe_display_pm_runtime_suspend_late(xe, pme_capable);
xe_i2c_pm_suspend(xe);
diff --git a/drivers/gpu/drm/xe/xe_pm.h b/drivers/gpu/drm/xe/xe_pm.h
index 6d5ab09cb769..27455a8d2061 100644
--- a/drivers/gpu/drm/xe/xe_pm.h
+++ b/drivers/gpu/drm/xe/xe_pm.h
@@ -21,7 +21,7 @@ int xe_pm_probe(struct xe_device *xe);
int xe_pm_init(struct xe_device *xe);
void xe_pm_fini(struct xe_device *xe);
bool xe_pm_runtime_suspended(struct xe_device *xe);
-int xe_pm_runtime_suspend(struct xe_device *xe);
+int xe_pm_runtime_suspend(struct xe_device *xe, bool pme_capable);
int xe_pm_runtime_resume(struct xe_device *xe);
void xe_pm_runtime_get(struct xe_device *xe);
int xe_pm_runtime_get_ioctl(struct xe_device *xe);
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* [PATCH 3/4] drm/xe/pm: allow the device to signal PME from D3hot
2026-08-26 22:53 [PATCH 0/4] PM_PME support on display hotplug Vinod Govindapillai
2026-08-26 22:53 ` [PATCH 1/4] drm/i915/hpd: plumb keep_hpd through irq reset Vinod Govindapillai
2026-08-26 22:53 ` [PATCH 2/4] drm/xe/pm: plumb PME capability to runtime suspend handler Vinod Govindapillai
@ 2026-08-26 22:53 ` Vinod Govindapillai
2026-08-26 23:01 ` sashiko-bot
2026-08-26 22:53 ` [PATCH 4/4] drm/i915/display: Avoid HPD polling if the device is PME capable Vinod Govindapillai
` (3 subsequent siblings)
6 siblings, 1 reply; 11+ messages in thread
From: Vinod Govindapillai @ 2026-08-26 22:53 UTC (permalink / raw)
To: intel-xe, intel-gfx; +Cc: vinod.govindapillai, imre.deak, pranay.samala
Make the device a usable wakeup source so it can raise PME while runtime
suspended to D3hot The PCI core marks endpoints wakeup-capable but leaves
them disabled, so pci_enable_wake() returns -EINVAL until the driver opts
in using devm_device_init_wakeup(). D3cold is excluded, as the device
loses power there and cannot signal at all.
Assisted-by: GitHub_Copilot:claude-opus-5
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
---
drivers/gpu/drm/xe/xe_pci.c | 22 ++++++++++++++++++++--
drivers/gpu/drm/xe/xe_pm.c | 25 +++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_pm.h | 1 +
3 files changed, 46 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index c22b40045f7b..42c933390d0d 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -1217,6 +1217,10 @@ static int __xe_pci_probe(struct pci_dev *pdev, const struct xe_device_desc *des
pci_set_master(pdev);
+ err = devm_device_init_wakeup(&pdev->dev);
+ if (err)
+ return err;
+
err = xe_probe_info_early(xe, desc, &probed_info);
if (err)
return err;
@@ -1381,6 +1385,7 @@ static int xe_pci_runtime_suspend(struct device *dev)
{
struct pci_dev *pdev = to_pci_dev(dev);
struct xe_device *xe = pdev_to_xe_device(pdev);
+ bool pme_armed = false;
int err;
/*
@@ -1392,9 +1397,20 @@ static int xe_pci_runtime_suspend(struct device *dev)
xe_assert(xe, !IS_SRIOV_VF(xe));
xe_assert(xe, !pci_num_vf(pdev));
- err = xe_pm_runtime_suspend(xe, false);
- if (err)
+ if (xe_pm_pme_capable(xe)) {
+ pme_armed = !pci_enable_wake(pdev, PCI_D3hot, true);
+ if (!pme_armed)
+ drm_warn(&xe->drm,
+ "Failed to arm PME for D3hot: %d\n", err);
+ }
+
+ err = xe_pm_runtime_suspend(xe, pme_armed);
+ if (err) {
+ if (pme_armed)
+ pci_enable_wake(pdev, PCI_D3hot, false);
+
return err;
+ }
pci_save_state(pdev);
@@ -1421,6 +1437,8 @@ static int xe_pci_runtime_resume(struct device *dev)
if (err)
return err;
+ pci_enable_wake(pdev, PCI_D3hot, false);
+
pci_restore_state(pdev);
if (xe->d3cold.allowed) {
diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index c3a53c5f8b33..e488bfa086ea 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -555,6 +555,31 @@ struct task_struct *xe_pm_read_callback_task(struct xe_device *xe)
return READ_ONCE(xe->pm_callback_task);
}
+/**
+ * xe_pm_pme_capable - Can the device raise PME from runtime D3hot?
+ * @xe: xe device instance
+ *
+ * Only meaningful on the D3hot runtime suspend path: on D3cold the device
+ * loses power and cannot signal a hotplug. Honours the user-visible
+ * power/wakeup policy via device_may_wakeup(), so a user who disables
+ * wakeup falls back to the normal reset-and-poll behaviour rather than
+ * losing both mechanisms.
+ *
+ * Return: true if PME can be armed for D3hot.
+ */
+bool xe_pm_pme_capable(struct xe_device *xe)
+{
+ struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
+
+ if (xe->d3cold.allowed)
+ return false;
+
+ if (!pci_pme_capable(pdev, PCI_D3hot))
+ return false;
+
+ return device_may_wakeup(&pdev->dev);
+}
+
/**
* xe_pm_runtime_suspended - Check if runtime_pm state is suspended
* @xe: xe device instance
diff --git a/drivers/gpu/drm/xe/xe_pm.h b/drivers/gpu/drm/xe/xe_pm.h
index 27455a8d2061..876afd5bebc6 100644
--- a/drivers/gpu/drm/xe/xe_pm.h
+++ b/drivers/gpu/drm/xe/xe_pm.h
@@ -23,6 +23,7 @@ void xe_pm_fini(struct xe_device *xe);
bool xe_pm_runtime_suspended(struct xe_device *xe);
int xe_pm_runtime_suspend(struct xe_device *xe, bool pme_capable);
int xe_pm_runtime_resume(struct xe_device *xe);
+bool xe_pm_pme_capable(struct xe_device *xe);
void xe_pm_runtime_get(struct xe_device *xe);
int xe_pm_runtime_get_ioctl(struct xe_device *xe);
void xe_pm_runtime_put(struct xe_device *xe);
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* ✓ CI.KUnit: success for pm_pme support on display hotplug (rev2)
2026-08-26 22:53 [PATCH 0/4] PM_PME support on display hotplug Vinod Govindapillai
` (3 preceding siblings ...)
2026-08-26 22:53 ` [PATCH 4/4] drm/i915/display: Avoid HPD polling if the device is PME capable Vinod Govindapillai
@ 2026-08-26 23:02 ` Patchwork
2026-08-26 23:38 ` ✓ Xe.CI.BAT: " Patchwork
2026-08-27 2:02 ` ✓ Xe.CI.FULL: " Patchwork
6 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2026-08-26 23:02 UTC (permalink / raw)
To: Vinod Govindapillai; +Cc: intel-xe
== Series Details ==
Series: pm_pme support on display hotplug (rev2)
URL : https://patchwork.freedesktop.org/series/172305/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[23:00:30] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[23:00:34] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[23:01:06] Starting KUnit Kernel (1/1)...
[23:01:06] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[23:01:06] ================== guc_buf (11 subtests) ===================
[23:01:06] [PASSED] test_smallest
[23:01:06] [PASSED] test_largest
[23:01:06] [PASSED] test_granular
[23:01:06] [PASSED] test_unique
[23:01:06] [PASSED] test_overlap
[23:01:06] [PASSED] test_reusable
[23:01:06] [PASSED] test_too_big
[23:01:06] [PASSED] test_flush
[23:01:06] [PASSED] test_lookup
[23:01:06] [PASSED] test_data
[23:01:06] [PASSED] test_class
[23:01:06] ===================== [PASSED] guc_buf =====================
[23:01:06] =================== guc_dbm (7 subtests) ===================
[23:01:06] [PASSED] test_empty
[23:01:06] [PASSED] test_default
[23:01:06] ======================== test_size ========================
[23:01:06] [PASSED] 4
[23:01:06] [PASSED] 8
[23:01:06] [PASSED] 32
[23:01:06] [PASSED] 256
[23:01:06] ==================== [PASSED] test_size ====================
[23:01:06] ======================= test_reuse ========================
[23:01:06] [PASSED] 4
[23:01:06] [PASSED] 8
[23:01:06] [PASSED] 32
[23:01:06] [PASSED] 256
[23:01:06] =================== [PASSED] test_reuse ====================
[23:01:06] =================== test_range_overlap ====================
[23:01:06] [PASSED] 4
[23:01:06] [PASSED] 8
[23:01:06] [PASSED] 32
[23:01:06] [PASSED] 256
[23:01:06] =============== [PASSED] test_range_overlap ================
[23:01:06] =================== test_range_compact ====================
[23:01:06] [PASSED] 4
[23:01:06] [PASSED] 8
[23:01:06] [PASSED] 32
[23:01:06] [PASSED] 256
[23:01:06] =============== [PASSED] test_range_compact ================
[23:01:06] ==================== test_range_spare =====================
[23:01:06] [PASSED] 4
[23:01:06] [PASSED] 8
[23:01:06] [PASSED] 32
[23:01:06] [PASSED] 256
[23:01:06] ================ [PASSED] test_range_spare =================
[23:01:06] ===================== [PASSED] guc_dbm =====================
[23:01:06] =================== guc_idm (6 subtests) ===================
[23:01:06] [PASSED] bad_init
[23:01:06] [PASSED] no_init
[23:01:06] [PASSED] init_fini
[23:01:06] [PASSED] check_used
[23:01:06] [PASSED] check_quota
[23:01:06] [PASSED] check_all
[23:01:06] ===================== [PASSED] guc_idm =====================
[23:01:06] =============== guc_klv_helpers (9 subtests) ===============
[23:01:06] [PASSED] test_count
[23:01:06] [PASSED] test_encode_u32
[23:01:06] [PASSED] test_encode_u64
[23:01:06] [PASSED] test_encode_string
[23:01:06] [PASSED] test_encode_object_raw
[23:01:06] [PASSED] test_encode_object_klv
[23:01:06] [PASSED] test_encode_object_nested
[23:01:06] [PASSED] test_encode_object_basic
[23:01:06] [PASSED] test_print
[23:01:06] ================= [PASSED] guc_klv_helpers =================
[23:01:06] =================== xe_log (4 subtests) ====================
[23:01:06] [PASSED] demo_cper
[23:01:06] [PASSED] demo_dmesg
[23:01:06] ======================= test_dmesg ========================
[23:01:06] [PASSED] test_fatal
[23:01:06] [PASSED] test_fatal_tile
[23:01:06] [PASSED] test_fatal_gt
[23:01:06] [PASSED] test_fatal_comp
[23:01:06] [PASSED] test_fatal_comp_tile
[23:01:06] [PASSED] test_fatal_comp_gt
[23:01:06] [PASSED] test_fatal_all
[23:01:06] [PASSED] test_recoverable
[23:01:06] [PASSED] test_recoverable_tile
[23:01:06] [PASSED] test_recoverable_gt
[23:01:06] [PASSED] test_recoverable_comp
[23:01:06] [PASSED] test_recoverable_comp_tile
[23:01:06] [PASSED] test_recoverable_comp_gt
[23:01:06] [PASSED] test_recoverable_all
[23:01:06] [PASSED] test_info
[23:01:06] [PASSED] test_info_tile
[23:01:06] [PASSED] test_info_gt
[23:01:06] [PASSED] test_info_err
[23:01:06] [PASSED] test_info_comp
[23:01:06] [PASSED] test_info_comp_tile
[23:01:06] [PASSED] test_info_comp_gt
[23:01:06] [PASSED] test_info_all
[23:01:06] [PASSED] test_hw_fatal
[23:01:06] [PASSED] test_hw_recoverable
[23:01:06] [PASSED] test_hw_corrected
[23:01:06] [PASSED] test_hw_informational
[23:01:06] =================== [PASSED] test_dmesg ====================
[23:01:06] ====================== test_invalid =======================
[23:01:06] [SKIPPED] no-component no-location no-warn (requires CONFIG_DRM_XE_DEBUG)
[23:01:06] [SKIPPED] reserved location (requires CONFIG_DRM_XE_DEBUG)
[23:01:06] [SKIPPED] unknown location (requires CONFIG_DRM_XE_DEBUG)
[23:01:06] [SKIPPED] nonzero-device-id location (requires CONFIG_DRM_XE_DEBUG)
[23:01:06] [SKIPPED] invalid-tile-id location (requires CONFIG_DRM_XE_DEBUG)
[23:01:06] [SKIPPED] invalid-gt-id location (requires CONFIG_DRM_XE_DEBUG)
[23:01:06] [SKIPPED] unknown component class (requires CONFIG_DRM_XE_DEBUG)
[23:01:06] [SKIPPED] unknown system component (requires CONFIG_DRM_XE_DEBUG)
[23:01:06] [SKIPPED] unknown hardware component (requires CONFIG_DRM_XE_DEBUG)
[23:01:06] [SKIPPED] unknown component and location (requires CONFIG_DRM_XE_DEBUG)
[23:01:06] ================== [SKIPPED] test_invalid ==================
[23:01:06] ===================== [PASSED] xe_log ======================
[23:01:06] ================== no_relay (3 subtests) ===================
[23:01:06] [PASSED] xe_drops_guc2pf_if_not_ready
[23:01:06] [PASSED] xe_drops_guc2vf_if_not_ready
[23:01:06] [PASSED] xe_rejects_send_if_not_ready
[23:01:06] ==================== [PASSED] no_relay =====================
[23:01:06] ================== pf_relay (14 subtests) ==================
[23:01:06] [PASSED] pf_rejects_guc2pf_too_short
[23:01:06] [PASSED] pf_rejects_guc2pf_too_long
[23:01:06] [PASSED] pf_rejects_guc2pf_no_payload
[23:01:06] [PASSED] pf_fails_no_payload
[23:01:06] [PASSED] pf_fails_bad_origin
[23:01:06] [PASSED] pf_fails_bad_type
[23:01:06] [PASSED] pf_txn_reports_error
[23:01:06] [PASSED] pf_txn_sends_pf2guc
[23:01:06] [PASSED] pf_sends_pf2guc
[23:01:06] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[23:01:06] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[23:01:06] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[23:01:06] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[23:01:06] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[23:01:06] ==================== [PASSED] pf_relay =====================
[23:01:06] ================== vf_relay (3 subtests) ===================
[23:01:06] [PASSED] vf_rejects_guc2vf_too_short
[23:01:06] [PASSED] vf_rejects_guc2vf_too_long
[23:01:06] [PASSED] vf_rejects_guc2vf_no_payload
[23:01:06] ==================== [PASSED] vf_relay =====================
[23:01:06] ================ pf_gt_config (9 subtests) =================
[23:01:06] [PASSED] fair_contexts_1vf
[23:01:06] [PASSED] fair_doorbells_1vf
[23:01:06] [PASSED] fair_ggtt_1vf
[23:01:06] ====================== fair_vram_1vf ======================
[23:01:06] [PASSED] 3.50 GiB
[23:01:06] [PASSED] 11.5 GiB
[23:01:06] [PASSED] 15.5 GiB
[23:01:06] [PASSED] 31.5 GiB
[23:01:06] [PASSED] 63.5 GiB
[23:01:06] [PASSED] 1.91 GiB
[23:01:06] ================== [PASSED] fair_vram_1vf ==================
[23:01:06] ================ fair_vram_1vf_admin_only =================
[23:01:06] [PASSED] 3.50 GiB
[23:01:06] [PASSED] 11.5 GiB
[23:01:06] [PASSED] 15.5 GiB
[23:01:06] [PASSED] 31.5 GiB
[23:01:06] [PASSED] 63.5 GiB
[23:01:06] [PASSED] 1.91 GiB
[23:01:06] ============ [PASSED] fair_vram_1vf_admin_only =============
[23:01:06] ====================== fair_contexts ======================
[23:01:06] [PASSED] 1 VF
[23:01:06] [PASSED] 2 VFs
[23:01:06] [PASSED] 3 VFs
[23:01:06] [PASSED] 4 VFs
[23:01:06] [PASSED] 5 VFs
[23:01:06] [PASSED] 6 VFs
[23:01:06] [PASSED] 7 VFs
[23:01:06] [PASSED] 8 VFs
[23:01:06] [PASSED] 9 VFs
[23:01:06] [PASSED] 10 VFs
[23:01:06] [PASSED] 11 VFs
[23:01:06] [PASSED] 12 VFs
[23:01:06] [PASSED] 13 VFs
[23:01:06] [PASSED] 14 VFs
[23:01:06] [PASSED] 15 VFs
[23:01:06] [PASSED] 16 VFs
[23:01:06] [PASSED] 17 VFs
[23:01:06] [PASSED] 18 VFs
[23:01:06] [PASSED] 19 VFs
[23:01:06] [PASSED] 20 VFs
[23:01:06] [PASSED] 21 VFs
[23:01:06] [PASSED] 22 VFs
[23:01:06] [PASSED] 23 VFs
[23:01:06] [PASSED] 24 VFs
[23:01:06] [PASSED] 25 VFs
[23:01:06] [PASSED] 26 VFs
[23:01:06] [PASSED] 27 VFs
[23:01:06] [PASSED] 28 VFs
[23:01:06] [PASSED] 29 VFs
[23:01:06] [PASSED] 30 VFs
[23:01:06] [PASSED] 31 VFs
[23:01:06] [PASSED] 32 VFs
[23:01:06] [PASSED] 33 VFs
[23:01:06] [PASSED] 34 VFs
[23:01:06] [PASSED] 35 VFs
[23:01:06] [PASSED] 36 VFs
[23:01:06] [PASSED] 37 VFs
[23:01:06] [PASSED] 38 VFs
[23:01:06] [PASSED] 39 VFs
[23:01:06] [PASSED] 40 VFs
[23:01:06] [PASSED] 41 VFs
[23:01:06] [PASSED] 42 VFs
[23:01:06] [PASSED] 43 VFs
[23:01:06] [PASSED] 44 VFs
[23:01:06] [PASSED] 45 VFs
[23:01:06] [PASSED] 46 VFs
[23:01:06] [PASSED] 47 VFs
[23:01:06] [PASSED] 48 VFs
[23:01:06] [PASSED] 49 VFs
[23:01:06] [PASSED] 50 VFs
[23:01:06] [PASSED] 51 VFs
[23:01:06] [PASSED] 52 VFs
[23:01:06] [PASSED] 53 VFs
[23:01:06] [PASSED] 54 VFs
[23:01:06] [PASSED] 55 VFs
[23:01:06] [PASSED] 56 VFs
[23:01:06] [PASSED] 57 VFs
[23:01:06] [PASSED] 58 VFs
[23:01:06] [PASSED] 59 VFs
[23:01:06] [PASSED] 60 VFs
[23:01:06] [PASSED] 61 VFs
[23:01:06] [PASSED] 62 VFs
[23:01:06] [PASSED] 63 VFs
[23:01:06] ================== [PASSED] fair_contexts ==================
[23:01:06] ===================== fair_doorbells ======================
[23:01:06] [PASSED] 1 VF
[23:01:06] [PASSED] 2 VFs
[23:01:06] [PASSED] 3 VFs
[23:01:06] [PASSED] 4 VFs
[23:01:06] [PASSED] 5 VFs
[23:01:06] [PASSED] 6 VFs
[23:01:06] [PASSED] 7 VFs
[23:01:06] [PASSED] 8 VFs
[23:01:06] [PASSED] 9 VFs
[23:01:06] [PASSED] 10 VFs
[23:01:06] [PASSED] 11 VFs
[23:01:06] [PASSED] 12 VFs
[23:01:06] [PASSED] 13 VFs
[23:01:06] [PASSED] 14 VFs
[23:01:06] [PASSED] 15 VFs
[23:01:06] [PASSED] 16 VFs
[23:01:06] [PASSED] 17 VFs
[23:01:06] [PASSED] 18 VFs
[23:01:06] [PASSED] 19 VFs
[23:01:06] [PASSED] 20 VFs
[23:01:06] [PASSED] 21 VFs
[23:01:06] [PASSED] 22 VFs
[23:01:06] [PASSED] 23 VFs
[23:01:06] [PASSED] 24 VFs
[23:01:06] [PASSED] 25 VFs
[23:01:06] [PASSED] 26 VFs
[23:01:06] [PASSED] 27 VFs
[23:01:06] [PASSED] 28 VFs
[23:01:06] [PASSED] 29 VFs
[23:01:06] [PASSED] 30 VFs
[23:01:06] [PASSED] 31 VFs
[23:01:06] [PASSED] 32 VFs
[23:01:06] [PASSED] 33 VFs
[23:01:06] [PASSED] 34 VFs
[23:01:06] [PASSED] 35 VFs
[23:01:06] [PASSED] 36 VFs
[23:01:06] [PASSED] 37 VFs
[23:01:06] [PASSED] 38 VFs
[23:01:06] [PASSED] 39 VFs
[23:01:06] [PASSED] 40 VFs
[23:01:06] [PASSED] 41 VFs
[23:01:06] [PASSED] 42 VFs
[23:01:06] [PASSED] 43 VFs
[23:01:06] [PASSED] 44 VFs
[23:01:06] [PASSED] 45 VFs
[23:01:06] [PASSED] 46 VFs
[23:01:06] [PASSED] 47 VFs
[23:01:07] [PASSED] 48 VFs
[23:01:07] [PASSED] 49 VFs
[23:01:07] [PASSED] 50 VFs
[23:01:07] [PASSED] 51 VFs
[23:01:07] [PASSED] 52 VFs
[23:01:07] [PASSED] 53 VFs
[23:01:07] [PASSED] 54 VFs
[23:01:07] [PASSED] 55 VFs
[23:01:07] [PASSED] 56 VFs
[23:01:07] [PASSED] 57 VFs
[23:01:07] [PASSED] 58 VFs
[23:01:07] [PASSED] 59 VFs
[23:01:07] [PASSED] 60 VFs
[23:01:07] [PASSED] 61 VFs
[23:01:07] [PASSED] 62 VFs
[23:01:07] [PASSED] 63 VFs
[23:01:07] ================= [PASSED] fair_doorbells ==================
[23:01:07] ======================== fair_ggtt ========================
[23:01:07] [PASSED] 1 VF
[23:01:07] [PASSED] 2 VFs
[23:01:07] [PASSED] 3 VFs
[23:01:07] [PASSED] 4 VFs
[23:01:07] [PASSED] 5 VFs
[23:01:07] [PASSED] 6 VFs
[23:01:07] [PASSED] 7 VFs
[23:01:07] [PASSED] 8 VFs
[23:01:07] [PASSED] 9 VFs
[23:01:07] [PASSED] 10 VFs
[23:01:07] [PASSED] 11 VFs
[23:01:07] [PASSED] 12 VFs
[23:01:07] [PASSED] 13 VFs
[23:01:07] [PASSED] 14 VFs
[23:01:07] [PASSED] 15 VFs
[23:01:07] [PASSED] 16 VFs
[23:01:07] [PASSED] 17 VFs
[23:01:07] [PASSED] 18 VFs
[23:01:07] [PASSED] 19 VFs
[23:01:07] [PASSED] 20 VFs
[23:01:07] [PASSED] 21 VFs
[23:01:07] [PASSED] 22 VFs
[23:01:07] [PASSED] 23 VFs
[23:01:07] [PASSED] 24 VFs
[23:01:07] [PASSED] 25 VFs
[23:01:07] [PASSED] 26 VFs
[23:01:07] [PASSED] 27 VFs
[23:01:07] [PASSED] 28 VFs
[23:01:07] [PASSED] 29 VFs
[23:01:07] [PASSED] 30 VFs
[23:01:07] [PASSED] 31 VFs
[23:01:07] [PASSED] 32 VFs
[23:01:07] [PASSED] 33 VFs
[23:01:07] [PASSED] 34 VFs
[23:01:07] [PASSED] 35 VFs
[23:01:07] [PASSED] 36 VFs
[23:01:07] [PASSED] 37 VFs
[23:01:07] [PASSED] 38 VFs
[23:01:07] [PASSED] 39 VFs
[23:01:07] [PASSED] 40 VFs
[23:01:07] [PASSED] 41 VFs
[23:01:07] [PASSED] 42 VFs
[23:01:07] [PASSED] 43 VFs
[23:01:07] [PASSED] 44 VFs
[23:01:07] [PASSED] 45 VFs
[23:01:07] [PASSED] 46 VFs
[23:01:07] [PASSED] 47 VFs
[23:01:07] [PASSED] 48 VFs
[23:01:07] [PASSED] 49 VFs
[23:01:07] [PASSED] 50 VFs
[23:01:07] [PASSED] 51 VFs
[23:01:07] [PASSED] 52 VFs
[23:01:07] [PASSED] 53 VFs
[23:01:07] [PASSED] 54 VFs
[23:01:07] [PASSED] 55 VFs
[23:01:07] [PASSED] 56 VFs
[23:01:07] [PASSED] 57 VFs
[23:01:07] [PASSED] 58 VFs
[23:01:07] [PASSED] 59 VFs
[23:01:07] [PASSED] 60 VFs
[23:01:07] [PASSED] 61 VFs
[23:01:07] [PASSED] 62 VFs
[23:01:07] [PASSED] 63 VFs
[23:01:07] ==================== [PASSED] fair_ggtt ====================
[23:01:07] ======================== fair_vram ========================
[23:01:07] [PASSED] 1 VF
[23:01:07] [PASSED] 2 VFs
[23:01:07] [PASSED] 3 VFs
[23:01:07] [PASSED] 4 VFs
[23:01:07] [PASSED] 5 VFs
[23:01:07] [PASSED] 6 VFs
[23:01:07] [PASSED] 7 VFs
[23:01:07] [PASSED] 8 VFs
[23:01:07] [PASSED] 9 VFs
[23:01:07] [PASSED] 10 VFs
[23:01:07] [PASSED] 11 VFs
[23:01:07] [PASSED] 12 VFs
[23:01:07] [PASSED] 13 VFs
[23:01:07] [PASSED] 14 VFs
[23:01:07] [PASSED] 15 VFs
[23:01:07] [PASSED] 16 VFs
[23:01:07] [PASSED] 17 VFs
[23:01:07] [PASSED] 18 VFs
[23:01:07] [PASSED] 19 VFs
[23:01:07] [PASSED] 20 VFs
[23:01:07] [PASSED] 21 VFs
[23:01:07] [PASSED] 22 VFs
[23:01:07] [PASSED] 23 VFs
[23:01:07] [PASSED] 24 VFs
[23:01:07] [PASSED] 25 VFs
[23:01:07] [PASSED] 26 VFs
[23:01:07] [PASSED] 27 VFs
[23:01:07] [PASSED] 28 VFs
[23:01:07] [PASSED] 29 VFs
[23:01:07] [PASSED] 30 VFs
[23:01:07] [PASSED] 31 VFs
[23:01:07] [PASSED] 32 VFs
[23:01:07] [PASSED] 33 VFs
[23:01:07] [PASSED] 34 VFs
[23:01:07] [PASSED] 35 VFs
[23:01:07] [PASSED] 36 VFs
[23:01:07] [PASSED] 37 VFs
[23:01:07] [PASSED] 38 VFs
[23:01:07] [PASSED] 39 VFs
[23:01:07] [PASSED] 40 VFs
[23:01:07] [PASSED] 41 VFs
[23:01:07] [PASSED] 42 VFs
[23:01:07] [PASSED] 43 VFs
[23:01:07] [PASSED] 44 VFs
[23:01:07] [PASSED] 45 VFs
[23:01:07] [PASSED] 46 VFs
[23:01:07] [PASSED] 47 VFs
[23:01:07] [PASSED] 48 VFs
[23:01:07] [PASSED] 49 VFs
[23:01:07] [PASSED] 50 VFs
[23:01:07] [PASSED] 51 VFs
[23:01:07] [PASSED] 52 VFs
[23:01:07] [PASSED] 53 VFs
[23:01:07] [PASSED] 54 VFs
[23:01:07] [PASSED] 55 VFs
[23:01:07] [PASSED] 56 VFs
[23:01:07] [PASSED] 57 VFs
[23:01:07] [PASSED] 58 VFs
[23:01:07] [PASSED] 59 VFs
[23:01:07] [PASSED] 60 VFs
[23:01:07] [PASSED] 61 VFs
[23:01:07] [PASSED] 62 VFs
[23:01:07] [PASSED] 63 VFs
[23:01:07] ==================== [PASSED] fair_vram ====================
[23:01:07] ================== [PASSED] pf_gt_config ===================
[23:01:07] ===================== lmtt (1 subtest) =====================
[23:01:07] ======================== test_ops =========================
[23:01:07] [PASSED] 2-level
[23:01:07] [PASSED] multi-level
[23:01:07] ==================== [PASSED] test_ops =====================
[23:01:07] ====================== [PASSED] lmtt =======================
[23:01:07] ================= sriov_packet (1 subtest) =================
[23:01:07] [PASSED] test_descriptor_init
[23:01:07] ================== [PASSED] sriov_packet ===================
[23:01:07] ================= pf_service (11 subtests) =================
[23:01:07] [PASSED] pf_negotiate_any
[23:01:07] [PASSED] pf_negotiate_base_match
[23:01:07] [PASSED] pf_negotiate_base_newer
[23:01:07] [PASSED] pf_negotiate_base_next
[23:01:07] [SKIPPED] pf_negotiate_base_older (no older minor)
[23:01:07] [PASSED] pf_negotiate_base_prev
[23:01:07] [PASSED] pf_negotiate_latest_match
[23:01:07] [PASSED] pf_negotiate_latest_newer
[23:01:07] [PASSED] pf_negotiate_latest_next
[23:01:07] [SKIPPED] pf_negotiate_latest_older (no older minor)
[23:01:07] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[23:01:07] =================== [PASSED] pf_service ====================
[23:01:07] ================= xe_guc_g2g (2 subtests) ==================
[23:01:07] ============== xe_live_guc_g2g_kunit_default ==============
[23:01:07] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[23:01:07] ============== xe_live_guc_g2g_kunit_allmem ===============
[23:01:07] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[23:01:07] =================== [SKIPPED] xe_guc_g2g ===================
[23:01:07] =================== xe_mocs (2 subtests) ===================
[23:01:07] ================ xe_live_mocs_kernel_kunit ================
[23:01:07] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[23:01:07] ================ xe_live_mocs_reset_kunit =================
[23:01:07] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[23:01:07] ==================== [SKIPPED] xe_mocs =====================
[23:01:07] ================= xe_migrate (2 subtests) ==================
[23:01:07] ================= xe_migrate_sanity_kunit =================
[23:01:07] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[23:01:07] ================== xe_validate_ccs_kunit ==================
[23:01:07] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[23:01:07] =================== [SKIPPED] xe_migrate ===================
[23:01:07] ================== xe_dma_buf (1 subtest) ==================
[23:01:07] ==================== xe_dma_buf_kunit =====================
[23:01:07] ================ [SKIPPED] xe_dma_buf_kunit ================
[23:01:07] =================== [SKIPPED] xe_dma_buf ===================
[23:01:07] ================= xe_bo_shrink (1 subtest) =================
[23:01:07] =================== xe_bo_shrink_kunit ====================
[23:01:07] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[23:01:07] ================== [SKIPPED] xe_bo_shrink ==================
[23:01:07] ==================== xe_bo (2 subtests) ====================
[23:01:07] ================== xe_ccs_migrate_kunit ===================
[23:01:07] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[23:01:07] ==================== xe_bo_evict_kunit ====================
[23:01:07] =============== [SKIPPED] xe_bo_evict_kunit ================
[23:01:07] ===================== [SKIPPED] xe_bo ======================
[23:01:07] =================== xe_any (9 subtests) ====================
[23:01:07] [PASSED] test_to_xe
[23:01:07] [PASSED] test_to_dev
[23:01:07] [PASSED] test_to_pdev
[23:01:07] [PASSED] test_to_drm
[23:01:07] [PASSED] test_if_pdev
[23:01:07] [PASSED] test_if_xe
[23:01:07] [PASSED] test_if_tile
[23:01:07] [PASSED] test_if_gt
[23:01:07] [PASSED] test_to_id
[23:01:07] ===================== [PASSED] xe_any ======================
[23:01:07] ==================== args (13 subtests) ====================
[23:01:07] [PASSED] count_args_test
[23:01:07] [PASSED] call_args_example
[23:01:07] [PASSED] call_args_test
[23:01:07] [PASSED] drop_first_arg_example
[23:01:07] [PASSED] drop_first_arg_test
[23:01:07] [PASSED] first_arg_example
[23:01:07] [PASSED] first_arg_test
[23:01:07] [PASSED] last_arg_example
[23:01:07] [PASSED] last_arg_test
[23:01:07] [PASSED] pick_arg_example
[23:01:07] [PASSED] if_args_example
[23:01:07] [PASSED] if_args_test
[23:01:07] [PASSED] sep_comma_example
[23:01:07] ====================== [PASSED] args =======================
[23:01:07] =================== xe_pci (3 subtests) ====================
[23:01:07] ==================== check_graphics_ip ====================
[23:01:07] [PASSED] 12.00 Xe_LP
[23:01:07] [PASSED] 12.10 Xe_LP+
[23:01:07] [PASSED] 12.55 Xe_HPG
[23:01:07] [PASSED] 12.60 Xe_HPC
[23:01:07] [PASSED] 12.70 Xe_LPG
[23:01:07] [PASSED] 12.71 Xe_LPG
[23:01:07] [PASSED] 12.74 Xe_LPG+
[23:01:07] [PASSED] 20.01 Xe2_HPG
[23:01:07] [PASSED] 20.02 Xe2_HPG
[23:01:07] [PASSED] 20.04 Xe2_LPG
[23:01:07] [PASSED] 30.00 Xe3_LPG
[23:01:07] [PASSED] 30.01 Xe3_LPG
[23:01:07] [PASSED] 30.03 Xe3_LPG
[23:01:07] [PASSED] 30.04 Xe3_LPG
[23:01:07] [PASSED] 30.05 Xe3_LPG
[23:01:07] [PASSED] 35.10 Xe3p_LPG
[23:01:07] [PASSED] 35.11 Xe3p_XPC
[23:01:07] ================ [PASSED] check_graphics_ip ================
[23:01:07] ===================== check_media_ip ======================
[23:01:07] [PASSED] 12.00 Xe_M
[23:01:07] [PASSED] 12.55 Xe_HPM
[23:01:07] [PASSED] 13.00 Xe_LPM+
[23:01:07] [PASSED] 13.01 Xe2_HPM
[23:01:07] [PASSED] 20.00 Xe2_LPM
[23:01:07] [PASSED] 30.00 Xe3_LPM
[23:01:07] [PASSED] 30.02 Xe3_LPM
[23:01:07] [PASSED] 35.00 Xe3p_LPM
[23:01:07] [PASSED] 35.03 Xe3p_HPM
[23:01:07] ================= [PASSED] check_media_ip ==================
[23:01:07] =================== check_platform_desc ===================
[23:01:07] [PASSED] 0x9A60 (TIGERLAKE)
[23:01:07] [PASSED] 0x9A68 (TIGERLAKE)
[23:01:07] [PASSED] 0x9A70 (TIGERLAKE)
[23:01:07] [PASSED] 0x9A40 (TIGERLAKE)
[23:01:07] [PASSED] 0x9A49 (TIGERLAKE)
[23:01:07] [PASSED] 0x9A59 (TIGERLAKE)
[23:01:07] [PASSED] 0x9A78 (TIGERLAKE)
[23:01:07] [PASSED] 0x9AC0 (TIGERLAKE)
[23:01:07] [PASSED] 0x9AC9 (TIGERLAKE)
[23:01:07] [PASSED] 0x9AD9 (TIGERLAKE)
[23:01:07] [PASSED] 0x9AF8 (TIGERLAKE)
[23:01:07] [PASSED] 0x4C80 (ROCKETLAKE)
[23:01:07] [PASSED] 0x4C8A (ROCKETLAKE)
[23:01:07] [PASSED] 0x4C8B (ROCKETLAKE)
[23:01:07] [PASSED] 0x4C8C (ROCKETLAKE)
[23:01:07] [PASSED] 0x4C90 (ROCKETLAKE)
[23:01:07] [PASSED] 0x4C9A (ROCKETLAKE)
[23:01:07] [PASSED] 0x4680 (ALDERLAKE_S)
[23:01:07] [PASSED] 0x4682 (ALDERLAKE_S)
[23:01:07] [PASSED] 0x4688 (ALDERLAKE_S)
[23:01:07] [PASSED] 0x468A (ALDERLAKE_S)
[23:01:07] [PASSED] 0x468B (ALDERLAKE_S)
[23:01:07] [PASSED] 0x4690 (ALDERLAKE_S)
[23:01:07] [PASSED] 0x4692 (ALDERLAKE_S)
[23:01:07] [PASSED] 0x4693 (ALDERLAKE_S)
[23:01:07] [PASSED] 0x46A0 (ALDERLAKE_P)
[23:01:07] [PASSED] 0x46A1 (ALDERLAKE_P)
[23:01:07] [PASSED] 0x46A2 (ALDERLAKE_P)
[23:01:07] [PASSED] 0x46A3 (ALDERLAKE_P)
[23:01:07] [PASSED] 0x46A6 (ALDERLAKE_P)
[23:01:07] [PASSED] 0x46A8 (ALDERLAKE_P)
[23:01:07] [PASSED] 0x46AA (ALDERLAKE_P)
[23:01:07] [PASSED] 0x462A (ALDERLAKE_P)
[23:01:07] [PASSED] 0x4626 (ALDERLAKE_P)
[23:01:07] [PASSED] 0x4628 (ALDERLAKE_P)
[23:01:07] [PASSED] 0x46B0 (ALDERLAKE_P)
[23:01:07] [PASSED] 0x46B1 (ALDERLAKE_P)
[23:01:07] [PASSED] 0x46B2 (ALDERLAKE_P)
[23:01:07] [PASSED] 0x46B3 (ALDERLAKE_P)
[23:01:07] [PASSED] 0x46C0 (ALDERLAKE_P)
[23:01:07] [PASSED] 0x46C1 (ALDERLAKE_P)
[23:01:07] [PASSED] 0x46C2 (ALDERLAKE_P)
[23:01:07] [PASSED] 0x46C3 (ALDERLAKE_P)
[23:01:07] [PASSED] 0x46D0 (ALDERLAKE_N)
[23:01:07] [PASSED] 0x46D1 (ALDERLAKE_N)
[23:01:07] [PASSED] 0x46D2 (ALDERLAKE_N)
[23:01:07] [PASSED] 0x46D3 (ALDERLAKE_N)
[23:01:07] [PASSED] 0x46D4 (ALDERLAKE_N)
[23:01:07] [PASSED] 0xA721 (ALDERLAKE_P)
[23:01:07] [PASSED] 0xA7A1 (ALDERLAKE_P)
[23:01:07] [PASSED] 0xA7A9 (ALDERLAKE_P)
[23:01:07] [PASSED] 0xA7AC (ALDERLAKE_P)
[23:01:07] [PASSED] 0xA7AD (ALDERLAKE_P)
[23:01:07] [PASSED] 0xA720 (ALDERLAKE_P)
[23:01:07] [PASSED] 0xA7A0 (ALDERLAKE_P)
[23:01:07] [PASSED] 0xA7A8 (ALDERLAKE_P)
[23:01:07] [PASSED] 0xA7AA (ALDERLAKE_P)
[23:01:07] [PASSED] 0xA7AB (ALDERLAKE_P)
[23:01:07] [PASSED] 0xA780 (ALDERLAKE_S)
[23:01:07] [PASSED] 0xA781 (ALDERLAKE_S)
[23:01:07] [PASSED] 0xA782 (ALDERLAKE_S)
[23:01:07] [PASSED] 0xA783 (ALDERLAKE_S)
[23:01:07] [PASSED] 0xA788 (ALDERLAKE_S)
[23:01:07] [PASSED] 0xA789 (ALDERLAKE_S)
[23:01:07] [PASSED] 0xA78A (ALDERLAKE_S)
[23:01:07] [PASSED] 0xA78B (ALDERLAKE_S)
[23:01:07] [PASSED] 0x4905 (DG1)
[23:01:07] [PASSED] 0x4906 (DG1)
[23:01:07] [PASSED] 0x4907 (DG1)
[23:01:07] [PASSED] 0x4908 (DG1)
[23:01:07] [PASSED] 0x4909 (DG1)
[23:01:07] [PASSED] 0x56C0 (DG2)
[23:01:07] [PASSED] 0x56C2 (DG2)
[23:01:07] [PASSED] 0x56C1 (DG2)
[23:01:07] [PASSED] 0x7D51 (METEORLAKE)
[23:01:07] [PASSED] 0x7DD1 (METEORLAKE)
[23:01:07] [PASSED] 0x7D41 (METEORLAKE)
[23:01:07] [PASSED] 0x7D67 (METEORLAKE)
[23:01:07] [PASSED] 0xB640 (METEORLAKE)
[23:01:07] [PASSED] 0x56A0 (DG2)
[23:01:07] [PASSED] 0x56A1 (DG2)
[23:01:07] [PASSED] 0x56A2 (DG2)
[23:01:07] [PASSED] 0x56BE (DG2)
[23:01:07] [PASSED] 0x56BF (DG2)
[23:01:07] [PASSED] 0x5690 (DG2)
[23:01:07] [PASSED] 0x5691 (DG2)
[23:01:07] [PASSED] 0x5692 (DG2)
[23:01:07] [PASSED] 0x56A5 (DG2)
[23:01:07] [PASSED] 0x56A6 (DG2)
[23:01:07] [PASSED] 0x56B0 (DG2)
[23:01:07] [PASSED] 0x56B1 (DG2)
[23:01:07] [PASSED] 0x56BA (DG2)
[23:01:07] [PASSED] 0x56BB (DG2)
[23:01:07] [PASSED] 0x56BC (DG2)
[23:01:07] [PASSED] 0x56BD (DG2)
[23:01:07] [PASSED] 0x5693 (DG2)
[23:01:07] [PASSED] 0x5694 (DG2)
[23:01:07] [PASSED] 0x5695 (DG2)
[23:01:07] [PASSED] 0x56A3 (DG2)
[23:01:07] [PASSED] 0x56A4 (DG2)
[23:01:07] [PASSED] 0x56B2 (DG2)
[23:01:07] [PASSED] 0x56B3 (DG2)
[23:01:07] [PASSED] 0x5696 (DG2)
[23:01:07] [PASSED] 0x5697 (DG2)
[23:01:07] [PASSED] 0xB69 (PVC)
[23:01:07] [PASSED] 0xB6E (PVC)
[23:01:07] [PASSED] 0xBD4 (PVC)
[23:01:07] [PASSED] 0xBD5 (PVC)
[23:01:07] [PASSED] 0xBD6 (PVC)
[23:01:07] [PASSED] 0xBD7 (PVC)
[23:01:07] [PASSED] 0xBD8 (PVC)
[23:01:07] [PASSED] 0xBD9 (PVC)
[23:01:07] [PASSED] 0xBDA (PVC)
[23:01:07] [PASSED] 0xBDB (PVC)
[23:01:07] [PASSED] 0xBE0 (PVC)
[23:01:07] [PASSED] 0xBE1 (PVC)
[23:01:07] [PASSED] 0xBE5 (PVC)
[23:01:07] [PASSED] 0x7D40 (METEORLAKE)
[23:01:07] [PASSED] 0x7D45 (METEORLAKE)
[23:01:07] [PASSED] 0x7D55 (METEORLAKE)
[23:01:07] [PASSED] 0x7D60 (METEORLAKE)
[23:01:07] [PASSED] 0x7DD5 (METEORLAKE)
[23:01:07] [PASSED] 0x6420 (LUNARLAKE)
[23:01:07] [PASSED] 0x64A0 (LUNARLAKE)
[23:01:07] [PASSED] 0x64B0 (LUNARLAKE)
[23:01:07] [PASSED] 0xE202 (BATTLEMAGE)
[23:01:07] [PASSED] 0xE209 (BATTLEMAGE)
[23:01:07] [PASSED] 0xE20B (BATTLEMAGE)
[23:01:07] [PASSED] 0xE20C (BATTLEMAGE)
[23:01:07] [PASSED] 0xE20D (BATTLEMAGE)
[23:01:07] [PASSED] 0xE210 (BATTLEMAGE)
[23:01:07] [PASSED] 0xE211 (BATTLEMAGE)
[23:01:07] [PASSED] 0xE212 (BATTLEMAGE)
[23:01:07] [PASSED] 0xE216 (BATTLEMAGE)
[23:01:07] [PASSED] 0xE220 (BATTLEMAGE)
[23:01:07] [PASSED] 0xE221 (BATTLEMAGE)
[23:01:07] [PASSED] 0xE222 (BATTLEMAGE)
[23:01:07] [PASSED] 0xE223 (BATTLEMAGE)
[23:01:07] [PASSED] 0xB080 (PANTHERLAKE)
[23:01:07] [PASSED] 0xB081 (PANTHERLAKE)
[23:01:07] [PASSED] 0xB082 (PANTHERLAKE)
[23:01:07] [PASSED] 0xB083 (PANTHERLAKE)
[23:01:07] [PASSED] 0xB084 (PANTHERLAKE)
[23:01:07] [PASSED] 0xB085 (PANTHERLAKE)
[23:01:07] [PASSED] 0xB086 (PANTHERLAKE)
[23:01:07] [PASSED] 0xB087 (PANTHERLAKE)
[23:01:07] [PASSED] 0xB08F (PANTHERLAKE)
[23:01:07] [PASSED] 0xB090 (PANTHERLAKE)
[23:01:07] [PASSED] 0xB0A0 (PANTHERLAKE)
[23:01:07] [PASSED] 0xB0B0 (PANTHERLAKE)
[23:01:07] [PASSED] 0xFD80 (PANTHERLAKE)
[23:01:07] [PASSED] 0xFD81 (PANTHERLAKE)
[23:01:07] [PASSED] 0xD740 (NOVALAKE_S)
[23:01:07] [PASSED] 0xD741 (NOVALAKE_S)
[23:01:07] [PASSED] 0xD742 (NOVALAKE_S)
[23:01:07] [PASSED] 0xD743 (NOVALAKE_S)
[23:01:07] [PASSED] 0xD745 (NOVALAKE_S)
[23:01:07] [PASSED] 0xD74A (NOVALAKE_S)
[23:01:07] [PASSED] 0xD74B (NOVALAKE_S)
[23:01:07] [PASSED] 0x674C (CRESCENTISLAND)
[23:01:07] [PASSED] 0x674D (CRESCENTISLAND)
[23:01:07] [PASSED] 0x674E (CRESCENTISLAND)
[23:01:07] [PASSED] 0x674F (CRESCENTISLAND)
[23:01:07] [PASSED] 0x6750 (CRESCENTISLAND)
[23:01:07] [PASSED] 0xD750 (NOVALAKE_P)
[23:01:07] [PASSED] 0xD751 (NOVALAKE_P)
[23:01:07] [PASSED] 0xD752 (NOVALAKE_P)
[23:01:07] [PASSED] 0xD753 (NOVALAKE_P)
[23:01:07] [PASSED] 0xD754 (NOVALAKE_P)
[23:01:07] [PASSED] 0xD755 (NOVALAKE_P)
[23:01:07] [PASSED] 0xD756 (NOVALAKE_P)
[23:01:07] [PASSED] 0xD757 (NOVALAKE_P)
[23:01:07] [PASSED] 0xD75F (NOVALAKE_P)
[23:01:07] =============== [PASSED] check_platform_desc ===============
[23:01:07] ===================== [PASSED] xe_pci ======================
[23:01:07] ============= xe_rtp_tables_test (5 subtests) ==============
[23:01:07] ================== xe_rtp_table_gt_test ===================
[23:01:07] [PASSED] gt_was/14011060649
[23:01:07] [PASSED] gt_was/14011059788
[23:01:07] [PASSED] gt_was/14015795083
[23:01:07] [PASSED] gt_was/16021867713
[23:01:07] [PASSED] gt_was/14019449301
[23:01:07] [PASSED] gt_was/16028005424
[23:01:07] [PASSED] gt_was/14026578760
[23:01:07] [PASSED] gt_was/1409420604
[23:01:07] [PASSED] gt_was/1408615072
[23:01:07] [PASSED] gt_was/22010523718
[23:01:07] [PASSED] gt_was/14011006942
[23:01:07] [PASSED] gt_was/14014830051
[23:01:07] [PASSED] gt_was/18018781329
[23:01:07] [PASSED] gt_was/1509235366
[23:01:07] [PASSED] gt_was/18018781329
[23:01:07] [PASSED] gt_was/16016694945
[23:01:07] [PASSED] gt_was/14018575942
[23:01:07] [PASSED] gt_was/22016670082
[23:01:07] [PASSED] gt_was/22016670082
[23:01:07] [PASSED] gt_was/14017421178
[23:01:07] [PASSED] gt_was/16025250150
[23:01:07] [PASSED] gt_was/14021871409
[23:01:07] [PASSED] gt_was/16021865536
[23:01:07] [PASSED] gt_was/14021486841
[23:01:07] [PASSED] gt_was/14025160223
[23:01:07] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[23:01:07] [PASSED] gt_was/14025635424
[23:01:07] [PASSED] gt_was/16028005424
[23:01:07] ============== [PASSED] xe_rtp_table_gt_test ===============
[23:01:07] ================== xe_rtp_table_gt_test ===================
[23:01:07] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[23:01:07] [PASSED] gt_tunings/Tuning: 32B Access Enable
[23:01:07] [PASSED] gt_tunings/Tuning: L3 cache
[23:01:07] [PASSED] gt_tunings/Tuning: L3 cache - media
[23:01:07] [PASSED] gt_tunings/Tuning: Compression Overfetch
[23:01:07] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[23:01:07] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[23:01:07] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[23:01:07] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[23:01:07] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[23:01:07] [PASSED] gt_tunings/Tuning: Stateless compression control
[23:01:07] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[23:01:07] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[23:01:07] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[23:01:07] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[23:01:07] ============== [PASSED] xe_rtp_table_gt_test ===============
[23:01:07] ================== xe_rtp_table_oob_test ==================
[23:01:07] [PASSED] oob_was/1607983814
[23:01:07] [PASSED] oob_was/16010904313
[23:01:07] [PASSED] oob_was/18022495364
[23:01:07] [PASSED] oob_was/22012773006
[23:01:07] [PASSED] oob_was/14014475959
[23:01:07] [PASSED] oob_was/22011391025
[23:01:07] [PASSED] oob_was/22012727170
[23:01:07] [PASSED] oob_was/22012727685
[23:01:07] [PASSED] oob_was/22016596838
[23:01:07] [PASSED] oob_was/18020744125
[23:01:07] [PASSED] oob_was/1409600907
[23:01:07] [PASSED] oob_was/22014953428
[23:01:07] [PASSED] oob_was/16017236439
[23:01:07] [PASSED] oob_was/14019821291
[23:01:07] [PASSED] oob_was/14015076503
[23:01:07] [PASSED] oob_was/14018913170
[23:01:07] [PASSED] oob_was/14018094691
[23:01:07] [PASSED] oob_was/18024947630
[23:01:07] [PASSED] oob_was/16022287689
[23:01:07] [PASSED] oob_was/13011645652
[23:01:07] [PASSED] oob_was/14022293748
[23:01:07] [PASSED] oob_was/22019794406
[23:01:07] [PASSED] oob_was/22019338487
[23:01:07] [PASSED] oob_was/16023588340
[23:01:07] [PASSED] oob_was/14019789679
[23:01:07] [PASSED] oob_was/14022866841
[23:01:07] [PASSED] oob_was/16021333562
[23:01:07] [PASSED] oob_was/14016712196
[23:01:07] [PASSED] oob_was/14015568240
[23:01:07] [PASSED] oob_was/18013179988
[23:01:07] [PASSED] oob_was/1508761755
[23:01:07] [PASSED] oob_was/16023105232
[23:01:07] [PASSED] oob_was/16026508708
[23:01:07] [PASSED] oob_was/14020001231
[23:01:07] [PASSED] oob_was/16023683509
[23:01:07] [PASSED] oob_was/14025515070
[23:01:07] [PASSED] oob_was/15015404425_disable
[23:01:07] [PASSED] oob_was/16026007364
[23:01:07] [PASSED] oob_was/14020316580
[23:01:07] [PASSED] oob_was/14025883347
[23:01:07] [PASSED] oob_was/16029380221
[23:01:07] [PASSED] oob_was/22022079272
[23:01:07] [PASSED] oob_was/16029897822
[23:01:07] [PASSED] oob_was/14027054324
[23:01:07] ============== [PASSED] xe_rtp_table_oob_test ==============
[23:01:07] ================ xe_rtp_table_dev_oob_test ================
[23:01:07] [PASSED] device_oob_was/22010954014
[23:01:07] [PASSED] device_oob_was/15015404425
[23:01:07] [PASSED] device_oob_was/22019338487_display
[23:01:07] [PASSED] device_oob_was/14022085890
[23:01:07] [PASSED] device_oob_was/14026539277
[23:01:07] [PASSED] device_oob_was/14026633728
[23:01:07] [PASSED] device_oob_was/14026746987
[23:01:07] [PASSED] device_oob_was/14026779378
[23:01:07] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[23:01:07] ========== xe_rtp_table_missing_upper_bound_test ==========
[23:01:07] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865
[23:01:07] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037
[23:01:07] [PASSED] register_whitelist/1806527549
[23:01:07] [PASSED] register_whitelist/allow_read_ctx_timestamp
[23:01:07] [PASSED] register_whitelist/allow_read_queue_timestamp
[23:01:07] [PASSED] register_whitelist/16014440446
[23:01:07] [PASSED] register_whitelist/16017236439
[23:01:07] [PASSED] register_whitelist/16020183090
[23:01:07] [PASSED] register_whitelist/14024997852
[23:01:07] [PASSED] register_whitelist/14024997852
[23:01:07] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ======
[23:01:07] =============== [PASSED] xe_rtp_tables_test ================
[23:01:07] =================== xe_rtp (3 subtests) ====================
[23:01:07] =================== xe_rtp_rules_tests ====================
[23:01:07] [PASSED] no
[23:01:07] [PASSED] yes
[23:01:07] [PASSED] no-and-no
[23:01:07] [PASSED] no-and-yes
[23:01:07] [PASSED] yes-and-no
[23:01:07] [PASSED] yes-and-yes
[23:01:07] [PASSED] no-or-no
[23:01:07] [PASSED] no-or-yes
[23:01:07] [PASSED] yes-or-no
[23:01:07] [PASSED] yes-or-yes
[23:01:07] [PASSED] no-yes-or-yes-no
[23:01:07] [PASSED] no-yes-or-yes-yes
[23:01:07] [PASSED] yes-yes-or-no-yes
[23:01:07] [PASSED] yes-yes-or-yes-yes
[23:01:07] [PASSED] no-no-or-yes-or-no
[23:01:07] [PASSED] or
[23:01:07] [PASSED] or-yes
[23:01:07] [PASSED] or-no
[23:01:07] [PASSED] yes-or
[23:01:07] [PASSED] no-or
[23:01:07] [PASSED] no-or-or-yes
[23:01:07] [PASSED] yes-or-or-no
[23:01:07] [PASSED] no-or-or-no
[23:01:07] [PASSED] missing-context-engine-class
[23:01:07] [PASSED] missing-context-engine-class-or-yes
[23:01:07] [PASSED] missing-context-engine-class-or-or-yes
[23:01:07] =============== [PASSED] xe_rtp_rules_tests ================
[23:01:07] =============== xe_rtp_process_to_sr_tests ================
[23:01:07] [PASSED] coalesce-same-reg
[23:01:07] [PASSED] coalesce-same-reg-literal-and-func
[23:01:07] [PASSED] no-match-no-add
[23:01:07] [PASSED] two-regs-two-entries
[23:01:07] [PASSED] clr-one-set-other
[23:01:07] [PASSED] set-field
[23:01:07] [PASSED] conflict-duplicate
[23:01:07] [PASSED] conflict-not-disjoint
[23:01:07] [PASSED] conflict-not-disjoint-literal-and-func
[23:01:07] [PASSED] conflict-reg-type
[23:01:07] [PASSED] bad-mcr-reg-forced-to-regular
[23:01:07] [PASSED] bad-regular-reg-forced-to-mcr
[23:01:07] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[23:01:07] ================== xe_rtp_process_tests ===================
[23:01:07] [PASSED] active1
[23:01:07] [PASSED] active2
[23:01:07] [PASSED] active-inactive
[23:01:07] [PASSED] inactive-active
[23:01:07] [PASSED] inactive-active-inactive
[23:01:07] [PASSED] inactive-inactive-inactive
[23:01:07] ============== [PASSED] xe_rtp_process_tests ===============
[23:01:07] ===================== [PASSED] xe_rtp ======================
[23:01:07] ==================== xe_wa (1 subtest) =====================
[23:01:07] ======================== xe_wa_gt =========================
[23:01:07] [PASSED] TIGERLAKE B0
[23:01:07] [PASSED] DG1 A0
[23:01:07] [PASSED] DG1 B0
[23:01:07] [PASSED] ALDERLAKE_S A0
[23:01:07] [PASSED] ALDERLAKE_S B0
[23:01:07] [PASSED] ALDERLAKE_S C0
[23:01:07] [PASSED] ALDERLAKE_S D0
[23:01:07] [PASSED] ALDERLAKE_P A0
[23:01:07] [PASSED] ALDERLAKE_P B0
[23:01:07] [PASSED] ALDERLAKE_P C0
[23:01:07] [PASSED] ALDERLAKE_S RPLS D0
[23:01:07] [PASSED] ALDERLAKE_P RPLU E0
[23:01:07] [PASSED] DG2 G10 C0
[23:01:07] [PASSED] DG2 G11 B1
[23:01:07] [PASSED] DG2 G12 A1
[23:01:07] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[23:01:07] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[23:01:07] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[23:01:07] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[23:01:07] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[23:01:07] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[23:01:07] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[23:01:07] ==================== [PASSED] xe_wa_gt =====================
[23:01:07] ====================== [PASSED] xe_wa ======================
[23:01:07] ============================================================
[23:01:07] Testing complete. Ran 789 tests: passed: 761, skipped: 28
[23:01:07] Elapsed time: 36.993s total, 4.333s configuring, 31.943s building, 0.678s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[23:01:07] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[23:01:09] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[23:01:33] Starting KUnit Kernel (1/1)...
[23:01:33] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[23:01:33] ============ drm_test_pick_cmdline (2 subtests) ============
[23:01:33] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[23:01:33] =============== drm_test_pick_cmdline_named ===============
[23:01:33] [PASSED] NTSC
[23:01:33] [PASSED] NTSC-J
[23:01:33] [PASSED] PAL
[23:01:33] [PASSED] PAL-M
[23:01:33] =========== [PASSED] drm_test_pick_cmdline_named ===========
[23:01:33] ============== [PASSED] drm_test_pick_cmdline ==============
[23:01:33] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[23:01:33] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[23:01:33] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[23:01:33] =========== drm_validate_clone_mode (2 subtests) ===========
[23:01:33] ============== drm_test_check_in_clone_mode ===============
[23:01:33] [PASSED] in_clone_mode
[23:01:33] [PASSED] not_in_clone_mode
[23:01:33] ========== [PASSED] drm_test_check_in_clone_mode ===========
[23:01:33] =============== drm_test_check_valid_clones ===============
[23:01:33] [PASSED] not_in_clone_mode
[23:01:33] [PASSED] valid_clone
[23:01:33] [PASSED] invalid_clone
[23:01:33] =========== [PASSED] drm_test_check_valid_clones ===========
[23:01:33] ============= [PASSED] drm_validate_clone_mode =============
[23:01:33] ============= drm_validate_modeset (1 subtest) =============
[23:01:33] [PASSED] drm_test_check_connector_changed_modeset
[23:01:33] ============== [PASSED] drm_validate_modeset ===============
[23:01:33] ====== drm_test_bridge_get_current_state (1 subtest) =======
[23:01:33] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[23:01:33] ======== [PASSED] drm_test_bridge_get_current_state ========
[23:01:33] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[23:01:33] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[23:01:33] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[23:01:33] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts
[23:01:33] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[23:01:33] ============== drm_bridge_alloc (2 subtests) ===============
[23:01:33] [PASSED] drm_test_drm_bridge_alloc_basic
[23:01:33] [PASSED] drm_test_drm_bridge_alloc_get_put
[23:01:33] ================ [PASSED] drm_bridge_alloc =================
[23:01:33] ============= drm_bridge_bus_fmt (5 subtests) ==============
[23:01:33] [PASSED] drm_test_bridge_rgb_yuv_rgb
[23:01:34] [PASSED] drm_test_bridge_must_convert_to_yuv444
[23:01:34] [PASSED] drm_test_bridge_hdmi_auto_rgb
[23:01:34] [PASSED] drm_test_bridge_auto_first
[23:01:34] [PASSED] drm_test_bridge_rgb_yuv_no_path
[23:01:34] =============== [PASSED] drm_bridge_bus_fmt ================
[23:01:34] ============= drm_cmdline_parser (40 subtests) =============
[23:01:34] [PASSED] drm_test_cmdline_force_d_only
[23:01:34] [PASSED] drm_test_cmdline_force_D_only_dvi
[23:01:34] [PASSED] drm_test_cmdline_force_D_only_hdmi
[23:01:34] [PASSED] drm_test_cmdline_force_D_only_not_digital
[23:01:34] [PASSED] drm_test_cmdline_force_e_only
[23:01:34] [PASSED] drm_test_cmdline_res
[23:01:34] [PASSED] drm_test_cmdline_res_vesa
[23:01:34] [PASSED] drm_test_cmdline_res_vesa_rblank
[23:01:34] [PASSED] drm_test_cmdline_res_rblank
[23:01:34] [PASSED] drm_test_cmdline_res_bpp
[23:01:34] [PASSED] drm_test_cmdline_res_refresh
[23:01:34] [PASSED] drm_test_cmdline_res_bpp_refresh
[23:01:34] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[23:01:34] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[23:01:34] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[23:01:34] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[23:01:34] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[23:01:34] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[23:01:34] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[23:01:34] [PASSED] drm_test_cmdline_res_margins_force_on
[23:01:34] [PASSED] drm_test_cmdline_res_vesa_margins
[23:01:34] [PASSED] drm_test_cmdline_name
[23:01:34] [PASSED] drm_test_cmdline_name_bpp
[23:01:34] [PASSED] drm_test_cmdline_name_option
[23:01:34] [PASSED] drm_test_cmdline_name_bpp_option
[23:01:34] [PASSED] drm_test_cmdline_rotate_0
[23:01:34] [PASSED] drm_test_cmdline_rotate_90
[23:01:34] [PASSED] drm_test_cmdline_rotate_180
[23:01:34] [PASSED] drm_test_cmdline_rotate_270
[23:01:34] [PASSED] drm_test_cmdline_hmirror
[23:01:34] [PASSED] drm_test_cmdline_vmirror
[23:01:34] [PASSED] drm_test_cmdline_margin_options
[23:01:34] [PASSED] drm_test_cmdline_multiple_options
[23:01:34] [PASSED] drm_test_cmdline_bpp_extra_and_option
[23:01:34] [PASSED] drm_test_cmdline_extra_and_option
[23:01:34] [PASSED] drm_test_cmdline_freestanding_options
[23:01:34] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[23:01:34] [PASSED] drm_test_cmdline_panel_orientation
[23:01:34] ================ drm_test_cmdline_invalid =================
[23:01:34] [PASSED] margin_only
[23:01:34] [PASSED] interlace_only
[23:01:34] [PASSED] res_missing_x
[23:01:34] [PASSED] res_missing_y
[23:01:34] [PASSED] res_bad_y
[23:01:34] [PASSED] res_missing_y_bpp
[23:01:34] [PASSED] res_bad_bpp
[23:01:34] [PASSED] res_bad_refresh
[23:01:34] [PASSED] res_bpp_refresh_force_on_off
[23:01:34] [PASSED] res_invalid_mode
[23:01:34] [PASSED] res_bpp_wrong_place_mode
[23:01:34] [PASSED] name_bpp_refresh
[23:01:34] [PASSED] name_refresh
[23:01:34] [PASSED] name_refresh_wrong_mode
[23:01:34] [PASSED] name_refresh_invalid_mode
[23:01:34] [PASSED] rotate_multiple
[23:01:34] [PASSED] rotate_invalid_val
[23:01:34] [PASSED] rotate_truncated
[23:01:34] [PASSED] invalid_option
[23:01:34] [PASSED] invalid_tv_option
[23:01:34] [PASSED] truncated_tv_option
[23:01:34] ============ [PASSED] drm_test_cmdline_invalid =============
[23:01:34] =============== drm_test_cmdline_tv_options ===============
[23:01:34] [PASSED] NTSC
[23:01:34] [PASSED] NTSC_443
[23:01:34] [PASSED] NTSC_J
[23:01:34] [PASSED] PAL
[23:01:34] [PASSED] PAL_M
[23:01:34] [PASSED] PAL_N
[23:01:34] [PASSED] SECAM
[23:01:34] [PASSED] MONO_525
[23:01:34] [PASSED] MONO_625
[23:01:34] =========== [PASSED] drm_test_cmdline_tv_options ===========
[23:01:34] =============== [PASSED] drm_cmdline_parser ================
[23:01:34] ========== drmm_connector_hdmi_init (20 subtests) ==========
[23:01:34] [PASSED] drm_test_connector_hdmi_init_valid
[23:01:34] [PASSED] drm_test_connector_hdmi_init_bpc_8
[23:01:34] [PASSED] drm_test_connector_hdmi_init_bpc_10
[23:01:34] [PASSED] drm_test_connector_hdmi_init_bpc_12
[23:01:34] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[23:01:34] [PASSED] drm_test_connector_hdmi_init_bpc_null
[23:01:34] [PASSED] drm_test_connector_hdmi_init_formats_empty
[23:01:34] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[23:01:34] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[23:01:34] [PASSED] supported_formats=0x9 yuv420_allowed=1
[23:01:34] [PASSED] supported_formats=0x9 yuv420_allowed=0
[23:01:34] [PASSED] supported_formats=0x5 yuv420_allowed=1
[23:01:34] [PASSED] supported_formats=0x5 yuv420_allowed=0
[23:01:34] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[23:01:34] [PASSED] drm_test_connector_hdmi_init_null_ddc
[23:01:34] [PASSED] drm_test_connector_hdmi_init_null_product
[23:01:34] [PASSED] drm_test_connector_hdmi_init_null_vendor
[23:01:34] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[23:01:34] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[23:01:34] [PASSED] drm_test_connector_hdmi_init_product_valid
[23:01:34] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[23:01:34] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[23:01:34] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[23:01:34] ========= drm_test_connector_hdmi_init_type_valid =========
[23:01:34] [PASSED] HDMI-A
[23:01:34] [PASSED] HDMI-B
[23:01:34] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[23:01:34] ======== drm_test_connector_hdmi_init_type_invalid ========
[23:01:34] [PASSED] Unknown
[23:01:34] [PASSED] VGA
[23:01:34] [PASSED] DVI-I
[23:01:34] [PASSED] DVI-D
[23:01:34] [PASSED] DVI-A
[23:01:34] [PASSED] Composite
[23:01:34] [PASSED] SVIDEO
[23:01:34] [PASSED] LVDS
[23:01:34] [PASSED] Component
[23:01:34] [PASSED] DIN
[23:01:34] [PASSED] DP
[23:01:34] [PASSED] TV
[23:01:34] [PASSED] eDP
[23:01:34] [PASSED] Virtual
[23:01:34] [PASSED] DSI
[23:01:34] [PASSED] DPI
[23:01:34] [PASSED] Writeback
[23:01:34] [PASSED] SPI
[23:01:34] [PASSED] USB
[23:01:34] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[23:01:34] ============ [PASSED] drmm_connector_hdmi_init =============
[23:01:34] ============= drmm_connector_init (3 subtests) =============
[23:01:34] [PASSED] drm_test_drmm_connector_init
[23:01:34] [PASSED] drm_test_drmm_connector_init_null_ddc
[23:01:34] ========= drm_test_drmm_connector_init_type_valid =========
[23:01:34] [PASSED] Unknown
[23:01:34] [PASSED] VGA
[23:01:34] [PASSED] DVI-I
[23:01:34] [PASSED] DVI-D
[23:01:34] [PASSED] DVI-A
[23:01:34] [PASSED] Composite
[23:01:34] [PASSED] SVIDEO
[23:01:34] [PASSED] LVDS
[23:01:34] [PASSED] Component
[23:01:34] [PASSED] DIN
[23:01:34] [PASSED] DP
[23:01:34] [PASSED] HDMI-A
[23:01:34] [PASSED] HDMI-B
[23:01:34] [PASSED] TV
[23:01:34] [PASSED] eDP
[23:01:34] [PASSED] Virtual
[23:01:34] [PASSED] DSI
[23:01:34] [PASSED] DPI
[23:01:34] [PASSED] Writeback
[23:01:34] [PASSED] SPI
[23:01:34] [PASSED] USB
[23:01:34] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[23:01:34] =============== [PASSED] drmm_connector_init ===============
[23:01:34] ========= drm_connector_dynamic_init (6 subtests) ==========
[23:01:34] [PASSED] drm_test_drm_connector_dynamic_init
[23:01:34] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[23:01:34] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[23:01:34] [PASSED] drm_test_drm_connector_dynamic_init_properties
[23:01:34] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[23:01:34] [PASSED] Unknown
[23:01:34] [PASSED] VGA
[23:01:34] [PASSED] DVI-I
[23:01:34] [PASSED] DVI-D
[23:01:34] [PASSED] DVI-A
[23:01:34] [PASSED] Composite
[23:01:34] [PASSED] SVIDEO
[23:01:34] [PASSED] LVDS
[23:01:34] [PASSED] Component
[23:01:34] [PASSED] DIN
[23:01:34] [PASSED] DP
[23:01:34] [PASSED] HDMI-A
[23:01:34] [PASSED] HDMI-B
[23:01:34] [PASSED] TV
[23:01:34] [PASSED] eDP
[23:01:34] [PASSED] Virtual
[23:01:34] [PASSED] DSI
[23:01:34] [PASSED] DPI
[23:01:34] [PASSED] Writeback
[23:01:34] [PASSED] SPI
[23:01:34] [PASSED] USB
[23:01:34] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[23:01:34] ======== drm_test_drm_connector_dynamic_init_name =========
[23:01:34] [PASSED] Unknown
[23:01:34] [PASSED] VGA
[23:01:34] [PASSED] DVI-I
[23:01:34] [PASSED] DVI-D
[23:01:34] [PASSED] DVI-A
[23:01:34] [PASSED] Composite
[23:01:34] [PASSED] SVIDEO
[23:01:34] [PASSED] LVDS
[23:01:34] [PASSED] Component
[23:01:34] [PASSED] DIN
[23:01:34] [PASSED] DP
[23:01:34] [PASSED] HDMI-A
[23:01:34] [PASSED] HDMI-B
[23:01:34] [PASSED] TV
[23:01:34] [PASSED] eDP
[23:01:34] [PASSED] Virtual
[23:01:34] [PASSED] DSI
[23:01:34] [PASSED] DPI
[23:01:34] [PASSED] Writeback
[23:01:34] [PASSED] SPI
[23:01:34] [PASSED] USB
[23:01:34] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[23:01:34] =========== [PASSED] drm_connector_dynamic_init ============
[23:01:34] ==== drm_connector_dynamic_register_early (4 subtests) =====
[23:01:34] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[23:01:34] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[23:01:34] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[23:01:34] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[23:01:34] ====== [PASSED] drm_connector_dynamic_register_early =======
[23:01:34] ======= drm_connector_dynamic_register (7 subtests) ========
[23:01:34] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[23:01:34] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[23:01:34] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[23:01:34] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[23:01:34] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[23:01:34] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[23:01:34] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[23:01:34] ========= [PASSED] drm_connector_dynamic_register ==========
[23:01:34] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[23:01:34] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[23:01:34] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[23:01:34] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[23:01:34] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[23:01:34] ========== drm_test_get_tv_mode_from_name_valid ===========
[23:01:34] [PASSED] NTSC
[23:01:34] [PASSED] NTSC-443
[23:01:34] [PASSED] NTSC-J
[23:01:34] [PASSED] PAL
[23:01:34] [PASSED] PAL-M
[23:01:34] [PASSED] PAL-N
[23:01:34] [PASSED] SECAM
[23:01:34] [PASSED] Mono
[23:01:34] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[23:01:34] [PASSED] drm_test_get_tv_mode_from_name_truncated
[23:01:34] ============ [PASSED] drm_get_tv_mode_from_name ============
[23:01:34] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[23:01:34] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[23:01:34] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[23:01:34] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[23:01:34] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[23:01:34] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[23:01:34] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[23:01:34] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[23:01:34] [PASSED] VIC 96
[23:01:34] [PASSED] VIC 97
[23:01:34] [PASSED] VIC 101
[23:01:34] [PASSED] VIC 102
[23:01:34] [PASSED] VIC 106
[23:01:34] [PASSED] VIC 107
[23:01:34] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[23:01:34] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[23:01:34] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[23:01:34] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[23:01:34] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[23:01:34] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[23:01:34] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[23:01:34] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[23:01:34] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[23:01:34] [PASSED] Automatic
[23:01:34] [PASSED] Full
[23:01:34] [PASSED] Limited 16:235
[23:01:34] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[23:01:34] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[23:01:34] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[23:01:34] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[23:01:34] === drm_test_drm_hdmi_connector_get_output_format_name ====
[23:01:34] [PASSED] RGB
[23:01:34] [PASSED] YUV 4:2:0
[23:01:34] [PASSED] YUV 4:2:2
[23:01:34] [PASSED] YUV 4:4:4
[23:01:34] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[23:01:34] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[23:01:34] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[23:01:34] ============= drm_damage_helper (21 subtests) ==============
[23:01:34] [PASSED] drm_test_damage_iter_no_damage
[23:01:34] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[23:01:34] [PASSED] drm_test_damage_iter_no_damage_src_moved
[23:01:34] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[23:01:34] [PASSED] drm_test_damage_iter_no_damage_not_visible
[23:01:34] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[23:01:34] [PASSED] drm_test_damage_iter_no_damage_no_fb
[23:01:34] [PASSED] drm_test_damage_iter_simple_damage
[23:01:34] [PASSED] drm_test_damage_iter_single_damage
[23:01:34] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[23:01:34] [PASSED] drm_test_damage_iter_single_damage_outside_src
[23:01:34] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[23:01:34] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[23:01:34] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[23:01:34] [PASSED] drm_test_damage_iter_single_damage_src_moved
[23:01:34] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[23:01:34] [PASSED] drm_test_damage_iter_damage
[23:01:34] [PASSED] drm_test_damage_iter_damage_one_intersect
[23:01:34] [PASSED] drm_test_damage_iter_damage_one_outside
[23:01:34] [PASSED] drm_test_damage_iter_damage_src_moved
[23:01:34] [PASSED] drm_test_damage_iter_damage_not_visible
[23:01:34] ================ [PASSED] drm_damage_helper ================
[23:01:34] ============== drm_dp_mst_helper (3 subtests) ==============
[23:01:34] ============== drm_test_dp_mst_calc_pbn_mode ==============
[23:01:34] [PASSED] Clock 154000 BPP 30 DSC disabled
[23:01:34] [PASSED] Clock 234000 BPP 30 DSC disabled
[23:01:34] [PASSED] Clock 297000 BPP 24 DSC disabled
[23:01:34] [PASSED] Clock 332880 BPP 24 DSC enabled
[23:01:34] [PASSED] Clock 324540 BPP 24 DSC enabled
[23:01:34] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[23:01:34] ============== drm_test_dp_mst_calc_pbn_div ===============
[23:01:34] [PASSED] Link rate 2000000 lane count 4
[23:01:34] [PASSED] Link rate 2000000 lane count 2
[23:01:34] [PASSED] Link rate 2000000 lane count 1
[23:01:34] [PASSED] Link rate 1350000 lane count 4
[23:01:34] [PASSED] Link rate 1350000 lane count 2
[23:01:34] [PASSED] Link rate 1350000 lane count 1
[23:01:34] [PASSED] Link rate 1000000 lane count 4
[23:01:34] [PASSED] Link rate 1000000 lane count 2
[23:01:34] [PASSED] Link rate 1000000 lane count 1
[23:01:34] [PASSED] Link rate 810000 lane count 4
[23:01:34] [PASSED] Link rate 810000 lane count 2
[23:01:34] [PASSED] Link rate 810000 lane count 1
[23:01:34] [PASSED] Link rate 540000 lane count 4
[23:01:34] [PASSED] Link rate 540000 lane count 2
[23:01:34] [PASSED] Link rate 540000 lane count 1
[23:01:34] [PASSED] Link rate 270000 lane count 4
[23:01:34] [PASSED] Link rate 270000 lane count 2
[23:01:34] [PASSED] Link rate 270000 lane count 1
[23:01:34] [PASSED] Link rate 162000 lane count 4
[23:01:34] [PASSED] Link rate 162000 lane count 2
[23:01:34] [PASSED] Link rate 162000 lane count 1
[23:01:34] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[23:01:34] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[23:01:34] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[23:01:34] [PASSED] DP_POWER_UP_PHY with port number
[23:01:34] [PASSED] DP_POWER_DOWN_PHY with port number
[23:01:34] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[23:01:34] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[23:01:34] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[23:01:34] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[23:01:34] [PASSED] DP_QUERY_PAYLOAD with port number
[23:01:34] [PASSED] DP_QUERY_PAYLOAD with VCPI
[23:01:34] [PASSED] DP_REMOTE_DPCD_READ with port number
[23:01:34] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[23:01:34] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[23:01:34] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[23:01:34] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[23:01:34] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[23:01:34] [PASSED] DP_REMOTE_I2C_READ with port number
[23:01:34] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[23:01:34] [PASSED] DP_REMOTE_I2C_READ with transactions array
[23:01:34] [PASSED] DP_REMOTE_I2C_WRITE with port number
[23:01:34] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[23:01:34] [PASSED] DP_REMOTE_I2C_WRITE with data array
[23:01:34] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[23:01:34] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[23:01:34] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[23:01:34] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[23:01:34] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[23:01:34] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[23:01:34] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[23:01:34] ================ [PASSED] drm_dp_mst_helper ================
[23:01:34] ================== drm_exec (7 subtests) ===================
[23:01:34] [PASSED] sanitycheck
[23:01:34] [PASSED] test_lock
[23:01:34] [PASSED] test_lock_unlock
[23:01:34] [PASSED] test_duplicates
[23:01:34] [PASSED] test_prepare
[23:01:34] [PASSED] test_prepare_array
[23:01:34] [PASSED] test_multiple_loops
[23:01:34] ==================== [PASSED] drm_exec =====================
[23:01:34] =========== drm_format_helper_test (17 subtests) ===========
[23:01:34] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[23:01:34] [PASSED] single_pixel_source_buffer
[23:01:34] [PASSED] single_pixel_clip_rectangle
[23:01:34] [PASSED] well_known_colors
[23:01:34] [PASSED] destination_pitch
[23:01:34] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[23:01:34] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[23:01:34] [PASSED] single_pixel_source_buffer
[23:01:34] [PASSED] single_pixel_clip_rectangle
[23:01:34] [PASSED] well_known_colors
[23:01:34] [PASSED] destination_pitch
[23:01:34] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[23:01:34] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[23:01:34] [PASSED] single_pixel_source_buffer
[23:01:34] [PASSED] single_pixel_clip_rectangle
[23:01:34] [PASSED] well_known_colors
[23:01:34] [PASSED] destination_pitch
[23:01:34] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[23:01:34] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[23:01:34] [PASSED] single_pixel_source_buffer
[23:01:34] [PASSED] single_pixel_clip_rectangle
[23:01:34] [PASSED] well_known_colors
[23:01:34] [PASSED] destination_pitch
[23:01:34] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[23:01:34] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[23:01:34] [PASSED] single_pixel_source_buffer
[23:01:34] [PASSED] single_pixel_clip_rectangle
[23:01:34] [PASSED] well_known_colors
[23:01:34] [PASSED] destination_pitch
[23:01:34] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[23:01:34] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[23:01:34] [PASSED] single_pixel_source_buffer
[23:01:34] [PASSED] single_pixel_clip_rectangle
[23:01:34] [PASSED] well_known_colors
[23:01:34] [PASSED] destination_pitch
[23:01:34] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[23:01:34] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[23:01:34] [PASSED] single_pixel_source_buffer
[23:01:34] [PASSED] single_pixel_clip_rectangle
[23:01:34] [PASSED] well_known_colors
[23:01:34] [PASSED] destination_pitch
[23:01:34] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[23:01:34] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[23:01:34] [PASSED] single_pixel_source_buffer
[23:01:34] [PASSED] single_pixel_clip_rectangle
[23:01:34] [PASSED] well_known_colors
[23:01:34] [PASSED] destination_pitch
[23:01:34] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[23:01:34] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[23:01:34] [PASSED] single_pixel_source_buffer
[23:01:34] [PASSED] single_pixel_clip_rectangle
[23:01:34] [PASSED] well_known_colors
[23:01:34] [PASSED] destination_pitch
[23:01:34] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[23:01:34] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[23:01:34] [PASSED] single_pixel_source_buffer
[23:01:34] [PASSED] single_pixel_clip_rectangle
[23:01:34] [PASSED] well_known_colors
[23:01:34] [PASSED] destination_pitch
[23:01:34] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[23:01:34] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[23:01:34] [PASSED] single_pixel_source_buffer
[23:01:34] [PASSED] single_pixel_clip_rectangle
[23:01:34] [PASSED] well_known_colors
[23:01:34] [PASSED] destination_pitch
[23:01:34] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[23:01:34] ============== drm_test_fb_xrgb8888_to_mono ===============
[23:01:34] [PASSED] single_pixel_source_buffer
[23:01:34] [PASSED] single_pixel_clip_rectangle
[23:01:34] [PASSED] well_known_colors
[23:01:34] [PASSED] destination_pitch
[23:01:34] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[23:01:34] ==================== drm_test_fb_swab =====================
[23:01:34] [PASSED] single_pixel_source_buffer
[23:01:34] [PASSED] single_pixel_clip_rectangle
[23:01:34] [PASSED] well_known_colors
[23:01:34] [PASSED] destination_pitch
[23:01:34] ================ [PASSED] drm_test_fb_swab =================
[23:01:34] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[23:01:34] [PASSED] single_pixel_source_buffer
[23:01:34] [PASSED] single_pixel_clip_rectangle
[23:01:34] [PASSED] well_known_colors
[23:01:34] [PASSED] destination_pitch
[23:01:34] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[23:01:34] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[23:01:34] [PASSED] single_pixel_source_buffer
[23:01:34] [PASSED] single_pixel_clip_rectangle
[23:01:34] [PASSED] well_known_colors
[23:01:34] [PASSED] destination_pitch
[23:01:34] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[23:01:34] ================= drm_test_fb_clip_offset =================
[23:01:34] [PASSED] pass through
[23:01:34] [PASSED] horizontal offset
[23:01:34] [PASSED] vertical offset
[23:01:34] [PASSED] horizontal and vertical offset
[23:01:34] [PASSED] horizontal offset (custom pitch)
[23:01:34] [PASSED] vertical offset (custom pitch)
[23:01:34] [PASSED] horizontal and vertical offset (custom pitch)
[23:01:34] ============= [PASSED] drm_test_fb_clip_offset =============
[23:01:34] =================== drm_test_fb_memcpy ====================
[23:01:34] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[23:01:34] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[23:01:34] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[23:01:34] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[23:01:34] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[23:01:34] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[23:01:34] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[23:01:34] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[23:01:34] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[23:01:34] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[23:01:34] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[23:01:34] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[23:01:34] =============== [PASSED] drm_test_fb_memcpy ================
[23:01:34] ============= [PASSED] drm_format_helper_test ==============
[23:01:34] ================= drm_format (18 subtests) =================
[23:01:34] [PASSED] drm_test_format_block_width_invalid
[23:01:34] [PASSED] drm_test_format_block_width_one_plane
[23:01:34] [PASSED] drm_test_format_block_width_two_plane
[23:01:34] [PASSED] drm_test_format_block_width_three_plane
[23:01:34] [PASSED] drm_test_format_block_width_tiled
[23:01:34] [PASSED] drm_test_format_block_height_invalid
[23:01:34] [PASSED] drm_test_format_block_height_one_plane
[23:01:34] [PASSED] drm_test_format_block_height_two_plane
[23:01:34] [PASSED] drm_test_format_block_height_three_plane
[23:01:34] [PASSED] drm_test_format_block_height_tiled
[23:01:34] [PASSED] drm_test_format_min_pitch_invalid
[23:01:34] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[23:01:34] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[23:01:34] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[23:01:34] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[23:01:34] [PASSED] drm_test_format_min_pitch_two_plane
[23:01:34] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[23:01:34] [PASSED] drm_test_format_min_pitch_tiled
[23:01:34] =================== [PASSED] drm_format ====================
[23:01:34] ============== drm_framebuffer (10 subtests) ===============
[23:01:34] ========== drm_test_framebuffer_check_src_coords ==========
[23:01:34] [PASSED] Success: source fits into fb
[23:01:34] [PASSED] Fail: overflowing fb with x-axis coordinate
[23:01:34] [PASSED] Fail: overflowing fb with y-axis coordinate
[23:01:34] [PASSED] Fail: overflowing fb with source width
[23:01:34] [PASSED] Fail: overflowing fb with source height
[23:01:34] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[23:01:34] [PASSED] drm_test_framebuffer_cleanup
[23:01:34] =============== drm_test_framebuffer_create ===============
[23:01:34] [PASSED] ABGR8888 normal sizes
[23:01:34] [PASSED] ABGR8888 max sizes
[23:01:34] [PASSED] ABGR8888 pitch greater than min required
[23:01:34] [PASSED] ABGR8888 pitch less than min required
[23:01:34] [PASSED] ABGR8888 Invalid width
[23:01:34] [PASSED] ABGR8888 Invalid buffer handle
[23:01:34] [PASSED] No pixel format
[23:01:34] [PASSED] ABGR8888 Width 0
[23:01:34] [PASSED] ABGR8888 Height 0
[23:01:34] [PASSED] ABGR8888 Out of bound height * pitch combination
[23:01:34] [PASSED] ABGR8888 Large buffer offset
[23:01:34] [PASSED] ABGR8888 Buffer offset for inexistent plane
[23:01:34] [PASSED] ABGR8888 Invalid flag
[23:01:34] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[23:01:34] [PASSED] ABGR8888 Valid buffer modifier
[23:01:34] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[23:01:34] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[23:01:34] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[23:01:34] [PASSED] NV12 Normal sizes
[23:01:34] [PASSED] NV12 Max sizes
[23:01:34] [PASSED] NV12 Invalid pitch
[23:01:34] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[23:01:34] [PASSED] NV12 different modifier per-plane
[23:01:34] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[23:01:34] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[23:01:34] [PASSED] NV12 Modifier for inexistent plane
[23:01:34] [PASSED] NV12 Handle for inexistent plane
[23:01:34] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[23:01:34] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[23:01:34] [PASSED] YVU420 Normal sizes
[23:01:34] [PASSED] YVU420 Max sizes
[23:01:34] [PASSED] YVU420 Invalid pitch
[23:01:34] [PASSED] YVU420 Different pitches
[23:01:34] [PASSED] YVU420 Different buffer offsets/pitches
[23:01:34] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[23:01:34] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[23:01:34] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[23:01:34] [PASSED] YVU420 Valid modifier
[23:01:34] [PASSED] YVU420 Different modifiers per plane
[23:01:34] [PASSED] YVU420 Modifier for inexistent plane
[23:01:34] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[23:01:34] [PASSED] X0L2 Normal sizes
[23:01:34] [PASSED] X0L2 Max sizes
[23:01:34] [PASSED] X0L2 Invalid pitch
[23:01:34] [PASSED] X0L2 Pitch greater than minimum required
[23:01:34] [PASSED] X0L2 Handle for inexistent plane
[23:01:34] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[23:01:34] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[23:01:34] [PASSED] X0L2 Valid modifier
[23:01:34] [PASSED] X0L2 Modifier for inexistent plane
[23:01:34] =========== [PASSED] drm_test_framebuffer_create ===========
[23:01:34] [PASSED] drm_test_framebuffer_free
[23:01:34] [PASSED] drm_test_framebuffer_init
[23:01:34] [PASSED] drm_test_framebuffer_init_bad_format
[23:01:34] [PASSED] drm_test_framebuffer_init_dev_mismatch
[23:01:34] [PASSED] drm_test_framebuffer_lookup
[23:01:34] [PASSED] drm_test_framebuffer_lookup_inexistent
[23:01:34] [PASSED] drm_test_framebuffer_modifiers_not_supported
[23:01:34] ================= [PASSED] drm_framebuffer =================
[23:01:34] ================ drm_gem_shmem (8 subtests) ================
[23:01:34] [PASSED] drm_gem_shmem_test_obj_create
[23:01:34] [PASSED] drm_gem_shmem_test_obj_create_private
[23:01:34] [PASSED] drm_gem_shmem_test_pin_pages
[23:01:34] [PASSED] drm_gem_shmem_test_vmap
[23:01:34] [PASSED] drm_gem_shmem_test_get_sg_table
[23:01:34] [PASSED] drm_gem_shmem_test_get_pages_sgt
[23:01:34] [PASSED] drm_gem_shmem_test_madvise
[23:01:34] [PASSED] drm_gem_shmem_test_purge
[23:01:34] ================== [PASSED] drm_gem_shmem ==================
[23:01:34] === drm_atomic_helper_connector_hdmi_check (29 subtests) ===
[23:01:34] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[23:01:34] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[23:01:34] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[23:01:34] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[23:01:34] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[23:01:34] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[23:01:34] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[23:01:34] [PASSED] Automatic
[23:01:34] [PASSED] Full
[23:01:34] [PASSED] Limited 16:235
[23:01:34] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[23:01:34] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[23:01:34] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[23:01:34] [PASSED] drm_test_check_disable_connector
[23:01:34] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[23:01:34] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[23:01:34] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[23:01:34] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[23:01:34] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[23:01:34] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[23:01:34] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[23:01:34] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[23:01:34] [PASSED] drm_test_check_output_bpc_dvi
[23:01:34] [PASSED] drm_test_check_output_bpc_format_vic_1
[23:01:34] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[23:01:34] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[23:01:34] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[23:01:34] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[23:01:34] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[23:01:34] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[23:01:34] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[23:01:34] ============ drm_test_check_hdmi_color_format =============
[23:01:34] [PASSED] AUTO -> RGB
[23:01:34] [PASSED] YCBCR422 -> YUV422
[23:01:34] [PASSED] YCBCR420 -> YUV420
[23:01:34] [PASSED] YCBCR444 -> YUV444
[23:01:34] [PASSED] RGB -> RGB
[23:01:34] ======== [PASSED] drm_test_check_hdmi_color_format =========
[23:01:34] ======== drm_test_check_hdmi_color_format_420_only ========
[23:01:34] [PASSED] RGB should fail
[23:01:34] [PASSED] YUV444 should fail
[23:01:34] [PASSED] YUV422 should fail
[23:01:34] [PASSED] YUV420 should work
[23:01:34] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ====
[23:01:34] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[23:01:34] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[23:01:34] [PASSED] drm_test_check_broadcast_rgb_value
[23:01:34] [PASSED] drm_test_check_bpc_8_value
[23:01:34] [PASSED] drm_test_check_bpc_10_value
[23:01:34] [PASSED] drm_test_check_bpc_12_value
[23:01:34] [PASSED] drm_test_check_format_value
[23:01:34] [PASSED] drm_test_check_tmds_char_value
[23:01:34] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[23:01:34] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) =
[23:01:34] [PASSED] drm_test_check_mode_valid
[23:01:34] [PASSED] drm_test_check_mode_valid_reject
[23:01:34] [PASSED] drm_test_check_mode_valid_reject_rate
[23:01:34] [PASSED] drm_test_check_mode_valid_reject_max_clock
[23:01:34] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock
[23:01:34] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector
[23:01:34] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb
[23:01:34] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[23:01:34] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[23:01:34] [PASSED] drm_test_check_infoframes
[23:01:34] [PASSED] drm_test_check_reject_avi_infoframe
[23:01:34] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[23:01:34] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[23:01:34] [PASSED] drm_test_check_reject_audio_infoframe
[23:01:34] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[23:01:34] ================= drm_managed (2 subtests) =================
[23:01:34] [PASSED] drm_test_managed_release_action
[23:01:34] [PASSED] drm_test_managed_run_action
[23:01:34] =================== [PASSED] drm_managed ===================
[23:01:34] =================== drm_mm (6 subtests) ====================
[23:01:34] [PASSED] drm_test_mm_init
[23:01:34] [PASSED] drm_test_mm_debug
[23:01:34] [PASSED] drm_test_mm_align32
[23:01:34] [PASSED] drm_test_mm_align64
[23:01:34] [PASSED] drm_test_mm_lowest
[23:01:34] [PASSED] drm_test_mm_highest
[23:01:34] ===================== [PASSED] drm_mm ======================
[23:01:34] ============= drm_modes_analog_tv (5 subtests) =============
[23:01:34] [PASSED] drm_test_modes_analog_tv_mono_576i
[23:01:34] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[23:01:34] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[23:01:34] [PASSED] drm_test_modes_analog_tv_pal_576i
[23:01:34] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[23:01:34] =============== [PASSED] drm_modes_analog_tv ===============
[23:01:34] ============== drm_plane_helper (2 subtests) ===============
[23:01:34] =============== drm_test_check_plane_state ================
[23:01:34] [PASSED] clipping_simple
[23:01:34] [PASSED] clipping_rotate_reflect
[23:01:34] [PASSED] positioning_simple
[23:01:34] [PASSED] upscaling
[23:01:34] [PASSED] downscaling
[23:01:34] [PASSED] rounding1
[23:01:34] [PASSED] rounding2
[23:01:34] [PASSED] rounding3
[23:01:34] [PASSED] rounding4
[23:01:34] =========== [PASSED] drm_test_check_plane_state ============
[23:01:34] =========== drm_test_check_invalid_plane_state ============
[23:01:34] [PASSED] positioning_invalid
[23:01:34] [PASSED] upscaling_invalid
[23:01:34] [PASSED] downscaling_invalid
[23:01:34] ======= [PASSED] drm_test_check_invalid_plane_state ========
[23:01:34] ================ [PASSED] drm_plane_helper =================
[23:01:34] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[23:01:34] ====== drm_test_connector_helper_tv_get_modes_check =======
[23:01:34] [PASSED] None
[23:01:34] [PASSED] PAL
[23:01:34] [PASSED] NTSC
[23:01:34] [PASSED] Both, NTSC Default
[23:01:34] [PASSED] Both, PAL Default
[23:01:34] [PASSED] Both, NTSC Default, with PAL on command-line
[23:01:34] [PASSED] Both, PAL Default, with NTSC on command-line
[23:01:34] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[23:01:34] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[23:01:34] ================== drm_rect (9 subtests) ===================
[23:01:34] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[23:01:34] [PASSED] drm_test_rect_clip_scaled_not_clipped
[23:01:34] [PASSED] drm_test_rect_clip_scaled_clipped
[23:01:34] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[23:01:34] ================= drm_test_rect_intersect =================
[23:01:34] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[23:01:34] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[23:01:34] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[23:01:34] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[23:01:34] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[23:01:34] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[23:01:34] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[23:01:34] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[23:01:34] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[23:01:34] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[23:01:34] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[23:01:34] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[23:01:34] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[23:01:34] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[23:01:34] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[23:01:34] ============= [PASSED] drm_test_rect_intersect =============
[23:01:34] ================ drm_test_rect_calc_hscale ================
[23:01:34] [PASSED] normal use
[23:01:34] [PASSED] out of max range
[23:01:34] [PASSED] out of min range
[23:01:34] [PASSED] zero dst
[23:01:34] [PASSED] negative src
[23:01:34] [PASSED] negative dst
[23:01:34] ============ [PASSED] drm_test_rect_calc_hscale ============
[23:01:34] ================ drm_test_rect_calc_vscale ================
[23:01:34] [PASSED] normal use
[23:01:34] [PASSED] out of max range
[23:01:34] [PASSED] out of min range
[23:01:34] [PASSED] zero dst
[23:01:34] [PASSED] negative src
[23:01:34] [PASSED] negative dst
[23:01:34] ============ [PASSED] drm_test_rect_calc_vscale ============
[23:01:34] ================== drm_test_rect_rotate ===================
[23:01:34] [PASSED] reflect-x
[23:01:34] [PASSED] reflect-y
[23:01:34] [PASSED] rotate-0
[23:01:34] [PASSED] rotate-90
[23:01:34] [PASSED] rotate-180
[23:01:34] [PASSED] rotate-270
[23:01:34] ============== [PASSED] drm_test_rect_rotate ===============
[23:01:34] ================ drm_test_rect_rotate_inv =================
[23:01:34] [PASSED] reflect-x
[23:01:34] [PASSED] reflect-y
[23:01:34] [PASSED] rotate-0
[23:01:34] [PASSED] rotate-90
[23:01:34] [PASSED] rotate-180
[23:01:34] [PASSED] rotate-270
[23:01:34] ============ [PASSED] drm_test_rect_rotate_inv =============
[23:01:34] ==================== [PASSED] drm_rect =====================
[23:01:34] ============ drm_sysfb_modeset_test (1 subtest) ============
[23:01:34] ============ drm_test_sysfb_build_fourcc_list =============
[23:01:34] [PASSED] no native formats
[23:01:34] [PASSED] XRGB8888 as native format
[23:01:34] [PASSED] remove duplicates
[23:01:34] [PASSED] convert alpha formats
[23:01:34] [PASSED] random formats
[23:01:34] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[23:01:34] ============= [PASSED] drm_sysfb_modeset_test ==============
[23:01:34] ================== drm_fixp (2 subtests) ===================
[23:01:34] [PASSED] drm_test_int2fixp
[23:01:34] [PASSED] drm_test_sm2fixp
[23:01:34] ==================== [PASSED] drm_fixp =====================
[23:01:34] ============================================================
[23:01:34] Testing complete. Ran 637 tests: passed: 637
[23:01:34] Elapsed time: 26.680s total, 1.802s configuring, 24.663s building, 0.186s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[23:01:34] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[23:01:35] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[23:01:45] Starting KUnit Kernel (1/1)...
[23:01:45] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[23:01:46] ================= ttm_device (5 subtests) ==================
[23:01:46] [PASSED] ttm_device_init_basic
[23:01:46] [PASSED] ttm_device_init_multiple
[23:01:46] [PASSED] ttm_device_fini_basic
[23:01:46] [PASSED] ttm_device_init_no_vma_man
[23:01:46] ================== ttm_device_init_pools ==================
[23:01:46] [PASSED] No DMA allocations, no DMA32 required
[23:01:46] [PASSED] DMA allocations, DMA32 required
[23:01:46] [PASSED] No DMA allocations, DMA32 required
[23:01:46] [PASSED] DMA allocations, no DMA32 required
[23:01:46] ============== [PASSED] ttm_device_init_pools ==============
[23:01:46] =================== [PASSED] ttm_device ====================
[23:01:46] ================== ttm_pool (8 subtests) ===================
[23:01:46] ================== ttm_pool_alloc_basic ===================
[23:01:46] [PASSED] One page
[23:01:46] [PASSED] More than one page
[23:01:46] [PASSED] Above the allocation limit
[23:01:46] [PASSED] One page, with coherent DMA mappings enabled
[23:01:46] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[23:01:46] ============== [PASSED] ttm_pool_alloc_basic ===============
[23:01:46] ============== ttm_pool_alloc_basic_dma_addr ==============
[23:01:46] [PASSED] One page
[23:01:46] [PASSED] More than one page
[23:01:46] [PASSED] Above the allocation limit
[23:01:46] [PASSED] One page, with coherent DMA mappings enabled
[23:01:46] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[23:01:46] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[23:01:46] [PASSED] ttm_pool_alloc_order_caching_match
[23:01:46] [PASSED] ttm_pool_alloc_caching_mismatch
[23:01:46] [PASSED] ttm_pool_alloc_order_mismatch
[23:01:46] [PASSED] ttm_pool_free_dma_alloc
[23:01:46] [PASSED] ttm_pool_free_no_dma_alloc
[23:01:46] [PASSED] ttm_pool_fini_basic
[23:01:46] ==================== [PASSED] ttm_pool =====================
[23:01:46] ================ ttm_resource (8 subtests) =================
[23:01:46] ================= ttm_resource_init_basic =================
[23:01:46] [PASSED] Init resource in TTM_PL_SYSTEM
[23:01:46] [PASSED] Init resource in TTM_PL_VRAM
[23:01:46] [PASSED] Init resource in a private placement
[23:01:46] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[23:01:46] ============= [PASSED] ttm_resource_init_basic =============
[23:01:46] [PASSED] ttm_resource_init_pinned
[23:01:46] [PASSED] ttm_resource_fini_basic
[23:01:46] [PASSED] ttm_resource_manager_init_basic
[23:01:46] [PASSED] ttm_resource_manager_usage_basic
[23:01:46] [PASSED] ttm_resource_manager_set_used_basic
[23:01:46] [PASSED] ttm_sys_man_alloc_basic
[23:01:46] [PASSED] ttm_sys_man_free_basic
[23:01:46] ================== [PASSED] ttm_resource ===================
[23:01:46] =================== ttm_tt (15 subtests) ===================
[23:01:46] ==================== ttm_tt_init_basic ====================
[23:01:46] [PASSED] Page-aligned size
[23:01:46] [PASSED] Extra pages requested
[23:01:46] ================ [PASSED] ttm_tt_init_basic ================
[23:01:46] [PASSED] ttm_tt_init_misaligned
[23:01:46] [PASSED] ttm_tt_fini_basic
[23:01:46] [PASSED] ttm_tt_fini_sg
[23:01:46] [PASSED] ttm_tt_fini_shmem
[23:01:46] [PASSED] ttm_tt_create_basic
[23:01:46] [PASSED] ttm_tt_create_invalid_bo_type
[23:01:46] [PASSED] ttm_tt_create_ttm_exists
[23:01:46] [PASSED] ttm_tt_create_failed
[23:01:46] [PASSED] ttm_tt_destroy_basic
[23:01:46] [PASSED] ttm_tt_populate_null_ttm
[23:01:46] [PASSED] ttm_tt_populate_populated_ttm
[23:01:46] [PASSED] ttm_tt_unpopulate_basic
[23:01:46] [PASSED] ttm_tt_unpopulate_empty_ttm
[23:01:46] [PASSED] ttm_tt_swapin_basic
[23:01:46] ===================== [PASSED] ttm_tt ======================
[23:01:46] =================== ttm_bo (14 subtests) ===================
[23:01:46] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[23:01:46] [PASSED] Cannot be interrupted and sleeps
[23:01:46] [PASSED] Cannot be interrupted, locks straight away
[23:01:46] [PASSED] Can be interrupted, sleeps
[23:01:46] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[23:01:46] [PASSED] ttm_bo_reserve_locked_no_sleep
[23:01:46] [PASSED] ttm_bo_reserve_no_wait_ticket
[23:01:46] [PASSED] ttm_bo_reserve_double_resv
[23:01:46] [PASSED] ttm_bo_reserve_interrupted
[23:01:46] [PASSED] ttm_bo_reserve_deadlock
[23:01:46] [PASSED] ttm_bo_unreserve_basic
[23:01:46] [PASSED] ttm_bo_unreserve_pinned
[23:01:46] [PASSED] ttm_bo_unreserve_bulk
[23:01:46] [PASSED] ttm_bo_fini_basic
[23:01:46] [PASSED] ttm_bo_fini_shared_resv
[23:01:46] [PASSED] ttm_bo_pin_basic
[23:01:46] [PASSED] ttm_bo_pin_unpin_resource
[23:01:46] [PASSED] ttm_bo_multiple_pin_one_unpin
[23:01:46] ===================== [PASSED] ttm_bo ======================
[23:01:46] ============== ttm_bo_validate (22 subtests) ===============
[23:01:46] ============== ttm_bo_init_reserved_sys_man ===============
[23:01:46] [PASSED] Buffer object for userspace
[23:01:46] [PASSED] Kernel buffer object
[23:01:46] [PASSED] Shared buffer object
[23:01:46] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[23:01:46] ============== ttm_bo_init_reserved_mock_man ==============
[23:01:46] [PASSED] Buffer object for userspace
[23:01:46] [PASSED] Kernel buffer object
[23:01:46] [PASSED] Shared buffer object
[23:01:46] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[23:01:46] [PASSED] ttm_bo_init_reserved_resv
[23:01:46] ================== ttm_bo_validate_basic ==================
[23:01:46] [PASSED] Buffer object for userspace
[23:01:46] [PASSED] Kernel buffer object
[23:01:46] [PASSED] Shared buffer object
[23:01:46] ============== [PASSED] ttm_bo_validate_basic ==============
[23:01:46] [PASSED] ttm_bo_validate_invalid_placement
[23:01:46] ============= ttm_bo_validate_same_placement ==============
[23:01:46] [PASSED] System manager
[23:01:46] [PASSED] VRAM manager
[23:01:46] ========= [PASSED] ttm_bo_validate_same_placement ==========
[23:01:46] [PASSED] ttm_bo_validate_failed_alloc
[23:01:46] [PASSED] ttm_bo_validate_pinned
[23:01:46] [PASSED] ttm_bo_validate_busy_placement
[23:01:46] ================ ttm_bo_validate_multihop =================
[23:01:46] [PASSED] Buffer object for userspace
[23:01:46] [PASSED] Kernel buffer object
[23:01:46] [PASSED] Shared buffer object
[23:01:46] ============ [PASSED] ttm_bo_validate_multihop =============
[23:01:46] ========== ttm_bo_validate_no_placement_signaled ==========
[23:01:46] [PASSED] Buffer object in system domain, no page vector
[23:01:46] [PASSED] Buffer object in system domain with an existing page vector
[23:01:46] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[23:01:46] ======== ttm_bo_validate_no_placement_not_signaled ========
[23:01:46] [PASSED] Buffer object for userspace
[23:01:46] [PASSED] Kernel buffer object
[23:01:46] [PASSED] Shared buffer object
[23:01:46] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[23:01:46] [PASSED] ttm_bo_validate_move_fence_signaled
[23:01:46] ========= ttm_bo_validate_move_fence_not_signaled =========
[23:01:46] [PASSED] Waits for GPU
[23:01:46] [PASSED] Tries to lock straight away
[23:01:46] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[23:01:46] [PASSED] ttm_bo_validate_swapout
[23:01:46] [PASSED] ttm_bo_validate_happy_evict
[23:01:46] [PASSED] ttm_bo_validate_all_pinned_evict
[23:01:46] [PASSED] ttm_bo_validate_allowed_only_evict
[23:01:46] [PASSED] ttm_bo_validate_deleted_evict
[23:01:46] [PASSED] ttm_bo_validate_busy_domain_evict
[23:01:46] [PASSED] ttm_bo_validate_evict_gutting
[23:01:46] [PASSED] ttm_bo_validate_recrusive_evict
[23:01:46] ================= [PASSED] ttm_bo_validate =================
[23:01:46] ============================================================
[23:01:46] Testing complete. Ran 102 tests: passed: 102
[23:01:46] Elapsed time: 11.945s total, 1.758s configuring, 9.922s building, 0.214s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/dma-buf/.kunitconfig
[23:01:46] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[23:01:48] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[23:01:56] Starting KUnit Kernel (1/1)...
[23:01:56] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[23:01:56] =============== dma-buf-fence (12 subtests) ================
[23:01:56] [PASSED] test_sanitycheck
[23:01:56] [PASSED] test_signaling
[23:01:56] [PASSED] test_add_callback
[23:01:56] [PASSED] test_late_add_callback
[23:01:56] [PASSED] test_rm_callback
[23:01:56] [PASSED] test_late_rm_callback
[23:01:56] [PASSED] test_status
[23:01:56] [PASSED] test_error
[23:01:56] [PASSED] test_wait
[23:01:56] [PASSED] test_wait_timeout
[23:01:56] [PASSED] test_stub
[23:01:56] [SKIPPED] test_race_signal_callback (requires at least 2 CPUs)
[23:01:56] ================== [PASSED] dma-buf-fence ==================
[23:01:56] ============ dma-buf-fence-chain (11 subtests) =============
[23:01:56] [PASSED] test_sanitycheck
[23:01:56] [PASSED] test_find_seqno
[23:01:56] [PASSED] test_find_signaled
[23:01:56] [PASSED] test_find_out_of_order
[23:02:01] [PASSED] test_find_gap
[23:02:01] [PASSED] test_find_race
[23:02:01] [PASSED] test_signal_forward
[23:02:02] [PASSED] test_signal_backward
[23:02:02] [PASSED] test_wait_forward
[23:02:02] [PASSED] test_wait_backward
[23:02:02] [PASSED] test_wait_random
[23:02:02] =============== [PASSED] dma-buf-fence-chain ===============
[23:02:02] ============ dma-buf-fence-unwrap (10 subtests) ============
[23:02:02] [PASSED] test_sanitycheck
[23:02:02] [PASSED] test_unwrap_array
[23:02:02] [PASSED] test_unwrap_chain
[23:02:02] [PASSED] test_unwrap_chain_array
[23:02:02] [PASSED] test_unwrap_merge
[23:02:02] [PASSED] test_unwrap_merge_duplicate
[23:02:02] [PASSED] test_unwrap_merge_seqno
[23:02:02] [PASSED] test_unwrap_merge_order
[23:02:02] [PASSED] test_unwrap_merge_complex
[23:02:02] [PASSED] test_unwrap_merge_complex_seqno
[23:02:02] ============== [PASSED] dma-buf-fence-unwrap ===============
[23:02:02] ================ dma-buf-resv (5 subtests) =================
[23:02:02] [PASSED] test_sanitycheck
[23:02:02] ===================== test_signaling ======================
[23:02:02] [PASSED] kernel
[23:02:02] [PASSED] write
[23:02:02] [PASSED] read
[23:02:02] [PASSED] bookkeep
[23:02:02] ================= [PASSED] test_signaling ==================
[23:02:02] ====================== test_for_each ======================
[23:02:02] [PASSED] kernel
[23:02:02] [PASSED] write
[23:02:02] [PASSED] read
[23:02:02] [PASSED] bookkeep
[23:02:02] ================== [PASSED] test_for_each ==================
[23:02:02] ================= test_for_each_unlocked ==================
[23:02:02] [PASSED] kernel
[23:02:02] [PASSED] write
[23:02:02] [PASSED] read
[23:02:02] [PASSED] bookkeep
[23:02:02] ============= [PASSED] test_for_each_unlocked ==============
[23:02:02] ===================== test_get_fences =====================
[23:02:02] [PASSED] kernel
[23:02:02] [PASSED] write
[23:02:02] [PASSED] read
[23:02:02] [PASSED] bookkeep
[23:02:02] ================= [PASSED] test_get_fences =================
[23:02:02] ================== [PASSED] dma-buf-resv ===================
[23:02:02] ============================================================
[23:02:02] Testing complete. Ran 50 tests: passed: 49, skipped: 1
[23:02:02] Elapsed time: 15.839s total, 1.786s configuring, 8.731s building, 5.272s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 11+ messages in thread