Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH] drm/i915/display: Prevent NV12 Y-plane allocation from stealing userspace planes
@ 2026-02-12  0:48 Khaled Almahallawy
  2026-02-12  1:54 ` ✗ CI.checkpatch: warning for " Patchwork
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Khaled Almahallawy @ 2026-02-12  0:48 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: Khaled Almahallawy, Uma Shankar, Jani Nikula, Ville Syrjala

The driver automatically allocates a Y-plane (4A/5A) when userspace
configures an NV12 surface. The allocation loop doesn't check if a
candidate plane is already configured by userspace in the same atomic
commit, causing conflict as observed in this i915_display_info:

  [PLANE:124:plane 4A]: type=OVL
      uapi: [FB:566] AB24 little-endian (0x34324241),0x0,1920x1280, visible=visible
      planar: Linked to [PLANE:34:plane 1A] as a Y plane
      hw: [FB:564] NV12 little-endian (0x3231564e),0x0,1920x1080, visible=yes

Plane 4A's uapi state shows userspace's AB24 framebuffer, but the hw
state shows it was reprogrammed with the NV12 Y-plane.

Example triggered by experiment with IGT test to commit NV12 + multiple
AB24 planes:

  === Testing with NV12 primary + 3 ABGR8888 overlays ===
    Plane 0 (Primary): NV12 1920x1080 at (0, 0)
    Plane 1 (Overlay 0): ABGR8888 1920x1280 (fullscreen) at (0, 0)
    Plane 2 (Overlay 1): ABGR8888 1920x1280 (fullscreen) at (0, 0)
    Plane 3 (Overlay 2): ABGR8888 1920x1280 (fullscreen) at (0, 0)
    TEST_ONLY passed, committing...
    Atomic commit SUCCEEDED

The bug triggers a kernel WARNING in unlink_nv12_plane():
  WARNING: drivers/gpu/drm/i915/display/intel_plane.c:1521
  drm_WARN_ON(plane_state->uapi.visible)

Fix by checking uapi.fb before allocating a Y-plane. If set, userspace
configured this plane, so skip to the next candidate. This enables
graceful fallback (4A busy -> try 5A) rather than the current
behavior that steals planes from userspace.

IGT test and kernel fix generated with assistance from Claude Sonnet 4.5
through an iterative process. The following is a summary of the prompts
used:

IGT test generation prompt:
Need an IGT test to:
1. Reproduce the NV12 + multiple AB24 plane allocation conflict
2. Work across different GPU vendors (not Intel-specific)
3. Discover hardware limits through iteration (not hardcoded)
4. Test atomic commit behavior with mixed formats
5. Validate driver properly rejects invalid configurations
6. Help debug plane allocation issues (interactive inspection)

Kernel fix debug process:
1. Explained NV12 UV->Y plane linking mechanism (link_nv12_planes)
2. Traced Y-plane selection algorithm and hardware constraints
3. Analyzed i915_display_info output showing uapi vs hw state mismatch
4. Triggered kernel WARNING in unlink_nv12_plane() confirming the bug
5. Traced kernel logs through atomic commit sequence
6. Identified root cause: Y-plane allocation checks uapi.crtc, but that's
   set later during plane validation. uapi.fb is set earlier during state
   setup, making it the correct indicator of userspace configuration
7. Evaluated uapi.fb vs uapi.visible for detection timing
8. Initially suggested rejecting commit with -EINVAL, but decided graceful
   fallback with continue is better - allows trying alternate Y-planes
   (4A busy -> 5A) instead of failing entire atomic commit
9. Validated fix prevents plane stealing while allowing alternate Y-plane

Cc: Uma Shankar <uma.shankar@intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Signed-off-by: Khaled Almahallawy <khaled.almahallawy@intel.com>
---
 drivers/gpu/drm/i915/display/intel_plane.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_plane.c b/drivers/gpu/drm/i915/display/intel_plane.c
index 3dc2ed52147f..57d1a9cd226e 100644
--- a/drivers/gpu/drm/i915/display/intel_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_plane.c
@@ -1578,6 +1578,10 @@ static int icl_check_nv12_planes(struct intel_atomic_state *state,
 			if (IS_ERR(y_plane_state))
 				return PTR_ERR(y_plane_state);
 
+			/* Reject if this Y-plane is being configured by userspace */
+			if (y_plane_state->uapi.fb)
+				continue;
+
 			break;
 		}
 
-- 
2.43.0


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

* ✗ CI.checkpatch: warning for drm/i915/display: Prevent NV12 Y-plane allocation from stealing userspace planes
  2026-02-12  0:48 [RFC PATCH] drm/i915/display: Prevent NV12 Y-plane allocation from stealing userspace planes Khaled Almahallawy
@ 2026-02-12  1:54 ` Patchwork
  2026-02-12  1:55 ` ✓ CI.KUnit: success " Patchwork
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-02-12  1:54 UTC (permalink / raw)
  To: Khaled Almahallawy; +Cc: intel-xe

== Series Details ==

Series: drm/i915/display: Prevent NV12 Y-plane allocation from stealing userspace planes
URL   : https://patchwork.freedesktop.org/series/161521/
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
1f57ba1afceae32108bd24770069f764d940a0e4
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 0ecf88141d256098eee1dc1f355854bf02aed97d
Author: Khaled Almahallawy <khaled.almahallawy@intel.com>
Date:   Wed Feb 11 16:48:52 2026 -0800

    drm/i915/display: Prevent NV12 Y-plane allocation from stealing userspace planes
    
    The driver automatically allocates a Y-plane (4A/5A) when userspace
    configures an NV12 surface. The allocation loop doesn't check if a
    candidate plane is already configured by userspace in the same atomic
    commit, causing conflict as observed in this i915_display_info:
    
      [PLANE:124:plane 4A]: type=OVL
          uapi: [FB:566] AB24 little-endian (0x34324241),0x0,1920x1280, visible=visible
          planar: Linked to [PLANE:34:plane 1A] as a Y plane
          hw: [FB:564] NV12 little-endian (0x3231564e),0x0,1920x1080, visible=yes
    
    Plane 4A's uapi state shows userspace's AB24 framebuffer, but the hw
    state shows it was reprogrammed with the NV12 Y-plane.
    
    Example triggered by experiment with IGT test to commit NV12 + multiple
    AB24 planes:
    
      === Testing with NV12 primary + 3 ABGR8888 overlays ===
        Plane 0 (Primary): NV12 1920x1080 at (0, 0)
        Plane 1 (Overlay 0): ABGR8888 1920x1280 (fullscreen) at (0, 0)
        Plane 2 (Overlay 1): ABGR8888 1920x1280 (fullscreen) at (0, 0)
        Plane 3 (Overlay 2): ABGR8888 1920x1280 (fullscreen) at (0, 0)
        TEST_ONLY passed, committing...
        Atomic commit SUCCEEDED
    
    The bug triggers a kernel WARNING in unlink_nv12_plane():
      WARNING: drivers/gpu/drm/i915/display/intel_plane.c:1521
      drm_WARN_ON(plane_state->uapi.visible)
    
    Fix by checking uapi.fb before allocating a Y-plane. If set, userspace
    configured this plane, so skip to the next candidate. This enables
    graceful fallback (4A busy -> try 5A) rather than the current
    behavior that steals planes from userspace.
    
    IGT test and kernel fix generated with assistance from Claude Sonnet 4.5
    through an iterative process. The following is a summary of the prompts
    used:
    
    IGT test generation prompt:
    Need an IGT test to:
    1. Reproduce the NV12 + multiple AB24 plane allocation conflict
    2. Work across different GPU vendors (not Intel-specific)
    3. Discover hardware limits through iteration (not hardcoded)
    4. Test atomic commit behavior with mixed formats
    5. Validate driver properly rejects invalid configurations
    6. Help debug plane allocation issues (interactive inspection)
    
    Kernel fix debug process:
    1. Explained NV12 UV->Y plane linking mechanism (link_nv12_planes)
    2. Traced Y-plane selection algorithm and hardware constraints
    3. Analyzed i915_display_info output showing uapi vs hw state mismatch
    4. Triggered kernel WARNING in unlink_nv12_plane() confirming the bug
    5. Traced kernel logs through atomic commit sequence
    6. Identified root cause: Y-plane allocation checks uapi.crtc, but that's
       set later during plane validation. uapi.fb is set earlier during state
       setup, making it the correct indicator of userspace configuration
    7. Evaluated uapi.fb vs uapi.visible for detection timing
    8. Initially suggested rejecting commit with -EINVAL, but decided graceful
       fallback with continue is better - allows trying alternate Y-planes
       (4A busy -> 5A) instead of failing entire atomic commit
    9. Validated fix prevents plane stealing while allowing alternate Y-plane
    
    Cc: Uma Shankar <uma.shankar@intel.com>
    Cc: Jani Nikula <jani.nikula@intel.com>
    Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
    Signed-off-by: Khaled Almahallawy <khaled.almahallawy@intel.com>
+ /mt/dim checkpatch b4bfe7d753afaf6ea4950111a309a4e2ef5aef68 drm-intel
0ecf88141d25 drm/i915/display: Prevent NV12 Y-plane allocation from stealing userspace planes
-:13: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#13: 
      uapi: [FB:566] AB24 little-endian (0x34324241),0x0,1920x1280, visible=visible

total: 0 errors, 1 warnings, 0 checks, 10 lines checked



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

* ✓ CI.KUnit: success for drm/i915/display: Prevent NV12 Y-plane allocation from stealing userspace planes
  2026-02-12  0:48 [RFC PATCH] drm/i915/display: Prevent NV12 Y-plane allocation from stealing userspace planes Khaled Almahallawy
  2026-02-12  1:54 ` ✗ CI.checkpatch: warning for " Patchwork
@ 2026-02-12  1:55 ` Patchwork
  2026-02-12  2:29 ` ✓ Xe.CI.BAT: " Patchwork
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-02-12  1:55 UTC (permalink / raw)
  To: Khaled Almahallawy; +Cc: intel-xe

== Series Details ==

Series: drm/i915/display: Prevent NV12 Y-plane allocation from stealing userspace planes
URL   : https://patchwork.freedesktop.org/series/161521/
State : success

== Summary ==

+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[01:54:08] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[01:54:12] 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
[01:54:44] Starting KUnit Kernel (1/1)...
[01:54:44] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[01:54:44] ================== guc_buf (11 subtests) ===================
[01:54:44] [PASSED] test_smallest
[01:54:44] [PASSED] test_largest
[01:54:44] [PASSED] test_granular
[01:54:44] [PASSED] test_unique
[01:54:44] [PASSED] test_overlap
[01:54:44] [PASSED] test_reusable
[01:54:44] [PASSED] test_too_big
[01:54:44] [PASSED] test_flush
[01:54:44] [PASSED] test_lookup
[01:54:44] [PASSED] test_data
[01:54:44] [PASSED] test_class
[01:54:44] ===================== [PASSED] guc_buf =====================
[01:54:44] =================== guc_dbm (7 subtests) ===================
[01:54:44] [PASSED] test_empty
[01:54:44] [PASSED] test_default
[01:54:44] ======================== test_size  ========================
[01:54:44] [PASSED] 4
[01:54:44] [PASSED] 8
[01:54:44] [PASSED] 32
[01:54:44] [PASSED] 256
[01:54:44] ==================== [PASSED] test_size ====================
[01:54:44] ======================= test_reuse  ========================
[01:54:44] [PASSED] 4
[01:54:44] [PASSED] 8
[01:54:44] [PASSED] 32
[01:54:44] [PASSED] 256
[01:54:44] =================== [PASSED] test_reuse ====================
[01:54:44] =================== test_range_overlap  ====================
[01:54:44] [PASSED] 4
[01:54:44] [PASSED] 8
[01:54:44] [PASSED] 32
[01:54:44] [PASSED] 256
[01:54:44] =============== [PASSED] test_range_overlap ================
[01:54:44] =================== test_range_compact  ====================
[01:54:44] [PASSED] 4
[01:54:44] [PASSED] 8
[01:54:44] [PASSED] 32
[01:54:44] [PASSED] 256
[01:54:44] =============== [PASSED] test_range_compact ================
[01:54:44] ==================== test_range_spare  =====================
[01:54:44] [PASSED] 4
[01:54:44] [PASSED] 8
[01:54:44] [PASSED] 32
[01:54:44] [PASSED] 256
[01:54:44] ================ [PASSED] test_range_spare =================
[01:54:44] ===================== [PASSED] guc_dbm =====================
[01:54:44] =================== guc_idm (6 subtests) ===================
[01:54:44] [PASSED] bad_init
[01:54:44] [PASSED] no_init
[01:54:44] [PASSED] init_fini
[01:54:44] [PASSED] check_used
[01:54:44] [PASSED] check_quota
[01:54:44] [PASSED] check_all
[01:54:44] ===================== [PASSED] guc_idm =====================
[01:54:44] ================== no_relay (3 subtests) ===================
[01:54:44] [PASSED] xe_drops_guc2pf_if_not_ready
[01:54:44] [PASSED] xe_drops_guc2vf_if_not_ready
[01:54:44] [PASSED] xe_rejects_send_if_not_ready
[01:54:44] ==================== [PASSED] no_relay =====================
[01:54:44] ================== pf_relay (14 subtests) ==================
[01:54:44] [PASSED] pf_rejects_guc2pf_too_short
[01:54:44] [PASSED] pf_rejects_guc2pf_too_long
[01:54:44] [PASSED] pf_rejects_guc2pf_no_payload
[01:54:44] [PASSED] pf_fails_no_payload
[01:54:44] [PASSED] pf_fails_bad_origin
[01:54:44] [PASSED] pf_fails_bad_type
[01:54:44] [PASSED] pf_txn_reports_error
[01:54:44] [PASSED] pf_txn_sends_pf2guc
[01:54:44] [PASSED] pf_sends_pf2guc
[01:54:44] [SKIPPED] pf_loopback_nop
[01:54:44] [SKIPPED] pf_loopback_echo
[01:54:44] [SKIPPED] pf_loopback_fail
[01:54:44] [SKIPPED] pf_loopback_busy
[01:54:44] [SKIPPED] pf_loopback_retry
[01:54:44] ==================== [PASSED] pf_relay =====================
[01:54:44] ================== vf_relay (3 subtests) ===================
[01:54:44] [PASSED] vf_rejects_guc2vf_too_short
[01:54:44] [PASSED] vf_rejects_guc2vf_too_long
[01:54:44] [PASSED] vf_rejects_guc2vf_no_payload
[01:54:44] ==================== [PASSED] vf_relay =====================
[01:54:44] ================ pf_gt_config (6 subtests) =================
[01:54:44] [PASSED] fair_contexts_1vf
[01:54:44] [PASSED] fair_doorbells_1vf
[01:54:44] [PASSED] fair_ggtt_1vf
[01:54:44] ====================== fair_contexts  ======================
[01:54:44] [PASSED] 1 VF
[01:54:44] [PASSED] 2 VFs
[01:54:44] [PASSED] 3 VFs
[01:54:44] [PASSED] 4 VFs
[01:54:44] [PASSED] 5 VFs
[01:54:44] [PASSED] 6 VFs
[01:54:44] [PASSED] 7 VFs
[01:54:44] [PASSED] 8 VFs
[01:54:44] [PASSED] 9 VFs
[01:54:44] [PASSED] 10 VFs
[01:54:44] [PASSED] 11 VFs
[01:54:44] [PASSED] 12 VFs
[01:54:44] [PASSED] 13 VFs
[01:54:44] [PASSED] 14 VFs
[01:54:44] [PASSED] 15 VFs
[01:54:44] [PASSED] 16 VFs
[01:54:44] [PASSED] 17 VFs
[01:54:44] [PASSED] 18 VFs
[01:54:44] [PASSED] 19 VFs
[01:54:44] [PASSED] 20 VFs
[01:54:44] [PASSED] 21 VFs
[01:54:44] [PASSED] 22 VFs
[01:54:44] [PASSED] 23 VFs
[01:54:44] [PASSED] 24 VFs
[01:54:44] [PASSED] 25 VFs
[01:54:44] [PASSED] 26 VFs
[01:54:44] [PASSED] 27 VFs
[01:54:44] [PASSED] 28 VFs
[01:54:44] [PASSED] 29 VFs
[01:54:44] [PASSED] 30 VFs
[01:54:44] [PASSED] 31 VFs
[01:54:44] [PASSED] 32 VFs
[01:54:44] [PASSED] 33 VFs
[01:54:44] [PASSED] 34 VFs
[01:54:44] [PASSED] 35 VFs
[01:54:44] [PASSED] 36 VFs
[01:54:44] [PASSED] 37 VFs
[01:54:44] [PASSED] 38 VFs
[01:54:44] [PASSED] 39 VFs
[01:54:44] [PASSED] 40 VFs
[01:54:44] [PASSED] 41 VFs
[01:54:44] [PASSED] 42 VFs
[01:54:44] [PASSED] 43 VFs
[01:54:44] [PASSED] 44 VFs
[01:54:44] [PASSED] 45 VFs
[01:54:44] [PASSED] 46 VFs
[01:54:44] [PASSED] 47 VFs
[01:54:44] [PASSED] 48 VFs
[01:54:44] [PASSED] 49 VFs
[01:54:44] [PASSED] 50 VFs
[01:54:44] [PASSED] 51 VFs
[01:54:44] [PASSED] 52 VFs
[01:54:44] [PASSED] 53 VFs
[01:54:44] [PASSED] 54 VFs
[01:54:44] [PASSED] 55 VFs
[01:54:44] [PASSED] 56 VFs
[01:54:44] [PASSED] 57 VFs
[01:54:44] [PASSED] 58 VFs
[01:54:44] [PASSED] 59 VFs
[01:54:44] [PASSED] 60 VFs
[01:54:44] [PASSED] 61 VFs
[01:54:44] [PASSED] 62 VFs
[01:54:44] [PASSED] 63 VFs
[01:54:44] ================== [PASSED] fair_contexts ==================
[01:54:44] ===================== fair_doorbells  ======================
[01:54:44] [PASSED] 1 VF
[01:54:44] [PASSED] 2 VFs
[01:54:44] [PASSED] 3 VFs
[01:54:44] [PASSED] 4 VFs
[01:54:44] [PASSED] 5 VFs
[01:54:44] [PASSED] 6 VFs
[01:54:44] [PASSED] 7 VFs
[01:54:44] [PASSED] 8 VFs
[01:54:44] [PASSED] 9 VFs
[01:54:44] [PASSED] 10 VFs
[01:54:44] [PASSED] 11 VFs
[01:54:44] [PASSED] 12 VFs
[01:54:44] [PASSED] 13 VFs
[01:54:44] [PASSED] 14 VFs
[01:54:44] [PASSED] 15 VFs
[01:54:44] [PASSED] 16 VFs
[01:54:44] [PASSED] 17 VFs
[01:54:44] [PASSED] 18 VFs
[01:54:44] [PASSED] 19 VFs
[01:54:44] [PASSED] 20 VFs
[01:54:44] [PASSED] 21 VFs
[01:54:44] [PASSED] 22 VFs
[01:54:44] [PASSED] 23 VFs
[01:54:44] [PASSED] 24 VFs
[01:54:44] [PASSED] 25 VFs
[01:54:44] [PASSED] 26 VFs
[01:54:44] [PASSED] 27 VFs
[01:54:44] [PASSED] 28 VFs
[01:54:44] [PASSED] 29 VFs
[01:54:44] [PASSED] 30 VFs
[01:54:44] [PASSED] 31 VFs
[01:54:44] [PASSED] 32 VFs
[01:54:44] [PASSED] 33 VFs
[01:54:44] [PASSED] 34 VFs
[01:54:44] [PASSED] 35 VFs
[01:54:44] [PASSED] 36 VFs
[01:54:44] [PASSED] 37 VFs
[01:54:44] [PASSED] 38 VFs
[01:54:44] [PASSED] 39 VFs
[01:54:44] [PASSED] 40 VFs
[01:54:44] [PASSED] 41 VFs
[01:54:44] [PASSED] 42 VFs
[01:54:44] [PASSED] 43 VFs
[01:54:44] [PASSED] 44 VFs
[01:54:44] [PASSED] 45 VFs
[01:54:44] [PASSED] 46 VFs
[01:54:45] [PASSED] 47 VFs
[01:54:45] [PASSED] 48 VFs
[01:54:45] [PASSED] 49 VFs
[01:54:45] [PASSED] 50 VFs
[01:54:45] [PASSED] 51 VFs
[01:54:45] [PASSED] 52 VFs
[01:54:45] [PASSED] 53 VFs
[01:54:45] [PASSED] 54 VFs
[01:54:45] [PASSED] 55 VFs
[01:54:45] [PASSED] 56 VFs
[01:54:45] [PASSED] 57 VFs
[01:54:45] [PASSED] 58 VFs
[01:54:45] [PASSED] 59 VFs
[01:54:45] [PASSED] 60 VFs
[01:54:45] [PASSED] 61 VFs
[01:54:45] [PASSED] 62 VFs
[01:54:45] [PASSED] 63 VFs
[01:54:45] ================= [PASSED] fair_doorbells ==================
[01:54:45] ======================== fair_ggtt  ========================
[01:54:45] [PASSED] 1 VF
[01:54:45] [PASSED] 2 VFs
[01:54:45] [PASSED] 3 VFs
[01:54:45] [PASSED] 4 VFs
[01:54:45] [PASSED] 5 VFs
[01:54:45] [PASSED] 6 VFs
[01:54:45] [PASSED] 7 VFs
[01:54:45] [PASSED] 8 VFs
[01:54:45] [PASSED] 9 VFs
[01:54:45] [PASSED] 10 VFs
[01:54:45] [PASSED] 11 VFs
[01:54:45] [PASSED] 12 VFs
[01:54:45] [PASSED] 13 VFs
[01:54:45] [PASSED] 14 VFs
[01:54:45] [PASSED] 15 VFs
[01:54:45] [PASSED] 16 VFs
[01:54:45] [PASSED] 17 VFs
[01:54:45] [PASSED] 18 VFs
[01:54:45] [PASSED] 19 VFs
[01:54:45] [PASSED] 20 VFs
[01:54:45] [PASSED] 21 VFs
[01:54:45] [PASSED] 22 VFs
[01:54:45] [PASSED] 23 VFs
[01:54:45] [PASSED] 24 VFs
[01:54:45] [PASSED] 25 VFs
[01:54:45] [PASSED] 26 VFs
[01:54:45] [PASSED] 27 VFs
[01:54:45] [PASSED] 28 VFs
[01:54:45] [PASSED] 29 VFs
[01:54:45] [PASSED] 30 VFs
[01:54:45] [PASSED] 31 VFs
[01:54:45] [PASSED] 32 VFs
[01:54:45] [PASSED] 33 VFs
[01:54:45] [PASSED] 34 VFs
[01:54:45] [PASSED] 35 VFs
[01:54:45] [PASSED] 36 VFs
[01:54:45] [PASSED] 37 VFs
[01:54:45] [PASSED] 38 VFs
[01:54:45] [PASSED] 39 VFs
[01:54:45] [PASSED] 40 VFs
[01:54:45] [PASSED] 41 VFs
[01:54:45] [PASSED] 42 VFs
[01:54:45] [PASSED] 43 VFs
[01:54:45] [PASSED] 44 VFs
[01:54:45] [PASSED] 45 VFs
[01:54:45] [PASSED] 46 VFs
[01:54:45] [PASSED] 47 VFs
[01:54:45] [PASSED] 48 VFs
[01:54:45] [PASSED] 49 VFs
[01:54:45] [PASSED] 50 VFs
[01:54:45] [PASSED] 51 VFs
[01:54:45] [PASSED] 52 VFs
[01:54:45] [PASSED] 53 VFs
[01:54:45] [PASSED] 54 VFs
[01:54:45] [PASSED] 55 VFs
[01:54:45] [PASSED] 56 VFs
[01:54:45] [PASSED] 57 VFs
[01:54:45] [PASSED] 58 VFs
[01:54:45] [PASSED] 59 VFs
[01:54:45] [PASSED] 60 VFs
[01:54:45] [PASSED] 61 VFs
[01:54:45] [PASSED] 62 VFs
[01:54:45] [PASSED] 63 VFs
[01:54:45] ==================== [PASSED] fair_ggtt ====================
[01:54:45] ================== [PASSED] pf_gt_config ===================
[01:54:45] ===================== lmtt (1 subtest) =====================
[01:54:45] ======================== test_ops  =========================
[01:54:45] [PASSED] 2-level
[01:54:45] [PASSED] multi-level
[01:54:45] ==================== [PASSED] test_ops =====================
[01:54:45] ====================== [PASSED] lmtt =======================
[01:54:45] ================= pf_service (11 subtests) =================
[01:54:45] [PASSED] pf_negotiate_any
[01:54:45] [PASSED] pf_negotiate_base_match
[01:54:45] [PASSED] pf_negotiate_base_newer
[01:54:45] [PASSED] pf_negotiate_base_next
[01:54:45] [SKIPPED] pf_negotiate_base_older
[01:54:45] [PASSED] pf_negotiate_base_prev
[01:54:45] [PASSED] pf_negotiate_latest_match
[01:54:45] [PASSED] pf_negotiate_latest_newer
[01:54:45] [PASSED] pf_negotiate_latest_next
[01:54:45] [SKIPPED] pf_negotiate_latest_older
[01:54:45] [SKIPPED] pf_negotiate_latest_prev
[01:54:45] =================== [PASSED] pf_service ====================
[01:54:45] ================= xe_guc_g2g (2 subtests) ==================
[01:54:45] ============== xe_live_guc_g2g_kunit_default  ==============
[01:54:45] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[01:54:45] ============== xe_live_guc_g2g_kunit_allmem  ===============
[01:54:45] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[01:54:45] =================== [SKIPPED] xe_guc_g2g ===================
[01:54:45] =================== xe_mocs (2 subtests) ===================
[01:54:45] ================ xe_live_mocs_kernel_kunit  ================
[01:54:45] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[01:54:45] ================ xe_live_mocs_reset_kunit  =================
[01:54:45] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[01:54:45] ==================== [SKIPPED] xe_mocs =====================
[01:54:45] ================= xe_migrate (2 subtests) ==================
[01:54:45] ================= xe_migrate_sanity_kunit  =================
[01:54:45] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[01:54:45] ================== xe_validate_ccs_kunit  ==================
[01:54:45] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[01:54:45] =================== [SKIPPED] xe_migrate ===================
[01:54:45] ================== xe_dma_buf (1 subtest) ==================
[01:54:45] ==================== xe_dma_buf_kunit  =====================
[01:54:45] ================ [SKIPPED] xe_dma_buf_kunit ================
[01:54:45] =================== [SKIPPED] xe_dma_buf ===================
[01:54:45] ================= xe_bo_shrink (1 subtest) =================
[01:54:45] =================== xe_bo_shrink_kunit  ====================
[01:54:45] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[01:54:45] ================== [SKIPPED] xe_bo_shrink ==================
[01:54:45] ==================== xe_bo (2 subtests) ====================
[01:54:45] ================== xe_ccs_migrate_kunit  ===================
[01:54:45] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[01:54:45] ==================== xe_bo_evict_kunit  ====================
[01:54:45] =============== [SKIPPED] xe_bo_evict_kunit ================
[01:54:45] ===================== [SKIPPED] xe_bo ======================
[01:54:45] ==================== args (13 subtests) ====================
[01:54:45] [PASSED] count_args_test
[01:54:45] [PASSED] call_args_example
[01:54:45] [PASSED] call_args_test
[01:54:45] [PASSED] drop_first_arg_example
[01:54:45] [PASSED] drop_first_arg_test
[01:54:45] [PASSED] first_arg_example
[01:54:45] [PASSED] first_arg_test
[01:54:45] [PASSED] last_arg_example
[01:54:45] [PASSED] last_arg_test
[01:54:45] [PASSED] pick_arg_example
[01:54:45] [PASSED] if_args_example
[01:54:45] [PASSED] if_args_test
[01:54:45] [PASSED] sep_comma_example
[01:54:45] ====================== [PASSED] args =======================
[01:54:45] =================== xe_pci (3 subtests) ====================
[01:54:45] ==================== check_graphics_ip  ====================
[01:54:45] [PASSED] 12.00 Xe_LP
[01:54:45] [PASSED] 12.10 Xe_LP+
[01:54:45] [PASSED] 12.55 Xe_HPG
[01:54:45] [PASSED] 12.60 Xe_HPC
[01:54:45] [PASSED] 12.70 Xe_LPG
[01:54:45] [PASSED] 12.71 Xe_LPG
[01:54:45] [PASSED] 12.74 Xe_LPG+
[01:54:45] [PASSED] 20.01 Xe2_HPG
[01:54:45] [PASSED] 20.02 Xe2_HPG
[01:54:45] [PASSED] 20.04 Xe2_LPG
[01:54:45] [PASSED] 30.00 Xe3_LPG
[01:54:45] [PASSED] 30.01 Xe3_LPG
[01:54:45] [PASSED] 30.03 Xe3_LPG
[01:54:45] [PASSED] 30.04 Xe3_LPG
[01:54:45] [PASSED] 30.05 Xe3_LPG
[01:54:45] [PASSED] 35.10 Xe3p_LPG
[01:54:45] [PASSED] 35.11 Xe3p_XPC
[01:54:45] ================ [PASSED] check_graphics_ip ================
[01:54:45] ===================== check_media_ip  ======================
[01:54:45] [PASSED] 12.00 Xe_M
[01:54:45] [PASSED] 12.55 Xe_HPM
[01:54:45] [PASSED] 13.00 Xe_LPM+
[01:54:45] [PASSED] 13.01 Xe2_HPM
[01:54:45] [PASSED] 20.00 Xe2_LPM
[01:54:45] [PASSED] 30.00 Xe3_LPM
[01:54:45] [PASSED] 30.02 Xe3_LPM
[01:54:45] [PASSED] 35.00 Xe3p_LPM
[01:54:45] [PASSED] 35.03 Xe3p_HPM
[01:54:45] ================= [PASSED] check_media_ip ==================
[01:54:45] =================== check_platform_desc  ===================
[01:54:45] [PASSED] 0x9A60 (TIGERLAKE)
[01:54:45] [PASSED] 0x9A68 (TIGERLAKE)
[01:54:45] [PASSED] 0x9A70 (TIGERLAKE)
[01:54:45] [PASSED] 0x9A40 (TIGERLAKE)
[01:54:45] [PASSED] 0x9A49 (TIGERLAKE)
[01:54:45] [PASSED] 0x9A59 (TIGERLAKE)
[01:54:45] [PASSED] 0x9A78 (TIGERLAKE)
[01:54:45] [PASSED] 0x9AC0 (TIGERLAKE)
[01:54:45] [PASSED] 0x9AC9 (TIGERLAKE)
[01:54:45] [PASSED] 0x9AD9 (TIGERLAKE)
[01:54:45] [PASSED] 0x9AF8 (TIGERLAKE)
[01:54:45] [PASSED] 0x4C80 (ROCKETLAKE)
[01:54:45] [PASSED] 0x4C8A (ROCKETLAKE)
[01:54:45] [PASSED] 0x4C8B (ROCKETLAKE)
[01:54:45] [PASSED] 0x4C8C (ROCKETLAKE)
[01:54:45] [PASSED] 0x4C90 (ROCKETLAKE)
[01:54:45] [PASSED] 0x4C9A (ROCKETLAKE)
[01:54:45] [PASSED] 0x4680 (ALDERLAKE_S)
[01:54:45] [PASSED] 0x4682 (ALDERLAKE_S)
[01:54:45] [PASSED] 0x4688 (ALDERLAKE_S)
[01:54:45] [PASSED] 0x468A (ALDERLAKE_S)
[01:54:45] [PASSED] 0x468B (ALDERLAKE_S)
[01:54:45] [PASSED] 0x4690 (ALDERLAKE_S)
[01:54:45] [PASSED] 0x4692 (ALDERLAKE_S)
[01:54:45] [PASSED] 0x4693 (ALDERLAKE_S)
[01:54:45] [PASSED] 0x46A0 (ALDERLAKE_P)
[01:54:45] [PASSED] 0x46A1 (ALDERLAKE_P)
[01:54:45] [PASSED] 0x46A2 (ALDERLAKE_P)
[01:54:45] [PASSED] 0x46A3 (ALDERLAKE_P)
[01:54:45] [PASSED] 0x46A6 (ALDERLAKE_P)
[01:54:45] [PASSED] 0x46A8 (ALDERLAKE_P)
[01:54:45] [PASSED] 0x46AA (ALDERLAKE_P)
[01:54:45] [PASSED] 0x462A (ALDERLAKE_P)
[01:54:45] [PASSED] 0x4626 (ALDERLAKE_P)
stty: 'standard input': Inappropriate ioctl for device
[01:54:45] [PASSED] 0x4628 (ALDERLAKE_P)
[01:54:45] [PASSED] 0x46B0 (ALDERLAKE_P)
[01:54:45] [PASSED] 0x46B1 (ALDERLAKE_P)
[01:54:45] [PASSED] 0x46B2 (ALDERLAKE_P)
[01:54:45] [PASSED] 0x46B3 (ALDERLAKE_P)
[01:54:45] [PASSED] 0x46C0 (ALDERLAKE_P)
[01:54:45] [PASSED] 0x46C1 (ALDERLAKE_P)
[01:54:45] [PASSED] 0x46C2 (ALDERLAKE_P)
[01:54:45] [PASSED] 0x46C3 (ALDERLAKE_P)
[01:54:45] [PASSED] 0x46D0 (ALDERLAKE_N)
[01:54:45] [PASSED] 0x46D1 (ALDERLAKE_N)
[01:54:45] [PASSED] 0x46D2 (ALDERLAKE_N)
[01:54:45] [PASSED] 0x46D3 (ALDERLAKE_N)
[01:54:45] [PASSED] 0x46D4 (ALDERLAKE_N)
[01:54:45] [PASSED] 0xA721 (ALDERLAKE_P)
[01:54:45] [PASSED] 0xA7A1 (ALDERLAKE_P)
[01:54:45] [PASSED] 0xA7A9 (ALDERLAKE_P)
[01:54:45] [PASSED] 0xA7AC (ALDERLAKE_P)
[01:54:45] [PASSED] 0xA7AD (ALDERLAKE_P)
[01:54:45] [PASSED] 0xA720 (ALDERLAKE_P)
[01:54:45] [PASSED] 0xA7A0 (ALDERLAKE_P)
[01:54:45] [PASSED] 0xA7A8 (ALDERLAKE_P)
[01:54:45] [PASSED] 0xA7AA (ALDERLAKE_P)
[01:54:45] [PASSED] 0xA7AB (ALDERLAKE_P)
[01:54:45] [PASSED] 0xA780 (ALDERLAKE_S)
[01:54:45] [PASSED] 0xA781 (ALDERLAKE_S)
[01:54:45] [PASSED] 0xA782 (ALDERLAKE_S)
[01:54:45] [PASSED] 0xA783 (ALDERLAKE_S)
[01:54:45] [PASSED] 0xA788 (ALDERLAKE_S)
[01:54:45] [PASSED] 0xA789 (ALDERLAKE_S)
[01:54:45] [PASSED] 0xA78A (ALDERLAKE_S)
[01:54:45] [PASSED] 0xA78B (ALDERLAKE_S)
[01:54:45] [PASSED] 0x4905 (DG1)
[01:54:45] [PASSED] 0x4906 (DG1)
[01:54:45] [PASSED] 0x4907 (DG1)
[01:54:45] [PASSED] 0x4908 (DG1)
[01:54:45] [PASSED] 0x4909 (DG1)
[01:54:45] [PASSED] 0x56C0 (DG2)
[01:54:45] [PASSED] 0x56C2 (DG2)
[01:54:45] [PASSED] 0x56C1 (DG2)
[01:54:45] [PASSED] 0x7D51 (METEORLAKE)
[01:54:45] [PASSED] 0x7DD1 (METEORLAKE)
[01:54:45] [PASSED] 0x7D41 (METEORLAKE)
[01:54:45] [PASSED] 0x7D67 (METEORLAKE)
[01:54:45] [PASSED] 0xB640 (METEORLAKE)
[01:54:45] [PASSED] 0x56A0 (DG2)
[01:54:45] [PASSED] 0x56A1 (DG2)
[01:54:45] [PASSED] 0x56A2 (DG2)
[01:54:45] [PASSED] 0x56BE (DG2)
[01:54:45] [PASSED] 0x56BF (DG2)
[01:54:45] [PASSED] 0x5690 (DG2)
[01:54:45] [PASSED] 0x5691 (DG2)
[01:54:45] [PASSED] 0x5692 (DG2)
[01:54:45] [PASSED] 0x56A5 (DG2)
[01:54:45] [PASSED] 0x56A6 (DG2)
[01:54:45] [PASSED] 0x56B0 (DG2)
[01:54:45] [PASSED] 0x56B1 (DG2)
[01:54:45] [PASSED] 0x56BA (DG2)
[01:54:45] [PASSED] 0x56BB (DG2)
[01:54:45] [PASSED] 0x56BC (DG2)
[01:54:45] [PASSED] 0x56BD (DG2)
[01:54:45] [PASSED] 0x5693 (DG2)
[01:54:45] [PASSED] 0x5694 (DG2)
[01:54:45] [PASSED] 0x5695 (DG2)
[01:54:45] [PASSED] 0x56A3 (DG2)
[01:54:45] [PASSED] 0x56A4 (DG2)
[01:54:45] [PASSED] 0x56B2 (DG2)
[01:54:45] [PASSED] 0x56B3 (DG2)
[01:54:45] [PASSED] 0x5696 (DG2)
[01:54:45] [PASSED] 0x5697 (DG2)
[01:54:45] [PASSED] 0xB69 (PVC)
[01:54:45] [PASSED] 0xB6E (PVC)
[01:54:45] [PASSED] 0xBD4 (PVC)
[01:54:45] [PASSED] 0xBD5 (PVC)
[01:54:45] [PASSED] 0xBD6 (PVC)
[01:54:45] [PASSED] 0xBD7 (PVC)
[01:54:45] [PASSED] 0xBD8 (PVC)
[01:54:45] [PASSED] 0xBD9 (PVC)
[01:54:45] [PASSED] 0xBDA (PVC)
[01:54:45] [PASSED] 0xBDB (PVC)
[01:54:45] [PASSED] 0xBE0 (PVC)
[01:54:45] [PASSED] 0xBE1 (PVC)
[01:54:45] [PASSED] 0xBE5 (PVC)
[01:54:45] [PASSED] 0x7D40 (METEORLAKE)
[01:54:45] [PASSED] 0x7D45 (METEORLAKE)
[01:54:45] [PASSED] 0x7D55 (METEORLAKE)
[01:54:45] [PASSED] 0x7D60 (METEORLAKE)
[01:54:45] [PASSED] 0x7DD5 (METEORLAKE)
[01:54:45] [PASSED] 0x6420 (LUNARLAKE)
[01:54:45] [PASSED] 0x64A0 (LUNARLAKE)
[01:54:45] [PASSED] 0x64B0 (LUNARLAKE)
[01:54:45] [PASSED] 0xE202 (BATTLEMAGE)
[01:54:45] [PASSED] 0xE209 (BATTLEMAGE)
[01:54:45] [PASSED] 0xE20B (BATTLEMAGE)
[01:54:45] [PASSED] 0xE20C (BATTLEMAGE)
[01:54:45] [PASSED] 0xE20D (BATTLEMAGE)
[01:54:45] [PASSED] 0xE210 (BATTLEMAGE)
[01:54:45] [PASSED] 0xE211 (BATTLEMAGE)
[01:54:45] [PASSED] 0xE212 (BATTLEMAGE)
[01:54:45] [PASSED] 0xE216 (BATTLEMAGE)
[01:54:45] [PASSED] 0xE220 (BATTLEMAGE)
[01:54:45] [PASSED] 0xE221 (BATTLEMAGE)
[01:54:45] [PASSED] 0xE222 (BATTLEMAGE)
[01:54:45] [PASSED] 0xE223 (BATTLEMAGE)
[01:54:45] [PASSED] 0xB080 (PANTHERLAKE)
[01:54:45] [PASSED] 0xB081 (PANTHERLAKE)
[01:54:45] [PASSED] 0xB082 (PANTHERLAKE)
[01:54:45] [PASSED] 0xB083 (PANTHERLAKE)
[01:54:45] [PASSED] 0xB084 (PANTHERLAKE)
[01:54:45] [PASSED] 0xB085 (PANTHERLAKE)
[01:54:45] [PASSED] 0xB086 (PANTHERLAKE)
[01:54:45] [PASSED] 0xB087 (PANTHERLAKE)
[01:54:45] [PASSED] 0xB08F (PANTHERLAKE)
[01:54:45] [PASSED] 0xB090 (PANTHERLAKE)
[01:54:45] [PASSED] 0xB0A0 (PANTHERLAKE)
[01:54:45] [PASSED] 0xB0B0 (PANTHERLAKE)
[01:54:45] [PASSED] 0xFD80 (PANTHERLAKE)
[01:54:45] [PASSED] 0xFD81 (PANTHERLAKE)
[01:54:45] [PASSED] 0xD740 (NOVALAKE_S)
[01:54:45] [PASSED] 0xD741 (NOVALAKE_S)
[01:54:45] [PASSED] 0xD742 (NOVALAKE_S)
[01:54:45] [PASSED] 0xD743 (NOVALAKE_S)
[01:54:45] [PASSED] 0xD744 (NOVALAKE_S)
[01:54:45] [PASSED] 0xD745 (NOVALAKE_S)
[01:54:45] [PASSED] 0x674C (CRESCENTISLAND)
[01:54:45] [PASSED] 0xD750 (NOVALAKE_P)
[01:54:45] [PASSED] 0xD751 (NOVALAKE_P)
[01:54:45] [PASSED] 0xD752 (NOVALAKE_P)
[01:54:45] [PASSED] 0xD753 (NOVALAKE_P)
[01:54:45] [PASSED] 0xD754 (NOVALAKE_P)
[01:54:45] [PASSED] 0xD755 (NOVALAKE_P)
[01:54:45] [PASSED] 0xD756 (NOVALAKE_P)
[01:54:45] [PASSED] 0xD757 (NOVALAKE_P)
[01:54:45] [PASSED] 0xD75F (NOVALAKE_P)
[01:54:45] =============== [PASSED] check_platform_desc ===============
[01:54:45] ===================== [PASSED] xe_pci ======================
[01:54:45] =================== xe_rtp (2 subtests) ====================
[01:54:45] =============== xe_rtp_process_to_sr_tests  ================
[01:54:45] [PASSED] coalesce-same-reg
[01:54:45] [PASSED] no-match-no-add
[01:54:45] [PASSED] match-or
[01:54:45] [PASSED] match-or-xfail
[01:54:45] [PASSED] no-match-no-add-multiple-rules
[01:54:45] [PASSED] two-regs-two-entries
[01:54:45] [PASSED] clr-one-set-other
[01:54:45] [PASSED] set-field
[01:54:45] [PASSED] conflict-duplicate
[01:54:45] [PASSED] conflict-not-disjoint
[01:54:45] [PASSED] conflict-reg-type
[01:54:45] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[01:54:45] ================== xe_rtp_process_tests  ===================
[01:54:45] [PASSED] active1
[01:54:45] [PASSED] active2
[01:54:45] [PASSED] active-inactive
[01:54:45] [PASSED] inactive-active
[01:54:45] [PASSED] inactive-1st_or_active-inactive
[01:54:45] [PASSED] inactive-2nd_or_active-inactive
[01:54:45] [PASSED] inactive-last_or_active-inactive
[01:54:45] [PASSED] inactive-no_or_active-inactive
[01:54:45] ============== [PASSED] xe_rtp_process_tests ===============
[01:54:45] ===================== [PASSED] xe_rtp ======================
[01:54:45] ==================== xe_wa (1 subtest) =====================
[01:54:45] ======================== xe_wa_gt  =========================
[01:54:45] [PASSED] TIGERLAKE B0
[01:54:45] [PASSED] DG1 A0
[01:54:45] [PASSED] DG1 B0
[01:54:45] [PASSED] ALDERLAKE_S A0
[01:54:45] [PASSED] ALDERLAKE_S B0
[01:54:45] [PASSED] ALDERLAKE_S C0
[01:54:45] [PASSED] ALDERLAKE_S D0
[01:54:45] [PASSED] ALDERLAKE_P A0
[01:54:45] [PASSED] ALDERLAKE_P B0
[01:54:45] [PASSED] ALDERLAKE_P C0
[01:54:45] [PASSED] ALDERLAKE_S RPLS D0
[01:54:45] [PASSED] ALDERLAKE_P RPLU E0
[01:54:45] [PASSED] DG2 G10 C0
[01:54:45] [PASSED] DG2 G11 B1
[01:54:45] [PASSED] DG2 G12 A1
[01:54:45] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[01:54:45] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[01:54:45] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[01:54:45] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[01:54:45] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[01:54:45] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[01:54:45] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[01:54:45] ==================== [PASSED] xe_wa_gt =====================
[01:54:45] ====================== [PASSED] xe_wa ======================
[01:54:45] ============================================================
[01:54:45] Testing complete. Ran 522 tests: passed: 504, skipped: 18
[01:54:45] Elapsed time: 36.474s total, 4.236s configuring, 31.719s building, 0.469s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[01:54:45] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[01:54:46] 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
[01:55:12] Starting KUnit Kernel (1/1)...
[01:55:12] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[01:55:12] ============ drm_test_pick_cmdline (2 subtests) ============
[01:55:12] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[01:55:12] =============== drm_test_pick_cmdline_named  ===============
[01:55:12] [PASSED] NTSC
[01:55:12] [PASSED] NTSC-J
[01:55:12] [PASSED] PAL
[01:55:12] [PASSED] PAL-M
[01:55:12] =========== [PASSED] drm_test_pick_cmdline_named ===========
[01:55:12] ============== [PASSED] drm_test_pick_cmdline ==============
[01:55:12] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[01:55:12] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[01:55:12] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[01:55:12] =========== drm_validate_clone_mode (2 subtests) ===========
[01:55:12] ============== drm_test_check_in_clone_mode  ===============
[01:55:12] [PASSED] in_clone_mode
[01:55:12] [PASSED] not_in_clone_mode
[01:55:12] ========== [PASSED] drm_test_check_in_clone_mode ===========
[01:55:12] =============== drm_test_check_valid_clones  ===============
[01:55:12] [PASSED] not_in_clone_mode
[01:55:12] [PASSED] valid_clone
[01:55:12] [PASSED] invalid_clone
[01:55:12] =========== [PASSED] drm_test_check_valid_clones ===========
[01:55:12] ============= [PASSED] drm_validate_clone_mode =============
[01:55:12] ============= drm_validate_modeset (1 subtest) =============
[01:55:12] [PASSED] drm_test_check_connector_changed_modeset
[01:55:12] ============== [PASSED] drm_validate_modeset ===============
[01:55:12] ====== drm_test_bridge_get_current_state (2 subtests) ======
[01:55:12] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[01:55:12] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[01:55:12] ======== [PASSED] drm_test_bridge_get_current_state ========
[01:55:12] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[01:55:12] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[01:55:12] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[01:55:12] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[01:55:12] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[01:55:12] ============== drm_bridge_alloc (2 subtests) ===============
[01:55:12] [PASSED] drm_test_drm_bridge_alloc_basic
[01:55:12] [PASSED] drm_test_drm_bridge_alloc_get_put
[01:55:12] ================ [PASSED] drm_bridge_alloc =================
[01:55:12] ============= drm_cmdline_parser (40 subtests) =============
[01:55:12] [PASSED] drm_test_cmdline_force_d_only
[01:55:12] [PASSED] drm_test_cmdline_force_D_only_dvi
[01:55:12] [PASSED] drm_test_cmdline_force_D_only_hdmi
[01:55:12] [PASSED] drm_test_cmdline_force_D_only_not_digital
[01:55:12] [PASSED] drm_test_cmdline_force_e_only
[01:55:12] [PASSED] drm_test_cmdline_res
[01:55:12] [PASSED] drm_test_cmdline_res_vesa
[01:55:12] [PASSED] drm_test_cmdline_res_vesa_rblank
[01:55:12] [PASSED] drm_test_cmdline_res_rblank
[01:55:12] [PASSED] drm_test_cmdline_res_bpp
[01:55:12] [PASSED] drm_test_cmdline_res_refresh
[01:55:12] [PASSED] drm_test_cmdline_res_bpp_refresh
[01:55:12] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[01:55:12] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[01:55:12] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[01:55:12] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[01:55:12] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[01:55:12] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[01:55:12] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[01:55:12] [PASSED] drm_test_cmdline_res_margins_force_on
[01:55:12] [PASSED] drm_test_cmdline_res_vesa_margins
[01:55:12] [PASSED] drm_test_cmdline_name
[01:55:12] [PASSED] drm_test_cmdline_name_bpp
[01:55:12] [PASSED] drm_test_cmdline_name_option
[01:55:12] [PASSED] drm_test_cmdline_name_bpp_option
[01:55:12] [PASSED] drm_test_cmdline_rotate_0
[01:55:12] [PASSED] drm_test_cmdline_rotate_90
[01:55:12] [PASSED] drm_test_cmdline_rotate_180
[01:55:12] [PASSED] drm_test_cmdline_rotate_270
[01:55:12] [PASSED] drm_test_cmdline_hmirror
[01:55:12] [PASSED] drm_test_cmdline_vmirror
[01:55:12] [PASSED] drm_test_cmdline_margin_options
[01:55:12] [PASSED] drm_test_cmdline_multiple_options
[01:55:12] [PASSED] drm_test_cmdline_bpp_extra_and_option
[01:55:12] [PASSED] drm_test_cmdline_extra_and_option
[01:55:12] [PASSED] drm_test_cmdline_freestanding_options
[01:55:12] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[01:55:12] [PASSED] drm_test_cmdline_panel_orientation
[01:55:12] ================ drm_test_cmdline_invalid  =================
[01:55:12] [PASSED] margin_only
[01:55:12] [PASSED] interlace_only
[01:55:12] [PASSED] res_missing_x
[01:55:12] [PASSED] res_missing_y
[01:55:12] [PASSED] res_bad_y
[01:55:12] [PASSED] res_missing_y_bpp
[01:55:12] [PASSED] res_bad_bpp
[01:55:12] [PASSED] res_bad_refresh
[01:55:12] [PASSED] res_bpp_refresh_force_on_off
[01:55:12] [PASSED] res_invalid_mode
[01:55:12] [PASSED] res_bpp_wrong_place_mode
[01:55:12] [PASSED] name_bpp_refresh
[01:55:12] [PASSED] name_refresh
[01:55:12] [PASSED] name_refresh_wrong_mode
[01:55:12] [PASSED] name_refresh_invalid_mode
[01:55:12] [PASSED] rotate_multiple
[01:55:12] [PASSED] rotate_invalid_val
[01:55:12] [PASSED] rotate_truncated
[01:55:12] [PASSED] invalid_option
[01:55:12] [PASSED] invalid_tv_option
[01:55:12] [PASSED] truncated_tv_option
[01:55:12] ============ [PASSED] drm_test_cmdline_invalid =============
[01:55:12] =============== drm_test_cmdline_tv_options  ===============
[01:55:12] [PASSED] NTSC
[01:55:12] [PASSED] NTSC_443
[01:55:12] [PASSED] NTSC_J
[01:55:12] [PASSED] PAL
[01:55:12] [PASSED] PAL_M
[01:55:12] [PASSED] PAL_N
[01:55:12] [PASSED] SECAM
[01:55:12] [PASSED] MONO_525
[01:55:12] [PASSED] MONO_625
[01:55:12] =========== [PASSED] drm_test_cmdline_tv_options ===========
[01:55:12] =============== [PASSED] drm_cmdline_parser ================
[01:55:12] ========== drmm_connector_hdmi_init (20 subtests) ==========
[01:55:12] [PASSED] drm_test_connector_hdmi_init_valid
[01:55:12] [PASSED] drm_test_connector_hdmi_init_bpc_8
[01:55:12] [PASSED] drm_test_connector_hdmi_init_bpc_10
[01:55:12] [PASSED] drm_test_connector_hdmi_init_bpc_12
[01:55:12] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[01:55:12] [PASSED] drm_test_connector_hdmi_init_bpc_null
[01:55:12] [PASSED] drm_test_connector_hdmi_init_formats_empty
[01:55:12] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[01:55:12] === drm_test_connector_hdmi_init_formats_yuv420_allowed  ===
[01:55:12] [PASSED] supported_formats=0x9 yuv420_allowed=1
[01:55:12] [PASSED] supported_formats=0x9 yuv420_allowed=0
[01:55:12] [PASSED] supported_formats=0x3 yuv420_allowed=1
[01:55:12] [PASSED] supported_formats=0x3 yuv420_allowed=0
[01:55:12] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[01:55:12] [PASSED] drm_test_connector_hdmi_init_null_ddc
[01:55:12] [PASSED] drm_test_connector_hdmi_init_null_product
[01:55:12] [PASSED] drm_test_connector_hdmi_init_null_vendor
[01:55:12] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[01:55:12] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[01:55:12] [PASSED] drm_test_connector_hdmi_init_product_valid
[01:55:12] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[01:55:12] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[01:55:12] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[01:55:12] ========= drm_test_connector_hdmi_init_type_valid  =========
[01:55:12] [PASSED] HDMI-A
[01:55:12] [PASSED] HDMI-B
[01:55:12] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[01:55:12] ======== drm_test_connector_hdmi_init_type_invalid  ========
[01:55:12] [PASSED] Unknown
[01:55:12] [PASSED] VGA
[01:55:12] [PASSED] DVI-I
[01:55:12] [PASSED] DVI-D
[01:55:12] [PASSED] DVI-A
[01:55:12] [PASSED] Composite
[01:55:12] [PASSED] SVIDEO
[01:55:12] [PASSED] LVDS
[01:55:12] [PASSED] Component
[01:55:12] [PASSED] DIN
[01:55:12] [PASSED] DP
[01:55:12] [PASSED] TV
[01:55:12] [PASSED] eDP
[01:55:12] [PASSED] Virtual
[01:55:12] [PASSED] DSI
[01:55:12] [PASSED] DPI
[01:55:12] [PASSED] Writeback
[01:55:12] [PASSED] SPI
[01:55:12] [PASSED] USB
[01:55:12] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[01:55:12] ============ [PASSED] drmm_connector_hdmi_init =============
[01:55:12] ============= drmm_connector_init (3 subtests) =============
[01:55:12] [PASSED] drm_test_drmm_connector_init
[01:55:12] [PASSED] drm_test_drmm_connector_init_null_ddc
[01:55:12] ========= drm_test_drmm_connector_init_type_valid  =========
[01:55:12] [PASSED] Unknown
[01:55:12] [PASSED] VGA
[01:55:12] [PASSED] DVI-I
[01:55:12] [PASSED] DVI-D
[01:55:12] [PASSED] DVI-A
[01:55:12] [PASSED] Composite
[01:55:12] [PASSED] SVIDEO
[01:55:12] [PASSED] LVDS
[01:55:12] [PASSED] Component
[01:55:12] [PASSED] DIN
[01:55:12] [PASSED] DP
[01:55:12] [PASSED] HDMI-A
[01:55:12] [PASSED] HDMI-B
[01:55:12] [PASSED] TV
[01:55:12] [PASSED] eDP
[01:55:12] [PASSED] Virtual
[01:55:12] [PASSED] DSI
[01:55:12] [PASSED] DPI
[01:55:12] [PASSED] Writeback
[01:55:12] [PASSED] SPI
[01:55:12] [PASSED] USB
[01:55:12] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[01:55:12] =============== [PASSED] drmm_connector_init ===============
[01:55:12] ========= drm_connector_dynamic_init (6 subtests) ==========
[01:55:12] [PASSED] drm_test_drm_connector_dynamic_init
[01:55:12] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[01:55:12] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[01:55:12] [PASSED] drm_test_drm_connector_dynamic_init_properties
[01:55:12] ===== drm_test_drm_connector_dynamic_init_type_valid  ======
[01:55:12] [PASSED] Unknown
[01:55:12] [PASSED] VGA
[01:55:12] [PASSED] DVI-I
[01:55:12] [PASSED] DVI-D
[01:55:12] [PASSED] DVI-A
[01:55:12] [PASSED] Composite
[01:55:12] [PASSED] SVIDEO
[01:55:12] [PASSED] LVDS
[01:55:12] [PASSED] Component
[01:55:12] [PASSED] DIN
[01:55:12] [PASSED] DP
[01:55:12] [PASSED] HDMI-A
[01:55:12] [PASSED] HDMI-B
[01:55:12] [PASSED] TV
[01:55:12] [PASSED] eDP
[01:55:12] [PASSED] Virtual
[01:55:12] [PASSED] DSI
[01:55:12] [PASSED] DPI
[01:55:12] [PASSED] Writeback
[01:55:12] [PASSED] SPI
[01:55:12] [PASSED] USB
[01:55:12] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[01:55:12] ======== drm_test_drm_connector_dynamic_init_name  =========
[01:55:12] [PASSED] Unknown
[01:55:12] [PASSED] VGA
[01:55:12] [PASSED] DVI-I
[01:55:12] [PASSED] DVI-D
[01:55:12] [PASSED] DVI-A
[01:55:12] [PASSED] Composite
[01:55:12] [PASSED] SVIDEO
[01:55:12] [PASSED] LVDS
[01:55:12] [PASSED] Component
[01:55:12] [PASSED] DIN
[01:55:12] [PASSED] DP
[01:55:12] [PASSED] HDMI-A
[01:55:12] [PASSED] HDMI-B
[01:55:12] [PASSED] TV
[01:55:12] [PASSED] eDP
[01:55:12] [PASSED] Virtual
[01:55:12] [PASSED] DSI
[01:55:12] [PASSED] DPI
[01:55:12] [PASSED] Writeback
[01:55:12] [PASSED] SPI
[01:55:12] [PASSED] USB
[01:55:12] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[01:55:12] =========== [PASSED] drm_connector_dynamic_init ============
[01:55:12] ==== drm_connector_dynamic_register_early (4 subtests) =====
[01:55:12] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[01:55:12] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[01:55:12] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[01:55:12] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[01:55:12] ====== [PASSED] drm_connector_dynamic_register_early =======
[01:55:12] ======= drm_connector_dynamic_register (7 subtests) ========
[01:55:12] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[01:55:12] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[01:55:12] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[01:55:12] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[01:55:12] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[01:55:12] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[01:55:12] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[01:55:12] ========= [PASSED] drm_connector_dynamic_register ==========
[01:55:12] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[01:55:12] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[01:55:12] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[01:55:12] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[01:55:12] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[01:55:12] ========== drm_test_get_tv_mode_from_name_valid  ===========
[01:55:12] [PASSED] NTSC
[01:55:12] [PASSED] NTSC-443
[01:55:12] [PASSED] NTSC-J
[01:55:12] [PASSED] PAL
[01:55:12] [PASSED] PAL-M
[01:55:12] [PASSED] PAL-N
[01:55:12] [PASSED] SECAM
[01:55:12] [PASSED] Mono
[01:55:12] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[01:55:12] [PASSED] drm_test_get_tv_mode_from_name_truncated
[01:55:12] ============ [PASSED] drm_get_tv_mode_from_name ============
[01:55:12] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[01:55:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[01:55:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[01:55:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[01:55:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[01:55:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[01:55:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[01:55:12] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid  =
[01:55:12] [PASSED] VIC 96
[01:55:12] [PASSED] VIC 97
[01:55:12] [PASSED] VIC 101
[01:55:12] [PASSED] VIC 102
[01:55:12] [PASSED] VIC 106
[01:55:12] [PASSED] VIC 107
[01:55:12] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[01:55:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[01:55:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[01:55:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[01:55:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[01:55:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[01:55:12] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[01:55:12] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[01:55:12] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name  ====
[01:55:12] [PASSED] Automatic
[01:55:12] [PASSED] Full
[01:55:12] [PASSED] Limited 16:235
[01:55:12] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[01:55:12] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[01:55:12] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[01:55:12] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[01:55:12] === drm_test_drm_hdmi_connector_get_output_format_name  ====
[01:55:12] [PASSED] RGB
[01:55:12] [PASSED] YUV 4:2:0
[01:55:12] [PASSED] YUV 4:2:2
[01:55:12] [PASSED] YUV 4:4:4
[01:55:12] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[01:55:12] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[01:55:12] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[01:55:12] ============= drm_damage_helper (21 subtests) ==============
[01:55:12] [PASSED] drm_test_damage_iter_no_damage
[01:55:12] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[01:55:12] [PASSED] drm_test_damage_iter_no_damage_src_moved
[01:55:12] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[01:55:12] [PASSED] drm_test_damage_iter_no_damage_not_visible
[01:55:12] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[01:55:12] [PASSED] drm_test_damage_iter_no_damage_no_fb
[01:55:12] [PASSED] drm_test_damage_iter_simple_damage
[01:55:12] [PASSED] drm_test_damage_iter_single_damage
[01:55:12] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[01:55:12] [PASSED] drm_test_damage_iter_single_damage_outside_src
[01:55:12] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[01:55:12] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[01:55:12] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[01:55:12] [PASSED] drm_test_damage_iter_single_damage_src_moved
[01:55:12] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[01:55:12] [PASSED] drm_test_damage_iter_damage
[01:55:12] [PASSED] drm_test_damage_iter_damage_one_intersect
[01:55:12] [PASSED] drm_test_damage_iter_damage_one_outside
[01:55:12] [PASSED] drm_test_damage_iter_damage_src_moved
[01:55:12] [PASSED] drm_test_damage_iter_damage_not_visible
[01:55:12] ================ [PASSED] drm_damage_helper ================
[01:55:12] ============== drm_dp_mst_helper (3 subtests) ==============
[01:55:12] ============== drm_test_dp_mst_calc_pbn_mode  ==============
[01:55:12] [PASSED] Clock 154000 BPP 30 DSC disabled
[01:55:12] [PASSED] Clock 234000 BPP 30 DSC disabled
[01:55:12] [PASSED] Clock 297000 BPP 24 DSC disabled
[01:55:12] [PASSED] Clock 332880 BPP 24 DSC enabled
[01:55:12] [PASSED] Clock 324540 BPP 24 DSC enabled
[01:55:12] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[01:55:12] ============== drm_test_dp_mst_calc_pbn_div  ===============
[01:55:12] [PASSED] Link rate 2000000 lane count 4
[01:55:12] [PASSED] Link rate 2000000 lane count 2
[01:55:12] [PASSED] Link rate 2000000 lane count 1
[01:55:12] [PASSED] Link rate 1350000 lane count 4
[01:55:12] [PASSED] Link rate 1350000 lane count 2
[01:55:12] [PASSED] Link rate 1350000 lane count 1
[01:55:12] [PASSED] Link rate 1000000 lane count 4
[01:55:12] [PASSED] Link rate 1000000 lane count 2
[01:55:12] [PASSED] Link rate 1000000 lane count 1
[01:55:12] [PASSED] Link rate 810000 lane count 4
[01:55:12] [PASSED] Link rate 810000 lane count 2
[01:55:12] [PASSED] Link rate 810000 lane count 1
[01:55:12] [PASSED] Link rate 540000 lane count 4
[01:55:12] [PASSED] Link rate 540000 lane count 2
[01:55:12] [PASSED] Link rate 540000 lane count 1
[01:55:12] [PASSED] Link rate 270000 lane count 4
[01:55:12] [PASSED] Link rate 270000 lane count 2
[01:55:12] [PASSED] Link rate 270000 lane count 1
[01:55:12] [PASSED] Link rate 162000 lane count 4
[01:55:12] [PASSED] Link rate 162000 lane count 2
[01:55:12] [PASSED] Link rate 162000 lane count 1
[01:55:12] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[01:55:12] ========= drm_test_dp_mst_sideband_msg_req_decode  =========
[01:55:12] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[01:55:12] [PASSED] DP_POWER_UP_PHY with port number
[01:55:12] [PASSED] DP_POWER_DOWN_PHY with port number
[01:55:12] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[01:55:12] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[01:55:12] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[01:55:12] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[01:55:12] [PASSED] DP_QUERY_PAYLOAD with port number
[01:55:12] [PASSED] DP_QUERY_PAYLOAD with VCPI
[01:55:12] [PASSED] DP_REMOTE_DPCD_READ with port number
[01:55:12] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[01:55:12] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[01:55:12] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[01:55:12] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[01:55:12] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[01:55:12] [PASSED] DP_REMOTE_I2C_READ with port number
[01:55:12] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[01:55:12] [PASSED] DP_REMOTE_I2C_READ with transactions array
[01:55:12] [PASSED] DP_REMOTE_I2C_WRITE with port number
[01:55:12] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[01:55:12] [PASSED] DP_REMOTE_I2C_WRITE with data array
[01:55:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[01:55:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[01:55:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[01:55:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[01:55:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[01:55:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[01:55:12] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[01:55:12] ================ [PASSED] drm_dp_mst_helper ================
[01:55:12] ================== drm_exec (7 subtests) ===================
[01:55:12] [PASSED] sanitycheck
[01:55:12] [PASSED] test_lock
[01:55:12] [PASSED] test_lock_unlock
[01:55:12] [PASSED] test_duplicates
[01:55:12] [PASSED] test_prepare
[01:55:12] [PASSED] test_prepare_array
[01:55:12] [PASSED] test_multiple_loops
[01:55:12] ==================== [PASSED] drm_exec =====================
[01:55:12] =========== drm_format_helper_test (17 subtests) ===========
[01:55:12] ============== drm_test_fb_xrgb8888_to_gray8  ==============
[01:55:12] [PASSED] single_pixel_source_buffer
[01:55:12] [PASSED] single_pixel_clip_rectangle
[01:55:12] [PASSED] well_known_colors
[01:55:12] [PASSED] destination_pitch
[01:55:12] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[01:55:12] ============= drm_test_fb_xrgb8888_to_rgb332  ==============
[01:55:12] [PASSED] single_pixel_source_buffer
[01:55:12] [PASSED] single_pixel_clip_rectangle
[01:55:12] [PASSED] well_known_colors
[01:55:12] [PASSED] destination_pitch
[01:55:12] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[01:55:12] ============= drm_test_fb_xrgb8888_to_rgb565  ==============
[01:55:12] [PASSED] single_pixel_source_buffer
[01:55:12] [PASSED] single_pixel_clip_rectangle
[01:55:12] [PASSED] well_known_colors
[01:55:12] [PASSED] destination_pitch
[01:55:12] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[01:55:12] ============ drm_test_fb_xrgb8888_to_xrgb1555  =============
[01:55:12] [PASSED] single_pixel_source_buffer
[01:55:12] [PASSED] single_pixel_clip_rectangle
[01:55:12] [PASSED] well_known_colors
[01:55:12] [PASSED] destination_pitch
[01:55:12] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[01:55:12] ============ drm_test_fb_xrgb8888_to_argb1555  =============
[01:55:12] [PASSED] single_pixel_source_buffer
[01:55:12] [PASSED] single_pixel_clip_rectangle
[01:55:12] [PASSED] well_known_colors
[01:55:12] [PASSED] destination_pitch
[01:55:12] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[01:55:12] ============ drm_test_fb_xrgb8888_to_rgba5551  =============
[01:55:12] [PASSED] single_pixel_source_buffer
[01:55:12] [PASSED] single_pixel_clip_rectangle
[01:55:12] [PASSED] well_known_colors
[01:55:12] [PASSED] destination_pitch
[01:55:12] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[01:55:12] ============= drm_test_fb_xrgb8888_to_rgb888  ==============
[01:55:12] [PASSED] single_pixel_source_buffer
[01:55:12] [PASSED] single_pixel_clip_rectangle
[01:55:12] [PASSED] well_known_colors
[01:55:12] [PASSED] destination_pitch
[01:55:12] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[01:55:12] ============= drm_test_fb_xrgb8888_to_bgr888  ==============
[01:55:12] [PASSED] single_pixel_source_buffer
[01:55:12] [PASSED] single_pixel_clip_rectangle
[01:55:12] [PASSED] well_known_colors
[01:55:12] [PASSED] destination_pitch
[01:55:12] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[01:55:12] ============ drm_test_fb_xrgb8888_to_argb8888  =============
[01:55:12] [PASSED] single_pixel_source_buffer
[01:55:12] [PASSED] single_pixel_clip_rectangle
[01:55:12] [PASSED] well_known_colors
[01:55:12] [PASSED] destination_pitch
[01:55:12] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[01:55:12] =========== drm_test_fb_xrgb8888_to_xrgb2101010  ===========
[01:55:12] [PASSED] single_pixel_source_buffer
[01:55:12] [PASSED] single_pixel_clip_rectangle
[01:55:12] [PASSED] well_known_colors
[01:55:12] [PASSED] destination_pitch
[01:55:12] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[01:55:12] =========== drm_test_fb_xrgb8888_to_argb2101010  ===========
[01:55:12] [PASSED] single_pixel_source_buffer
[01:55:12] [PASSED] single_pixel_clip_rectangle
[01:55:12] [PASSED] well_known_colors
[01:55:12] [PASSED] destination_pitch
[01:55:12] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[01:55:12] ============== drm_test_fb_xrgb8888_to_mono  ===============
[01:55:12] [PASSED] single_pixel_source_buffer
[01:55:12] [PASSED] single_pixel_clip_rectangle
[01:55:12] [PASSED] well_known_colors
[01:55:12] [PASSED] destination_pitch
[01:55:12] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[01:55:12] ==================== drm_test_fb_swab  =====================
[01:55:12] [PASSED] single_pixel_source_buffer
[01:55:12] [PASSED] single_pixel_clip_rectangle
[01:55:12] [PASSED] well_known_colors
[01:55:12] [PASSED] destination_pitch
[01:55:12] ================ [PASSED] drm_test_fb_swab =================
[01:55:12] ============ drm_test_fb_xrgb8888_to_xbgr8888  =============
[01:55:12] [PASSED] single_pixel_source_buffer
[01:55:12] [PASSED] single_pixel_clip_rectangle
[01:55:12] [PASSED] well_known_colors
[01:55:12] [PASSED] destination_pitch
[01:55:12] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[01:55:12] ============ drm_test_fb_xrgb8888_to_abgr8888  =============
[01:55:12] [PASSED] single_pixel_source_buffer
[01:55:12] [PASSED] single_pixel_clip_rectangle
[01:55:12] [PASSED] well_known_colors
[01:55:12] [PASSED] destination_pitch
[01:55:12] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[01:55:12] ================= drm_test_fb_clip_offset  =================
[01:55:12] [PASSED] pass through
[01:55:12] [PASSED] horizontal offset
[01:55:12] [PASSED] vertical offset
[01:55:12] [PASSED] horizontal and vertical offset
[01:55:12] [PASSED] horizontal offset (custom pitch)
[01:55:12] [PASSED] vertical offset (custom pitch)
[01:55:12] [PASSED] horizontal and vertical offset (custom pitch)
[01:55:12] ============= [PASSED] drm_test_fb_clip_offset =============
[01:55:12] =================== drm_test_fb_memcpy  ====================
[01:55:12] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[01:55:12] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[01:55:12] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[01:55:12] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[01:55:12] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[01:55:12] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[01:55:12] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[01:55:12] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[01:55:12] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[01:55:12] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[01:55:12] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[01:55:12] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[01:55:12] =============== [PASSED] drm_test_fb_memcpy ================
[01:55:12] ============= [PASSED] drm_format_helper_test ==============
[01:55:12] ================= drm_format (18 subtests) =================
[01:55:12] [PASSED] drm_test_format_block_width_invalid
[01:55:12] [PASSED] drm_test_format_block_width_one_plane
[01:55:12] [PASSED] drm_test_format_block_width_two_plane
[01:55:12] [PASSED] drm_test_format_block_width_three_plane
[01:55:12] [PASSED] drm_test_format_block_width_tiled
[01:55:12] [PASSED] drm_test_format_block_height_invalid
[01:55:12] [PASSED] drm_test_format_block_height_one_plane
[01:55:12] [PASSED] drm_test_format_block_height_two_plane
[01:55:12] [PASSED] drm_test_format_block_height_three_plane
[01:55:12] [PASSED] drm_test_format_block_height_tiled
[01:55:12] [PASSED] drm_test_format_min_pitch_invalid
[01:55:12] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[01:55:12] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[01:55:12] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[01:55:12] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[01:55:12] [PASSED] drm_test_format_min_pitch_two_plane
[01:55:12] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[01:55:12] [PASSED] drm_test_format_min_pitch_tiled
[01:55:12] =================== [PASSED] drm_format ====================
[01:55:12] ============== drm_framebuffer (10 subtests) ===============
[01:55:12] ========== drm_test_framebuffer_check_src_coords  ==========
[01:55:12] [PASSED] Success: source fits into fb
[01:55:12] [PASSED] Fail: overflowing fb with x-axis coordinate
[01:55:12] [PASSED] Fail: overflowing fb with y-axis coordinate
[01:55:12] [PASSED] Fail: overflowing fb with source width
[01:55:12] [PASSED] Fail: overflowing fb with source height
[01:55:12] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[01:55:12] [PASSED] drm_test_framebuffer_cleanup
[01:55:12] =============== drm_test_framebuffer_create  ===============
[01:55:12] [PASSED] ABGR8888 normal sizes
[01:55:12] [PASSED] ABGR8888 max sizes
[01:55:12] [PASSED] ABGR8888 pitch greater than min required
[01:55:12] [PASSED] ABGR8888 pitch less than min required
[01:55:12] [PASSED] ABGR8888 Invalid width
[01:55:12] [PASSED] ABGR8888 Invalid buffer handle
[01:55:12] [PASSED] No pixel format
[01:55:12] [PASSED] ABGR8888 Width 0
[01:55:12] [PASSED] ABGR8888 Height 0
[01:55:12] [PASSED] ABGR8888 Out of bound height * pitch combination
[01:55:12] [PASSED] ABGR8888 Large buffer offset
[01:55:12] [PASSED] ABGR8888 Buffer offset for inexistent plane
[01:55:12] [PASSED] ABGR8888 Invalid flag
[01:55:12] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[01:55:12] [PASSED] ABGR8888 Valid buffer modifier
[01:55:12] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[01:55:12] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[01:55:12] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[01:55:12] [PASSED] NV12 Normal sizes
[01:55:12] [PASSED] NV12 Max sizes
[01:55:12] [PASSED] NV12 Invalid pitch
[01:55:12] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[01:55:12] [PASSED] NV12 different  modifier per-plane
[01:55:12] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[01:55:12] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[01:55:12] [PASSED] NV12 Modifier for inexistent plane
[01:55:12] [PASSED] NV12 Handle for inexistent plane
[01:55:12] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[01:55:12] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[01:55:12] [PASSED] YVU420 Normal sizes
[01:55:12] [PASSED] YVU420 Max sizes
[01:55:12] [PASSED] YVU420 Invalid pitch
[01:55:12] [PASSED] YVU420 Different pitches
[01:55:12] [PASSED] YVU420 Different buffer offsets/pitches
[01:55:12] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[01:55:12] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[01:55:12] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[01:55:12] [PASSED] YVU420 Valid modifier
[01:55:12] [PASSED] YVU420 Different modifiers per plane
[01:55:12] [PASSED] YVU420 Modifier for inexistent plane
[01:55:12] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[01:55:12] [PASSED] X0L2 Normal sizes
[01:55:12] [PASSED] X0L2 Max sizes
[01:55:12] [PASSED] X0L2 Invalid pitch
[01:55:12] [PASSED] X0L2 Pitch greater than minimum required
[01:55:12] [PASSED] X0L2 Handle for inexistent plane
[01:55:12] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[01:55:12] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[01:55:12] [PASSED] X0L2 Valid modifier
[01:55:12] [PASSED] X0L2 Modifier for inexistent plane
[01:55:12] =========== [PASSED] drm_test_framebuffer_create ===========
[01:55:12] [PASSED] drm_test_framebuffer_free
[01:55:12] [PASSED] drm_test_framebuffer_init
[01:55:12] [PASSED] drm_test_framebuffer_init_bad_format
[01:55:12] [PASSED] drm_test_framebuffer_init_dev_mismatch
[01:55:12] [PASSED] drm_test_framebuffer_lookup
[01:55:12] [PASSED] drm_test_framebuffer_lookup_inexistent
[01:55:12] [PASSED] drm_test_framebuffer_modifiers_not_supported
[01:55:12] ================= [PASSED] drm_framebuffer =================
[01:55:12] ================ drm_gem_shmem (8 subtests) ================
[01:55:12] [PASSED] drm_gem_shmem_test_obj_create
[01:55:12] [PASSED] drm_gem_shmem_test_obj_create_private
[01:55:12] [PASSED] drm_gem_shmem_test_pin_pages
[01:55:12] [PASSED] drm_gem_shmem_test_vmap
[01:55:12] [PASSED] drm_gem_shmem_test_get_sg_table
[01:55:12] [PASSED] drm_gem_shmem_test_get_pages_sgt
[01:55:12] [PASSED] drm_gem_shmem_test_madvise
[01:55:12] [PASSED] drm_gem_shmem_test_purge
[01:55:12] ================== [PASSED] drm_gem_shmem ==================
[01:55:12] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[01:55:12] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[01:55:12] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[01:55:12] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[01:55:12] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[01:55:12] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[01:55:12] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[01:55:12] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420  =======
[01:55:12] [PASSED] Automatic
[01:55:12] [PASSED] Full
[01:55:12] [PASSED] Limited 16:235
[01:55:12] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[01:55:12] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[01:55:12] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[01:55:12] [PASSED] drm_test_check_disable_connector
[01:55:12] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[01:55:12] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[01:55:12] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[01:55:12] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[01:55:12] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[01:55:12] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[01:55:12] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[01:55:12] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[01:55:12] [PASSED] drm_test_check_output_bpc_dvi
[01:55:12] [PASSED] drm_test_check_output_bpc_format_vic_1
[01:55:12] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[01:55:12] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[01:55:12] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[01:55:12] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[01:55:12] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[01:55:12] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[01:55:12] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[01:55:12] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[01:55:12] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[01:55:12] [PASSED] drm_test_check_broadcast_rgb_value
[01:55:12] [PASSED] drm_test_check_bpc_8_value
[01:55:12] [PASSED] drm_test_check_bpc_10_value
[01:55:12] [PASSED] drm_test_check_bpc_12_value
[01:55:12] [PASSED] drm_test_check_format_value
[01:55:12] [PASSED] drm_test_check_tmds_char_value
[01:55:12] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[01:55:12] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[01:55:12] [PASSED] drm_test_check_mode_valid
[01:55:12] [PASSED] drm_test_check_mode_valid_reject
[01:55:12] [PASSED] drm_test_check_mode_valid_reject_rate
[01:55:12] [PASSED] drm_test_check_mode_valid_reject_max_clock
[01:55:12] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[01:55:12] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[01:55:12] [PASSED] drm_test_check_infoframes
[01:55:12] [PASSED] drm_test_check_reject_avi_infoframe
[01:55:12] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[01:55:12] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[01:55:12] [PASSED] drm_test_check_reject_audio_infoframe
[01:55:12] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[01:55:12] ================= drm_managed (2 subtests) =================
[01:55:12] [PASSED] drm_test_managed_release_action
[01:55:12] [PASSED] drm_test_managed_run_action
[01:55:12] =================== [PASSED] drm_managed ===================
[01:55:12] =================== drm_mm (6 subtests) ====================
[01:55:12] [PASSED] drm_test_mm_init
[01:55:12] [PASSED] drm_test_mm_debug
[01:55:12] [PASSED] drm_test_mm_align32
[01:55:12] [PASSED] drm_test_mm_align64
[01:55:12] [PASSED] drm_test_mm_lowest
[01:55:12] [PASSED] drm_test_mm_highest
[01:55:12] ===================== [PASSED] drm_mm ======================
[01:55:12] ============= drm_modes_analog_tv (5 subtests) =============
[01:55:12] [PASSED] drm_test_modes_analog_tv_mono_576i
[01:55:12] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[01:55:12] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[01:55:12] [PASSED] drm_test_modes_analog_tv_pal_576i
[01:55:12] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[01:55:12] =============== [PASSED] drm_modes_analog_tv ===============
[01:55:12] ============== drm_plane_helper (2 subtests) ===============
[01:55:12] =============== drm_test_check_plane_state  ================
[01:55:12] [PASSED] clipping_simple
[01:55:12] [PASSED] clipping_rotate_reflect
[01:55:12] [PASSED] positioning_simple
[01:55:12] [PASSED] upscaling
[01:55:12] [PASSED] downscaling
[01:55:12] [PASSED] rounding1
[01:55:12] [PASSED] rounding2
[01:55:12] [PASSED] rounding3
[01:55:12] [PASSED] rounding4
[01:55:12] =========== [PASSED] drm_test_check_plane_state ============
[01:55:12] =========== drm_test_check_invalid_plane_state  ============
[01:55:12] [PASSED] positioning_invalid
[01:55:12] [PASSED] upscaling_invalid
[01:55:12] [PASSED] downscaling_invalid
[01:55:12] ======= [PASSED] drm_test_check_invalid_plane_state ========
[01:55:12] ================ [PASSED] drm_plane_helper =================
[01:55:12] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[01:55:12] ====== drm_test_connector_helper_tv_get_modes_check  =======
[01:55:12] [PASSED] None
[01:55:12] [PASSED] PAL
[01:55:12] [PASSED] NTSC
[01:55:12] [PASSED] Both, NTSC Default
[01:55:12] [PASSED] Both, PAL Default
[01:55:12] [PASSED] Both, NTSC Default, with PAL on command-line
[01:55:12] [PASSED] Both, PAL Default, with NTSC on command-line
[01:55:12] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[01:55:12] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[01:55:12] ================== drm_rect (9 subtests) ===================
[01:55:12] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[01:55:12] [PASSED] drm_test_rect_clip_scaled_not_clipped
[01:55:12] [PASSED] drm_test_rect_clip_scaled_clipped
[01:55:12] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[01:55:12] ================= drm_test_rect_intersect  =================
[01:55:12] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[01:55:12] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[01:55:12] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[01:55:12] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[01:55:12] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[01:55:12] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[01:55:12] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[01:55:12] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[01:55:12] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[01:55:12] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[01:55:12] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[01:55:12] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[01:55:12] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[01:55:12] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[01:55:12] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[01:55:12] ============= [PASSED] drm_test_rect_intersect =============
[01:55:12] ================ drm_test_rect_calc_hscale  ================
[01:55:12] [PASSED] normal use
[01:55:12] [PASSED] out of max range
[01:55:12] [PASSED] out of min range
[01:55:12] [PASSED] zero dst
[01:55:12] [PASSED] negative src
[01:55:12] [PASSED] negative dst
[01:55:12] ============ [PASSED] drm_test_rect_calc_hscale ============
[01:55:12] ================ drm_test_rect_calc_vscale  ================
[01:55:12] [PASSED] normal use
[01:55:12] [PASSED] out of max range
[01:55:12] [PASSED] out of min range
[01:55:12] [PASSED] zero dst
[01:55:12] [PASSED] negative src
[01:55:12] [PASSED] negative dst
stty: 'standard input': Inappropriate ioctl for device
[01:55:12] ============ [PASSED] drm_test_rect_calc_vscale ============
[01:55:12] ================== drm_test_rect_rotate  ===================
[01:55:12] [PASSED] reflect-x
[01:55:12] [PASSED] reflect-y
[01:55:12] [PASSED] rotate-0
[01:55:12] [PASSED] rotate-90
[01:55:12] [PASSED] rotate-180
[01:55:12] [PASSED] rotate-270
[01:55:12] ============== [PASSED] drm_test_rect_rotate ===============
[01:55:12] ================ drm_test_rect_rotate_inv  =================
[01:55:12] [PASSED] reflect-x
[01:55:12] [PASSED] reflect-y
[01:55:12] [PASSED] rotate-0
[01:55:12] [PASSED] rotate-90
[01:55:12] [PASSED] rotate-180
[01:55:12] [PASSED] rotate-270
[01:55:12] ============ [PASSED] drm_test_rect_rotate_inv =============
[01:55:12] ==================== [PASSED] drm_rect =====================
[01:55:12] ============ drm_sysfb_modeset_test (1 subtest) ============
[01:55:12] ============ drm_test_sysfb_build_fourcc_list  =============
[01:55:12] [PASSED] no native formats
[01:55:12] [PASSED] XRGB8888 as native format
[01:55:12] [PASSED] remove duplicates
[01:55:12] [PASSED] convert alpha formats
[01:55:12] [PASSED] random formats
[01:55:12] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[01:55:12] ============= [PASSED] drm_sysfb_modeset_test ==============
[01:55:12] ================== drm_fixp (2 subtests) ===================
[01:55:12] [PASSED] drm_test_int2fixp
[01:55:12] [PASSED] drm_test_sm2fixp
[01:55:12] ==================== [PASSED] drm_fixp =====================
[01:55:12] ============================================================
[01:55:12] Testing complete. Ran 621 tests: passed: 621
[01:55:12] Elapsed time: 27.290s total, 1.658s configuring, 25.460s building, 0.140s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[01:55:12] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[01:55:14] 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
[01:55:23] Starting KUnit Kernel (1/1)...
[01:55:23] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[01:55:23] ================= ttm_device (5 subtests) ==================
[01:55:23] [PASSED] ttm_device_init_basic
[01:55:23] [PASSED] ttm_device_init_multiple
[01:55:23] [PASSED] ttm_device_fini_basic
[01:55:23] [PASSED] ttm_device_init_no_vma_man
[01:55:23] ================== ttm_device_init_pools  ==================
[01:55:23] [PASSED] No DMA allocations, no DMA32 required
[01:55:23] [PASSED] DMA allocations, DMA32 required
[01:55:23] [PASSED] No DMA allocations, DMA32 required
[01:55:23] [PASSED] DMA allocations, no DMA32 required
[01:55:23] ============== [PASSED] ttm_device_init_pools ==============
[01:55:23] =================== [PASSED] ttm_device ====================
[01:55:23] ================== ttm_pool (8 subtests) ===================
[01:55:23] ================== ttm_pool_alloc_basic  ===================
[01:55:23] [PASSED] One page
[01:55:23] [PASSED] More than one page
[01:55:23] [PASSED] Above the allocation limit
[01:55:23] [PASSED] One page, with coherent DMA mappings enabled
[01:55:23] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[01:55:23] ============== [PASSED] ttm_pool_alloc_basic ===============
[01:55:23] ============== ttm_pool_alloc_basic_dma_addr  ==============
[01:55:23] [PASSED] One page
[01:55:23] [PASSED] More than one page
[01:55:23] [PASSED] Above the allocation limit
[01:55:23] [PASSED] One page, with coherent DMA mappings enabled
[01:55:23] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[01:55:23] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[01:55:23] [PASSED] ttm_pool_alloc_order_caching_match
[01:55:23] [PASSED] ttm_pool_alloc_caching_mismatch
[01:55:23] [PASSED] ttm_pool_alloc_order_mismatch
[01:55:23] [PASSED] ttm_pool_free_dma_alloc
[01:55:23] [PASSED] ttm_pool_free_no_dma_alloc
[01:55:23] [PASSED] ttm_pool_fini_basic
[01:55:23] ==================== [PASSED] ttm_pool =====================
[01:55:23] ================ ttm_resource (8 subtests) =================
[01:55:23] ================= ttm_resource_init_basic  =================
[01:55:23] [PASSED] Init resource in TTM_PL_SYSTEM
[01:55:23] [PASSED] Init resource in TTM_PL_VRAM
[01:55:23] [PASSED] Init resource in a private placement
[01:55:23] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[01:55:23] ============= [PASSED] ttm_resource_init_basic =============
[01:55:23] [PASSED] ttm_resource_init_pinned
[01:55:23] [PASSED] ttm_resource_fini_basic
[01:55:23] [PASSED] ttm_resource_manager_init_basic
[01:55:23] [PASSED] ttm_resource_manager_usage_basic
[01:55:23] [PASSED] ttm_resource_manager_set_used_basic
[01:55:23] [PASSED] ttm_sys_man_alloc_basic
[01:55:23] [PASSED] ttm_sys_man_free_basic
[01:55:23] ================== [PASSED] ttm_resource ===================
[01:55:23] =================== ttm_tt (15 subtests) ===================
[01:55:23] ==================== ttm_tt_init_basic  ====================
[01:55:23] [PASSED] Page-aligned size
[01:55:23] [PASSED] Extra pages requested
[01:55:23] ================ [PASSED] ttm_tt_init_basic ================
[01:55:23] [PASSED] ttm_tt_init_misaligned
[01:55:23] [PASSED] ttm_tt_fini_basic
[01:55:23] [PASSED] ttm_tt_fini_sg
[01:55:23] [PASSED] ttm_tt_fini_shmem
[01:55:23] [PASSED] ttm_tt_create_basic
[01:55:23] [PASSED] ttm_tt_create_invalid_bo_type
[01:55:23] [PASSED] ttm_tt_create_ttm_exists
[01:55:23] [PASSED] ttm_tt_create_failed
[01:55:23] [PASSED] ttm_tt_destroy_basic
[01:55:24] [PASSED] ttm_tt_populate_null_ttm
[01:55:24] [PASSED] ttm_tt_populate_populated_ttm
[01:55:24] [PASSED] ttm_tt_unpopulate_basic
[01:55:24] [PASSED] ttm_tt_unpopulate_empty_ttm
[01:55:24] [PASSED] ttm_tt_swapin_basic
[01:55:24] ===================== [PASSED] ttm_tt ======================
[01:55:24] =================== ttm_bo (14 subtests) ===================
[01:55:24] =========== ttm_bo_reserve_optimistic_no_ticket  ===========
[01:55:24] [PASSED] Cannot be interrupted and sleeps
[01:55:24] [PASSED] Cannot be interrupted, locks straight away
[01:55:24] [PASSED] Can be interrupted, sleeps
[01:55:24] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[01:55:24] [PASSED] ttm_bo_reserve_locked_no_sleep
[01:55:24] [PASSED] ttm_bo_reserve_no_wait_ticket
[01:55:24] [PASSED] ttm_bo_reserve_double_resv
[01:55:24] [PASSED] ttm_bo_reserve_interrupted
[01:55:24] [PASSED] ttm_bo_reserve_deadlock
[01:55:24] [PASSED] ttm_bo_unreserve_basic
[01:55:24] [PASSED] ttm_bo_unreserve_pinned
[01:55:24] [PASSED] ttm_bo_unreserve_bulk
[01:55:24] [PASSED] ttm_bo_fini_basic
[01:55:24] [PASSED] ttm_bo_fini_shared_resv
[01:55:24] [PASSED] ttm_bo_pin_basic
[01:55:24] [PASSED] ttm_bo_pin_unpin_resource
[01:55:24] [PASSED] ttm_bo_multiple_pin_one_unpin
[01:55:24] ===================== [PASSED] ttm_bo ======================
[01:55:24] ============== ttm_bo_validate (21 subtests) ===============
[01:55:24] ============== ttm_bo_init_reserved_sys_man  ===============
[01:55:24] [PASSED] Buffer object for userspace
[01:55:24] [PASSED] Kernel buffer object
[01:55:24] [PASSED] Shared buffer object
[01:55:24] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[01:55:24] ============== ttm_bo_init_reserved_mock_man  ==============
[01:55:24] [PASSED] Buffer object for userspace
[01:55:24] [PASSED] Kernel buffer object
[01:55:24] [PASSED] Shared buffer object
[01:55:24] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[01:55:24] [PASSED] ttm_bo_init_reserved_resv
[01:55:24] ================== ttm_bo_validate_basic  ==================
[01:55:24] [PASSED] Buffer object for userspace
[01:55:24] [PASSED] Kernel buffer object
[01:55:24] [PASSED] Shared buffer object
[01:55:24] ============== [PASSED] ttm_bo_validate_basic ==============
[01:55:24] [PASSED] ttm_bo_validate_invalid_placement
[01:55:24] ============= ttm_bo_validate_same_placement  ==============
[01:55:24] [PASSED] System manager
[01:55:24] [PASSED] VRAM manager
[01:55:24] ========= [PASSED] ttm_bo_validate_same_placement ==========
[01:55:24] [PASSED] ttm_bo_validate_failed_alloc
[01:55:24] [PASSED] ttm_bo_validate_pinned
[01:55:24] [PASSED] ttm_bo_validate_busy_placement
[01:55:24] ================ ttm_bo_validate_multihop  =================
[01:55:24] [PASSED] Buffer object for userspace
[01:55:24] [PASSED] Kernel buffer object
[01:55:24] [PASSED] Shared buffer object
[01:55:24] ============ [PASSED] ttm_bo_validate_multihop =============
[01:55:24] ========== ttm_bo_validate_no_placement_signaled  ==========
[01:55:24] [PASSED] Buffer object in system domain, no page vector
[01:55:24] [PASSED] Buffer object in system domain with an existing page vector
[01:55:24] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[01:55:24] ======== ttm_bo_validate_no_placement_not_signaled  ========
[01:55:24] [PASSED] Buffer object for userspace
[01:55:24] [PASSED] Kernel buffer object
[01:55:24] [PASSED] Shared buffer object
[01:55:24] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[01:55:24] [PASSED] ttm_bo_validate_move_fence_signaled
[01:55:24] ========= ttm_bo_validate_move_fence_not_signaled  =========
[01:55:24] [PASSED] Waits for GPU
[01:55:24] [PASSED] Tries to lock straight away
[01:55:24] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[01:55:24] [PASSED] ttm_bo_validate_happy_evict
[01:55:24] [PASSED] ttm_bo_validate_all_pinned_evict
[01:55:24] [PASSED] ttm_bo_validate_allowed_only_evict
[01:55:24] [PASSED] ttm_bo_validate_deleted_evict
[01:55:24] [PASSED] ttm_bo_validate_busy_domain_evict
[01:55:24] [PASSED] ttm_bo_validate_evict_gutting
[01:55:24] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[01:55:24] ================= [PASSED] ttm_bo_validate =================
[01:55:24] ============================================================
[01:55:24] Testing complete. Ran 101 tests: passed: 101
[01:55:24] Elapsed time: 11.476s total, 1.692s configuring, 9.517s building, 0.225s running

+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel



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

* ✓ Xe.CI.BAT: success for drm/i915/display: Prevent NV12 Y-plane allocation from stealing userspace planes
  2026-02-12  0:48 [RFC PATCH] drm/i915/display: Prevent NV12 Y-plane allocation from stealing userspace planes Khaled Almahallawy
  2026-02-12  1:54 ` ✗ CI.checkpatch: warning for " Patchwork
  2026-02-12  1:55 ` ✓ CI.KUnit: success " Patchwork
@ 2026-02-12  2:29 ` Patchwork
  2026-02-12 11:47 ` [RFC PATCH] " Ville Syrjälä
  2026-02-13  7:44 ` ✗ Xe.CI.FULL: failure for " Patchwork
  4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-02-12  2:29 UTC (permalink / raw)
  To: Khaled Almahallawy; +Cc: intel-xe

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

== Series Details ==

Series: drm/i915/display: Prevent NV12 Y-plane allocation from stealing userspace planes
URL   : https://patchwork.freedesktop.org/series/161521/
State : success

== Summary ==

CI Bug Log - changes from xe-4545-b4bfe7d753afaf6ea4950111a309a4e2ef5aef68_BAT -> xe-pw-161521v1_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (12 -> 12)
------------------------------

  No changes in participating hosts


Changes
-------

  No changes found


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

  * Linux: xe-4545-b4bfe7d753afaf6ea4950111a309a4e2ef5aef68 -> xe-pw-161521v1

  IGT_8751: af788251f1ef729d17c802aec2c4547b52059e58 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-4545-b4bfe7d753afaf6ea4950111a309a4e2ef5aef68: b4bfe7d753afaf6ea4950111a309a4e2ef5aef68
  xe-pw-161521v1: 161521v1

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/index.html

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

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

* Re: [RFC PATCH] drm/i915/display: Prevent NV12 Y-plane allocation from stealing userspace planes
  2026-02-12  0:48 [RFC PATCH] drm/i915/display: Prevent NV12 Y-plane allocation from stealing userspace planes Khaled Almahallawy
                   ` (2 preceding siblings ...)
  2026-02-12  2:29 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-02-12 11:47 ` Ville Syrjälä
  2026-02-12 20:55   ` Almahallawy, Khaled
  2026-02-13  7:44 ` ✗ Xe.CI.FULL: failure for " Patchwork
  4 siblings, 1 reply; 7+ messages in thread
From: Ville Syrjälä @ 2026-02-12 11:47 UTC (permalink / raw)
  To: Khaled Almahallawy; +Cc: intel-gfx, intel-xe, Uma Shankar, Jani Nikula

On Wed, Feb 11, 2026 at 04:48:52PM -0800, Khaled Almahallawy wrote:
> The driver automatically allocates a Y-plane (4A/5A) when userspace
> configures an NV12 surface. The allocation loop doesn't check if a
> candidate plane is already configured by userspace in the same atomic
> commit, causing conflict as observed in this i915_display_info:
> 
>   [PLANE:124:plane 4A]: type=OVL
>       uapi: [FB:566] AB24 little-endian (0x34324241),0x0,1920x1280, visible=visible
>       planar: Linked to [PLANE:34:plane 1A] as a Y plane
>       hw: [FB:564] NV12 little-endian (0x3231564e),0x0,1920x1080, visible=yes
> 
> Plane 4A's uapi state shows userspace's AB24 framebuffer, but the hw
> state shows it was reprogrammed with the NV12 Y-plane.
> 
> Example triggered by experiment with IGT test to commit NV12 + multiple
> AB24 planes:
> 
>   === Testing with NV12 primary + 3 ABGR8888 overlays ===
>     Plane 0 (Primary): NV12 1920x1080 at (0, 0)
>     Plane 1 (Overlay 0): ABGR8888 1920x1280 (fullscreen) at (0, 0)
>     Plane 2 (Overlay 1): ABGR8888 1920x1280 (fullscreen) at (0, 0)
>     Plane 3 (Overlay 2): ABGR8888 1920x1280 (fullscreen) at (0, 0)
>     TEST_ONLY passed, committing...
>     Atomic commit SUCCEEDED
> 
> The bug triggers a kernel WARNING in unlink_nv12_plane():
>   WARNING: drivers/gpu/drm/i915/display/intel_plane.c:1521
>   drm_WARN_ON(plane_state->uapi.visible)
>

I think the actual bug is that we unlink the nv12 planes after
plane_atomic_check(). unlink_nv12_plane() will then clobber
some things in the crtc state that was set up by 
plane_atomic_check().

So we perhaps want something like this:

diff --git a/drivers/gpu/drm/i915/display/intel_plane.c b/drivers/gpu/drm/i915/display/intel_plane.c
index 3dc2ed52147f..98d0255b8b18 100644
--- a/drivers/gpu/drm/i915/display/intel_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_plane.c
@@ -441,6 +441,8 @@ void intel_plane_set_invisible(struct intel_crtc_state *crtc_state,
 {
 	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
 
+	unlink_nv12_plane(crtc_state, plane_state);
+
 	crtc_state->active_planes &= ~BIT(plane->id);
 	crtc_state->scaled_planes &= ~BIT(plane->id);
 	crtc_state->nv12_planes &= ~BIT(plane->id);
@@ -1513,6 +1515,9 @@ static void unlink_nv12_plane(struct intel_crtc_state *crtc_state,
 	struct intel_display *display = to_intel_display(plane_state);
 	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
 
+	if (!plane_state->planar_linked_plane)
+		return;
+
 	plane_state->planar_linked_plane = NULL;
 
 	if (!plane_state->is_y_plane)
@@ -1550,8 +1555,7 @@ static int icl_check_nv12_planes(struct intel_atomic_state *state,
 		if (plane->pipe != crtc->pipe)
 			continue;
 
-		if (plane_state->planar_linked_plane)
-			unlink_nv12_plane(crtc_state, plane_state);
+		unlink_nv12_plane(crtc_state, plane_state);
 	}
 
 	if (!crtc_state->nv12_planes)

With that we could perhaps even drop the second unlink_nv12_plane()
call, but haven't really thought through the details...

> Fix by checking uapi.fb before allocating a Y-plane. If set, userspace
> configured this plane, so skip to the next candidate. This enables
> graceful fallback (4A busy -> try 5A) rather than the current
> behavior that steals planes from userspace.

I do have a patch in some branch that changes the Y plane
selection to use 'enabled_planes' instead of 'active_planes'
which is equivalent to this. It is perhaps the slightly more
logical approach but it could result some specific usage
scenarios losing NV12 scanout capability. IIRC I also had
some unsolved issue with that approach, which is why I never
even sent out the patch.

> IGT test and kernel fix generated with assistance from Claude Sonnet 4.5
> through an iterative process. The following is a summary of the prompts
> used:
> 
> IGT test generation prompt:
> Need an IGT test to:
> 1. Reproduce the NV12 + multiple AB24 plane allocation conflict
> 2. Work across different GPU vendors (not Intel-specific)
> 3. Discover hardware limits through iteration (not hardcoded)
> 4. Test atomic commit behavior with mixed formats
> 5. Validate driver properly rejects invalid configurations
> 6. Help debug plane allocation issues (interactive inspection)
> 
> Kernel fix debug process:
> 1. Explained NV12 UV->Y plane linking mechanism (link_nv12_planes)
> 2. Traced Y-plane selection algorithm and hardware constraints
> 3. Analyzed i915_display_info output showing uapi vs hw state mismatch
> 4. Triggered kernel WARNING in unlink_nv12_plane() confirming the bug
> 5. Traced kernel logs through atomic commit sequence
> 6. Identified root cause: Y-plane allocation checks uapi.crtc, but that's
>    set later during plane validation. uapi.fb is set earlier during state
>    setup, making it the correct indicator of userspace configuration
> 7. Evaluated uapi.fb vs uapi.visible for detection timing
> 8. Initially suggested rejecting commit with -EINVAL, but decided graceful
>    fallback with continue is better - allows trying alternate Y-planes
>    (4A busy -> 5A) instead of failing entire atomic commit
> 9. Validated fix prevents plane stealing while allowing alternate Y-plane
> 
> Cc: Uma Shankar <uma.shankar@intel.com>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
> Signed-off-by: Khaled Almahallawy <khaled.almahallawy@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_plane.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_plane.c b/drivers/gpu/drm/i915/display/intel_plane.c
> index 3dc2ed52147f..57d1a9cd226e 100644
> --- a/drivers/gpu/drm/i915/display/intel_plane.c
> +++ b/drivers/gpu/drm/i915/display/intel_plane.c
> @@ -1578,6 +1578,10 @@ static int icl_check_nv12_planes(struct intel_atomic_state *state,
>  			if (IS_ERR(y_plane_state))
>  				return PTR_ERR(y_plane_state);
>  
> +			/* Reject if this Y-plane is being configured by userspace */
> +			if (y_plane_state->uapi.fb)
> +				continue;
> +
>  			break;
>  		}
>  
> -- 
> 2.43.0

-- 
Ville Syrjälä
Intel

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

* Re: [RFC PATCH] drm/i915/display: Prevent NV12 Y-plane allocation from stealing userspace planes
  2026-02-12 11:47 ` [RFC PATCH] " Ville Syrjälä
@ 2026-02-12 20:55   ` Almahallawy, Khaled
  0 siblings, 0 replies; 7+ messages in thread
From: Almahallawy, Khaled @ 2026-02-12 20:55 UTC (permalink / raw)
  To: ville.syrjala@linux.intel.com
  Cc: intel-xe@lists.freedesktop.org, Srinivas, Vidya, Nikula, Jani,
	Navare, Manasi, intel-gfx@lists.freedesktop.org, Shankar, Uma,
	ddavenport@google.com, seanpaul@google.com

On Thu, 2026-02-12 at 13:47 +0200, Ville Syrjälä wrote:
> On Wed, Feb 11, 2026 at 04:48:52PM -0800, Khaled Almahallawy wrote:
> > The driver automatically allocates a Y-plane (4A/5A) when userspace
> > configures an NV12 surface. The allocation loop doesn't check if a
> > candidate plane is already configured by userspace in the same
> > atomic
> > commit, causing conflict as observed in this i915_display_info:
> > 
> >   [PLANE:124:plane 4A]: type=OVL
> >       uapi: [FB:566] AB24 little-endian (0x34324241),0x0,1920x1280,
> > visible=visible
> >       planar: Linked to [PLANE:34:plane 1A] as a Y plane
> >       hw: [FB:564] NV12 little-endian (0x3231564e),0x0,1920x1080,
> > visible=yes
> > 
> > Plane 4A's uapi state shows userspace's AB24 framebuffer, but the
> > hw
> > state shows it was reprogrammed with the NV12 Y-plane.
> > 
> > Example triggered by experiment with IGT test to commit NV12 +
> > multiple
> > AB24 planes:
> > 
> >   === Testing with NV12 primary + 3 ABGR8888 overlays ===
> >     Plane 0 (Primary): NV12 1920x1080 at (0, 0)
> >     Plane 1 (Overlay 0): ABGR8888 1920x1280 (fullscreen) at (0, 0)
> >     Plane 2 (Overlay 1): ABGR8888 1920x1280 (fullscreen) at (0, 0)
> >     Plane 3 (Overlay 2): ABGR8888 1920x1280 (fullscreen) at (0, 0)
> >     TEST_ONLY passed, committing...
> >     Atomic commit SUCCEEDED
> > 
> > The bug triggers a kernel WARNING in unlink_nv12_plane():
> >   WARNING: drivers/gpu/drm/i915/display/intel_plane.c:1521
> >   drm_WARN_ON(plane_state->uapi.visible)
> > 
> 
> I think the actual bug is that we unlink the nv12 planes after
> plane_atomic_check(). unlink_nv12_plane() will then clobber
> some things in the crtc state that was set up by 
> plane_atomic_check().
> 
> So we perhaps want something like this:
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_plane.c
> b/drivers/gpu/drm/i915/display/intel_plane.c
> index 3dc2ed52147f..98d0255b8b18 100644
> --- a/drivers/gpu/drm/i915/display/intel_plane.c
> +++ b/drivers/gpu/drm/i915/display/intel_plane.c
> @@ -441,6 +441,8 @@ void intel_plane_set_invisible(struct
> intel_crtc_state *crtc_state,
>  {
>  	struct intel_plane *plane = to_intel_plane(plane_state-
> >uapi.plane);
>  
> +	unlink_nv12_plane(crtc_state, plane_state);
> +
>  	crtc_state->active_planes &= ~BIT(plane->id);
>  	crtc_state->scaled_planes &= ~BIT(plane->id);
>  	crtc_state->nv12_planes &= ~BIT(plane->id);
> @@ -1513,6 +1515,9 @@ static void unlink_nv12_plane(struct
> intel_crtc_state *crtc_state,
>  	struct intel_display *display =
> to_intel_display(plane_state);
>  	struct intel_plane *plane = to_intel_plane(plane_state-
> >uapi.plane);
>  
> +	if (!plane_state->planar_linked_plane)
> +		return;
> +
>  	plane_state->planar_linked_plane = NULL;
>  
>  	if (!plane_state->is_y_plane)
> @@ -1550,8 +1555,7 @@ static int icl_check_nv12_planes(struct
> intel_atomic_state *state,
>  		if (plane->pipe != crtc->pipe)
>  			continue;
>  
> -		if (plane_state->planar_linked_plane)
> -			unlink_nv12_plane(crtc_state, plane_state);
> +		unlink_nv12_plane(crtc_state, plane_state);
>  	}
>  
>  	if (!crtc_state->nv12_planes)
> 
> With that we could perhaps even drop the second unlink_nv12_plane()
> call, but haven't really thought through the details...
> 
Hi Ville,

Thank you for this fix - I've tested it and confirmed it works
correctly. The Y-plane (5A) is now properly assigned without stealing
plane 4A that userspace had configured. Logs are below

For context, this issue came up while working with Android and
drm_hwcomposer, which tends to use MANY overlay layers simultaneously.
When combining NV12 video playback with multiple AB24 layers we started
to see issues.


Could you please suggest the next steps? If you plan to send this fix
here is

Tested-by: Khaled Almahallawy <khaled.almahallawy@intel.com>

Or Would you be willing to share that Y-plane selection patch and we
can test it against the Android/drm_hwcomposer use case

Thanks again for the quick turnaround on this!

For reference, below are the logs:. 


igt run:

sudo ./kms_plane_multiple --run-subtest atomic-plane-stress-with-
formats
IGT-Version: 2.3-gd9d59d09a (x86_64) (Linux: 6.19.0-CI_DRM_17981-
g923df5da4a4a x86_64)
Using IGT_SRANDOM=1770899565 for randomisation
Opened device: /dev/dri/card1
Starting subtest: atomic-plane-stress-with-formats
Starting dynamic subtest: pipe-A-eDP-1
Testing pipe A with eDP-1
Found 6 total planes (4 overlays) on pipe A
Primary plane: NV12 1920x1080 at (0, 0)

=== Testing with NV12 primary + 1 ABGR8888 overlay ===
  Plane 0 (Primary): NV12 1920x1080 at (0, 0)
  Plane 1 (Overlay 0): ABGR8888 1920x1280 (fullscreen) at (0, 0)
  ✓ TEST_ONLY passed, committing...
  ✓ Atomic commit SUCCEEDED

>>> Check i915_display_info now (cat
/sys/kernel/debug/dri/0/i915_display_info) <<<
>>> Press ENTER to continue...


=== Testing with NV12 primary + 2 ABGR8888 overlays ===
  Plane 0 (Primary): NV12 1920x1080 at (0, 0)
  Plane 1 (Overlay 0): ABGR8888 1920x1280 (fullscreen) at (0, 0)
  Plane 2 (Overlay 1): ABGR8888 1920x1280 (fullscreen) at (0, 0)
  ✓ TEST_ONLY passed, committing...
  ✓ Atomic commit SUCCEEDED

>>> Check i915_display_info now (cat
/sys/kernel/debug/dri/0/i915_display_info) <<<
>>> Press ENTER to continue...


=== Testing with NV12 primary + 3 ABGR8888 overlays ===
  Plane 0 (Primary): NV12 1920x1080 at (0, 0)
  Plane 1 (Overlay 0): ABGR8888 1920x1280 (fullscreen) at (0, 0)
  Plane 2 (Overlay 1): ABGR8888 1920x1280 (fullscreen) at (0, 0)
  Plane 3 (Overlay 2): ABGR8888 1920x1280 (fullscreen) at (0, 0)
  ✓ TEST_ONLY passed, committing...
  ✓ Atomic commit SUCCEEDED

>>> Check i915_display_info now (cat
/sys/kernel/debug/dri/0/i915_display_info) <<<
>>> Press ENTER to continue...


=== Testing with NV12 primary + 4 ABGR8888 overlays ===
  Plane 0 (Primary): NV12 1920x1080 at (0, 0)
  Plane 1 (Overlay 0): ABGR8888 1920x1280 (fullscreen) at (0, 0)
  Plane 2 (Overlay 1): ABGR8888 1920x1280 (fullscreen) at (0, 0)
  Plane 3 (Overlay 2): ABGR8888 1920x1280 (fullscreen) at (0, 0)
  Plane 4 (Overlay 3): ABGR8888 1920x1280 (fullscreen) at (0, 0)
  ✗ TEST_ONLY rejected (ret=-22)
  ✗ No working configuration found with 4 overlays

=== Results ===
Maximum configuration: NV12 primary + 3 ABGR8888 overlays
Dynamic subtest pipe-A-eDP-1: SUCCESS (299.910s)
Subtest atomic-plane-stress-with-formats: SUCCESS (299.910s)



display_info:


	[PLANE:124:plane 4A]: type=OVL
		uapi: [FB:566] AB24 little-endian
(0x34324241),0x0,1920x1280, visible=visible,
src=1920.000000x1280.000000+0.000000+0.000000, dst=1920x1280+0+0, rota
tion=0 (0x00000001)
		hw: [FB:566] AB24 little-endian
(0x34324241),0x0,1920x1280, visible=yes,
src=1920.000000x1280.000000+0.000000+0.000000, dst=1920x1280+0+0,
rotation=0
 (0x00000001)
	[PLANE:134:plane 5A]: type=OVL
		uapi: [FB:0] n/a,0x0,0x0,, visible=Y plane,
src=0.000000x0.000000+0.000000+0.000000, dst=0x0+0+0, rotation=0
(0x00000001)
		planar: Linked to [PLANE:34:plane 1A] as a Y plane
		hw: [FB:564] NV12 little-endian
(0x3231564e),0x0,1920x1080, visible=no,
src=1920.000000x1080.000000+0.000000+0.000000, dst=1920x1080+0+0,
rotation=0 


Kernel logs:

[156.742148] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:64:plane 2A] ddb (177-1376) -> (   0-   0)
[156.742370] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:64:plane 2A] level wm0, wm1, wm2, wm3, wm4, wm5, wm6, wm7, twm,
swm, stwm -> wm0, wm1, wm2, wm3, wm4, wm5, wm6, wm7, twm, swm, stwm
[156.742537] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:64:plane 2A]   lines   3,   3,   3,   4,   5,   7,  10,  12,  
0,   0,   1 ->   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0
[156.742701] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:64:plane 2A]  blocks  48,  48,  48,  65,  81, 113, 161, 193,  
0,   0,  16 ->   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0
[156.742871] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:64:plane 2A] min_ddb  58,  58,  58,  76,  93, 129, 181, 215,  
0,   0,   0 ->   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0
[156.743035] i915 0000:00:02.0: [drm:intel_bw_atomic_check [i915]]
[CRTC:150:pipe A] data rate 3328000 num active planes 3 -> 2
[156.743239] i915 0000:00:02.0: [drm:intel_bw_atomic_check [i915]] QGV
point 0: max bw 14993 required 1665
[156.913297] i915 0000:00:02.0: [drm:verify_connector_state [i915]]
[CONNECTOR:291:DP-1]
[156.913477] i915 0000:00:02.0: [drm:intel_atomic_commit_tail [i915]]
[CRTC:150:pipe A]

[156.913628] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:94:plane 3A] ddb (1376-2575) -> (   0-   0)
[156.913823] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:94:plane 3A] level wm0, wm1, wm2, wm3, wm4, wm5, wm6, wm7, twm,
swm, stwm -> wm0, wm1, wm2, wm3, wm4, wm5, wm6, wm7, twm, swm, stwm
[156.913993] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:94:plane 3A]   lines   3,   3,   3,   4,   5,   7,  10,  12,  
0,   0,   1 ->   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0
[156.914149] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:94:plane 3A]  blocks  48,  48,  48,  65,  81, 113, 161, 193,  
0,   0,  16 ->   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0
[156.914306] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:94:plane 3A] min_ddb  58,  58,  58,  76,  93, 129, 181, 215,  
0,   0,   0 ->   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0
[156.914480] i915 0000:00:02.0: [drm:intel_bw_atomic_check [i915]]
[CRTC:150:pipe A] data rate 3328000 num active planes 2 -> 2
[156.914669] i915 0000:00:02.0: [drm:intel_bw_atomic_check [i915]] QGV
point 0: max bw 14993 required 1665
[157.080238] i915 0000:00:02.0: [drm:verify_connector_state [i915]]
[CONNECTOR:291:DP-1]
[157.080413] i915 0000:00:02.0: [drm:intel_atomic_commit_tail [i915]]
[CRTC:150:pipe A]

[156.916097] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:64:plane 2A] ddb (   0-   0) -> ( 177-1376)
[156.916277] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:64:plane 2A] level wm0, wm1, wm2, wm3, wm4, wm5, wm6, wm7, twm,
swm, stwm -> wm0, wm1, wm2, wm3, wm4, wm5, wm6, wm7, twm, swm, stwm
[156.916231] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:34:plane 1A] ddb ( 177- 354) -> (   0- 177)
[156.916233] i915 0000:00:02.0: [drm:icl_check_nv12_planes [i915]]
Linking NV12 planes: UV plane [PLANE:34:plane 1A] using Y plane
[PLANE:134:plane 5A]
[156.916266] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:94:plane 3A] ddb (   0-   0) -> (1376-2575)
[156.916398] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:34:plane 1A] ddb (   0- 177) -> (   0- 177)
[156.916517] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:64:plane 2A] ddb ( 177-1376) -> ( 177-1376)
[156.916681] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:94:plane 3A] ddb (1376-2575) -> (1376-2575)
[156.916802] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:124:plane 4A] ddb (   0-   0) -> (2575-3774)
[156.916922] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:134:plane 5A] ddb (   0-   0) -> (3774-4051)
[156.917056] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:134:plane 5A] level wm0, wm1, wm2, wm3, wm4, wm5, wm6, wm7, twm,
swm, stwm -> wm0, wm1, wm2, wm3, wm4, wm5, wm6, wm7, twm, swm, stwm
[156.917223] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:134:plane 5A]   lines   0,   0,   0,   0,   0,   0,   0,   0,  
0,   0,   0 ->   3,   3,   3,   5,   6,   8,  12,  14,   0,   0,   1
[156.917388] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:134:plane 5A]  blocks   0,   0,   0,   0,   0,   0,   0,   0,  
0,   0,   0 ->  46,  46,  46,  77,  93, 125, 185, 217,   0,   0,  16
[156.917552] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:134:plane 5A] min_ddb   0,   0,   0,   0,   0,   0,   0,   0,  
0,   0,   0 ->  55,  55,  55,  89, 107, 143, 207, 241,   0,   0,   0
[156.919192] i915 0000:00:02.0: [drm:intel_bw_atomic_check [i915]]
[CRTC:150:pipe A] data rate 2471100 num active planes 5
[156.919385] i915 0000:00:02.0: [drm:intel_bw_atomic_check [i915]] QGV
point 0: max bw 14993 required 1236

[157.078870] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:34:plane 1A] ddb (   0- 177) -> (   0- 177)
[157.079049] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:64:plane 2A] ddb ( 177-1376) -> ( 177-1376)
[157.079224] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:94:plane 3A] ddb (1376-2575) -> (1376-2575)
[157.079390] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:124:plane 4A] ddb (2575-3774) -> (2575-3774)
[157.079554] i915 0000:00:02.0: [drm:skl_compute_wm [i915]]
[PLANE:134:plane 5A] ddb (3774-4051) -> (3774-4051)
[157.080052] i915 0000:00:02.0: [drm:intel_bw_atomic_check [i915]]
[CRTC:150:pipe A] data rate 2471100 num active planes 5
[157.080238] i915 0000:00:02.0: [drm:intel_bw_atomic_check [i915]] QGV
point 0: max bw 14993 required 1236

Thank You
Khaled


> > Fix by checking uapi.fb before allocating a Y-plane. If set,
> > userspace
> > configured this plane, so skip to the next candidate. This enables
> > graceful fallback (4A busy -> try 5A) rather than the current
> > behavior that steals planes from userspace.
> 
> I do have a patch in some branch that changes the Y plane
> selection to use 'enabled_planes' instead of 'active_planes'
> which is equivalent to this. It is perhaps the slightly more
> logical approach but it could result some specific usage
> scenarios losing NV12 scanout capability. IIRC I also had
> some unsolved issue with that approach, which is why I never
> even sent out the patch.
> 
> > IGT test and kernel fix generated with assistance from Claude
> > Sonnet 4.5
> > through an iterative process. The following is a summary of the
> > prompts
> > used:
> > 
> > IGT test generation prompt:
> > Need an IGT test to:
> > 1. Reproduce the NV12 + multiple AB24 plane allocation conflict
> > 2. Work across different GPU vendors (not Intel-specific)
> > 3. Discover hardware limits through iteration (not hardcoded)
> > 4. Test atomic commit behavior with mixed formats
> > 5. Validate driver properly rejects invalid configurations
> > 6. Help debug plane allocation issues (interactive inspection)
> > 
> > Kernel fix debug process:
> > 1. Explained NV12 UV->Y plane linking mechanism (link_nv12_planes)
> > 2. Traced Y-plane selection algorithm and hardware constraints
> > 3. Analyzed i915_display_info output showing uapi vs hw state
> > mismatch
> > 4. Triggered kernel WARNING in unlink_nv12_plane() confirming the
> > bug
> > 5. Traced kernel logs through atomic commit sequence
> > 6. Identified root cause: Y-plane allocation checks uapi.crtc, but
> > that's
> >    set later during plane validation. uapi.fb is set earlier during
> > state
> >    setup, making it the correct indicator of userspace
> > configuration
> > 7. Evaluated uapi.fb vs uapi.visible for detection timing
> > 8. Initially suggested rejecting commit with -EINVAL, but decided
> > graceful
> >    fallback with continue is better - allows trying alternate Y-
> > planes
> >    (4A busy -> 5A) instead of failing entire atomic commit
> > 9. Validated fix prevents plane stealing while allowing alternate
> > Y-plane
> > 
> > Cc: Uma Shankar <uma.shankar@intel.com>
> > Cc: Jani Nikula <jani.nikula@intel.com>
> > Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
> > Signed-off-by: Khaled Almahallawy <khaled.almahallawy@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_plane.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_plane.c
> > b/drivers/gpu/drm/i915/display/intel_plane.c
> > index 3dc2ed52147f..57d1a9cd226e 100644
> > --- a/drivers/gpu/drm/i915/display/intel_plane.c
> > +++ b/drivers/gpu/drm/i915/display/intel_plane.c
> > @@ -1578,6 +1578,10 @@ static int icl_check_nv12_planes(struct
> > intel_atomic_state *state,
> >  			if (IS_ERR(y_plane_state))
> >  				return PTR_ERR(y_plane_state);
> >  
> > +			/* Reject if this Y-plane is being
> > configured by userspace */
> > +			if (y_plane_state->uapi.fb)
> > +				continue;
> > +
> >  			break;
> >  		}
> >  
> > -- 
> > 2.43.0
> 


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

* ✗ Xe.CI.FULL: failure for drm/i915/display: Prevent NV12 Y-plane allocation from stealing userspace planes
  2026-02-12  0:48 [RFC PATCH] drm/i915/display: Prevent NV12 Y-plane allocation from stealing userspace planes Khaled Almahallawy
                   ` (3 preceding siblings ...)
  2026-02-12 11:47 ` [RFC PATCH] " Ville Syrjälä
@ 2026-02-13  7:44 ` Patchwork
  4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-02-13  7:44 UTC (permalink / raw)
  To: Almahallawy, Khaled; +Cc: intel-xe

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

== Series Details ==

Series: drm/i915/display: Prevent NV12 Y-plane allocation from stealing userspace planes
URL   : https://patchwork.freedesktop.org/series/161521/
State : failure

== Summary ==

CI Bug Log - changes from xe-4545-b4bfe7d753afaf6ea4950111a309a4e2ef5aef68_FULL -> xe-pw-161521v1_FULL
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with xe-pw-161521v1_FULL absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in xe-pw-161521v1_FULL, 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 (2 -> 2)
------------------------------

  No changes in participating hosts

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

  Here are the unknown changes that may have been introduced in xe-pw-161521v1_FULL:

### IGT changes ###

#### Possible regressions ####

  * igt@xe_pm@s4-mocs:
    - shard-lnl:          [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4545-b4bfe7d753afaf6ea4950111a309a4e2ef5aef68/shard-lnl-5/igt@xe_pm@s4-mocs.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-lnl-1/igt@xe_pm@s4-mocs.html

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

  Here are the changes found in xe-pw-161521v1_FULL that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_big_fb@4-tiled-64bpp-rotate-90:
    - shard-bmg:          NOTRUN -> [SKIP][3] ([Intel XE#2327])
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html

  * igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-bmg:          NOTRUN -> [SKIP][4] ([Intel XE#7059])
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0:
    - shard-bmg:          NOTRUN -> [SKIP][5] ([Intel XE#1124]) +4 other tests skip
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0.html

  * igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p:
    - shard-bmg:          NOTRUN -> [SKIP][6] ([Intel XE#2314] / [Intel XE#2894]) +1 other test skip
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-a-dp-2:
    - shard-bmg:          NOTRUN -> [SKIP][7] ([Intel XE#2652] / [Intel XE#787]) +7 other tests skip
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-8/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-a-dp-2.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc:
    - shard-bmg:          NOTRUN -> [SKIP][8] ([Intel XE#3432]) +1 other test skip
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc:
    - shard-bmg:          NOTRUN -> [SKIP][9] ([Intel XE#2887]) +6 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html

  * igt@kms_chamelium_color@ctm-0-50:
    - shard-bmg:          NOTRUN -> [SKIP][10] ([Intel XE#2325]) +1 other test skip
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@kms_chamelium_color@ctm-0-50.html

  * igt@kms_chamelium_hpd@hdmi-hpd-enable-disable-mode:
    - shard-bmg:          NOTRUN -> [SKIP][11] ([Intel XE#2252]) +1 other test skip
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@kms_chamelium_hpd@hdmi-hpd-enable-disable-mode.html

  * igt@kms_content_protection@lic-type-0-hdcp14@pipe-a-dp-1:
    - shard-bmg:          NOTRUN -> [FAIL][12] ([Intel XE#3304]) +1 other test fail
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-5/igt@kms_content_protection@lic-type-0-hdcp14@pipe-a-dp-1.html

  * igt@kms_content_protection@suspend-resume@pipe-a-dp-2:
    - shard-bmg:          NOTRUN -> [FAIL][13] ([Intel XE#1178] / [Intel XE#3304])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-6/igt@kms_content_protection@suspend-resume@pipe-a-dp-2.html

  * igt@kms_cursor_crc@cursor-offscreen-128x42:
    - shard-bmg:          NOTRUN -> [SKIP][14] ([Intel XE#2320])
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@kms_cursor_crc@cursor-offscreen-128x42.html

  * igt@kms_cursor_crc@cursor-random-512x170:
    - shard-bmg:          NOTRUN -> [SKIP][15] ([Intel XE#2321])
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@kms_cursor_crc@cursor-random-512x170.html

  * igt@kms_dsc@dsc-with-bpc-formats:
    - shard-bmg:          NOTRUN -> [SKIP][16] ([Intel XE#2244])
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@kms_dsc@dsc-with-bpc-formats.html

  * igt@kms_feature_discovery@display-4x:
    - shard-bmg:          NOTRUN -> [SKIP][17] ([Intel XE#1138])
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@kms_feature_discovery@display-4x.html

  * igt@kms_feature_discovery@psr2:
    - shard-bmg:          NOTRUN -> [SKIP][18] ([Intel XE#2374])
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@kms_feature_discovery@psr2.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-bmg:          [PASS][19] -> [INCOMPLETE][20] ([Intel XE#2049] / [Intel XE#2597]) +1 other test incomplete
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4545-b4bfe7d753afaf6ea4950111a309a4e2ef5aef68/shard-bmg-1/igt@kms_flip@flip-vs-suspend-interruptible.html
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-9/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
    - shard-bmg:          NOTRUN -> [SKIP][21] ([Intel XE#7178]) +1 other test skip
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][22] ([Intel XE#4141]) +3 other tests skip
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][23] ([Intel XE#2311]) +11 other tests skip
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][24] ([Intel XE#2313]) +11 other tests skip
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
    - shard-bmg:          NOTRUN -> [SKIP][25] ([Intel XE#4090])
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier@pipe-a-plane-5:
    - shard-bmg:          NOTRUN -> [SKIP][26] ([Intel XE#7130]) +8 other tests skip
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier@pipe-a-plane-5.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier@pipe-b-plane-5:
    - shard-bmg:          NOTRUN -> [SKIP][27] ([Intel XE#7111] / [Intel XE#7130]) +1 other test skip
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier@pipe-b-plane-5.html

  * igt@kms_plane@pixel-format-yf-tiled-ccs-modifier-source-clamping:
    - shard-bmg:          NOTRUN -> [SKIP][28] ([Intel XE#7111] / [Intel XE#7130] / [Intel XE#7131])
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@kms_plane@pixel-format-yf-tiled-ccs-modifier-source-clamping.html

  * igt@kms_plane@pixel-format-yf-tiled-ccs-modifier-source-clamping@pipe-a-plane-5:
    - shard-bmg:          NOTRUN -> [SKIP][29] ([Intel XE#7131])
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@kms_plane@pixel-format-yf-tiled-ccs-modifier-source-clamping@pipe-a-plane-5.html

  * igt@kms_plane@pixel-format-yf-tiled-ccs-modifier-source-clamping@pipe-b-plane-5:
    - shard-bmg:          NOTRUN -> [SKIP][30] ([Intel XE#7111] / [Intel XE#7131])
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@kms_plane@pixel-format-yf-tiled-ccs-modifier-source-clamping@pipe-b-plane-5.html

  * igt@kms_plane_multiple@tiling-y:
    - shard-bmg:          NOTRUN -> [SKIP][31] ([Intel XE#5020])
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@kms_plane_multiple@tiling-y.html

  * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75@pipe-a:
    - shard-bmg:          NOTRUN -> [SKIP][32] ([Intel XE#6886]) +4 other tests skip
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75@pipe-a.html

  * igt@kms_pm_backlight@fade-with-dpms:
    - shard-bmg:          NOTRUN -> [SKIP][33] ([Intel XE#870])
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@kms_pm_backlight@fade-with-dpms.html

  * igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf:
    - shard-bmg:          NOTRUN -> [SKIP][34] ([Intel XE#1406] / [Intel XE#1489]) +3 other tests skip
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_su@page_flip-p010:
    - shard-bmg:          NOTRUN -> [SKIP][35] ([Intel XE#1406] / [Intel XE#2387])
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@kms_psr2_su@page_flip-p010.html

  * igt@kms_psr@fbc-pr-basic:
    - shard-bmg:          NOTRUN -> [SKIP][36] ([Intel XE#1406] / [Intel XE#2234] / [Intel XE#2850]) +4 other tests skip
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@kms_psr@fbc-pr-basic.html

  * igt@kms_rotation_crc@multiplane-rotation:
    - shard-lnl:          [PASS][37] -> [FAIL][38] ([Intel XE#1874] / [Intel XE#6946])
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4545-b4bfe7d753afaf6ea4950111a309a4e2ef5aef68/shard-lnl-3/igt@kms_rotation_crc@multiplane-rotation.html
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-lnl-8/igt@kms_rotation_crc@multiplane-rotation.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-180:
    - shard-bmg:          NOTRUN -> [SKIP][39] ([Intel XE#2330]) +1 other test skip
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html

  * igt@kms_rotation_crc@sprite-rotation-90-pos-100-0:
    - shard-bmg:          NOTRUN -> [SKIP][40] ([Intel XE#3414] / [Intel XE#3904])
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@kms_rotation_crc@sprite-rotation-90-pos-100-0.html

  * igt@kms_sharpness_filter@filter-scaler-downscale:
    - shard-bmg:          NOTRUN -> [SKIP][41] ([Intel XE#6503])
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@kms_sharpness_filter@filter-scaler-downscale.html

  * igt@kms_vrr@lobf:
    - shard-bmg:          NOTRUN -> [SKIP][42] ([Intel XE#2168])
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@kms_vrr@lobf.html

  * igt@xe_eudebug@discovery-empty:
    - shard-bmg:          NOTRUN -> [SKIP][43] ([Intel XE#4837]) +5 other tests skip
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@xe_eudebug@discovery-empty.html

  * igt@xe_eudebug_online@pagefault-read:
    - shard-bmg:          NOTRUN -> [SKIP][44] ([Intel XE#4837] / [Intel XE#6665])
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@xe_eudebug_online@pagefault-read.html

  * igt@xe_evict@evict-beng-mixed-many-threads-small:
    - shard-bmg:          NOTRUN -> [INCOMPLETE][45] ([Intel XE#6321])
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@xe_evict@evict-beng-mixed-many-threads-small.html

  * igt@xe_evict@evict-small-multi-queue:
    - shard-bmg:          NOTRUN -> [SKIP][46] ([Intel XE#7140])
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@xe_evict@evict-small-multi-queue.html

  * igt@xe_exec_basic@multigpu-no-exec-userptr-rebind:
    - shard-bmg:          NOTRUN -> [SKIP][47] ([Intel XE#2322]) +2 other tests skip
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@xe_exec_basic@multigpu-no-exec-userptr-rebind.html

  * igt@xe_exec_fault_mode@once-multi-queue-userptr-invalidate-imm:
    - shard-bmg:          NOTRUN -> [SKIP][48] ([Intel XE#7136]) +6 other tests skip
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@xe_exec_fault_mode@once-multi-queue-userptr-invalidate-imm.html

  * igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-priority:
    - shard-bmg:          NOTRUN -> [SKIP][49] ([Intel XE#6874]) +12 other tests skip
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-priority.html

  * igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma:
    - shard-lnl:          [PASS][50] -> [FAIL][51] ([Intel XE#5625])
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4545-b4bfe7d753afaf6ea4950111a309a4e2ef5aef68/shard-lnl-7/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma.html
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-lnl-4/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma.html

  * igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate-race:
    - shard-bmg:          NOTRUN -> [SKIP][52] ([Intel XE#7138]) +4 other tests skip
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate-race.html

  * igt@xe_multigpu_svm@mgpu-latency-prefetch:
    - shard-bmg:          NOTRUN -> [SKIP][53] ([Intel XE#6964]) +1 other test skip
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@xe_multigpu_svm@mgpu-latency-prefetch.html

  * igt@xe_pat@pat-index-xelp:
    - shard-bmg:          NOTRUN -> [SKIP][54] ([Intel XE#2245])
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@xe_pat@pat-index-xelp.html

  * igt@xe_pxp@pxp-stale-bo-bind-post-termination-irq:
    - shard-bmg:          NOTRUN -> [SKIP][55] ([Intel XE#4733]) +1 other test skip
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-7/igt@xe_pxp@pxp-stale-bo-bind-post-termination-irq.html

  * igt@xe_query@multigpu-query-invalid-uc-fw-version-mbz:
    - shard-bmg:          NOTRUN -> [SKIP][56] ([Intel XE#944])
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@xe_query@multigpu-query-invalid-uc-fw-version-mbz.html

  
#### Possible fixes ####

  * igt@kms_cursor_legacy@flip-vs-cursor-legacy:
    - shard-bmg:          [FAIL][57] ([Intel XE#5299]) -> [PASS][58] +1 other test pass
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4545-b4bfe7d753afaf6ea4950111a309a4e2ef5aef68/shard-bmg-6/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-4/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html

  * igt@kms_flip@flip-vs-expired-vblank@c-edp1:
    - shard-lnl:          [FAIL][59] ([Intel XE#301] / [Intel XE#3149]) -> [PASS][60] +1 other test pass
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4545-b4bfe7d753afaf6ea4950111a309a4e2ef5aef68/shard-lnl-6/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-lnl-7/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html

  * igt@kms_pm_rpm@universal-planes-dpms:
    - shard-bmg:          [INCOMPLETE][61] ([Intel XE#6891]) -> [PASS][62]
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4545-b4bfe7d753afaf6ea4950111a309a4e2ef5aef68/shard-bmg-3/igt@kms_pm_rpm@universal-planes-dpms.html
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@kms_pm_rpm@universal-planes-dpms.html

  * igt@kms_pm_rpm@universal-planes-dpms@plane-134:
    - shard-bmg:          [INCOMPLETE][63] -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4545-b4bfe7d753afaf6ea4950111a309a4e2ef5aef68/shard-bmg-3/igt@kms_pm_rpm@universal-planes-dpms@plane-134.html
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-3/igt@kms_pm_rpm@universal-planes-dpms@plane-134.html

  * igt@kms_vrr@cmrr@pipe-a-edp-1:
    - shard-lnl:          [FAIL][65] ([Intel XE#4459]) -> [PASS][66] +1 other test pass
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4545-b4bfe7d753afaf6ea4950111a309a4e2ef5aef68/shard-lnl-7/igt@kms_vrr@cmrr@pipe-a-edp-1.html
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-lnl-4/igt@kms_vrr@cmrr@pipe-a-edp-1.html

  
#### Warnings ####

  * igt@kms_hdr@brightness-with-hdr:
    - shard-bmg:          [SKIP][67] ([Intel XE#3544]) -> [SKIP][68] ([Intel XE#3374] / [Intel XE#3544])
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4545-b4bfe7d753afaf6ea4950111a309a4e2ef5aef68/shard-bmg-9/igt@kms_hdr@brightness-with-hdr.html
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-5/igt@kms_hdr@brightness-with-hdr.html

  * igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv:
    - shard-bmg:          [ABORT][69] ([Intel XE#5466]) -> [ABORT][70] ([Intel XE#5466] / [Intel XE#6652])
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4545-b4bfe7d753afaf6ea4950111a309a4e2ef5aef68/shard-bmg-7/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/shard-bmg-1/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1138
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
  [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1874
  [Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
  [Intel XE#2168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2168
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
  [Intel XE#2245]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2245
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
  [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
  [Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
  [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
  [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
  [Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
  [Intel XE#2374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2374
  [Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
  [Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
  [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
  [Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
  [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
  [Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
  [Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
  [Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
  [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
  [Intel XE#4090]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4090
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4459]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4459
  [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
  [Intel XE#5020]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5020
  [Intel XE#5299]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5299
  [Intel XE#5466]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5466
  [Intel XE#5625]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5625
  [Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
  [Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
  [Intel XE#6652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6652
  [Intel XE#6665]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6665
  [Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874
  [Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
  [Intel XE#6891]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6891
  [Intel XE#6946]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6946
  [Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
  [Intel XE#7059]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7059
  [Intel XE#7111]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7111
  [Intel XE#7130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7130
  [Intel XE#7131]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7131
  [Intel XE#7136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7136
  [Intel XE#7138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7138
  [Intel XE#7140]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7140
  [Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
  [Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
  [Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944


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

  * Linux: xe-4545-b4bfe7d753afaf6ea4950111a309a4e2ef5aef68 -> xe-pw-161521v1

  IGT_8751: af788251f1ef729d17c802aec2c4547b52059e58 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-4545-b4bfe7d753afaf6ea4950111a309a4e2ef5aef68: b4bfe7d753afaf6ea4950111a309a4e2ef5aef68
  xe-pw-161521v1: 161521v1

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161521v1/index.html

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

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

end of thread, other threads:[~2026-02-13  7:44 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-12  0:48 [RFC PATCH] drm/i915/display: Prevent NV12 Y-plane allocation from stealing userspace planes Khaled Almahallawy
2026-02-12  1:54 ` ✗ CI.checkpatch: warning for " Patchwork
2026-02-12  1:55 ` ✓ CI.KUnit: success " Patchwork
2026-02-12  2:29 ` ✓ Xe.CI.BAT: " Patchwork
2026-02-12 11:47 ` [RFC PATCH] " Ville Syrjälä
2026-02-12 20:55   ` Almahallawy, Khaled
2026-02-13  7:44 ` ✗ Xe.CI.FULL: failure for " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox