* [PATCH 01/11] drm/i915/display: Fix intel_lpe_audio_irq_handler for PREEMPT-RT
2025-12-12 13:02 [PATCH 00/11] drm/i915/display: All patches to make PREEMPT_RT work on xe Maarten Lankhorst
@ 2025-12-12 13:02 ` Maarten Lankhorst
2025-12-12 13:02 ` [PATCH 02/11] drm/i915/display: Make get_vblank_counter use intel_de_read_fw() Maarten Lankhorst
` (13 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Maarten Lankhorst @ 2025-12-12 13:02 UTC (permalink / raw)
To: intel-xe
Cc: intel-gfx, Sebastian Andrzej Siewior, Maarten Lankhorst,
Matthew Brost
The LPE audio interrupt comes from the i915 interrupt handler. It
should be in irq disabled context.
With PREEMPT_RT enabled, the IRQ handler is threaded.
Because intel_lpe_audio_irq_handler() may be called in threaded IRQ context,
generic_handle_irq_safe API disables the interrupts before calling LPE's
interrupt top half handler.
This fixes braswell audio issues with RT enabled.
Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
drivers/gpu/drm/i915/display/intel_lpe_audio.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_lpe_audio.c b/drivers/gpu/drm/i915/display/intel_lpe_audio.c
index 5b41abe1c64d5..172c0062237eb 100644
--- a/drivers/gpu/drm/i915/display/intel_lpe_audio.c
+++ b/drivers/gpu/drm/i915/display/intel_lpe_audio.c
@@ -262,7 +262,7 @@ void intel_lpe_audio_irq_handler(struct intel_display *display)
if (!HAS_LPE_AUDIO(display))
return;
- ret = generic_handle_irq(display->audio.lpe.irq);
+ ret = generic_handle_irq_safe(display->audio.lpe.irq);
if (ret)
drm_err_ratelimited(display->drm,
"error handling LPE audio irq: %d\n", ret);
--
2.51.0
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 02/11] drm/i915/display: Make get_vblank_counter use intel_de_read_fw()
2025-12-12 13:02 [PATCH 00/11] drm/i915/display: All patches to make PREEMPT_RT work on xe Maarten Lankhorst
2025-12-12 13:02 ` [PATCH 01/11] drm/i915/display: Fix intel_lpe_audio_irq_handler for PREEMPT-RT Maarten Lankhorst
@ 2025-12-12 13:02 ` Maarten Lankhorst
2025-12-12 13:02 ` [PATCH 03/11] drm/i915/display: Use intel_de_write_fw in intel_pipe_fastset Maarten Lankhorst
` (12 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Maarten Lankhorst @ 2025-12-12 13:02 UTC (permalink / raw)
To: intel-xe; +Cc: intel-gfx, Sebastian Andrzej Siewior, Maarten Lankhorst
Fixes the following lockdep splat on PREEMPT_RT:
<3> BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48
<3> in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 1373, name: xe_module_load
<3> preempt_count: 1, expected: 0
<3> RCU nest depth: 0, expected: 0
<4> 11 locks held by xe_module_load/1373:
<4> #0: ffff888107b691a0 (&dev->mutex){....}-{3:3}, at: __driver_attach+0x104/0x220
<4> #1: ffff88813cd30280 (&dev->clientlist_mutex){+.+.}-{3:3}, at: drm_client_register+0x32/0xe0
<4> #2: ffffffff837f88f8 (registration_lock){+.+.}-{3:3}, at: register_framebuffer+0x1b/0x50
<4> #3: ffffffff835985e0 (console_lock){+.+.}-{0:0}, at: fbcon_fb_registered+0x6f/0x90
<4> #4: ffff88812589e6a0 (&helper->lock){+.+.}-{3:3}, at: __drm_fb_helper_restore_fbdev_mode_unlocked+0x7b/0x110
<4> #5: ffff88813cd30158 (&dev->master_mutex){+.+.}-{3:3}, at: drm_master_internal_acquire+0x20/0x50
<4> #6: ffff88812589e488 (&client->modeset_mutex){+.+.}-{3:3}, at: drm_client_modeset_commit_locked+0x2a/0x1b0
<4> #7: ffffc9000031eef0 (crtc_ww_class_acquire){+.+.}-{0:0}, at: drm_client_modeset_commit_atomic+0x4c/0x2b0
<4> #8: ffffc9000031ef18 (crtc_ww_class_mutex){+.+.}-{3:3}, at: drm_client_modeset_commit_atomic+0x4c/0x2b0
<4> #9: ffff888114f7b8b8 (&intel_dp->psr.lock){+.+.}-{3:3}, at: intel_psr_lock+0xc5/0xf0 [xe]
<4> #10: ffff88812a0cbbc0 (&wl->lock){+.+.}-{2:2}, at: intel_dmc_wl_get+0x3c/0x140 [xe]
This splat will happen otherwise on all tracepoints too, for similar reasons.
Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
---
drivers/gpu/drm/i915/display/intel_vblank.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
index 671f357c65638..2b106ffa3f5f5 100644
--- a/drivers/gpu/drm/i915/display/intel_vblank.c
+++ b/drivers/gpu/drm/i915/display/intel_vblank.c
@@ -133,7 +133,7 @@ u32 g4x_get_vblank_counter(struct drm_crtc *crtc)
if (!vblank->max_vblank_count)
return 0;
- return intel_de_read(display, PIPE_FRMCOUNT_G4X(display, pipe));
+ return intel_de_read_fw(display, PIPE_FRMCOUNT_G4X(display, pipe));
}
static u32 intel_crtc_scanlines_since_frame_timestamp(struct intel_crtc *crtc)
--
2.51.0
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 03/11] drm/i915/display: Use intel_de_write_fw in intel_pipe_fastset
2025-12-12 13:02 [PATCH 00/11] drm/i915/display: All patches to make PREEMPT_RT work on xe Maarten Lankhorst
2025-12-12 13:02 ` [PATCH 01/11] drm/i915/display: Fix intel_lpe_audio_irq_handler for PREEMPT-RT Maarten Lankhorst
2025-12-12 13:02 ` [PATCH 02/11] drm/i915/display: Make get_vblank_counter use intel_de_read_fw() Maarten Lankhorst
@ 2025-12-12 13:02 ` Maarten Lankhorst
2025-12-12 13:02 ` [PATCH 04/11] drm/i915/display: Make set_pipeconf use the fw variants Maarten Lankhorst
` (11 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Maarten Lankhorst @ 2025-12-12 13:02 UTC (permalink / raw)
To: intel-xe; +Cc: intel-gfx, Sebastian Andrzej Siewior, Maarten Lankhorst
intel_set_pipe_src_size(), hsw_set_linetime_wm(),
intel_cpu_transcoder_set_m1_n1() and intel_set_transcoder_timings_lrr()
are called from an atomic context on PREEMPT_RT, and should be using the
_fw functions.
This likely prevents a deadlock on i915.
Again noticed when trying to disable preemption in vblank evasion:
<3> BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48
<3> in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 1505, name: kms_cursor_lega
<3> preempt_count: 1, expected: 0
<3> RCU nest depth: 0, expected: 0
<4> 4 locks held by kms_cursor_lega/1505:
<4> #0: ffffc90003c6f988 (crtc_ww_class_acquire){+.+.}-{0:0}, at: drm_mode_atomic_ioctl+0x13b/0xe90
<4> #1: ffffc90003c6f9b0 (crtc_ww_class_mutex){+.+.}-{3:3}, at: drm_mode_atomic_ioctl+0x13b/0xe90
<4> #2: ffff888135b838b8 (&intel_dp->psr.lock){+.+.}-{3:3}, at: intel_psr_lock+0xc5/0xf0 [xe]
<4> #3: ffff88812607bbc0 (&wl->lock){+.+.}-{2:2}, at: intel_dmc_wl_get+0x3c/0x140 [xe]
<4> CPU: 6 UID: 0 PID: 1505 Comm: kms_cursor_lega Tainted: G U 6.18.0-rc3-lgci-xe-xe-pw-156729v1+ #1 PREEMPT_{RT,(lazy)}
<4> Tainted: [U]=USER
<4> Hardware name: Intel Corporation Panther Lake Client Platform/PTL-UH LP5 T3 RVP1, BIOS PTLPFWI1.R00.3383.D02.2509240621 09/24/2025
<4> Call Trace:
<4> <TASK>
<4> dump_stack_lvl+0xc1/0xf0
<4> dump_stack+0x10/0x20
<4> __might_resched+0x174/0x260
<4> rt_spin_lock+0x63/0x200
<4> ? intel_dmc_wl_get+0x3c/0x140 [xe]
<4> intel_dmc_wl_get+0x3c/0x140 [xe]
<4> intel_set_pipe_src_size+0x89/0xe0 [xe]
<4> intel_update_crtc+0x3c1/0x950 [xe]
<4> ? intel_pre_update_crtc+0x258/0x400 [xe]
<4> skl_commit_modeset_enables+0x217/0x720 [xe]
<4> intel_atomic_commit_tail+0xd4e/0x1af0 [xe]
<4> ? lock_release+0xce/0x2a0
<4> intel_atomic_commit+0x2e5/0x330 [xe]
<4> ? intel_atomic_commit+0x2e5/0x330 [xe]
<4> drm_atomic_commit+0xaf/0xf0
<4> ? __pfx___drm_printfn_info+0x10/0x10
<4> drm_mode_atomic_ioctl+0xbd5/0xe90
<4> ? lock_acquire+0xc4/0x2e0
<4> ? __pfx_drm_mode_atomic_ioctl+0x10/0x10
<4> drm_ioctl_kernel+0xb6/0x120
<4> drm_ioctl+0x2d7/0x5a0
<4> ? __pfx_drm_mode_atomic_ioctl+0x10/0x10
<4> ? rt_spin_unlock+0xa0/0x140
<4> ? __pm_runtime_resume+0x53/0x90
<4> xe_drm_ioctl+0x56/0x90 [xe]
<4> __x64_sys_ioctl+0xa8/0x110
<4> ? lock_acquire+0xc4/0x2e0
<4> x64_sys_call+0x1144/0x26a0
<4> do_syscall_64+0x93/0xae0
<4> ? lock_release+0xce/0x2a0
<4> ? __task_pid_nr_ns+0xd9/0x270
<4> ? do_syscall_64+0x1b7/0xae0
<4> ? find_held_lock+0x31/0x90
<4> ? __task_pid_nr_ns+0xcf/0x270
<4> ? __lock_acquire+0x43e/0x2860
<4> ? __task_pid_nr_ns+0xd9/0x270
<4> ? lock_acquire+0xc4/0x2e0
<4> ? find_held_lock+0x31/0x90
<4> ? __task_pid_nr_ns+0xcf/0x270
<4> ? lock_release+0xce/0x2a0
<4> ? __task_pid_nr_ns+0xd9/0x270
<4> ? do_syscall_64+0x1b7/0xae0
<4> ? do_syscall_64+0x1b7/0xae0
<4> entry_SYSCALL_64_after_hwframe+0x76/0x7e
Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
---
drivers/gpu/drm/i915/display/intel_display.c | 36 ++++++++++----------
drivers/gpu/drm/i915/display/intel_vrr.c | 16 ++++-----
2 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 9c6d3ecdb589e..04e14eaeacdb2 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -1583,9 +1583,9 @@ static void hsw_set_linetime_wm(const struct intel_crtc_state *crtc_state)
struct intel_display *display = to_intel_display(crtc_state);
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
- intel_de_write(display, WM_LINETIME(crtc->pipe),
- HSW_LINETIME(crtc_state->linetime) |
- HSW_IPS_LINETIME(crtc_state->ips_linetime));
+ intel_de_write_fw(display, WM_LINETIME(crtc->pipe),
+ HSW_LINETIME(crtc_state->linetime) |
+ HSW_IPS_LINETIME(crtc_state->ips_linetime));
}
static void hsw_set_frame_start_delay(const struct intel_crtc_state *crtc_state)
@@ -2582,14 +2582,14 @@ void intel_set_m_n(struct intel_display *display,
i915_reg_t data_m_reg, i915_reg_t data_n_reg,
i915_reg_t link_m_reg, i915_reg_t link_n_reg)
{
- intel_de_write(display, data_m_reg, TU_SIZE(m_n->tu) | m_n->data_m);
- intel_de_write(display, data_n_reg, m_n->data_n);
- intel_de_write(display, link_m_reg, m_n->link_m);
+ intel_de_write_fw(display, data_m_reg, TU_SIZE(m_n->tu) | m_n->data_m);
+ intel_de_write_fw(display, data_n_reg, m_n->data_n);
+ intel_de_write_fw(display, link_m_reg, m_n->link_m);
/*
* On BDW+ writing LINK_N arms the double buffered update
* of all the M/N registers, so it must be written last.
*/
- intel_de_write(display, link_n_reg, m_n->link_n);
+ intel_de_write_fw(display, link_n_reg, m_n->link_n);
}
bool intel_cpu_transcoder_has_m2_n2(struct intel_display *display,
@@ -2776,9 +2776,9 @@ static void intel_set_transcoder_timings_lrr(const struct intel_crtc_state *crtc
}
if (DISPLAY_VER(display) >= 13) {
- intel_de_write(display,
- TRANS_SET_CONTEXT_LATENCY(display, cpu_transcoder),
- crtc_state->set_context_latency);
+ intel_de_write_fw(display,
+ TRANS_SET_CONTEXT_LATENCY(display, cpu_transcoder),
+ crtc_state->set_context_latency);
/*
* VBLANK_START not used by hw, just clear it
@@ -2794,9 +2794,9 @@ static void intel_set_transcoder_timings_lrr(const struct intel_crtc_state *crtc
* The hardware actually ignores TRANS_VBLANK.VBLANK_END in DP mode.
* But let's write it anyway to keep the state checker happy.
*/
- intel_de_write(display, TRANS_VBLANK(display, cpu_transcoder),
- VBLANK_START(crtc_vblank_start - 1) |
- VBLANK_END(crtc_vblank_end - 1));
+ intel_de_write_fw(display, TRANS_VBLANK(display, cpu_transcoder),
+ VBLANK_START(crtc_vblank_start - 1) |
+ VBLANK_END(crtc_vblank_end - 1));
/*
* For platforms that always use VRR Timing Generator, the VTOTAL.Vtotal
* bits are not required. Since the support for these bits is going to
@@ -2810,9 +2810,9 @@ static void intel_set_transcoder_timings_lrr(const struct intel_crtc_state *crtc
* The double buffer latch point for TRANS_VTOTAL
* is the transcoder's undelayed vblank.
*/
- intel_de_write(display, TRANS_VTOTAL(display, cpu_transcoder),
- VACTIVE(crtc_vdisplay - 1) |
- VTOTAL(crtc_vtotal - 1));
+ intel_de_write_fw(display, TRANS_VTOTAL(display, cpu_transcoder),
+ VACTIVE(crtc_vdisplay - 1) |
+ VTOTAL(crtc_vtotal - 1));
intel_vrr_set_fixed_rr_timings(crtc_state);
intel_vrr_transcoder_enable(crtc_state);
@@ -2829,8 +2829,8 @@ static void intel_set_pipe_src_size(const struct intel_crtc_state *crtc_state)
/* pipesrc controls the size that is scaled from, which should
* always be the user's requested size.
*/
- intel_de_write(display, PIPESRC(display, pipe),
- PIPESRC_WIDTH(width - 1) | PIPESRC_HEIGHT(height - 1));
+ intel_de_write_fw(display, PIPESRC(display, pipe),
+ PIPESRC_WIDTH(width - 1) | PIPESRC_HEIGHT(height - 1));
}
static bool intel_pipe_is_interlaced(const struct intel_crtc_state *crtc_state)
diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c b/drivers/gpu/drm/i915/display/intel_vrr.c
index b92c42fde937f..5d8b419d1ae36 100644
--- a/drivers/gpu/drm/i915/display/intel_vrr.c
+++ b/drivers/gpu/drm/i915/display/intel_vrr.c
@@ -300,12 +300,12 @@ void intel_vrr_set_fixed_rr_timings(const struct intel_crtc_state *crtc_state)
if (!intel_vrr_possible(crtc_state))
return;
- intel_de_write(display, TRANS_VRR_VMIN(display, cpu_transcoder),
- intel_vrr_fixed_rr_hw_vmin(crtc_state) - 1);
- intel_de_write(display, TRANS_VRR_VMAX(display, cpu_transcoder),
- intel_vrr_fixed_rr_hw_vmax(crtc_state) - 1);
- intel_de_write(display, TRANS_VRR_FLIPLINE(display, cpu_transcoder),
- intel_vrr_fixed_rr_hw_flipline(crtc_state) - 1);
+ intel_de_write_fw(display, TRANS_VRR_VMIN(display, cpu_transcoder),
+ intel_vrr_fixed_rr_hw_vmin(crtc_state) - 1);
+ intel_de_write_fw(display, TRANS_VRR_VMAX(display, cpu_transcoder),
+ intel_vrr_fixed_rr_hw_vmax(crtc_state) - 1);
+ intel_de_write_fw(display, TRANS_VRR_FLIPLINE(display, cpu_transcoder),
+ intel_vrr_fixed_rr_hw_flipline(crtc_state) - 1);
}
static
@@ -693,7 +693,7 @@ static void intel_vrr_tg_enable(const struct intel_crtc_state *crtc_state,
enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
u32 vrr_ctl;
- intel_de_write(display, TRANS_PUSH(display, cpu_transcoder), TRANS_PUSH_EN);
+ intel_de_write_fw(display, TRANS_PUSH(display, cpu_transcoder), TRANS_PUSH_EN);
vrr_ctl = VRR_CTL_VRR_ENABLE | trans_vrr_ctl(crtc_state);
@@ -705,7 +705,7 @@ static void intel_vrr_tg_enable(const struct intel_crtc_state *crtc_state,
if (cmrr_enable)
vrr_ctl |= VRR_CTL_CMRR_ENABLE;
- intel_de_write(display, TRANS_VRR_CTL(display, cpu_transcoder), vrr_ctl);
+ intel_de_write_fw(display, TRANS_VRR_CTL(display, cpu_transcoder), vrr_ctl);
}
static void intel_vrr_tg_disable(const struct intel_crtc_state *old_crtc_state)
--
2.51.0
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 04/11] drm/i915/display: Make set_pipeconf use the fw variants
2025-12-12 13:02 [PATCH 00/11] drm/i915/display: All patches to make PREEMPT_RT work on xe Maarten Lankhorst
` (2 preceding siblings ...)
2025-12-12 13:02 ` [PATCH 03/11] drm/i915/display: Use intel_de_write_fw in intel_pipe_fastset Maarten Lankhorst
@ 2025-12-12 13:02 ` Maarten Lankhorst
2025-12-12 13:02 ` [PATCH 05/11] drm/i915/display: Move vblank put until after critical section Maarten Lankhorst
` (10 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Maarten Lankhorst @ 2025-12-12 13:02 UTC (permalink / raw)
To: intel-xe; +Cc: intel-gfx, Sebastian Andrzej Siewior, Maarten Lankhorst
The calls are used inside the critical section when updating
the gamma mode, and thus should use the _fw variants to prevent
locks.
Fixes following splat:
| BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48
| in_atomic(): 0, irqs_disabled(): 1, non_block: 0, pid: 2115, name: modprobe
| preempt_count: 0, expected: 0
| RCU nest depth: 0, expected: 0
| 4 locks held by modprobe/2115:
| #0: ffff99b9425161a0 (&dev->mutex){....}-{4:4}, at: __driver_attach+0xaf/0x1c0
| #1: ffffaa224810f6c0 (crtc_ww_class_acquire){+.+.}-{0:0}, at: intel_initial_commit+0x4c/0x200 [i915]
| #2: ffffaa224810f6e8 (crtc_ww_class_mutex){+.+.}-{4:4}, at: intel_initial_commit+0x4c/0x200 [i915]
| #3: ffff99b94a6c9030 (&uncore->lock){+.+.}-{3:3}, at: gen6_write32+0x50/0x290 [i915]
| irq event stamp: 513344
| hardirqs last enabled at (513343): [<ffffffff8ba8d84c>] _raw_spin_unlock_irqrestore+0x4c/0x60
| hardirqs last disabled at (513344): [<ffffffffc1543646>] intel_pipe_update_start+0x216/0x2c0 [i915]
| softirqs last enabled at (512766): [<ffffffff8af045cf>] __local_bh_enable_ip+0x10f/0x170
| softirqs last disabled at (512712): [<ffffffffc14dfb6a>] __i915_request_queue+0x3a/0x70 [i915]
| CPU: 3 UID: 0 PID: 2115 Comm: modprobe Tainted: G W 6.18.0-rc1+ #17 PREEMPT_{RT,(lazy)}
| Tainted: [W]=WARN
| Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./Z68 Pro3-M, BIOS P2.30 06/29/2012
| Call Trace:
| <TASK>
| dump_stack_lvl+0x68/0x90
| __might_resched.cold+0xf0/0x12b
| rt_spin_lock+0x5f/0x200
| gen6_write32+0x50/0x290 [i915]
| ilk_set_pipeconf+0x12d/0x230 [i915]
| ilk_color_commit_arm+0x2d/0x70 [i915]
| intel_update_crtc+0x15b/0x690 [i915]
| intel_commit_modeset_enables+0xa6/0xd0 [i915]
| intel_atomic_commit_tail+0xd55/0x19a0 [i915]
| intel_atomic_commit+0x25d/0x2a0 [i915]
| drm_atomic_commit+0xad/0xe0 [drm]
| intel_initial_commit+0x16c/0x200 [i915]
| intel_display_driver_probe+0x2e/0x80 [i915]
| i915_driver_probe+0x791/0xc10 [i915]
| i915_pci_probe+0xd7/0x190 [i915]
Reported-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
---
drivers/gpu/drm/i915/display/intel_display.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 04e14eaeacdb2..58b42e09907f5 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -3013,8 +3013,9 @@ void i9xx_set_pipeconf(const struct intel_crtc_state *crtc_state)
val |= TRANSCONF_FRAME_START_DELAY(crtc_state->framestart_delay - 1);
- intel_de_write(display, TRANSCONF(display, cpu_transcoder), val);
- intel_de_posting_read(display, TRANSCONF(display, cpu_transcoder));
+ intel_de_write_fw(display, TRANSCONF(display, cpu_transcoder), val);
+ /* posting read */
+ intel_de_read_fw(display, TRANSCONF(display, cpu_transcoder));
}
static enum intel_output_format
@@ -3209,8 +3210,9 @@ void ilk_set_pipeconf(const struct intel_crtc_state *crtc_state)
val |= TRANSCONF_FRAME_START_DELAY(crtc_state->framestart_delay - 1);
val |= TRANSCONF_MSA_TIMING_DELAY(crtc_state->msa_timing_delay);
- intel_de_write(display, TRANSCONF(display, cpu_transcoder), val);
- intel_de_posting_read(display, TRANSCONF(display, cpu_transcoder));
+ intel_de_write_fw(display, TRANSCONF(display, cpu_transcoder), val);
+ /* posting read */
+ intel_de_read_fw(display, TRANSCONF(display, cpu_transcoder));
}
static void hsw_set_transconf(const struct intel_crtc_state *crtc_state)
--
2.51.0
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 05/11] drm/i915/display: Move vblank put until after critical section
2025-12-12 13:02 [PATCH 00/11] drm/i915/display: All patches to make PREEMPT_RT work on xe Maarten Lankhorst
` (3 preceding siblings ...)
2025-12-12 13:02 ` [PATCH 04/11] drm/i915/display: Make set_pipeconf use the fw variants Maarten Lankhorst
@ 2025-12-12 13:02 ` Maarten Lankhorst
2025-12-12 13:02 ` [PATCH 06/11] drm/i915/display: Remove locking from intel_vblank_evade " Maarten Lankhorst
` (9 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Maarten Lankhorst @ 2025-12-12 13:02 UTC (permalink / raw)
To: intel-xe
Cc: intel-gfx, Sebastian Andrzej Siewior, Maarten Lankhorst,
Uma Shankar
drm_crtc_vblank_put may take some locks, this should probably
not be the first thing we do after entering the time sensitive
part.
A better place is after programming is completed. Add a flag
to put the vblank after completion.
In the case of drm_vblank_work_schedule, we may not even need
to disable the vblank interrupt any more if it takes its own
reference.
Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
---
drivers/gpu/drm/i915/display/intel_cursor.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c
index 2c5d917fbd7e9..3e84a2078a0a7 100644
--- a/drivers/gpu/drm/i915/display/intel_cursor.c
+++ b/drivers/gpu/drm/i915/display/intel_cursor.c
@@ -816,6 +816,7 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
to_intel_crtc_state(crtc->base.state);
struct intel_crtc_state *new_crtc_state;
struct intel_vblank_evade_ctx evade;
+ bool has_vblank = false;
int ret;
/*
@@ -913,6 +914,8 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
intel_psr_lock(crtc_state);
if (!drm_WARN_ON(display->drm, drm_crtc_vblank_get(&crtc->base))) {
+ has_vblank = true;
+
/*
* TODO: maybe check if we're still in PSR
* and skip the vblank evasion entirely?
@@ -922,8 +925,6 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
local_irq_disable();
intel_vblank_evade(&evade);
-
- drm_crtc_vblank_put(&crtc->base);
} else {
local_irq_disable();
}
@@ -939,6 +940,9 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
intel_psr_unlock(crtc_state);
+ if (has_vblank)
+ drm_crtc_vblank_put(&crtc->base);
+
if (old_plane_state->ggtt_vma != new_plane_state->ggtt_vma) {
drm_vblank_work_init(&old_plane_state->unpin_work, &crtc->base,
intel_cursor_unpin_work);
--
2.51.0
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 06/11] drm/i915/display: Remove locking from intel_vblank_evade critical section
2025-12-12 13:02 [PATCH 00/11] drm/i915/display: All patches to make PREEMPT_RT work on xe Maarten Lankhorst
` (4 preceding siblings ...)
2025-12-12 13:02 ` [PATCH 05/11] drm/i915/display: Move vblank put until after critical section Maarten Lankhorst
@ 2025-12-12 13:02 ` Maarten Lankhorst
2025-12-12 13:02 ` [PATCH 07/11] drm/i915/display: Handle vlv dsi workaround in scanline_in_safe_range too Maarten Lankhorst
` (8 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Maarten Lankhorst @ 2025-12-12 13:02 UTC (permalink / raw)
To: intel-xe; +Cc: intel-gfx, Sebastian Andrzej Siewior, Maarten Lankhorst
finish_wait() may take a lock, which means that it can take any amount
of time. On PREEMPT-RT we should not be taking any lock after disabling
preemption, so ensure that the completion is done before disabling
interrupts.
This also has the benefit of making vblank evasion more deterministic,
by performing the final vblank check after all locking is done.
Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
---
drivers/gpu/drm/i915/display/intel_vblank.c | 25 ++++++++-------------
1 file changed, 9 insertions(+), 16 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
index 2b106ffa3f5f5..f72da4099119c 100644
--- a/drivers/gpu/drm/i915/display/intel_vblank.c
+++ b/drivers/gpu/drm/i915/display/intel_vblank.c
@@ -708,6 +708,13 @@ void intel_vblank_evade_init(const struct intel_crtc_state *old_crtc_state,
evade->min -= vblank_delay;
}
+static bool scanline_in_safe_range(struct intel_vblank_evade_ctx *evade, int *scanline)
+{
+ *scanline = intel_get_crtc_scanline(evade->crtc);
+
+ return *scanline < evade->min || *scanline > evade->max;
+}
+
/* must be called with vblank interrupt already enabled! */
int intel_vblank_evade(struct intel_vblank_evade_ctx *evade)
{
@@ -715,24 +722,12 @@ int intel_vblank_evade(struct intel_vblank_evade_ctx *evade)
struct intel_display *display = to_intel_display(crtc);
long timeout = msecs_to_jiffies_timeout(1);
wait_queue_head_t *wq = drm_crtc_vblank_waitqueue(&crtc->base);
- DEFINE_WAIT(wait);
int scanline;
if (evade->min <= 0 || evade->max <= 0)
return 0;
- for (;;) {
- /*
- * prepare_to_wait() has a memory barrier, which guarantees
- * other CPUs can see the task state update by the time we
- * read the scanline.
- */
- prepare_to_wait(wq, &wait, TASK_UNINTERRUPTIBLE);
-
- scanline = intel_get_crtc_scanline(crtc);
- if (scanline < evade->min || scanline > evade->max)
- break;
-
+ while (!scanline_in_safe_range(evade, &scanline)) {
if (!timeout) {
drm_dbg_kms(display->drm,
"Potential atomic update failure on pipe %c\n",
@@ -742,13 +737,11 @@ int intel_vblank_evade(struct intel_vblank_evade_ctx *evade)
local_irq_enable();
- timeout = schedule_timeout(timeout);
+ timeout = wait_event_timeout(*wq, scanline_in_safe_range(evade, &scanline), timeout);
local_irq_disable();
}
- finish_wait(wq, &wait);
-
/*
* On VLV/CHV DSI the scanline counter would appear to
* increment approx. 1/3 of a scanline before start of vblank.
--
2.51.0
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 07/11] drm/i915/display: Handle vlv dsi workaround in scanline_in_safe_range too
2025-12-12 13:02 [PATCH 00/11] drm/i915/display: All patches to make PREEMPT_RT work on xe Maarten Lankhorst
` (5 preceding siblings ...)
2025-12-12 13:02 ` [PATCH 06/11] drm/i915/display: Remove locking from intel_vblank_evade " Maarten Lankhorst
@ 2025-12-12 13:02 ` Maarten Lankhorst
2025-12-12 13:02 ` [PATCH 08/11] drm/i915/display: Make icl_dsi_frame_update use _fw too Maarten Lankhorst
` (7 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Maarten Lankhorst @ 2025-12-12 13:02 UTC (permalink / raw)
To: intel-xe; +Cc: intel-gfx, Sebastian Andrzej Siewior, Maarten Lankhorst
Now that we have a macro, might as well handle the VLV dsi workaround
too.
This makes the vblank evasion code slightly more deterministic, by not
looping with interrupts disabled.
Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
---
drivers/gpu/drm/i915/display/intel_vblank.c | 36 ++++++++++-----------
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
index f72da4099119c..0261baed14615 100644
--- a/drivers/gpu/drm/i915/display/intel_vblank.c
+++ b/drivers/gpu/drm/i915/display/intel_vblank.c
@@ -712,6 +712,24 @@ static bool scanline_in_safe_range(struct intel_vblank_evade_ctx *evade, int *sc
{
*scanline = intel_get_crtc_scanline(evade->crtc);
+ /*
+ * On VLV/CHV DSI the scanline counter would appear to
+ * increment approx. 1/3 of a scanline before start of vblank.
+ * The registers still get latched at start of vblank however.
+ * This means we must not write any registers on the first
+ * line of vblank (since not the whole line is actually in
+ * vblank). And unfortunately we can't use the interrupt to
+ * wait here since it will fire too soon. We could use the
+ * frame start interrupt instead since it will fire after the
+ * critical scanline, but that would require more changes
+ * in the interrupt code. So for now we'll just do the nasty
+ * thing and poll for the bad scanline to pass us by.
+ *
+ * FIXME figure out if BXT+ DSI suffers from this as well
+ */
+ if (evade->need_vlv_dsi_wa && *scanline == evade->vblank_start)
+ return false;
+
return *scanline < evade->min || *scanline > evade->max;
}
@@ -742,24 +760,6 @@ int intel_vblank_evade(struct intel_vblank_evade_ctx *evade)
local_irq_disable();
}
- /*
- * On VLV/CHV DSI the scanline counter would appear to
- * increment approx. 1/3 of a scanline before start of vblank.
- * The registers still get latched at start of vblank however.
- * This means we must not write any registers on the first
- * line of vblank (since not the whole line is actually in
- * vblank). And unfortunately we can't use the interrupt to
- * wait here since it will fire too soon. We could use the
- * frame start interrupt instead since it will fire after the
- * critical scanline, but that would require more changes
- * in the interrupt code. So for now we'll just do the nasty
- * thing and poll for the bad scanline to pass us by.
- *
- * FIXME figure out if BXT+ DSI suffers from this as well
- */
- while (evade->need_vlv_dsi_wa && scanline == evade->vblank_start)
- scanline = intel_get_crtc_scanline(crtc);
-
return scanline;
}
--
2.51.0
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 08/11] drm/i915/display: Make icl_dsi_frame_update use _fw too
2025-12-12 13:02 [PATCH 00/11] drm/i915/display: All patches to make PREEMPT_RT work on xe Maarten Lankhorst
` (6 preceding siblings ...)
2025-12-12 13:02 ` [PATCH 07/11] drm/i915/display: Handle vlv dsi workaround in scanline_in_safe_range too Maarten Lankhorst
@ 2025-12-12 13:02 ` Maarten Lankhorst
2025-12-12 13:02 ` [PATCH 09/11] drm/i915/display: Enable interrupts earlier on PREEMPT_RT Maarten Lankhorst
` (6 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Maarten Lankhorst @ 2025-12-12 13:02 UTC (permalink / raw)
To: intel-xe; +Cc: intel-gfx, Sebastian Andrzej Siewior, Maarten Lankhorst
Don't use the dmc lock inside the vblank critical section,
not even as last call.
Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
---
drivers/gpu/drm/i915/display/icl_dsi.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index dac781f546617..adcd74f855f41 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -243,8 +243,8 @@ void icl_dsi_frame_update(struct intel_crtc_state *crtc_state)
else
return;
- intel_de_rmw(display, DSI_CMD_FRMCTL(port), 0,
- DSI_FRAME_UPDATE_REQUEST);
+ intel_de_rmw_fw(display, DSI_CMD_FRMCTL(port), 0,
+ DSI_FRAME_UPDATE_REQUEST);
}
static void dsi_program_swing_and_deemphasis(struct intel_encoder *encoder)
--
2.51.0
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 09/11] drm/i915/display: Enable interrupts earlier on PREEMPT_RT
2025-12-12 13:02 [PATCH 00/11] drm/i915/display: All patches to make PREEMPT_RT work on xe Maarten Lankhorst
` (7 preceding siblings ...)
2025-12-12 13:02 ` [PATCH 08/11] drm/i915/display: Make icl_dsi_frame_update use _fw too Maarten Lankhorst
@ 2025-12-12 13:02 ` Maarten Lankhorst
2025-12-12 13:02 ` [PATCH 10/11] drm/i915: Use preempt_disable/enable_rt() where recommended Maarten Lankhorst
` (5 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Maarten Lankhorst @ 2025-12-12 13:02 UTC (permalink / raw)
To: intel-xe; +Cc: intel-gfx, Sebastian Andrzej Siewior, Maarten Lankhorst
The last part of the vblank evasion is about updating bookkeeping,
not programming hardware registers.
The interrupts cannot stay disabled here on PREEMPT_RT since the
spinlocks get converted to mutexes.
There's still a small race in VRR that needs to be addressed, and
in the other worst case there is a delay of a vblank completion if
the vblank is fired and we schedule on the next vblank, this needs
to be addressed separately.
Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
---
drivers/gpu/drm/i915/display/intel_crtc.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c
index 778ebc5095c38..93e58c12ac994 100644
--- a/drivers/gpu/drm/i915/display/intel_crtc.c
+++ b/drivers/gpu/drm/i915/display/intel_crtc.c
@@ -703,6 +703,14 @@ void intel_pipe_update_end(struct intel_atomic_state *state,
intel_crtc_has_type(new_crtc_state, INTEL_OUTPUT_DSI))
icl_dsi_frame_update(new_crtc_state);
+#if IS_ENABLED(CONFIG_PREEMPT_RT)
+ /*
+ * Timing sensitive register writing completed, non-deterministic
+ * locking from here on out.
+ */
+ local_irq_enable();
+#endif
+
/* We're still in the vblank-evade critical section, this can't race.
* Would be slightly nice to just grab the vblank count and arm the
* event outside of the critical section - the spinlock might spin for a
@@ -750,7 +758,9 @@ void intel_pipe_update_end(struct intel_atomic_state *state,
if (!state->base.legacy_cursor_update)
intel_vrr_send_push(NULL, new_crtc_state);
+#if !IS_ENABLED(CONFIG_PREEMPT_RT)
local_irq_enable();
+#endif
if (intel_parent_vgpu_active(display))
goto out;
--
2.51.0
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 10/11] drm/i915: Use preempt_disable/enable_rt() where recommended
2025-12-12 13:02 [PATCH 00/11] drm/i915/display: All patches to make PREEMPT_RT work on xe Maarten Lankhorst
` (8 preceding siblings ...)
2025-12-12 13:02 ` [PATCH 09/11] drm/i915/display: Enable interrupts earlier on PREEMPT_RT Maarten Lankhorst
@ 2025-12-12 13:02 ` Maarten Lankhorst
2025-12-12 13:02 ` [CI-ONLY PATCH 11/11] PREEMPT_RT injection Maarten Lankhorst
` (4 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Maarten Lankhorst @ 2025-12-12 13:02 UTC (permalink / raw)
To: intel-xe
Cc: intel-gfx, Sebastian Andrzej Siewior, Mike Galbraith,
Mario Kleiner, Thomas Gleixner, Maarten Lankhorst
From: Mike Galbraith <umgwanakikbuti@gmail.com>
Mario Kleiner suggest in commit
ad3543ede630f ("drm/intel: Push get_scanout_position() timestamping into kms driver.")
a spots where preemption should be disabled on PREEMPT_RT. The
difference is that on PREEMPT_RT the intel_uncore::lock disables neither
preemption nor interrupts and so region remains preemptible.
The area covers only register reads and writes. The part that worries me
is:
- __intel_get_crtc_scanline() the worst case is 100us if no match is
found.
- intel_crtc_scanlines_since_frame_timestamp() not sure how long this
may take in the worst case.
It was in the RT queue for a while and nobody complained.
Disable preemption on PREEPMPT_RT during timestamping.
[bigeasy: patch description.]
Cc: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
---
drivers/gpu/drm/i915/display/intel_vblank.c | 43 ++++++++++++++++-----
1 file changed, 33 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
index 0261baed14615..4d71cfa9d97f1 100644
--- a/drivers/gpu/drm/i915/display/intel_vblank.c
+++ b/drivers/gpu/drm/i915/display/intel_vblank.c
@@ -317,6 +317,20 @@ static void intel_vblank_section_exit(struct intel_display *display)
struct drm_i915_private *i915 = to_i915(display->drm);
spin_unlock(&i915->uncore.lock);
}
+
+static void intel_vblank_section_enter_irqf(struct intel_display *display, unsigned long *flags)
+ __acquires(i915->uncore.lock)
+{
+ struct drm_i915_private *i915 = to_i915(display->drm);
+ spin_lock_irqsave(&i915->uncore.lock, *flags);
+}
+
+static void intel_vblank_section_exit_irqf(struct intel_display *display, unsigned long flags)
+ __releases(i915->uncore.lock)
+{
+ struct drm_i915_private *i915 = to_i915(display->drm);
+ spin_unlock_irqrestore(&i915->uncore.lock, flags);
+}
#else
static void intel_vblank_section_enter(struct intel_display *display)
{
@@ -325,6 +339,17 @@ static void intel_vblank_section_enter(struct intel_display *display)
static void intel_vblank_section_exit(struct intel_display *display)
{
}
+
+static void intel_vblank_section_enter_irqf(struct intel_display *display, unsigned long *flags)
+{
+ *flags = 0;
+}
+
+static void intel_vblank_section_exit_irqf(struct intel_display *display, unsigned long flags)
+{
+ if (flags)
+ return;
+}
#endif
static bool i915_get_crtc_scanoutpos(struct drm_crtc *_crtc,
@@ -361,10 +386,10 @@ static bool i915_get_crtc_scanoutpos(struct drm_crtc *_crtc,
* timing critical raw register reads, potentially with
* preemption disabled, so the following code must not block.
*/
- local_irq_save(irqflags);
- intel_vblank_section_enter(display);
+ intel_vblank_section_enter_irqf(display, &irqflags);
- /* preempt_disable_rt() should go right here in PREEMPT_RT patchset. */
+ if (IS_ENABLED(CONFIG_PREEMPT_RT))
+ preempt_disable();
/* Get optional system timestamp before query. */
if (stime)
@@ -428,10 +453,10 @@ static bool i915_get_crtc_scanoutpos(struct drm_crtc *_crtc,
if (etime)
*etime = ktime_get();
- /* preempt_enable_rt() should go right here in PREEMPT_RT patchset. */
+ if (IS_ENABLED(CONFIG_PREEMPT_RT))
+ preempt_enable();
- intel_vblank_section_exit(display);
- local_irq_restore(irqflags);
+ intel_vblank_section_exit_irqf(display, irqflags);
/*
* While in vblank, position will be negative
@@ -469,13 +494,11 @@ int intel_get_crtc_scanline(struct intel_crtc *crtc)
unsigned long irqflags;
int position;
- local_irq_save(irqflags);
- intel_vblank_section_enter(display);
+ intel_vblank_section_enter_irqf(display, &irqflags);
position = __intel_get_crtc_scanline(crtc);
- intel_vblank_section_exit(display);
- local_irq_restore(irqflags);
+ intel_vblank_section_exit_irqf(display, irqflags);
return position;
}
--
2.51.0
^ permalink raw reply related [flat|nested] 16+ messages in thread* [CI-ONLY PATCH 11/11] PREEMPT_RT injection
2025-12-12 13:02 [PATCH 00/11] drm/i915/display: All patches to make PREEMPT_RT work on xe Maarten Lankhorst
` (9 preceding siblings ...)
2025-12-12 13:02 ` [PATCH 10/11] drm/i915: Use preempt_disable/enable_rt() where recommended Maarten Lankhorst
@ 2025-12-12 13:02 ` Maarten Lankhorst
2025-12-12 13:11 ` ✗ CI.checkpatch: warning for drm/i915/display: All patches to make PREEMPT_RT work on xe Patchwork
` (3 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Maarten Lankhorst @ 2025-12-12 13:02 UTC (permalink / raw)
To: intel-xe; +Cc: intel-gfx, Sebastian Andrzej Siewior, Maarten Lankhorst
Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
---
drivers/gpu/drm/i915/Kconfig.debug | 15 ---------------
drivers/gpu/drm/xe/Kconfig.debug | 5 +++++
kernel/Kconfig.preempt | 4 ++--
3 files changed, 7 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/i915/Kconfig.debug b/drivers/gpu/drm/i915/Kconfig.debug
index 3562a02ef7adc..0ab10ff41e38d 100644
--- a/drivers/gpu/drm/i915/Kconfig.debug
+++ b/drivers/gpu/drm/i915/Kconfig.debug
@@ -233,21 +233,6 @@ config DRM_I915_LOW_LEVEL_TRACEPOINTS
If in doubt, say "N".
-config DRM_I915_DEBUG_VBLANK_EVADE
- bool "Enable extra debug warnings for vblank evasion"
- depends on DRM_I915
- default n
- help
- Choose this option to turn on extra debug warnings for the
- vblank evade mechanism. This gives a warning every time the
- the deadline allotted for the vblank evade critical section
- is exceeded, even if there isn't an actual risk of missing
- the vblank.
-
- Recommended for driver developers only.
-
- If in doubt, say "N".
-
config DRM_I915_DEBUG_RUNTIME_PM
bool "Enable extra state checking for runtime PM"
depends on DRM_I915
diff --git a/drivers/gpu/drm/xe/Kconfig.debug b/drivers/gpu/drm/xe/Kconfig.debug
index 01227c77f6d70..1d5f11c6e88f3 100644
--- a/drivers/gpu/drm/xe/Kconfig.debug
+++ b/drivers/gpu/drm/xe/Kconfig.debug
@@ -30,6 +30,11 @@ config DRM_XE_DEBUG
If in doubt, say "N".
+config DRM_I915_DEBUG_VBLANK_EVADE
+ def_bool y
+ depends on DRM_XE
+
+
config DRM_XE_DEBUG_VM
bool "Enable extra VM debugging info"
default n
diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt
index da326800c1c9b..68a6d42c55abe 100644
--- a/kernel/Kconfig.preempt
+++ b/kernel/Kconfig.preempt
@@ -87,9 +87,9 @@ config PREEMPT_LAZY
endchoice
config PREEMPT_RT
- bool "Fully Preemptible Kernel (Real-Time)"
- depends on EXPERT && ARCH_SUPPORTS_RT && !COMPILE_TEST
+ def_bool y
select PREEMPTION
+ depends on ARCH_SUPPORTS_RT
help
This option turns the kernel into a real-time kernel by replacing
various locking primitives (spinlocks, rwlocks, etc.) with
--
2.51.0
^ permalink raw reply related [flat|nested] 16+ messages in thread* ✗ CI.checkpatch: warning for drm/i915/display: All patches to make PREEMPT_RT work on xe.
2025-12-12 13:02 [PATCH 00/11] drm/i915/display: All patches to make PREEMPT_RT work on xe Maarten Lankhorst
` (10 preceding siblings ...)
2025-12-12 13:02 ` [CI-ONLY PATCH 11/11] PREEMPT_RT injection Maarten Lankhorst
@ 2025-12-12 13:11 ` Patchwork
2025-12-12 13:12 ` ✓ CI.KUnit: success " Patchwork
` (2 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2025-12-12 13:11 UTC (permalink / raw)
To: Maarten Lankhorst; +Cc: intel-xe
== Series Details ==
Series: drm/i915/display: All patches to make PREEMPT_RT work on xe.
URL : https://patchwork.freedesktop.org/series/158855/
State : warning
== Summary ==
+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
8f50e69d0ce3656564bbdf8b3e213d61470d463f
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 58e1e397bf8f6a093ef9b201f10fe9ecd31eba08
Author: Maarten Lankhorst <dev@lankhorst.se>
Date: Fri Dec 12 14:02:17 2025 +0100
PREEMPT_RT injection
Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
+ /mt/dim checkpatch 7b8d2fe4514c3edbca3326b592b2fb0bd530527d drm-intel
731c1a373f8a drm/i915/display: Fix intel_lpe_audio_irq_handler for PREEMPT-RT
-:11: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#11:
Because intel_lpe_audio_irq_handler() may be called in threaded IRQ context,
total: 0 errors, 1 warnings, 0 checks, 8 lines checked
405dfed4c6c2 drm/i915/display: Make get_vblank_counter use intel_de_read_fw()
-:8: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#8:
<3> BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48
total: 0 errors, 1 warnings, 0 checks, 8 lines checked
01b54f79ac82 drm/i915/display: Use intel_de_write_fw in intel_pipe_fastset
-:14: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#14:
<3> BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48
-:201: WARNING:MISSING_FIXES_TAG: The commit message has 'Call Trace:', perhaps it also needs a 'Fixes:' tag?
total: 0 errors, 2 warnings, 0 checks, 110 lines checked
af9a16520fb5 drm/i915/display: Make set_pipeconf use the fw variants
-:11: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#11:
| BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48
-:46: WARNING:BAD_REPORTED_BY_LINK: Reported-by: should be immediately followed by Closes: with a URL to the report
#46:
Reported-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
-:76: WARNING:MISSING_FIXES_TAG: The commit message has 'Call Trace:', perhaps it also needs a 'Fixes:' tag?
total: 0 errors, 3 warnings, 0 checks, 22 lines checked
cc43a06deae6 drm/i915/display: Move vblank put until after critical section
8b7de060d96d drm/i915/display: Remove locking from intel_vblank_evade critical section
-:66: WARNING:LONG_LINE: line length of 101 exceeds 100 columns
#66: FILE: drivers/gpu/drm/i915/display/intel_vblank.c:740:
+ timeout = wait_event_timeout(*wq, scanline_in_safe_range(evade, &scanline), timeout);
total: 0 errors, 1 warnings, 0 checks, 52 lines checked
e95fbdee4a67 drm/i915/display: Handle vlv dsi workaround in scanline_in_safe_range too
7a1ed4eda57d drm/i915/display: Make icl_dsi_frame_update use _fw too
f9831599a4d2 drm/i915/display: Enable interrupts earlier on PREEMPT_RT
4ec07e874f8a drm/i915: Use preempt_disable/enable_rt() where recommended
-:7: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#7:
ad3543ede630f ("drm/intel: Push get_scanout_position() timestamping into kms driver.")
-:45: WARNING:LINE_SPACING: Missing a blank line after declarations
#45: FILE: drivers/gpu/drm/i915/display/intel_vblank.c:325:
+ struct drm_i915_private *i915 = to_i915(display->drm);
+ spin_lock_irqsave(&i915->uncore.lock, *flags);
-:52: WARNING:LINE_SPACING: Missing a blank line after declarations
#52: FILE: drivers/gpu/drm/i915/display/intel_vblank.c:332:
+ struct drm_i915_private *i915 = to_i915(display->drm);
+ spin_unlock_irqrestore(&i915->uncore.lock, flags);
total: 0 errors, 3 warnings, 0 checks, 78 lines checked
58e1e397bf8f PREEMPT_RT injection
-:7: WARNING:COMMIT_MESSAGE: Missing commit description - Add an appropriate one
total: 0 errors, 1 warnings, 0 checks, 43 lines checked
^ permalink raw reply [flat|nested] 16+ messages in thread* ✓ CI.KUnit: success for drm/i915/display: All patches to make PREEMPT_RT work on xe.
2025-12-12 13:02 [PATCH 00/11] drm/i915/display: All patches to make PREEMPT_RT work on xe Maarten Lankhorst
` (11 preceding siblings ...)
2025-12-12 13:11 ` ✗ CI.checkpatch: warning for drm/i915/display: All patches to make PREEMPT_RT work on xe Patchwork
@ 2025-12-12 13:12 ` Patchwork
2025-12-12 13:26 ` ✗ CI.checksparse: warning " Patchwork
2025-12-12 14:15 ` ✗ Xe.CI.BAT: failure " Patchwork
14 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2025-12-12 13:12 UTC (permalink / raw)
To: Maarten Lankhorst; +Cc: intel-xe
== Series Details ==
Series: drm/i915/display: All patches to make PREEMPT_RT work on xe.
URL : https://patchwork.freedesktop.org/series/158855/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[13:11:02] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[13:11:06] 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
[13:11:36] Starting KUnit Kernel (1/1)...
[13:11:36] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[13:11:37] ================== guc_buf (11 subtests) ===================
[13:11:37] [PASSED] test_smallest
[13:11:37] [PASSED] test_largest
[13:11:37] [PASSED] test_granular
[13:11:37] [PASSED] test_unique
[13:11:37] [PASSED] test_overlap
[13:11:37] [PASSED] test_reusable
[13:11:37] [PASSED] test_too_big
[13:11:37] [PASSED] test_flush
[13:11:37] [PASSED] test_lookup
[13:11:37] [PASSED] test_data
[13:11:37] [PASSED] test_class
[13:11:37] ===================== [PASSED] guc_buf =====================
[13:11:37] =================== guc_dbm (7 subtests) ===================
[13:11:37] [PASSED] test_empty
[13:11:37] [PASSED] test_default
[13:11:37] ======================== test_size ========================
[13:11:37] [PASSED] 4
[13:11:37] [PASSED] 8
[13:11:37] [PASSED] 32
[13:11:37] [PASSED] 256
[13:11:37] ==================== [PASSED] test_size ====================
[13:11:37] ======================= test_reuse ========================
[13:11:37] [PASSED] 4
[13:11:37] [PASSED] 8
[13:11:37] [PASSED] 32
[13:11:37] [PASSED] 256
[13:11:37] =================== [PASSED] test_reuse ====================
[13:11:37] =================== test_range_overlap ====================
[13:11:37] [PASSED] 4
[13:11:37] [PASSED] 8
[13:11:37] [PASSED] 32
[13:11:37] [PASSED] 256
[13:11:37] =============== [PASSED] test_range_overlap ================
[13:11:37] =================== test_range_compact ====================
[13:11:37] [PASSED] 4
[13:11:37] [PASSED] 8
[13:11:37] [PASSED] 32
[13:11:37] [PASSED] 256
[13:11:37] =============== [PASSED] test_range_compact ================
[13:11:37] ==================== test_range_spare =====================
[13:11:37] [PASSED] 4
[13:11:37] [PASSED] 8
[13:11:37] [PASSED] 32
[13:11:37] [PASSED] 256
[13:11:37] ================ [PASSED] test_range_spare =================
[13:11:37] ===================== [PASSED] guc_dbm =====================
[13:11:37] =================== guc_idm (6 subtests) ===================
[13:11:37] [PASSED] bad_init
[13:11:37] [PASSED] no_init
[13:11:37] [PASSED] init_fini
[13:11:37] [PASSED] check_used
[13:11:37] [PASSED] check_quota
[13:11:37] [PASSED] check_all
[13:11:37] ===================== [PASSED] guc_idm =====================
[13:11:37] ================== no_relay (3 subtests) ===================
[13:11:37] [PASSED] xe_drops_guc2pf_if_not_ready
[13:11:37] [PASSED] xe_drops_guc2vf_if_not_ready
[13:11:37] [PASSED] xe_rejects_send_if_not_ready
[13:11:37] ==================== [PASSED] no_relay =====================
[13:11:37] ================== pf_relay (14 subtests) ==================
[13:11:37] [PASSED] pf_rejects_guc2pf_too_short
[13:11:37] [PASSED] pf_rejects_guc2pf_too_long
[13:11:37] [PASSED] pf_rejects_guc2pf_no_payload
[13:11:37] [PASSED] pf_fails_no_payload
[13:11:37] [PASSED] pf_fails_bad_origin
[13:11:37] [PASSED] pf_fails_bad_type
[13:11:37] [PASSED] pf_txn_reports_error
[13:11:37] [PASSED] pf_txn_sends_pf2guc
[13:11:37] [PASSED] pf_sends_pf2guc
[13:11:37] [SKIPPED] pf_loopback_nop
[13:11:37] [SKIPPED] pf_loopback_echo
[13:11:37] [SKIPPED] pf_loopback_fail
[13:11:37] [SKIPPED] pf_loopback_busy
[13:11:37] [SKIPPED] pf_loopback_retry
[13:11:37] ==================== [PASSED] pf_relay =====================
[13:11:37] ================== vf_relay (3 subtests) ===================
[13:11:37] [PASSED] vf_rejects_guc2vf_too_short
[13:11:37] [PASSED] vf_rejects_guc2vf_too_long
[13:11:37] [PASSED] vf_rejects_guc2vf_no_payload
[13:11:37] ==================== [PASSED] vf_relay =====================
[13:11:37] ================ pf_gt_config (6 subtests) =================
[13:11:37] [PASSED] fair_contexts_1vf
[13:11:37] [PASSED] fair_doorbells_1vf
[13:11:37] [PASSED] fair_ggtt_1vf
[13:11:37] ====================== fair_contexts ======================
[13:11:37] [PASSED] 1 VF
[13:11:37] [PASSED] 2 VFs
[13:11:37] [PASSED] 3 VFs
[13:11:37] [PASSED] 4 VFs
[13:11:37] [PASSED] 5 VFs
[13:11:37] [PASSED] 6 VFs
[13:11:37] [PASSED] 7 VFs
[13:11:37] [PASSED] 8 VFs
[13:11:37] [PASSED] 9 VFs
[13:11:37] [PASSED] 10 VFs
[13:11:37] [PASSED] 11 VFs
[13:11:37] [PASSED] 12 VFs
[13:11:37] [PASSED] 13 VFs
[13:11:37] [PASSED] 14 VFs
[13:11:37] [PASSED] 15 VFs
[13:11:37] [PASSED] 16 VFs
[13:11:37] [PASSED] 17 VFs
[13:11:37] [PASSED] 18 VFs
[13:11:37] [PASSED] 19 VFs
[13:11:37] [PASSED] 20 VFs
[13:11:37] [PASSED] 21 VFs
[13:11:37] [PASSED] 22 VFs
[13:11:37] [PASSED] 23 VFs
[13:11:37] [PASSED] 24 VFs
[13:11:37] [PASSED] 25 VFs
[13:11:37] [PASSED] 26 VFs
[13:11:37] [PASSED] 27 VFs
[13:11:37] [PASSED] 28 VFs
[13:11:37] [PASSED] 29 VFs
[13:11:37] [PASSED] 30 VFs
[13:11:37] [PASSED] 31 VFs
[13:11:37] [PASSED] 32 VFs
[13:11:37] [PASSED] 33 VFs
[13:11:37] [PASSED] 34 VFs
[13:11:37] [PASSED] 35 VFs
[13:11:37] [PASSED] 36 VFs
[13:11:37] [PASSED] 37 VFs
[13:11:37] [PASSED] 38 VFs
[13:11:37] [PASSED] 39 VFs
[13:11:37] [PASSED] 40 VFs
[13:11:37] [PASSED] 41 VFs
[13:11:37] [PASSED] 42 VFs
[13:11:37] [PASSED] 43 VFs
[13:11:37] [PASSED] 44 VFs
[13:11:37] [PASSED] 45 VFs
[13:11:37] [PASSED] 46 VFs
[13:11:37] [PASSED] 47 VFs
[13:11:37] [PASSED] 48 VFs
[13:11:37] [PASSED] 49 VFs
[13:11:37] [PASSED] 50 VFs
[13:11:37] [PASSED] 51 VFs
[13:11:37] [PASSED] 52 VFs
[13:11:37] [PASSED] 53 VFs
[13:11:37] [PASSED] 54 VFs
[13:11:37] [PASSED] 55 VFs
[13:11:37] [PASSED] 56 VFs
[13:11:37] [PASSED] 57 VFs
[13:11:37] [PASSED] 58 VFs
[13:11:37] [PASSED] 59 VFs
[13:11:37] [PASSED] 60 VFs
[13:11:37] [PASSED] 61 VFs
[13:11:37] [PASSED] 62 VFs
[13:11:37] [PASSED] 63 VFs
[13:11:37] ================== [PASSED] fair_contexts ==================
[13:11:37] ===================== fair_doorbells ======================
[13:11:37] [PASSED] 1 VF
[13:11:37] [PASSED] 2 VFs
[13:11:37] [PASSED] 3 VFs
[13:11:37] [PASSED] 4 VFs
[13:11:37] [PASSED] 5 VFs
[13:11:37] [PASSED] 6 VFs
[13:11:37] [PASSED] 7 VFs
[13:11:37] [PASSED] 8 VFs
[13:11:37] [PASSED] 9 VFs
[13:11:37] [PASSED] 10 VFs
[13:11:37] [PASSED] 11 VFs
[13:11:37] [PASSED] 12 VFs
[13:11:37] [PASSED] 13 VFs
[13:11:37] [PASSED] 14 VFs
[13:11:37] [PASSED] 15 VFs
[13:11:37] [PASSED] 16 VFs
[13:11:37] [PASSED] 17 VFs
[13:11:37] [PASSED] 18 VFs
[13:11:37] [PASSED] 19 VFs
[13:11:37] [PASSED] 20 VFs
[13:11:37] [PASSED] 21 VFs
[13:11:37] [PASSED] 22 VFs
[13:11:37] [PASSED] 23 VFs
[13:11:37] [PASSED] 24 VFs
[13:11:37] [PASSED] 25 VFs
[13:11:37] [PASSED] 26 VFs
[13:11:37] [PASSED] 27 VFs
[13:11:37] [PASSED] 28 VFs
[13:11:37] [PASSED] 29 VFs
[13:11:37] [PASSED] 30 VFs
[13:11:37] [PASSED] 31 VFs
[13:11:37] [PASSED] 32 VFs
[13:11:37] [PASSED] 33 VFs
[13:11:37] [PASSED] 34 VFs
[13:11:37] [PASSED] 35 VFs
[13:11:37] [PASSED] 36 VFs
[13:11:37] [PASSED] 37 VFs
[13:11:37] [PASSED] 38 VFs
[13:11:37] [PASSED] 39 VFs
[13:11:37] [PASSED] 40 VFs
[13:11:37] [PASSED] 41 VFs
[13:11:37] [PASSED] 42 VFs
[13:11:37] [PASSED] 43 VFs
[13:11:37] [PASSED] 44 VFs
[13:11:37] [PASSED] 45 VFs
[13:11:37] [PASSED] 46 VFs
[13:11:37] [PASSED] 47 VFs
[13:11:37] [PASSED] 48 VFs
[13:11:37] [PASSED] 49 VFs
[13:11:37] [PASSED] 50 VFs
[13:11:37] [PASSED] 51 VFs
[13:11:37] [PASSED] 52 VFs
[13:11:37] [PASSED] 53 VFs
[13:11:37] [PASSED] 54 VFs
[13:11:37] [PASSED] 55 VFs
[13:11:37] [PASSED] 56 VFs
[13:11:37] [PASSED] 57 VFs
[13:11:37] [PASSED] 58 VFs
[13:11:37] [PASSED] 59 VFs
[13:11:37] [PASSED] 60 VFs
[13:11:37] [PASSED] 61 VFs
[13:11:37] [PASSED] 62 VFs
[13:11:37] [PASSED] 63 VFs
[13:11:37] ================= [PASSED] fair_doorbells ==================
[13:11:37] ======================== fair_ggtt ========================
[13:11:37] [PASSED] 1 VF
[13:11:37] [PASSED] 2 VFs
[13:11:37] [PASSED] 3 VFs
[13:11:37] [PASSED] 4 VFs
[13:11:37] [PASSED] 5 VFs
[13:11:37] [PASSED] 6 VFs
[13:11:37] [PASSED] 7 VFs
[13:11:37] [PASSED] 8 VFs
[13:11:37] [PASSED] 9 VFs
[13:11:37] [PASSED] 10 VFs
[13:11:37] [PASSED] 11 VFs
[13:11:37] [PASSED] 12 VFs
[13:11:37] [PASSED] 13 VFs
[13:11:37] [PASSED] 14 VFs
[13:11:37] [PASSED] 15 VFs
[13:11:37] [PASSED] 16 VFs
[13:11:37] [PASSED] 17 VFs
[13:11:37] [PASSED] 18 VFs
[13:11:37] [PASSED] 19 VFs
[13:11:37] [PASSED] 20 VFs
[13:11:37] [PASSED] 21 VFs
[13:11:37] [PASSED] 22 VFs
[13:11:37] [PASSED] 23 VFs
[13:11:37] [PASSED] 24 VFs
[13:11:37] [PASSED] 25 VFs
[13:11:37] [PASSED] 26 VFs
[13:11:37] [PASSED] 27 VFs
[13:11:37] [PASSED] 28 VFs
[13:11:37] [PASSED] 29 VFs
[13:11:37] [PASSED] 30 VFs
[13:11:37] [PASSED] 31 VFs
[13:11:37] [PASSED] 32 VFs
[13:11:37] [PASSED] 33 VFs
[13:11:37] [PASSED] 34 VFs
[13:11:37] [PASSED] 35 VFs
[13:11:37] [PASSED] 36 VFs
[13:11:37] [PASSED] 37 VFs
[13:11:37] [PASSED] 38 VFs
[13:11:37] [PASSED] 39 VFs
[13:11:37] [PASSED] 40 VFs
[13:11:37] [PASSED] 41 VFs
[13:11:37] [PASSED] 42 VFs
[13:11:37] [PASSED] 43 VFs
[13:11:37] [PASSED] 44 VFs
[13:11:37] [PASSED] 45 VFs
[13:11:37] [PASSED] 46 VFs
[13:11:37] [PASSED] 47 VFs
[13:11:37] [PASSED] 48 VFs
[13:11:37] [PASSED] 49 VFs
[13:11:37] [PASSED] 50 VFs
[13:11:37] [PASSED] 51 VFs
[13:11:37] [PASSED] 52 VFs
[13:11:37] [PASSED] 53 VFs
[13:11:37] [PASSED] 54 VFs
[13:11:37] [PASSED] 55 VFs
[13:11:37] [PASSED] 56 VFs
[13:11:37] [PASSED] 57 VFs
[13:11:37] [PASSED] 58 VFs
[13:11:37] [PASSED] 59 VFs
[13:11:37] [PASSED] 60 VFs
[13:11:37] [PASSED] 61 VFs
[13:11:37] [PASSED] 62 VFs
[13:11:37] [PASSED] 63 VFs
[13:11:37] ==================== [PASSED] fair_ggtt ====================
[13:11:37] ================== [PASSED] pf_gt_config ===================
[13:11:37] ===================== lmtt (1 subtest) =====================
[13:11:37] ======================== test_ops =========================
[13:11:37] [PASSED] 2-level
[13:11:37] [PASSED] multi-level
[13:11:37] ==================== [PASSED] test_ops =====================
[13:11:37] ====================== [PASSED] lmtt =======================
[13:11:37] ================= pf_service (11 subtests) =================
[13:11:37] [PASSED] pf_negotiate_any
[13:11:37] [PASSED] pf_negotiate_base_match
[13:11:37] [PASSED] pf_negotiate_base_newer
[13:11:37] [PASSED] pf_negotiate_base_next
[13:11:37] [SKIPPED] pf_negotiate_base_older
[13:11:37] [PASSED] pf_negotiate_base_prev
[13:11:37] [PASSED] pf_negotiate_latest_match
[13:11:37] [PASSED] pf_negotiate_latest_newer
[13:11:37] [PASSED] pf_negotiate_latest_next
[13:11:37] [SKIPPED] pf_negotiate_latest_older
[13:11:37] [SKIPPED] pf_negotiate_latest_prev
[13:11:37] =================== [PASSED] pf_service ====================
[13:11:37] ================= xe_guc_g2g (2 subtests) ==================
[13:11:37] ============== xe_live_guc_g2g_kunit_default ==============
[13:11:37] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[13:11:37] ============== xe_live_guc_g2g_kunit_allmem ===============
[13:11:37] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[13:11:37] =================== [SKIPPED] xe_guc_g2g ===================
[13:11:37] =================== xe_mocs (2 subtests) ===================
[13:11:37] ================ xe_live_mocs_kernel_kunit ================
[13:11:37] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[13:11:37] ================ xe_live_mocs_reset_kunit =================
[13:11:37] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[13:11:37] ==================== [SKIPPED] xe_mocs =====================
[13:11:37] ================= xe_migrate (2 subtests) ==================
[13:11:37] ================= xe_migrate_sanity_kunit =================
[13:11:37] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[13:11:37] ================== xe_validate_ccs_kunit ==================
[13:11:37] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[13:11:37] =================== [SKIPPED] xe_migrate ===================
[13:11:37] ================== xe_dma_buf (1 subtest) ==================
[13:11:37] ==================== xe_dma_buf_kunit =====================
[13:11:37] ================ [SKIPPED] xe_dma_buf_kunit ================
[13:11:37] =================== [SKIPPED] xe_dma_buf ===================
[13:11:37] ================= xe_bo_shrink (1 subtest) =================
[13:11:37] =================== xe_bo_shrink_kunit ====================
[13:11:37] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[13:11:37] ================== [SKIPPED] xe_bo_shrink ==================
[13:11:37] ==================== xe_bo (2 subtests) ====================
[13:11:37] ================== xe_ccs_migrate_kunit ===================
[13:11:37] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[13:11:37] ==================== xe_bo_evict_kunit ====================
[13:11:37] =============== [SKIPPED] xe_bo_evict_kunit ================
[13:11:37] ===================== [SKIPPED] xe_bo ======================
[13:11:37] ==================== args (11 subtests) ====================
[13:11:37] [PASSED] count_args_test
[13:11:37] [PASSED] call_args_example
[13:11:37] [PASSED] call_args_test
[13:11:37] [PASSED] drop_first_arg_example
[13:11:37] [PASSED] drop_first_arg_test
[13:11:37] [PASSED] first_arg_example
[13:11:37] [PASSED] first_arg_test
[13:11:37] [PASSED] last_arg_example
[13:11:37] [PASSED] last_arg_test
[13:11:37] [PASSED] pick_arg_example
[13:11:37] [PASSED] sep_comma_example
[13:11:37] ====================== [PASSED] args =======================
[13:11:37] =================== xe_pci (3 subtests) ====================
[13:11:37] ==================== check_graphics_ip ====================
[13:11:37] [PASSED] 12.00 Xe_LP
[13:11:37] [PASSED] 12.10 Xe_LP+
[13:11:37] [PASSED] 12.55 Xe_HPG
[13:11:37] [PASSED] 12.60 Xe_HPC
[13:11:37] [PASSED] 12.70 Xe_LPG
[13:11:37] [PASSED] 12.71 Xe_LPG
[13:11:37] [PASSED] 12.74 Xe_LPG+
[13:11:37] [PASSED] 20.01 Xe2_HPG
[13:11:37] [PASSED] 20.02 Xe2_HPG
[13:11:37] [PASSED] 20.04 Xe2_LPG
[13:11:37] [PASSED] 30.00 Xe3_LPG
[13:11:37] [PASSED] 30.01 Xe3_LPG
[13:11:37] [PASSED] 30.03 Xe3_LPG
[13:11:37] [PASSED] 30.04 Xe3_LPG
[13:11:37] [PASSED] 30.05 Xe3_LPG
[13:11:37] [PASSED] 35.11 Xe3p_XPC
[13:11:37] ================ [PASSED] check_graphics_ip ================
[13:11:37] ===================== check_media_ip ======================
[13:11:37] [PASSED] 12.00 Xe_M
[13:11:37] [PASSED] 12.55 Xe_HPM
[13:11:37] [PASSED] 13.00 Xe_LPM+
[13:11:37] [PASSED] 13.01 Xe2_HPM
[13:11:37] [PASSED] 20.00 Xe2_LPM
[13:11:37] [PASSED] 30.00 Xe3_LPM
[13:11:37] [PASSED] 30.02 Xe3_LPM
[13:11:37] [PASSED] 35.00 Xe3p_LPM
[13:11:37] [PASSED] 35.03 Xe3p_HPM
[13:11:37] ================= [PASSED] check_media_ip ==================
[13:11:37] =================== check_platform_desc ===================
[13:11:37] [PASSED] 0x9A60 (TIGERLAKE)
[13:11:37] [PASSED] 0x9A68 (TIGERLAKE)
[13:11:37] [PASSED] 0x9A70 (TIGERLAKE)
[13:11:37] [PASSED] 0x9A40 (TIGERLAKE)
[13:11:37] [PASSED] 0x9A49 (TIGERLAKE)
[13:11:37] [PASSED] 0x9A59 (TIGERLAKE)
[13:11:37] [PASSED] 0x9A78 (TIGERLAKE)
[13:11:37] [PASSED] 0x9AC0 (TIGERLAKE)
[13:11:37] [PASSED] 0x9AC9 (TIGERLAKE)
[13:11:37] [PASSED] 0x9AD9 (TIGERLAKE)
[13:11:37] [PASSED] 0x9AF8 (TIGERLAKE)
[13:11:37] [PASSED] 0x4C80 (ROCKETLAKE)
[13:11:37] [PASSED] 0x4C8A (ROCKETLAKE)
[13:11:37] [PASSED] 0x4C8B (ROCKETLAKE)
[13:11:37] [PASSED] 0x4C8C (ROCKETLAKE)
[13:11:37] [PASSED] 0x4C90 (ROCKETLAKE)
[13:11:37] [PASSED] 0x4C9A (ROCKETLAKE)
[13:11:37] [PASSED] 0x4680 (ALDERLAKE_S)
[13:11:37] [PASSED] 0x4682 (ALDERLAKE_S)
[13:11:37] [PASSED] 0x4688 (ALDERLAKE_S)
[13:11:37] [PASSED] 0x468A (ALDERLAKE_S)
[13:11:37] [PASSED] 0x468B (ALDERLAKE_S)
[13:11:37] [PASSED] 0x4690 (ALDERLAKE_S)
[13:11:37] [PASSED] 0x4692 (ALDERLAKE_S)
[13:11:37] [PASSED] 0x4693 (ALDERLAKE_S)
[13:11:37] [PASSED] 0x46A0 (ALDERLAKE_P)
[13:11:37] [PASSED] 0x46A1 (ALDERLAKE_P)
[13:11:37] [PASSED] 0x46A2 (ALDERLAKE_P)
[13:11:37] [PASSED] 0x46A3 (ALDERLAKE_P)
[13:11:37] [PASSED] 0x46A6 (ALDERLAKE_P)
[13:11:37] [PASSED] 0x46A8 (ALDERLAKE_P)
[13:11:37] [PASSED] 0x46AA (ALDERLAKE_P)
[13:11:37] [PASSED] 0x462A (ALDERLAKE_P)
[13:11:37] [PASSED] 0x4626 (ALDERLAKE_P)
[13:11:37] [PASSED] 0x4628 (ALDERLAKE_P)
[13:11:37] [PASSED] 0x46B0 (ALDERLAKE_P)
stty: 'standard input': Inappropriate ioctl for device
[13:11:37] [PASSED] 0x46B1 (ALDERLAKE_P)
[13:11:37] [PASSED] 0x46B2 (ALDERLAKE_P)
[13:11:37] [PASSED] 0x46B3 (ALDERLAKE_P)
[13:11:37] [PASSED] 0x46C0 (ALDERLAKE_P)
[13:11:37] [PASSED] 0x46C1 (ALDERLAKE_P)
[13:11:37] [PASSED] 0x46C2 (ALDERLAKE_P)
[13:11:37] [PASSED] 0x46C3 (ALDERLAKE_P)
[13:11:37] [PASSED] 0x46D0 (ALDERLAKE_N)
[13:11:37] [PASSED] 0x46D1 (ALDERLAKE_N)
[13:11:37] [PASSED] 0x46D2 (ALDERLAKE_N)
[13:11:37] [PASSED] 0x46D3 (ALDERLAKE_N)
[13:11:37] [PASSED] 0x46D4 (ALDERLAKE_N)
[13:11:37] [PASSED] 0xA721 (ALDERLAKE_P)
[13:11:37] [PASSED] 0xA7A1 (ALDERLAKE_P)
[13:11:37] [PASSED] 0xA7A9 (ALDERLAKE_P)
[13:11:37] [PASSED] 0xA7AC (ALDERLAKE_P)
[13:11:37] [PASSED] 0xA7AD (ALDERLAKE_P)
[13:11:37] [PASSED] 0xA720 (ALDERLAKE_P)
[13:11:37] [PASSED] 0xA7A0 (ALDERLAKE_P)
[13:11:37] [PASSED] 0xA7A8 (ALDERLAKE_P)
[13:11:37] [PASSED] 0xA7AA (ALDERLAKE_P)
[13:11:37] [PASSED] 0xA7AB (ALDERLAKE_P)
[13:11:37] [PASSED] 0xA780 (ALDERLAKE_S)
[13:11:37] [PASSED] 0xA781 (ALDERLAKE_S)
[13:11:37] [PASSED] 0xA782 (ALDERLAKE_S)
[13:11:37] [PASSED] 0xA783 (ALDERLAKE_S)
[13:11:37] [PASSED] 0xA788 (ALDERLAKE_S)
[13:11:37] [PASSED] 0xA789 (ALDERLAKE_S)
[13:11:37] [PASSED] 0xA78A (ALDERLAKE_S)
[13:11:37] [PASSED] 0xA78B (ALDERLAKE_S)
[13:11:37] [PASSED] 0x4905 (DG1)
[13:11:37] [PASSED] 0x4906 (DG1)
[13:11:37] [PASSED] 0x4907 (DG1)
[13:11:37] [PASSED] 0x4908 (DG1)
[13:11:37] [PASSED] 0x4909 (DG1)
[13:11:37] [PASSED] 0x56C0 (DG2)
[13:11:37] [PASSED] 0x56C2 (DG2)
[13:11:37] [PASSED] 0x56C1 (DG2)
[13:11:37] [PASSED] 0x7D51 (METEORLAKE)
[13:11:37] [PASSED] 0x7DD1 (METEORLAKE)
[13:11:37] [PASSED] 0x7D41 (METEORLAKE)
[13:11:37] [PASSED] 0x7D67 (METEORLAKE)
[13:11:37] [PASSED] 0xB640 (METEORLAKE)
[13:11:37] [PASSED] 0x56A0 (DG2)
[13:11:37] [PASSED] 0x56A1 (DG2)
[13:11:37] [PASSED] 0x56A2 (DG2)
[13:11:37] [PASSED] 0x56BE (DG2)
[13:11:37] [PASSED] 0x56BF (DG2)
[13:11:37] [PASSED] 0x5690 (DG2)
[13:11:37] [PASSED] 0x5691 (DG2)
[13:11:37] [PASSED] 0x5692 (DG2)
[13:11:37] [PASSED] 0x56A5 (DG2)
[13:11:37] [PASSED] 0x56A6 (DG2)
[13:11:37] [PASSED] 0x56B0 (DG2)
[13:11:37] [PASSED] 0x56B1 (DG2)
[13:11:37] [PASSED] 0x56BA (DG2)
[13:11:37] [PASSED] 0x56BB (DG2)
[13:11:37] [PASSED] 0x56BC (DG2)
[13:11:37] [PASSED] 0x56BD (DG2)
[13:11:37] [PASSED] 0x5693 (DG2)
[13:11:37] [PASSED] 0x5694 (DG2)
[13:11:37] [PASSED] 0x5695 (DG2)
[13:11:37] [PASSED] 0x56A3 (DG2)
[13:11:37] [PASSED] 0x56A4 (DG2)
[13:11:37] [PASSED] 0x56B2 (DG2)
[13:11:37] [PASSED] 0x56B3 (DG2)
[13:11:37] [PASSED] 0x5696 (DG2)
[13:11:37] [PASSED] 0x5697 (DG2)
[13:11:37] [PASSED] 0xB69 (PVC)
[13:11:37] [PASSED] 0xB6E (PVC)
[13:11:37] [PASSED] 0xBD4 (PVC)
[13:11:37] [PASSED] 0xBD5 (PVC)
[13:11:37] [PASSED] 0xBD6 (PVC)
[13:11:37] [PASSED] 0xBD7 (PVC)
[13:11:37] [PASSED] 0xBD8 (PVC)
[13:11:37] [PASSED] 0xBD9 (PVC)
[13:11:37] [PASSED] 0xBDA (PVC)
[13:11:37] [PASSED] 0xBDB (PVC)
[13:11:37] [PASSED] 0xBE0 (PVC)
[13:11:37] [PASSED] 0xBE1 (PVC)
[13:11:37] [PASSED] 0xBE5 (PVC)
[13:11:37] [PASSED] 0x7D40 (METEORLAKE)
[13:11:37] [PASSED] 0x7D45 (METEORLAKE)
[13:11:37] [PASSED] 0x7D55 (METEORLAKE)
[13:11:37] [PASSED] 0x7D60 (METEORLAKE)
[13:11:37] [PASSED] 0x7DD5 (METEORLAKE)
[13:11:37] [PASSED] 0x6420 (LUNARLAKE)
[13:11:37] [PASSED] 0x64A0 (LUNARLAKE)
[13:11:37] [PASSED] 0x64B0 (LUNARLAKE)
[13:11:37] [PASSED] 0xE202 (BATTLEMAGE)
[13:11:37] [PASSED] 0xE209 (BATTLEMAGE)
[13:11:37] [PASSED] 0xE20B (BATTLEMAGE)
[13:11:37] [PASSED] 0xE20C (BATTLEMAGE)
[13:11:37] [PASSED] 0xE20D (BATTLEMAGE)
[13:11:37] [PASSED] 0xE210 (BATTLEMAGE)
[13:11:37] [PASSED] 0xE211 (BATTLEMAGE)
[13:11:37] [PASSED] 0xE212 (BATTLEMAGE)
[13:11:37] [PASSED] 0xE216 (BATTLEMAGE)
[13:11:37] [PASSED] 0xE220 (BATTLEMAGE)
[13:11:37] [PASSED] 0xE221 (BATTLEMAGE)
[13:11:37] [PASSED] 0xE222 (BATTLEMAGE)
[13:11:37] [PASSED] 0xE223 (BATTLEMAGE)
[13:11:37] [PASSED] 0xB080 (PANTHERLAKE)
[13:11:37] [PASSED] 0xB081 (PANTHERLAKE)
[13:11:37] [PASSED] 0xB082 (PANTHERLAKE)
[13:11:37] [PASSED] 0xB083 (PANTHERLAKE)
[13:11:37] [PASSED] 0xB084 (PANTHERLAKE)
[13:11:37] [PASSED] 0xB085 (PANTHERLAKE)
[13:11:37] [PASSED] 0xB086 (PANTHERLAKE)
[13:11:37] [PASSED] 0xB087 (PANTHERLAKE)
[13:11:37] [PASSED] 0xB08F (PANTHERLAKE)
[13:11:37] [PASSED] 0xB090 (PANTHERLAKE)
[13:11:37] [PASSED] 0xB0A0 (PANTHERLAKE)
[13:11:37] [PASSED] 0xB0B0 (PANTHERLAKE)
[13:11:37] [PASSED] 0xD740 (NOVALAKE_S)
[13:11:37] [PASSED] 0xD741 (NOVALAKE_S)
[13:11:37] [PASSED] 0xD742 (NOVALAKE_S)
[13:11:37] [PASSED] 0xD743 (NOVALAKE_S)
[13:11:37] [PASSED] 0xD744 (NOVALAKE_S)
[13:11:37] [PASSED] 0xD745 (NOVALAKE_S)
[13:11:37] [PASSED] 0x674C (CRESCENTISLAND)
[13:11:37] [PASSED] 0xFD80 (PANTHERLAKE)
[13:11:37] [PASSED] 0xFD81 (PANTHERLAKE)
[13:11:37] =============== [PASSED] check_platform_desc ===============
[13:11:37] ===================== [PASSED] xe_pci ======================
[13:11:37] =================== xe_rtp (2 subtests) ====================
[13:11:37] =============== xe_rtp_process_to_sr_tests ================
[13:11:37] [PASSED] coalesce-same-reg
[13:11:37] [PASSED] no-match-no-add
[13:11:37] [PASSED] match-or
[13:11:37] [PASSED] match-or-xfail
[13:11:37] [PASSED] no-match-no-add-multiple-rules
[13:11:37] [PASSED] two-regs-two-entries
[13:11:37] [PASSED] clr-one-set-other
[13:11:37] [PASSED] set-field
[13:11:37] [PASSED] conflict-duplicate
[13:11:37] [PASSED] conflict-not-disjoint
[13:11:37] [PASSED] conflict-reg-type
[13:11:37] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[13:11:37] ================== xe_rtp_process_tests ===================
[13:11:37] [PASSED] active1
[13:11:37] [PASSED] active2
[13:11:37] [PASSED] active-inactive
[13:11:37] [PASSED] inactive-active
[13:11:37] [PASSED] inactive-1st_or_active-inactive
[13:11:37] [PASSED] inactive-2nd_or_active-inactive
[13:11:37] [PASSED] inactive-last_or_active-inactive
[13:11:37] [PASSED] inactive-no_or_active-inactive
[13:11:37] ============== [PASSED] xe_rtp_process_tests ===============
[13:11:37] ===================== [PASSED] xe_rtp ======================
[13:11:37] ==================== xe_wa (1 subtest) =====================
[13:11:37] ======================== xe_wa_gt =========================
[13:11:37] [PASSED] TIGERLAKE B0
[13:11:37] [PASSED] DG1 A0
[13:11:37] [PASSED] DG1 B0
[13:11:37] [PASSED] ALDERLAKE_S A0
[13:11:37] [PASSED] ALDERLAKE_S B0
[13:11:37] [PASSED] ALDERLAKE_S C0
[13:11:37] [PASSED] ALDERLAKE_S D0
[13:11:37] [PASSED] ALDERLAKE_P A0
[13:11:37] [PASSED] ALDERLAKE_P B0
[13:11:37] [PASSED] ALDERLAKE_P C0
[13:11:37] [PASSED] ALDERLAKE_S RPLS D0
[13:11:37] [PASSED] ALDERLAKE_P RPLU E0
[13:11:37] [PASSED] DG2 G10 C0
[13:11:37] [PASSED] DG2 G11 B1
[13:11:37] [PASSED] DG2 G12 A1
[13:11:37] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[13:11:37] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[13:11:37] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[13:11:37] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[13:11:37] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[13:11:37] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[13:11:37] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[13:11:37] ==================== [PASSED] xe_wa_gt =====================
[13:11:37] ====================== [PASSED] xe_wa ======================
[13:11:37] ============================================================
[13:11:37] Testing complete. Ran 510 tests: passed: 492, skipped: 18
[13:11:37] Elapsed time: 35.050s total, 4.209s configuring, 30.324s building, 0.464s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[13:11:37] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[13:11:39] 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
[13:12:04] Starting KUnit Kernel (1/1)...
[13:12:04] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[13:12:04] ============ drm_test_pick_cmdline (2 subtests) ============
[13:12:04] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[13:12:04] =============== drm_test_pick_cmdline_named ===============
[13:12:04] [PASSED] NTSC
[13:12:04] [PASSED] NTSC-J
[13:12:04] [PASSED] PAL
[13:12:04] [PASSED] PAL-M
[13:12:04] =========== [PASSED] drm_test_pick_cmdline_named ===========
[13:12:04] ============== [PASSED] drm_test_pick_cmdline ==============
[13:12:04] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[13:12:04] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[13:12:04] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[13:12:04] =========== drm_validate_clone_mode (2 subtests) ===========
[13:12:04] ============== drm_test_check_in_clone_mode ===============
[13:12:04] [PASSED] in_clone_mode
[13:12:04] [PASSED] not_in_clone_mode
[13:12:04] ========== [PASSED] drm_test_check_in_clone_mode ===========
[13:12:04] =============== drm_test_check_valid_clones ===============
[13:12:04] [PASSED] not_in_clone_mode
[13:12:04] [PASSED] valid_clone
[13:12:04] [PASSED] invalid_clone
[13:12:04] =========== [PASSED] drm_test_check_valid_clones ===========
[13:12:04] ============= [PASSED] drm_validate_clone_mode =============
[13:12:04] ============= drm_validate_modeset (1 subtest) =============
[13:12:04] [PASSED] drm_test_check_connector_changed_modeset
[13:12:04] ============== [PASSED] drm_validate_modeset ===============
[13:12:04] ====== drm_test_bridge_get_current_state (2 subtests) ======
[13:12:04] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[13:12:04] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[13:12:04] ======== [PASSED] drm_test_bridge_get_current_state ========
[13:12:04] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[13:12:04] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[13:12:04] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[13:12:04] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[13:12:04] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[13:12:04] ============== drm_bridge_alloc (2 subtests) ===============
[13:12:04] [PASSED] drm_test_drm_bridge_alloc_basic
[13:12:04] [PASSED] drm_test_drm_bridge_alloc_get_put
[13:12:04] ================ [PASSED] drm_bridge_alloc =================
[13:12:04] ================== drm_buddy (8 subtests) ==================
[13:12:04] [PASSED] drm_test_buddy_alloc_limit
[13:12:04] [PASSED] drm_test_buddy_alloc_optimistic
[13:12:04] [PASSED] drm_test_buddy_alloc_pessimistic
[13:12:04] [PASSED] drm_test_buddy_alloc_pathological
[13:12:04] [PASSED] drm_test_buddy_alloc_contiguous
[13:12:04] [PASSED] drm_test_buddy_alloc_clear
[13:12:04] [PASSED] drm_test_buddy_alloc_range_bias
[13:12:04] [PASSED] drm_test_buddy_fragmentation_performance
[13:12:04] ==================== [PASSED] drm_buddy ====================
[13:12:04] ============= drm_cmdline_parser (40 subtests) =============
[13:12:04] [PASSED] drm_test_cmdline_force_d_only
[13:12:04] [PASSED] drm_test_cmdline_force_D_only_dvi
[13:12:04] [PASSED] drm_test_cmdline_force_D_only_hdmi
[13:12:04] [PASSED] drm_test_cmdline_force_D_only_not_digital
[13:12:04] [PASSED] drm_test_cmdline_force_e_only
[13:12:04] [PASSED] drm_test_cmdline_res
[13:12:04] [PASSED] drm_test_cmdline_res_vesa
[13:12:04] [PASSED] drm_test_cmdline_res_vesa_rblank
[13:12:04] [PASSED] drm_test_cmdline_res_rblank
[13:12:04] [PASSED] drm_test_cmdline_res_bpp
[13:12:04] [PASSED] drm_test_cmdline_res_refresh
[13:12:04] [PASSED] drm_test_cmdline_res_bpp_refresh
[13:12:04] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[13:12:04] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[13:12:04] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[13:12:04] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[13:12:04] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[13:12:04] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[13:12:04] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[13:12:04] [PASSED] drm_test_cmdline_res_margins_force_on
[13:12:04] [PASSED] drm_test_cmdline_res_vesa_margins
[13:12:04] [PASSED] drm_test_cmdline_name
[13:12:04] [PASSED] drm_test_cmdline_name_bpp
[13:12:04] [PASSED] drm_test_cmdline_name_option
[13:12:04] [PASSED] drm_test_cmdline_name_bpp_option
[13:12:04] [PASSED] drm_test_cmdline_rotate_0
[13:12:04] [PASSED] drm_test_cmdline_rotate_90
[13:12:04] [PASSED] drm_test_cmdline_rotate_180
[13:12:04] [PASSED] drm_test_cmdline_rotate_270
[13:12:04] [PASSED] drm_test_cmdline_hmirror
[13:12:04] [PASSED] drm_test_cmdline_vmirror
[13:12:04] [PASSED] drm_test_cmdline_margin_options
[13:12:04] [PASSED] drm_test_cmdline_multiple_options
[13:12:04] [PASSED] drm_test_cmdline_bpp_extra_and_option
[13:12:04] [PASSED] drm_test_cmdline_extra_and_option
[13:12:04] [PASSED] drm_test_cmdline_freestanding_options
[13:12:04] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[13:12:04] [PASSED] drm_test_cmdline_panel_orientation
[13:12:04] ================ drm_test_cmdline_invalid =================
[13:12:04] [PASSED] margin_only
[13:12:04] [PASSED] interlace_only
[13:12:04] [PASSED] res_missing_x
[13:12:04] [PASSED] res_missing_y
[13:12:04] [PASSED] res_bad_y
[13:12:04] [PASSED] res_missing_y_bpp
[13:12:04] [PASSED] res_bad_bpp
[13:12:04] [PASSED] res_bad_refresh
[13:12:04] [PASSED] res_bpp_refresh_force_on_off
[13:12:04] [PASSED] res_invalid_mode
[13:12:04] [PASSED] res_bpp_wrong_place_mode
[13:12:04] [PASSED] name_bpp_refresh
[13:12:04] [PASSED] name_refresh
[13:12:04] [PASSED] name_refresh_wrong_mode
[13:12:04] [PASSED] name_refresh_invalid_mode
[13:12:04] [PASSED] rotate_multiple
[13:12:04] [PASSED] rotate_invalid_val
[13:12:04] [PASSED] rotate_truncated
[13:12:04] [PASSED] invalid_option
[13:12:04] [PASSED] invalid_tv_option
[13:12:04] [PASSED] truncated_tv_option
[13:12:04] ============ [PASSED] drm_test_cmdline_invalid =============
[13:12:04] =============== drm_test_cmdline_tv_options ===============
[13:12:04] [PASSED] NTSC
[13:12:04] [PASSED] NTSC_443
[13:12:04] [PASSED] NTSC_J
[13:12:04] [PASSED] PAL
[13:12:04] [PASSED] PAL_M
[13:12:04] [PASSED] PAL_N
[13:12:04] [PASSED] SECAM
[13:12:04] [PASSED] MONO_525
[13:12:04] [PASSED] MONO_625
[13:12:04] =========== [PASSED] drm_test_cmdline_tv_options ===========
[13:12:04] =============== [PASSED] drm_cmdline_parser ================
[13:12:04] ========== drmm_connector_hdmi_init (20 subtests) ==========
[13:12:04] [PASSED] drm_test_connector_hdmi_init_valid
[13:12:04] [PASSED] drm_test_connector_hdmi_init_bpc_8
[13:12:04] [PASSED] drm_test_connector_hdmi_init_bpc_10
[13:12:04] [PASSED] drm_test_connector_hdmi_init_bpc_12
[13:12:04] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[13:12:04] [PASSED] drm_test_connector_hdmi_init_bpc_null
[13:12:04] [PASSED] drm_test_connector_hdmi_init_formats_empty
[13:12:04] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[13:12:04] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[13:12:04] [PASSED] supported_formats=0x9 yuv420_allowed=1
[13:12:04] [PASSED] supported_formats=0x9 yuv420_allowed=0
[13:12:04] [PASSED] supported_formats=0x3 yuv420_allowed=1
[13:12:04] [PASSED] supported_formats=0x3 yuv420_allowed=0
[13:12:04] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[13:12:04] [PASSED] drm_test_connector_hdmi_init_null_ddc
[13:12:04] [PASSED] drm_test_connector_hdmi_init_null_product
[13:12:04] [PASSED] drm_test_connector_hdmi_init_null_vendor
[13:12:04] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[13:12:04] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[13:12:04] [PASSED] drm_test_connector_hdmi_init_product_valid
[13:12:04] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[13:12:04] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[13:12:04] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[13:12:04] ========= drm_test_connector_hdmi_init_type_valid =========
[13:12:04] [PASSED] HDMI-A
[13:12:04] [PASSED] HDMI-B
[13:12:04] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[13:12:04] ======== drm_test_connector_hdmi_init_type_invalid ========
[13:12:04] [PASSED] Unknown
[13:12:04] [PASSED] VGA
[13:12:04] [PASSED] DVI-I
[13:12:04] [PASSED] DVI-D
[13:12:04] [PASSED] DVI-A
[13:12:04] [PASSED] Composite
[13:12:04] [PASSED] SVIDEO
[13:12:04] [PASSED] LVDS
[13:12:04] [PASSED] Component
[13:12:04] [PASSED] DIN
[13:12:04] [PASSED] DP
[13:12:04] [PASSED] TV
[13:12:04] [PASSED] eDP
[13:12:04] [PASSED] Virtual
[13:12:04] [PASSED] DSI
[13:12:04] [PASSED] DPI
[13:12:04] [PASSED] Writeback
[13:12:04] [PASSED] SPI
[13:12:04] [PASSED] USB
[13:12:04] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[13:12:04] ============ [PASSED] drmm_connector_hdmi_init =============
[13:12:04] ============= drmm_connector_init (3 subtests) =============
[13:12:04] [PASSED] drm_test_drmm_connector_init
[13:12:04] [PASSED] drm_test_drmm_connector_init_null_ddc
[13:12:04] ========= drm_test_drmm_connector_init_type_valid =========
[13:12:04] [PASSED] Unknown
[13:12:04] [PASSED] VGA
[13:12:04] [PASSED] DVI-I
[13:12:04] [PASSED] DVI-D
[13:12:04] [PASSED] DVI-A
[13:12:04] [PASSED] Composite
[13:12:04] [PASSED] SVIDEO
[13:12:04] [PASSED] LVDS
[13:12:04] [PASSED] Component
[13:12:04] [PASSED] DIN
[13:12:04] [PASSED] DP
[13:12:04] [PASSED] HDMI-A
[13:12:04] [PASSED] HDMI-B
[13:12:04] [PASSED] TV
[13:12:04] [PASSED] eDP
[13:12:04] [PASSED] Virtual
[13:12:04] [PASSED] DSI
[13:12:04] [PASSED] DPI
[13:12:04] [PASSED] Writeback
[13:12:04] [PASSED] SPI
[13:12:04] [PASSED] USB
[13:12:04] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[13:12:04] =============== [PASSED] drmm_connector_init ===============
[13:12:04] ========= drm_connector_dynamic_init (6 subtests) ==========
[13:12:04] [PASSED] drm_test_drm_connector_dynamic_init
[13:12:04] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[13:12:04] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[13:12:04] [PASSED] drm_test_drm_connector_dynamic_init_properties
[13:12:04] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[13:12:04] [PASSED] Unknown
[13:12:04] [PASSED] VGA
[13:12:04] [PASSED] DVI-I
[13:12:04] [PASSED] DVI-D
[13:12:04] [PASSED] DVI-A
[13:12:04] [PASSED] Composite
[13:12:04] [PASSED] SVIDEO
[13:12:04] [PASSED] LVDS
[13:12:04] [PASSED] Component
[13:12:04] [PASSED] DIN
[13:12:04] [PASSED] DP
[13:12:04] [PASSED] HDMI-A
[13:12:04] [PASSED] HDMI-B
[13:12:04] [PASSED] TV
[13:12:04] [PASSED] eDP
[13:12:04] [PASSED] Virtual
[13:12:04] [PASSED] DSI
[13:12:04] [PASSED] DPI
[13:12:04] [PASSED] Writeback
[13:12:04] [PASSED] SPI
[13:12:04] [PASSED] USB
[13:12:04] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[13:12:04] ======== drm_test_drm_connector_dynamic_init_name =========
[13:12:04] [PASSED] Unknown
[13:12:04] [PASSED] VGA
[13:12:04] [PASSED] DVI-I
[13:12:04] [PASSED] DVI-D
[13:12:04] [PASSED] DVI-A
[13:12:04] [PASSED] Composite
[13:12:04] [PASSED] SVIDEO
[13:12:04] [PASSED] LVDS
[13:12:04] [PASSED] Component
[13:12:04] [PASSED] DIN
[13:12:04] [PASSED] DP
[13:12:04] [PASSED] HDMI-A
[13:12:04] [PASSED] HDMI-B
[13:12:04] [PASSED] TV
[13:12:04] [PASSED] eDP
[13:12:04] [PASSED] Virtual
[13:12:04] [PASSED] DSI
[13:12:04] [PASSED] DPI
[13:12:04] [PASSED] Writeback
[13:12:04] [PASSED] SPI
[13:12:04] [PASSED] USB
[13:12:04] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[13:12:04] =========== [PASSED] drm_connector_dynamic_init ============
[13:12:04] ==== drm_connector_dynamic_register_early (4 subtests) =====
[13:12:04] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[13:12:04] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[13:12:04] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[13:12:04] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[13:12:04] ====== [PASSED] drm_connector_dynamic_register_early =======
[13:12:04] ======= drm_connector_dynamic_register (7 subtests) ========
[13:12:04] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[13:12:04] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[13:12:04] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[13:12:04] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[13:12:04] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[13:12:04] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[13:12:04] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[13:12:04] ========= [PASSED] drm_connector_dynamic_register ==========
[13:12:04] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[13:12:04] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[13:12:04] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[13:12:04] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[13:12:04] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[13:12:04] ========== drm_test_get_tv_mode_from_name_valid ===========
[13:12:04] [PASSED] NTSC
[13:12:04] [PASSED] NTSC-443
[13:12:04] [PASSED] NTSC-J
[13:12:04] [PASSED] PAL
[13:12:04] [PASSED] PAL-M
[13:12:04] [PASSED] PAL-N
[13:12:04] [PASSED] SECAM
[13:12:04] [PASSED] Mono
[13:12:04] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[13:12:04] [PASSED] drm_test_get_tv_mode_from_name_truncated
[13:12:04] ============ [PASSED] drm_get_tv_mode_from_name ============
[13:12:04] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[13:12:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[13:12:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[13:12:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[13:12:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[13:12:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[13:12:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[13:12:04] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[13:12:04] [PASSED] VIC 96
[13:12:04] [PASSED] VIC 97
[13:12:04] [PASSED] VIC 101
[13:12:04] [PASSED] VIC 102
[13:12:04] [PASSED] VIC 106
[13:12:04] [PASSED] VIC 107
[13:12:04] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[13:12:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[13:12:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[13:12:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[13:12:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[13:12:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[13:12:04] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[13:12:04] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[13:12:04] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[13:12:04] [PASSED] Automatic
[13:12:04] [PASSED] Full
[13:12:04] [PASSED] Limited 16:235
[13:12:04] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[13:12:04] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[13:12:04] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[13:12:04] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[13:12:04] === drm_test_drm_hdmi_connector_get_output_format_name ====
[13:12:04] [PASSED] RGB
[13:12:04] [PASSED] YUV 4:2:0
[13:12:04] [PASSED] YUV 4:2:2
[13:12:04] [PASSED] YUV 4:4:4
[13:12:04] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[13:12:04] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[13:12:04] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[13:12:04] ============= drm_damage_helper (21 subtests) ==============
[13:12:04] [PASSED] drm_test_damage_iter_no_damage
[13:12:04] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[13:12:04] [PASSED] drm_test_damage_iter_no_damage_src_moved
[13:12:04] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[13:12:04] [PASSED] drm_test_damage_iter_no_damage_not_visible
[13:12:04] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[13:12:04] [PASSED] drm_test_damage_iter_no_damage_no_fb
[13:12:04] [PASSED] drm_test_damage_iter_simple_damage
[13:12:04] [PASSED] drm_test_damage_iter_single_damage
[13:12:04] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[13:12:04] [PASSED] drm_test_damage_iter_single_damage_outside_src
[13:12:04] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[13:12:04] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[13:12:04] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[13:12:04] [PASSED] drm_test_damage_iter_single_damage_src_moved
[13:12:04] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[13:12:04] [PASSED] drm_test_damage_iter_damage
[13:12:04] [PASSED] drm_test_damage_iter_damage_one_intersect
[13:12:04] [PASSED] drm_test_damage_iter_damage_one_outside
[13:12:04] [PASSED] drm_test_damage_iter_damage_src_moved
[13:12:04] [PASSED] drm_test_damage_iter_damage_not_visible
[13:12:04] ================ [PASSED] drm_damage_helper ================
[13:12:04] ============== drm_dp_mst_helper (3 subtests) ==============
[13:12:04] ============== drm_test_dp_mst_calc_pbn_mode ==============
[13:12:04] [PASSED] Clock 154000 BPP 30 DSC disabled
[13:12:04] [PASSED] Clock 234000 BPP 30 DSC disabled
[13:12:04] [PASSED] Clock 297000 BPP 24 DSC disabled
[13:12:04] [PASSED] Clock 332880 BPP 24 DSC enabled
[13:12:04] [PASSED] Clock 324540 BPP 24 DSC enabled
[13:12:04] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[13:12:04] ============== drm_test_dp_mst_calc_pbn_div ===============
[13:12:04] [PASSED] Link rate 2000000 lane count 4
[13:12:04] [PASSED] Link rate 2000000 lane count 2
[13:12:04] [PASSED] Link rate 2000000 lane count 1
[13:12:04] [PASSED] Link rate 1350000 lane count 4
[13:12:04] [PASSED] Link rate 1350000 lane count 2
[13:12:04] [PASSED] Link rate 1350000 lane count 1
[13:12:04] [PASSED] Link rate 1000000 lane count 4
[13:12:04] [PASSED] Link rate 1000000 lane count 2
[13:12:04] [PASSED] Link rate 1000000 lane count 1
[13:12:04] [PASSED] Link rate 810000 lane count 4
[13:12:04] [PASSED] Link rate 810000 lane count 2
[13:12:04] [PASSED] Link rate 810000 lane count 1
[13:12:04] [PASSED] Link rate 540000 lane count 4
[13:12:04] [PASSED] Link rate 540000 lane count 2
[13:12:04] [PASSED] Link rate 540000 lane count 1
[13:12:04] [PASSED] Link rate 270000 lane count 4
[13:12:04] [PASSED] Link rate 270000 lane count 2
[13:12:04] [PASSED] Link rate 270000 lane count 1
[13:12:04] [PASSED] Link rate 162000 lane count 4
[13:12:04] [PASSED] Link rate 162000 lane count 2
[13:12:04] [PASSED] Link rate 162000 lane count 1
[13:12:04] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[13:12:04] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[13:12:04] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[13:12:04] [PASSED] DP_POWER_UP_PHY with port number
[13:12:04] [PASSED] DP_POWER_DOWN_PHY with port number
[13:12:04] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[13:12:04] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[13:12:04] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[13:12:04] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[13:12:04] [PASSED] DP_QUERY_PAYLOAD with port number
[13:12:04] [PASSED] DP_QUERY_PAYLOAD with VCPI
[13:12:04] [PASSED] DP_REMOTE_DPCD_READ with port number
[13:12:04] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[13:12:04] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[13:12:04] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[13:12:04] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[13:12:04] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[13:12:04] [PASSED] DP_REMOTE_I2C_READ with port number
[13:12:04] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[13:12:04] [PASSED] DP_REMOTE_I2C_READ with transactions array
[13:12:04] [PASSED] DP_REMOTE_I2C_WRITE with port number
[13:12:04] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[13:12:04] [PASSED] DP_REMOTE_I2C_WRITE with data array
[13:12:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[13:12:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[13:12:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[13:12:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[13:12:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[13:12:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[13:12:04] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[13:12:04] ================ [PASSED] drm_dp_mst_helper ================
[13:12:04] ================== drm_exec (7 subtests) ===================
[13:12:04] [PASSED] sanitycheck
[13:12:04] [PASSED] test_lock
[13:12:04] [PASSED] test_lock_unlock
[13:12:04] [PASSED] test_duplicates
[13:12:04] [PASSED] test_prepare
[13:12:04] [PASSED] test_prepare_array
[13:12:04] [PASSED] test_multiple_loops
[13:12:04] ==================== [PASSED] drm_exec =====================
[13:12:04] =========== drm_format_helper_test (17 subtests) ===========
[13:12:04] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[13:12:04] [PASSED] single_pixel_source_buffer
[13:12:04] [PASSED] single_pixel_clip_rectangle
[13:12:04] [PASSED] well_known_colors
[13:12:04] [PASSED] destination_pitch
[13:12:04] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[13:12:04] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[13:12:04] [PASSED] single_pixel_source_buffer
[13:12:04] [PASSED] single_pixel_clip_rectangle
[13:12:04] [PASSED] well_known_colors
[13:12:04] [PASSED] destination_pitch
[13:12:04] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[13:12:04] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[13:12:04] [PASSED] single_pixel_source_buffer
[13:12:04] [PASSED] single_pixel_clip_rectangle
[13:12:04] [PASSED] well_known_colors
[13:12:04] [PASSED] destination_pitch
[13:12:04] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[13:12:04] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[13:12:04] [PASSED] single_pixel_source_buffer
[13:12:04] [PASSED] single_pixel_clip_rectangle
[13:12:04] [PASSED] well_known_colors
[13:12:04] [PASSED] destination_pitch
[13:12:04] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[13:12:04] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[13:12:04] [PASSED] single_pixel_source_buffer
[13:12:04] [PASSED] single_pixel_clip_rectangle
[13:12:04] [PASSED] well_known_colors
[13:12:04] [PASSED] destination_pitch
[13:12:04] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[13:12:04] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[13:12:04] [PASSED] single_pixel_source_buffer
[13:12:04] [PASSED] single_pixel_clip_rectangle
[13:12:04] [PASSED] well_known_colors
[13:12:04] [PASSED] destination_pitch
[13:12:04] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[13:12:04] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[13:12:04] [PASSED] single_pixel_source_buffer
[13:12:04] [PASSED] single_pixel_clip_rectangle
[13:12:04] [PASSED] well_known_colors
[13:12:04] [PASSED] destination_pitch
[13:12:04] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[13:12:04] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[13:12:04] [PASSED] single_pixel_source_buffer
[13:12:04] [PASSED] single_pixel_clip_rectangle
[13:12:04] [PASSED] well_known_colors
[13:12:04] [PASSED] destination_pitch
[13:12:04] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[13:12:04] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[13:12:04] [PASSED] single_pixel_source_buffer
[13:12:04] [PASSED] single_pixel_clip_rectangle
[13:12:04] [PASSED] well_known_colors
[13:12:04] [PASSED] destination_pitch
[13:12:04] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[13:12:04] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[13:12:04] [PASSED] single_pixel_source_buffer
[13:12:04] [PASSED] single_pixel_clip_rectangle
[13:12:04] [PASSED] well_known_colors
[13:12:04] [PASSED] destination_pitch
[13:12:04] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[13:12:04] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[13:12:04] [PASSED] single_pixel_source_buffer
[13:12:04] [PASSED] single_pixel_clip_rectangle
[13:12:04] [PASSED] well_known_colors
[13:12:04] [PASSED] destination_pitch
[13:12:04] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[13:12:04] ============== drm_test_fb_xrgb8888_to_mono ===============
[13:12:04] [PASSED] single_pixel_source_buffer
[13:12:04] [PASSED] single_pixel_clip_rectangle
[13:12:04] [PASSED] well_known_colors
[13:12:04] [PASSED] destination_pitch
[13:12:04] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[13:12:04] ==================== drm_test_fb_swab =====================
[13:12:04] [PASSED] single_pixel_source_buffer
[13:12:04] [PASSED] single_pixel_clip_rectangle
[13:12:04] [PASSED] well_known_colors
[13:12:04] [PASSED] destination_pitch
[13:12:04] ================ [PASSED] drm_test_fb_swab =================
[13:12:04] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[13:12:04] [PASSED] single_pixel_source_buffer
[13:12:04] [PASSED] single_pixel_clip_rectangle
[13:12:04] [PASSED] well_known_colors
[13:12:04] [PASSED] destination_pitch
[13:12:04] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[13:12:04] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[13:12:04] [PASSED] single_pixel_source_buffer
[13:12:04] [PASSED] single_pixel_clip_rectangle
[13:12:04] [PASSED] well_known_colors
[13:12:04] [PASSED] destination_pitch
[13:12:04] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[13:12:04] ================= drm_test_fb_clip_offset =================
[13:12:04] [PASSED] pass through
[13:12:04] [PASSED] horizontal offset
[13:12:04] [PASSED] vertical offset
[13:12:04] [PASSED] horizontal and vertical offset
[13:12:04] [PASSED] horizontal offset (custom pitch)
[13:12:04] [PASSED] vertical offset (custom pitch)
[13:12:04] [PASSED] horizontal and vertical offset (custom pitch)
[13:12:04] ============= [PASSED] drm_test_fb_clip_offset =============
[13:12:04] =================== drm_test_fb_memcpy ====================
[13:12:04] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[13:12:04] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[13:12:04] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[13:12:04] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[13:12:04] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[13:12:04] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[13:12:04] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[13:12:04] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[13:12:04] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[13:12:04] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[13:12:04] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[13:12:04] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[13:12:04] =============== [PASSED] drm_test_fb_memcpy ================
[13:12:04] ============= [PASSED] drm_format_helper_test ==============
[13:12:04] ================= drm_format (18 subtests) =================
[13:12:04] [PASSED] drm_test_format_block_width_invalid
[13:12:04] [PASSED] drm_test_format_block_width_one_plane
[13:12:04] [PASSED] drm_test_format_block_width_two_plane
[13:12:04] [PASSED] drm_test_format_block_width_three_plane
[13:12:04] [PASSED] drm_test_format_block_width_tiled
[13:12:04] [PASSED] drm_test_format_block_height_invalid
[13:12:04] [PASSED] drm_test_format_block_height_one_plane
[13:12:04] [PASSED] drm_test_format_block_height_two_plane
[13:12:04] [PASSED] drm_test_format_block_height_three_plane
[13:12:04] [PASSED] drm_test_format_block_height_tiled
[13:12:04] [PASSED] drm_test_format_min_pitch_invalid
[13:12:04] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[13:12:04] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[13:12:04] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[13:12:04] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[13:12:04] [PASSED] drm_test_format_min_pitch_two_plane
[13:12:04] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[13:12:04] [PASSED] drm_test_format_min_pitch_tiled
[13:12:04] =================== [PASSED] drm_format ====================
[13:12:04] ============== drm_framebuffer (10 subtests) ===============
[13:12:04] ========== drm_test_framebuffer_check_src_coords ==========
[13:12:04] [PASSED] Success: source fits into fb
[13:12:04] [PASSED] Fail: overflowing fb with x-axis coordinate
[13:12:04] [PASSED] Fail: overflowing fb with y-axis coordinate
[13:12:04] [PASSED] Fail: overflowing fb with source width
[13:12:04] [PASSED] Fail: overflowing fb with source height
[13:12:04] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[13:12:04] [PASSED] drm_test_framebuffer_cleanup
[13:12:04] =============== drm_test_framebuffer_create ===============
[13:12:04] [PASSED] ABGR8888 normal sizes
[13:12:04] [PASSED] ABGR8888 max sizes
[13:12:04] [PASSED] ABGR8888 pitch greater than min required
[13:12:04] [PASSED] ABGR8888 pitch less than min required
[13:12:04] [PASSED] ABGR8888 Invalid width
[13:12:04] [PASSED] ABGR8888 Invalid buffer handle
[13:12:04] [PASSED] No pixel format
[13:12:04] [PASSED] ABGR8888 Width 0
[13:12:04] [PASSED] ABGR8888 Height 0
[13:12:04] [PASSED] ABGR8888 Out of bound height * pitch combination
[13:12:04] [PASSED] ABGR8888 Large buffer offset
[13:12:04] [PASSED] ABGR8888 Buffer offset for inexistent plane
[13:12:04] [PASSED] ABGR8888 Invalid flag
[13:12:04] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[13:12:04] [PASSED] ABGR8888 Valid buffer modifier
[13:12:04] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[13:12:04] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[13:12:04] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[13:12:04] [PASSED] NV12 Normal sizes
[13:12:04] [PASSED] NV12 Max sizes
[13:12:04] [PASSED] NV12 Invalid pitch
[13:12:04] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[13:12:04] [PASSED] NV12 different modifier per-plane
[13:12:04] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[13:12:04] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[13:12:04] [PASSED] NV12 Modifier for inexistent plane
[13:12:04] [PASSED] NV12 Handle for inexistent plane
[13:12:04] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[13:12:04] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[13:12:04] [PASSED] YVU420 Normal sizes
[13:12:04] [PASSED] YVU420 Max sizes
[13:12:04] [PASSED] YVU420 Invalid pitch
[13:12:04] [PASSED] YVU420 Different pitches
[13:12:04] [PASSED] YVU420 Different buffer offsets/pitches
[13:12:04] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[13:12:04] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[13:12:04] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[13:12:04] [PASSED] YVU420 Valid modifier
[13:12:04] [PASSED] YVU420 Different modifiers per plane
[13:12:04] [PASSED] YVU420 Modifier for inexistent plane
[13:12:04] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[13:12:04] [PASSED] X0L2 Normal sizes
[13:12:04] [PASSED] X0L2 Max sizes
[13:12:04] [PASSED] X0L2 Invalid pitch
[13:12:04] [PASSED] X0L2 Pitch greater than minimum required
[13:12:04] [PASSED] X0L2 Handle for inexistent plane
[13:12:04] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[13:12:04] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[13:12:04] [PASSED] X0L2 Valid modifier
[13:12:04] [PASSED] X0L2 Modifier for inexistent plane
[13:12:04] =========== [PASSED] drm_test_framebuffer_create ===========
[13:12:04] [PASSED] drm_test_framebuffer_free
[13:12:04] [PASSED] drm_test_framebuffer_init
[13:12:04] [PASSED] drm_test_framebuffer_init_bad_format
[13:12:04] [PASSED] drm_test_framebuffer_init_dev_mismatch
[13:12:04] [PASSED] drm_test_framebuffer_lookup
[13:12:04] [PASSED] drm_test_framebuffer_lookup_inexistent
[13:12:04] [PASSED] drm_test_framebuffer_modifiers_not_supported
[13:12:04] ================= [PASSED] drm_framebuffer =================
[13:12:04] ================ drm_gem_shmem (8 subtests) ================
[13:12:04] [PASSED] drm_gem_shmem_test_obj_create
[13:12:04] [PASSED] drm_gem_shmem_test_obj_create_private
[13:12:04] [PASSED] drm_gem_shmem_test_pin_pages
[13:12:04] [PASSED] drm_gem_shmem_test_vmap
[13:12:04] [PASSED] drm_gem_shmem_test_get_pages_sgt
[13:12:04] [PASSED] drm_gem_shmem_test_get_sg_table
[13:12:04] [PASSED] drm_gem_shmem_test_madvise
[13:12:04] [PASSED] drm_gem_shmem_test_purge
[13:12:04] ================== [PASSED] drm_gem_shmem ==================
[13:12:04] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[13:12:04] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[13:12:04] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[13:12:04] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[13:12:04] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[13:12:04] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[13:12:04] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[13:12:04] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[13:12:04] [PASSED] Automatic
[13:12:04] [PASSED] Full
[13:12:04] [PASSED] Limited 16:235
[13:12:04] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[13:12:04] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[13:12:04] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[13:12:04] [PASSED] drm_test_check_disable_connector
[13:12:04] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[13:12:04] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[13:12:04] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[13:12:04] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[13:12:04] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[13:12:04] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[13:12:04] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[13:12:04] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[13:12:04] [PASSED] drm_test_check_output_bpc_dvi
[13:12:04] [PASSED] drm_test_check_output_bpc_format_vic_1
[13:12:04] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[13:12:04] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[13:12:04] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[13:12:04] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[13:12:04] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[13:12:04] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[13:12:04] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[13:12:04] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[13:12:04] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[13:12:04] [PASSED] drm_test_check_broadcast_rgb_value
[13:12:04] [PASSED] drm_test_check_bpc_8_value
[13:12:04] [PASSED] drm_test_check_bpc_10_value
[13:12:04] [PASSED] drm_test_check_bpc_12_value
[13:12:04] [PASSED] drm_test_check_format_value
[13:12:04] [PASSED] drm_test_check_tmds_char_value
[13:12:04] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[13:12:04] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[13:12:04] [PASSED] drm_test_check_mode_valid
[13:12:04] [PASSED] drm_test_check_mode_valid_reject
[13:12:04] [PASSED] drm_test_check_mode_valid_reject_rate
[13:12:04] [PASSED] drm_test_check_mode_valid_reject_max_clock
[13:12:04] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[13:12:04] ================= drm_managed (2 subtests) =================
[13:12:04] [PASSED] drm_test_managed_release_action
[13:12:04] [PASSED] drm_test_managed_run_action
[13:12:04] =================== [PASSED] drm_managed ===================
[13:12:04] =================== drm_mm (6 subtests) ====================
[13:12:04] [PASSED] drm_test_mm_init
[13:12:04] [PASSED] drm_test_mm_debug
[13:12:04] [PASSED] drm_test_mm_align32
[13:12:04] [PASSED] drm_test_mm_align64
[13:12:04] [PASSED] drm_test_mm_lowest
[13:12:04] [PASSED] drm_test_mm_highest
[13:12:04] ===================== [PASSED] drm_mm ======================
[13:12:04] ============= drm_modes_analog_tv (5 subtests) =============
[13:12:04] [PASSED] drm_test_modes_analog_tv_mono_576i
[13:12:04] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[13:12:04] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[13:12:04] [PASSED] drm_test_modes_analog_tv_pal_576i
[13:12:04] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[13:12:04] =============== [PASSED] drm_modes_analog_tv ===============
[13:12:04] ============== drm_plane_helper (2 subtests) ===============
[13:12:04] =============== drm_test_check_plane_state ================
[13:12:04] [PASSED] clipping_simple
[13:12:04] [PASSED] clipping_rotate_reflect
[13:12:04] [PASSED] positioning_simple
[13:12:04] [PASSED] upscaling
[13:12:04] [PASSED] downscaling
[13:12:04] [PASSED] rounding1
[13:12:04] [PASSED] rounding2
[13:12:04] [PASSED] rounding3
[13:12:04] [PASSED] rounding4
[13:12:04] =========== [PASSED] drm_test_check_plane_state ============
[13:12:04] =========== drm_test_check_invalid_plane_state ============
[13:12:04] [PASSED] positioning_invalid
[13:12:04] [PASSED] upscaling_invalid
[13:12:04] [PASSED] downscaling_invalid
[13:12:04] ======= [PASSED] drm_test_check_invalid_plane_state ========
[13:12:04] ================ [PASSED] drm_plane_helper =================
[13:12:04] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[13:12:04] ====== drm_test_connector_helper_tv_get_modes_check =======
[13:12:04] [PASSED] None
[13:12:04] [PASSED] PAL
[13:12:04] [PASSED] NTSC
[13:12:04] [PASSED] Both, NTSC Default
[13:12:04] [PASSED] Both, PAL Default
[13:12:04] [PASSED] Both, NTSC Default, with PAL on command-line
[13:12:04] [PASSED] Both, PAL Default, with NTSC on command-line
[13:12:04] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[13:12:04] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[13:12:04] ================== drm_rect (9 subtests) ===================
[13:12:04] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[13:12:04] [PASSED] drm_test_rect_clip_scaled_not_clipped
[13:12:04] [PASSED] drm_test_rect_clip_scaled_clipped
[13:12:04] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[13:12:04] ================= drm_test_rect_intersect =================
[13:12:04] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[13:12:04] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[13:12:04] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[13:12:04] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[13:12:04] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[13:12:04] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[13:12:04] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[13:12:04] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[13:12:04] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[13:12:04] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[13:12:04] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[13:12:04] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[13:12:04] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[13:12:04] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[13:12:04] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[13:12:04] ============= [PASSED] drm_test_rect_intersect =============
[13:12:04] ================ drm_test_rect_calc_hscale ================
[13:12:04] [PASSED] normal use
[13:12:04] [PASSED] out of max range
[13:12:04] [PASSED] out of min range
[13:12:04] [PASSED] zero dst
[13:12:04] [PASSED] negative src
[13:12:04] [PASSED] negative dst
[13:12:04] ============ [PASSED] drm_test_rect_calc_hscale ============
[13:12:04] ================ drm_test_rect_calc_vscale ================
[13:12:04] [PASSED] normal use
stty: 'standard input': Inappropriate ioctl for device
[13:12:04] [PASSED] out of max range
[13:12:04] [PASSED] out of min range
[13:12:04] [PASSED] zero dst
[13:12:04] [PASSED] negative src
[13:12:04] [PASSED] negative dst
[13:12:04] ============ [PASSED] drm_test_rect_calc_vscale ============
[13:12:04] ================== drm_test_rect_rotate ===================
[13:12:04] [PASSED] reflect-x
[13:12:04] [PASSED] reflect-y
[13:12:04] [PASSED] rotate-0
[13:12:04] [PASSED] rotate-90
[13:12:04] [PASSED] rotate-180
[13:12:04] [PASSED] rotate-270
[13:12:04] ============== [PASSED] drm_test_rect_rotate ===============
[13:12:04] ================ drm_test_rect_rotate_inv =================
[13:12:04] [PASSED] reflect-x
[13:12:04] [PASSED] reflect-y
[13:12:04] [PASSED] rotate-0
[13:12:04] [PASSED] rotate-90
[13:12:04] [PASSED] rotate-180
[13:12:04] [PASSED] rotate-270
[13:12:04] ============ [PASSED] drm_test_rect_rotate_inv =============
[13:12:04] ==================== [PASSED] drm_rect =====================
[13:12:04] ============ drm_sysfb_modeset_test (1 subtest) ============
[13:12:04] ============ drm_test_sysfb_build_fourcc_list =============
[13:12:04] [PASSED] no native formats
[13:12:04] [PASSED] XRGB8888 as native format
[13:12:04] [PASSED] remove duplicates
[13:12:04] [PASSED] convert alpha formats
[13:12:04] [PASSED] random formats
[13:12:04] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[13:12:04] ============= [PASSED] drm_sysfb_modeset_test ==============
[13:12:04] ================== drm_fixp (2 subtests) ===================
[13:12:04] [PASSED] drm_test_int2fixp
[13:12:04] [PASSED] drm_test_sm2fixp
[13:12:04] ==================== [PASSED] drm_fixp =====================
[13:12:04] ============================================================
[13:12:04] Testing complete. Ran 624 tests: passed: 624
[13:12:04] Elapsed time: 26.976s total, 1.653s configuring, 24.904s building, 0.390s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[13:12:04] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[13:12:06] 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
[13:12:15] Starting KUnit Kernel (1/1)...
[13:12:15] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[13:12:15] ================= ttm_device (5 subtests) ==================
[13:12:15] [PASSED] ttm_device_init_basic
[13:12:15] [PASSED] ttm_device_init_multiple
[13:12:15] [PASSED] ttm_device_fini_basic
[13:12:15] [PASSED] ttm_device_init_no_vma_man
[13:12:15] ================== ttm_device_init_pools ==================
[13:12:15] [PASSED] No DMA allocations, no DMA32 required
[13:12:15] [PASSED] DMA allocations, DMA32 required
[13:12:15] [PASSED] No DMA allocations, DMA32 required
[13:12:15] [PASSED] DMA allocations, no DMA32 required
[13:12:15] ============== [PASSED] ttm_device_init_pools ==============
[13:12:15] =================== [PASSED] ttm_device ====================
[13:12:15] ================== ttm_pool (8 subtests) ===================
[13:12:15] ================== ttm_pool_alloc_basic ===================
[13:12:15] [PASSED] One page
[13:12:15] [PASSED] More than one page
[13:12:15] [PASSED] Above the allocation limit
[13:12:15] [PASSED] One page, with coherent DMA mappings enabled
[13:12:15] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[13:12:15] ============== [PASSED] ttm_pool_alloc_basic ===============
[13:12:15] ============== ttm_pool_alloc_basic_dma_addr ==============
[13:12:15] [PASSED] One page
[13:12:15] [PASSED] More than one page
[13:12:15] [PASSED] Above the allocation limit
[13:12:15] [PASSED] One page, with coherent DMA mappings enabled
[13:12:15] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[13:12:15] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[13:12:15] [PASSED] ttm_pool_alloc_order_caching_match
[13:12:15] [PASSED] ttm_pool_alloc_caching_mismatch
[13:12:15] [PASSED] ttm_pool_alloc_order_mismatch
[13:12:15] [PASSED] ttm_pool_free_dma_alloc
[13:12:15] [PASSED] ttm_pool_free_no_dma_alloc
[13:12:15] [PASSED] ttm_pool_fini_basic
[13:12:15] ==================== [PASSED] ttm_pool =====================
[13:12:15] ================ ttm_resource (8 subtests) =================
[13:12:15] ================= ttm_resource_init_basic =================
[13:12:15] [PASSED] Init resource in TTM_PL_SYSTEM
[13:12:15] [PASSED] Init resource in TTM_PL_VRAM
[13:12:15] [PASSED] Init resource in a private placement
[13:12:15] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[13:12:15] ============= [PASSED] ttm_resource_init_basic =============
[13:12:15] [PASSED] ttm_resource_init_pinned
[13:12:15] [PASSED] ttm_resource_fini_basic
[13:12:15] [PASSED] ttm_resource_manager_init_basic
[13:12:15] [PASSED] ttm_resource_manager_usage_basic
[13:12:15] [PASSED] ttm_resource_manager_set_used_basic
[13:12:15] [PASSED] ttm_sys_man_alloc_basic
[13:12:15] [PASSED] ttm_sys_man_free_basic
[13:12:15] ================== [PASSED] ttm_resource ===================
[13:12:15] =================== ttm_tt (15 subtests) ===================
[13:12:15] ==================== ttm_tt_init_basic ====================
[13:12:15] [PASSED] Page-aligned size
[13:12:15] [PASSED] Extra pages requested
[13:12:15] ================ [PASSED] ttm_tt_init_basic ================
[13:12:15] [PASSED] ttm_tt_init_misaligned
[13:12:15] [PASSED] ttm_tt_fini_basic
[13:12:15] [PASSED] ttm_tt_fini_sg
[13:12:15] [PASSED] ttm_tt_fini_shmem
[13:12:15] [PASSED] ttm_tt_create_basic
[13:12:15] [PASSED] ttm_tt_create_invalid_bo_type
[13:12:15] [PASSED] ttm_tt_create_ttm_exists
[13:12:15] [PASSED] ttm_tt_create_failed
[13:12:15] [PASSED] ttm_tt_destroy_basic
[13:12:15] [PASSED] ttm_tt_populate_null_ttm
[13:12:15] [PASSED] ttm_tt_populate_populated_ttm
[13:12:15] [PASSED] ttm_tt_unpopulate_basic
[13:12:15] [PASSED] ttm_tt_unpopulate_empty_ttm
[13:12:15] [PASSED] ttm_tt_swapin_basic
[13:12:15] ===================== [PASSED] ttm_tt ======================
[13:12:15] =================== ttm_bo (14 subtests) ===================
[13:12:15] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[13:12:15] [PASSED] Cannot be interrupted and sleeps
[13:12:15] [PASSED] Cannot be interrupted, locks straight away
[13:12:15] [PASSED] Can be interrupted, sleeps
[13:12:15] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[13:12:15] [PASSED] ttm_bo_reserve_locked_no_sleep
[13:12:15] [PASSED] ttm_bo_reserve_no_wait_ticket
[13:12:15] [PASSED] ttm_bo_reserve_double_resv
[13:12:15] [PASSED] ttm_bo_reserve_interrupted
[13:12:15] [PASSED] ttm_bo_reserve_deadlock
[13:12:15] [PASSED] ttm_bo_unreserve_basic
[13:12:15] [PASSED] ttm_bo_unreserve_pinned
[13:12:15] [PASSED] ttm_bo_unreserve_bulk
[13:12:15] [PASSED] ttm_bo_fini_basic
[13:12:15] [PASSED] ttm_bo_fini_shared_resv
[13:12:15] [PASSED] ttm_bo_pin_basic
[13:12:15] [PASSED] ttm_bo_pin_unpin_resource
[13:12:15] [PASSED] ttm_bo_multiple_pin_one_unpin
[13:12:15] ===================== [PASSED] ttm_bo ======================
[13:12:15] ============== ttm_bo_validate (21 subtests) ===============
[13:12:15] ============== ttm_bo_init_reserved_sys_man ===============
[13:12:15] [PASSED] Buffer object for userspace
[13:12:15] [PASSED] Kernel buffer object
[13:12:15] [PASSED] Shared buffer object
[13:12:15] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[13:12:15] ============== ttm_bo_init_reserved_mock_man ==============
[13:12:15] [PASSED] Buffer object for userspace
[13:12:15] [PASSED] Kernel buffer object
[13:12:15] [PASSED] Shared buffer object
[13:12:15] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[13:12:15] [PASSED] ttm_bo_init_reserved_resv
[13:12:15] ================== ttm_bo_validate_basic ==================
[13:12:15] [PASSED] Buffer object for userspace
[13:12:15] [PASSED] Kernel buffer object
[13:12:15] [PASSED] Shared buffer object
[13:12:15] ============== [PASSED] ttm_bo_validate_basic ==============
[13:12:15] [PASSED] ttm_bo_validate_invalid_placement
[13:12:15] ============= ttm_bo_validate_same_placement ==============
[13:12:15] [PASSED] System manager
[13:12:15] [PASSED] VRAM manager
[13:12:15] ========= [PASSED] ttm_bo_validate_same_placement ==========
[13:12:15] [PASSED] ttm_bo_validate_failed_alloc
[13:12:15] [PASSED] ttm_bo_validate_pinned
[13:12:15] [PASSED] ttm_bo_validate_busy_placement
[13:12:15] ================ ttm_bo_validate_multihop =================
[13:12:15] [PASSED] Buffer object for userspace
[13:12:15] [PASSED] Kernel buffer object
[13:12:15] [PASSED] Shared buffer object
[13:12:15] ============ [PASSED] ttm_bo_validate_multihop =============
[13:12:15] ========== ttm_bo_validate_no_placement_signaled ==========
[13:12:15] [PASSED] Buffer object in system domain, no page vector
[13:12:15] [PASSED] Buffer object in system domain with an existing page vector
[13:12:15] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[13:12:15] ======== ttm_bo_validate_no_placement_not_signaled ========
[13:12:15] [PASSED] Buffer object for userspace
[13:12:15] [PASSED] Kernel buffer object
[13:12:15] [PASSED] Shared buffer object
[13:12:15] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[13:12:15] [PASSED] ttm_bo_validate_move_fence_signaled
[13:12:15] ========= ttm_bo_validate_move_fence_not_signaled =========
[13:12:15] [PASSED] Waits for GPU
[13:12:15] [PASSED] Tries to lock straight away
[13:12:15] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[13:12:15] [PASSED] ttm_bo_validate_happy_evict
[13:12:15] [PASSED] ttm_bo_validate_all_pinned_evict
[13:12:15] [PASSED] ttm_bo_validate_allowed_only_evict
[13:12:15] [PASSED] ttm_bo_validate_deleted_evict
[13:12:15] [PASSED] ttm_bo_validate_busy_domain_evict
[13:12:15] [PASSED] ttm_bo_validate_evict_gutting
[13:12:15] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[13:12:15] ================= [PASSED] ttm_bo_validate =================
[13:12:15] ============================================================
[13:12:15] Testing complete. Ran 101 tests: passed: 101
[13:12:15] Elapsed time: 11.093s total, 1.675s configuring, 9.151s building, 0.228s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 16+ messages in thread* ✗ CI.checksparse: warning for drm/i915/display: All patches to make PREEMPT_RT work on xe.
2025-12-12 13:02 [PATCH 00/11] drm/i915/display: All patches to make PREEMPT_RT work on xe Maarten Lankhorst
` (12 preceding siblings ...)
2025-12-12 13:12 ` ✓ CI.KUnit: success " Patchwork
@ 2025-12-12 13:26 ` Patchwork
2025-12-12 14:15 ` ✗ Xe.CI.BAT: failure " Patchwork
14 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2025-12-12 13:26 UTC (permalink / raw)
To: Maarten Lankhorst; +Cc: intel-xe
== Series Details ==
Series: drm/i915/display: All patches to make PREEMPT_RT work on xe.
URL : https://patchwork.freedesktop.org/series/158855/
State : warning
== Summary ==
+ trap cleanup EXIT
+ KERNEL=/kernel
+ MT=/root/linux/maintainer-tools
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools /root/linux/maintainer-tools
Cloning into '/root/linux/maintainer-tools'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ make -C /root/linux/maintainer-tools
make: Entering directory '/root/linux/maintainer-tools'
cc -O2 -g -Wextra -o remap-log remap-log.c
make: Leaving directory '/root/linux/maintainer-tools'
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ /root/linux/maintainer-tools/dim sparse --fast 7b8d2fe4514c3edbca3326b592b2fb0bd530527d
Sparse version: 0.6.4 (Ubuntu: 0.6.4-4ubuntu3)
Fast mode used, each commit won't be checked separately.
-
+drivers/gpu/drm/drm_bridge.c:220:6: warning: context imbalance in 'drm_bridge_enter' - different lock contexts for basic block
+drivers/gpu/drm/drm_bridge.c: note: in included file (through include/linux/notifier.h, arch/x86/include/asm/uprobes.h, include/linux/uprobes.h, include/linux/mm_types.h, include/linux/mmzone.h, include/linux/gfp.h, ...):
+drivers/gpu/drm/drm_drv.c:449:6: warning: context imbalance in 'drm_dev_enter' - different lock contexts for basic block
+drivers/gpu/drm/drm_drv.c: note: in included file (through include/linux/notifier.h, arch/x86/include/asm/uprobes.h, include/linux/uprobes.h, include/linux/mm_types.h, include/linux/mmzone.h, include/linux/gfp.h, ...):
+drivers/gpu/drm/drm_gem.c:487:9: warning: context imbalance in 'drm_gem_handle_create_tail' - unexpected unlock
+drivers/gpu/drm/drm_syncobj.c:602:24: warning: context imbalance in 'drm_syncobj_get_handle' - unexpected unlock
+drivers/gpu/drm/drm_syncobj.c:727:24: warning: context imbalance in 'drm_syncobj_fd_to_handle' - unexpected unlock
+./include/linux/srcu.h:389:9: warning: context imbalance in 'drm_bridge_exit' - unexpected unlock
+./include/linux/srcu.h:389:9: warning: context imbalance in 'drm_dev_exit' - unexpected unlock
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 16+ messages in thread* ✗ Xe.CI.BAT: failure for drm/i915/display: All patches to make PREEMPT_RT work on xe.
2025-12-12 13:02 [PATCH 00/11] drm/i915/display: All patches to make PREEMPT_RT work on xe Maarten Lankhorst
` (13 preceding siblings ...)
2025-12-12 13:26 ` ✗ CI.checksparse: warning " Patchwork
@ 2025-12-12 14:15 ` Patchwork
14 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2025-12-12 14:15 UTC (permalink / raw)
To: Maarten Lankhorst; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 6413 bytes --]
== Series Details ==
Series: drm/i915/display: All patches to make PREEMPT_RT work on xe.
URL : https://patchwork.freedesktop.org/series/158855/
State : failure
== Summary ==
CI Bug Log - changes from xe-4230-7b8d2fe4514c3edbca3326b592b2fb0bd530527d_BAT -> xe-pw-158855v1_BAT
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with xe-pw-158855v1_BAT absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in xe-pw-158855v1_BAT, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (11 -> 12)
------------------------------
Additional (1): bat-dg2-oem2
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in xe-pw-158855v1_BAT:
### IGT changes ###
#### Possible regressions ####
* igt@kms_force_connector_basic@force-connector-state:
- bat-ptl-1: [PASS][1] -> [ABORT][2]
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4230-7b8d2fe4514c3edbca3326b592b2fb0bd530527d/bat-ptl-1/igt@kms_force_connector_basic@force-connector-state.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-158855v1/bat-ptl-1/igt@kms_force_connector_basic@force-connector-state.html
* igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-prefetch:
- bat-ptl-vm: [PASS][3] -> [ABORT][4]
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4230-7b8d2fe4514c3edbca3326b592b2fb0bd530527d/bat-ptl-vm/igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-prefetch.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-158855v1/bat-ptl-vm/igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-prefetch.html
* igt@xe_module_load@load:
- bat-ptl-2: [PASS][5] -> [ABORT][6]
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4230-7b8d2fe4514c3edbca3326b592b2fb0bd530527d/bat-ptl-2/igt@xe_module_load@load.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-158855v1/bat-ptl-2/igt@xe_module_load@load.html
Known issues
------------
Here are the changes found in xe-pw-158855v1_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- bat-dg2-oem2: NOTRUN -> [SKIP][7] ([Intel XE#623])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-158855v1/bat-dg2-oem2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_dsc@dsc-basic:
- bat-dg2-oem2: NOTRUN -> [SKIP][8] ([Intel XE#455])
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-158855v1/bat-dg2-oem2/igt@kms_dsc@dsc-basic.html
* igt@kms_psr@psr-cursor-plane-move:
- bat-dg2-oem2: NOTRUN -> [SKIP][9] ([Intel XE#1406] / [Intel XE#2850] / [Intel XE#929]) +2 other tests skip
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-158855v1/bat-dg2-oem2/igt@kms_psr@psr-cursor-plane-move.html
* igt@sriov_basic@enable-vfs-autoprobe-off:
- bat-dg2-oem2: NOTRUN -> [SKIP][10] ([Intel XE#1091] / [Intel XE#2849]) +1 other test skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-158855v1/bat-dg2-oem2/igt@sriov_basic@enable-vfs-autoprobe-off.html
* igt@xe_exec_fault_mode@twice-bindexecqueue-userptr:
- bat-dg2-oem2: NOTRUN -> [SKIP][11] ([Intel XE#288]) +32 other tests skip
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-158855v1/bat-dg2-oem2/igt@xe_exec_fault_mode@twice-bindexecqueue-userptr.html
* igt@xe_huc_copy@huc_copy:
- bat-dg2-oem2: NOTRUN -> [SKIP][12] ([Intel XE#255])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-158855v1/bat-dg2-oem2/igt@xe_huc_copy@huc_copy.html
* igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit:
- bat-dg2-oem2: NOTRUN -> [SKIP][13] ([Intel XE#2229])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-158855v1/bat-dg2-oem2/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
* igt@xe_pat@pat-index-xe2:
- bat-dg2-oem2: NOTRUN -> [SKIP][14] ([Intel XE#977])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-158855v1/bat-dg2-oem2/igt@xe_pat@pat-index-xe2.html
* igt@xe_pat@pat-index-xehpc:
- bat-dg2-oem2: NOTRUN -> [SKIP][15] ([Intel XE#2838] / [Intel XE#979])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-158855v1/bat-dg2-oem2/igt@xe_pat@pat-index-xehpc.html
* igt@xe_pat@pat-index-xelpg:
- bat-dg2-oem2: NOTRUN -> [SKIP][16] ([Intel XE#979])
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-158855v1/bat-dg2-oem2/igt@xe_pat@pat-index-xelpg.html
* igt@xe_sriov_flr@flr-vf1-clear:
- bat-dg2-oem2: NOTRUN -> [SKIP][17] ([Intel XE#3342])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-158855v1/bat-dg2-oem2/igt@xe_sriov_flr@flr-vf1-clear.html
[Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
[Intel XE#255]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/255
[Intel XE#2838]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2838
[Intel XE#2849]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2849
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#3342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3342
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[Intel XE#623]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/623
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#977]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/977
[Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979
Build changes
-------------
* Linux: xe-4230-7b8d2fe4514c3edbca3326b592b2fb0bd530527d -> xe-pw-158855v1
IGT_8664: 28cc709ad89c0ef569569f19f4772d4cca354963 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-4230-7b8d2fe4514c3edbca3326b592b2fb0bd530527d: 7b8d2fe4514c3edbca3326b592b2fb0bd530527d
xe-pw-158855v1: 158855v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-158855v1/index.html
[-- Attachment #2: Type: text/html, Size: 7378 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread