* [PATCH 1/2] drm/i915: drop display version 2-4 overlay uAPI
@ 2026-02-04 16:48 Jani Nikula
2026-02-04 16:48 ` [PATCH 2/2] drm/i915/display: drop display version 2-4 overlay implementation Jani Nikula
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: Jani Nikula @ 2026-02-04 16:48 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel, linux-kernel
Cc: jani.nikula, David Airlie, Simona Vetter, Ville Syrjälä
i915 has a custom overlay IOCTL uAPI for display version 2-4, give or
take a few platforms.
The implementation sits somewhere between i915 display and core
(although the files are located under display). In order to properly
separate display and core, a lot of refactoring would be required,
splitting the functionality, defining better interfaces between them,
and so on.
The problem is, there are no IGT tests for the overlay IOCTLs,
I915_OVERLAY_PUT_IMAGE and I915_OVERLAY_ATTRS, at all. And even if there
were IGT tests, there seems to be only one PNV machine with overlay
support left in CI, at this time. A significant refactoring without
testing or CI support is bound to break something.
In user space the functionality is, to the best of my knowledge, only
supported by xf86-video-intel. There have been no updates to it in the
past six years, and the last tag is from 10+ years ago. It's been at the
end of the line for quite some time now. It's not really something
people should be using. The question is, if we regressed the
functionality, who is even going to notice, and when?
Let's just drop the custom IOCTL support.
The functionality is behind an I915_GETPARAM feature check, and the
current IOCTLs expect the caller to respect that. Return 0 for the
feature check, and -ENODEV for the IOCTLs, reusing and refactoring
i915_gem_reject_pin_ioctl() as i915_enodev_ioctl() for the job.
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/i915_driver.c | 13 +++++--------
drivers/gpu/drm/i915/i915_getparam.c | 4 +---
2 files changed, 6 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index c01a35ecfa2f..da8f0210cc46 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -65,7 +65,6 @@
#include "display/intel_gmbus.h"
#include "display/intel_hotplug.h"
#include "display/intel_opregion.h"
-#include "display/intel_overlay.h"
#include "display/intel_pch_refclk.h"
#include "display/intel_pps.h"
#include "display/intel_sbi.h"
@@ -1772,9 +1771,7 @@ static const struct file_operations i915_driver_fops = {
.fop_flags = FOP_UNSIGNED_OFFSET,
};
-static int
-i915_gem_reject_pin_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file)
+static int i915_enodev_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
{
return -ENODEV;
}
@@ -1800,8 +1797,8 @@ static const struct drm_ioctl_desc i915_ioctls[] = {
DRM_IOCTL_DEF_DRV(I915_GEM_INIT, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
DRM_IOCTL_DEF_DRV(I915_GEM_EXECBUFFER, drm_invalid_op, DRM_AUTH),
DRM_IOCTL_DEF_DRV(I915_GEM_EXECBUFFER2_WR, i915_gem_execbuffer2_ioctl, DRM_RENDER_ALLOW),
- DRM_IOCTL_DEF_DRV(I915_GEM_PIN, i915_gem_reject_pin_ioctl, DRM_AUTH|DRM_ROOT_ONLY),
- DRM_IOCTL_DEF_DRV(I915_GEM_UNPIN, i915_gem_reject_pin_ioctl, DRM_AUTH|DRM_ROOT_ONLY),
+ DRM_IOCTL_DEF_DRV(I915_GEM_PIN, i915_enodev_ioctl, DRM_AUTH|DRM_ROOT_ONLY),
+ DRM_IOCTL_DEF_DRV(I915_GEM_UNPIN, i915_enodev_ioctl, DRM_AUTH|DRM_ROOT_ONLY),
DRM_IOCTL_DEF_DRV(I915_GEM_BUSY, i915_gem_busy_ioctl, DRM_RENDER_ALLOW),
DRM_IOCTL_DEF_DRV(I915_GEM_SET_CACHING, i915_gem_set_caching_ioctl, DRM_RENDER_ALLOW),
DRM_IOCTL_DEF_DRV(I915_GEM_GET_CACHING, i915_gem_get_caching_ioctl, DRM_RENDER_ALLOW),
@@ -1821,8 +1818,8 @@ static const struct drm_ioctl_desc i915_ioctls[] = {
DRM_IOCTL_DEF_DRV(I915_GEM_GET_APERTURE, i915_gem_get_aperture_ioctl, DRM_RENDER_ALLOW),
DRM_IOCTL_DEF_DRV(I915_GET_PIPE_FROM_CRTC_ID, intel_crtc_get_pipe_from_crtc_id_ioctl, 0),
DRM_IOCTL_DEF_DRV(I915_GEM_MADVISE, i915_gem_madvise_ioctl, DRM_RENDER_ALLOW),
- DRM_IOCTL_DEF_DRV(I915_OVERLAY_PUT_IMAGE, intel_overlay_put_image_ioctl, DRM_MASTER),
- DRM_IOCTL_DEF_DRV(I915_OVERLAY_ATTRS, intel_overlay_attrs_ioctl, DRM_MASTER),
+ DRM_IOCTL_DEF_DRV(I915_OVERLAY_PUT_IMAGE, i915_enodev_ioctl, DRM_MASTER),
+ DRM_IOCTL_DEF_DRV(I915_OVERLAY_ATTRS, i915_enodev_ioctl, DRM_MASTER),
DRM_IOCTL_DEF_DRV(I915_SET_SPRITE_COLORKEY, intel_sprite_set_colorkey_ioctl, DRM_MASTER),
DRM_IOCTL_DEF_DRV(I915_GET_SPRITE_COLORKEY, drm_noop, DRM_MASTER),
DRM_IOCTL_DEF_DRV(I915_GEM_WAIT, i915_gem_wait_ioctl, DRM_RENDER_ALLOW),
diff --git a/drivers/gpu/drm/i915/i915_getparam.c b/drivers/gpu/drm/i915/i915_getparam.c
index cf47c2491a0a..cdf8ad4b6f3a 100644
--- a/drivers/gpu/drm/i915/i915_getparam.c
+++ b/drivers/gpu/drm/i915/i915_getparam.c
@@ -4,7 +4,6 @@
#include <drm/drm_print.h>
-#include "display/intel_overlay.h"
#include "gem/i915_gem_mman.h"
#include "gt/intel_engine_user.h"
#include "pxp/intel_pxp.h"
@@ -18,7 +17,6 @@ int i915_getparam_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv)
{
struct drm_i915_private *i915 = to_i915(dev);
- struct intel_display *display = i915->display;
struct pci_dev *pdev = to_pci_dev(dev->dev);
const struct sseu_dev_info *sseu = &to_gt(i915)->info.sseu;
drm_i915_getparam_t *param = data;
@@ -41,7 +39,7 @@ int i915_getparam_ioctl(struct drm_device *dev, void *data,
value = to_gt(i915)->ggtt->num_fences;
break;
case I915_PARAM_HAS_OVERLAY:
- value = intel_overlay_available(display);
+ value = 0;
break;
case I915_PARAM_HAS_BSD:
value = !!intel_engine_lookup_user(i915,
--
2.47.3
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/2] drm/i915/display: drop display version 2-4 overlay implementation
2026-02-04 16:48 [PATCH 1/2] drm/i915: drop display version 2-4 overlay uAPI Jani Nikula
@ 2026-02-04 16:48 ` Jani Nikula
2026-02-05 3:28 ` ✗ CI.checkpatch: warning for series starting with [1/2] drm/i915: drop display version 2-4 overlay uAPI Patchwork
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Jani Nikula @ 2026-02-04 16:48 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel, linux-kernel
Cc: jani.nikula, David Airlie, Simona Vetter, Ville Syrjälä
With the overlay IOCTLs now returning no overlay support and -ENODEV,
let's drop all the code for the display version 2-4 overlay support.
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/Makefile | 1 -
drivers/gpu/drm/i915/display/intel_display.c | 13 -
.../gpu/drm/i915/display/intel_display_core.h | 2 -
.../drm/i915/display/intel_display_device.c | 11 -
.../drm/i915/display/intel_display_device.h | 4 -
.../drm/i915/display/intel_display_driver.c | 5 -
.../drm/i915/display/intel_display_snapshot.c | 5 -
.../drm/i915/display/intel_display_types.h | 1 -
drivers/gpu/drm/i915/display/intel_overlay.c | 1556 -----------------
drivers/gpu/drm/i915/display/intel_overlay.h | 75 -
drivers/gpu/drm/i915/gt/intel_reset.c | 4 -
11 files changed, 1677 deletions(-)
delete mode 100644 drivers/gpu/drm/i915/display/intel_overlay.c
delete mode 100644 drivers/gpu/drm/i915/display/intel_overlay.h
diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 7d726e8c21bf..fbe5a1b8f062 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -296,7 +296,6 @@ i915-y += \
display/intel_modeset_lock.o \
display/intel_modeset_setup.o \
display/intel_modeset_verify.o \
- display/intel_overlay.o \
display/intel_parent.o \
display/intel_pch.o \
display/intel_pch_display.o \
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 564d11925af3..db8e95237f60 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -106,7 +106,6 @@
#include "intel_lvds_regs.h"
#include "intel_modeset_setup.h"
#include "intel_modeset_verify.h"
-#include "intel_overlay.h"
#include "intel_panel.h"
#include "intel_pch_display.h"
#include "intel_pch_refclk.h"
@@ -772,16 +771,6 @@ intel_get_crtc_new_encoder(const struct intel_atomic_state *state,
return encoder;
}
-static void intel_crtc_dpms_overlay_disable(struct intel_crtc *crtc)
-{
- if (crtc->overlay)
- (void) intel_overlay_switch_off(crtc->overlay);
-
- /* Let userspace switch the overlay on again. In most cases userspace
- * has to recompute where to put it anyway.
- */
-}
-
static bool needs_nv12_wa(const struct intel_crtc_state *crtc_state)
{
struct intel_display *display = to_intel_display(crtc_state);
@@ -1273,8 +1262,6 @@ static void intel_crtc_disable_planes(struct intel_atomic_state *state,
unsigned fb_bits = 0;
int i;
- intel_crtc_dpms_overlay_disable(crtc);
-
for_each_old_intel_plane_in_state(state, plane, old_plane_state, i) {
if (crtc->pipe != plane->pipe ||
!(update_mask & BIT(plane->id)))
diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h b/drivers/gpu/drm/i915/display/intel_display_core.h
index d708d322aa85..5a60ded6d5ce 100644
--- a/drivers/gpu/drm/i915/display/intel_display_core.h
+++ b/drivers/gpu/drm/i915/display/intel_display_core.h
@@ -50,7 +50,6 @@ struct intel_fdi_funcs;
struct intel_hotplug_funcs;
struct intel_initial_plane_config;
struct intel_opregion;
-struct intel_overlay;
struct task_struct;
/* Amount of SAGV/QGV points, BSpec precisely defines this */
@@ -629,7 +628,6 @@ struct intel_display {
struct intel_frontbuffer_tracking fb_tracking;
struct intel_hotplug hotplug;
struct intel_opregion *opregion;
- struct intel_overlay *overlay;
struct intel_display_params params;
struct intel_vbt_data vbt;
struct intel_dmc_wl wl;
diff --git a/drivers/gpu/drm/i915/display/intel_display_device.c b/drivers/gpu/drm/i915/display/intel_display_device.c
index 471f236c9ddf..62c76ab22942 100644
--- a/drivers/gpu/drm/i915/display/intel_display_device.c
+++ b/drivers/gpu/drm/i915/display/intel_display_device.c
@@ -229,9 +229,7 @@ static const struct intel_display_device_info no_display = {};
}
#define I830_DISPLAY \
- .has_overlay = 1, \
.cursor_needs_physical = 1, \
- .overlay_needs_physical = 1, \
.has_gmch = 1, \
I9XX_PIPE_OFFSETS, \
I9XX_CURSOR_OFFSETS, \
@@ -243,8 +241,6 @@ static const struct intel_display_device_info no_display = {};
BIT(TRANSCODER_A) | BIT(TRANSCODER_B)
#define I845_DISPLAY \
- .has_overlay = 1, \
- .overlay_needs_physical = 1, \
.has_gmch = 1, \
I845_PIPE_OFFSETS, \
I845_CURSOR_OFFSETS, \
@@ -296,7 +292,6 @@ static const struct platform_desc i865g_desc = {
#define GEN3_DISPLAY \
.has_gmch = 1, \
- .has_overlay = 1, \
I9XX_PIPE_OFFSETS, \
I9XX_CURSOR_OFFSETS, \
\
@@ -312,7 +307,6 @@ static const struct platform_desc i915g_desc = {
GEN3_DISPLAY,
I845_COLORS,
.cursor_needs_physical = 1,
- .overlay_needs_physical = 1,
},
};
@@ -323,7 +317,6 @@ static const struct platform_desc i915gm_desc = {
GEN3_DISPLAY,
I9XX_COLORS,
.cursor_needs_physical = 1,
- .overlay_needs_physical = 1,
.supports_tv = 1,
.__runtime_defaults.fbc_mask = BIT(INTEL_FBC_A),
@@ -337,7 +330,6 @@ static const struct platform_desc i945g_desc = {
I845_COLORS,
.has_hotplug = 1,
.cursor_needs_physical = 1,
- .overlay_needs_physical = 1,
},
};
@@ -349,7 +341,6 @@ static const struct platform_desc i945gm_desc = {
I9XX_COLORS,
.has_hotplug = 1,
.cursor_needs_physical = 1,
- .overlay_needs_physical = 1,
.supports_tv = 1,
.__runtime_defaults.fbc_mask = BIT(INTEL_FBC_A),
@@ -398,7 +389,6 @@ static const struct platform_desc i965g_desc = {
PLATFORM(i965g),
.info = &(const struct intel_display_device_info) {
GEN4_DISPLAY,
- .has_overlay = 1,
.__runtime_defaults.port_mask = BIT(PORT_B) | BIT(PORT_C), /* SDVO B/C */
},
@@ -409,7 +399,6 @@ static const struct platform_desc i965gm_desc = {
PLATFORM_GROUP(mobile),
.info = &(const struct intel_display_device_info) {
GEN4_DISPLAY,
- .has_overlay = 1,
.supports_tv = 1,
.__runtime_defaults.port_mask = BIT(PORT_B) | BIT(PORT_C), /* SDVO B/C */
diff --git a/drivers/gpu/drm/i915/display/intel_display_device.h b/drivers/gpu/drm/i915/display/intel_display_device.h
index e84c190dcc4f..8ece4cf194bd 100644
--- a/drivers/gpu/drm/i915/display/intel_display_device.h
+++ b/drivers/gpu/drm/i915/display/intel_display_device.h
@@ -139,10 +139,8 @@ struct intel_display_platforms {
func(has_hotplug); \
func(has_hti); \
func(has_ipc); \
- func(has_overlay); \
func(has_psr); \
func(has_psr_hw_tracking); \
- func(overlay_needs_physical); \
func(supports_tv);
#define HAS_128B_Y_TILING(__display) (!(__display)->platform.i915g && !(__display)->platform.i915gm)
@@ -191,7 +189,6 @@ struct intel_display_platforms {
#define HAS_LT_PHY(__display) ((__display)->platform.novalake)
#define HAS_MBUS_JOINING(__display) ((__display)->platform.alderlake_p || DISPLAY_VER(__display) >= 14)
#define HAS_MSO(__display) (DISPLAY_VER(__display) >= 12)
-#define HAS_OVERLAY(__display) (DISPLAY_INFO(__display)->has_overlay)
#define HAS_PIPEDMC(__display) (DISPLAY_VER(__display) >= 12)
#define HAS_PIXEL_NORMALIZER(__display) (DISPLAY_VER(__display) >= 35)
#define HAS_PSR(__display) (DISPLAY_INFO(__display)->has_psr)
@@ -209,7 +206,6 @@ struct intel_display_platforms {
#define HAS_VRR(__display) (DISPLAY_VER(__display) >= 11)
#define HAS_VRR_DC_BALANCE(__display) (DISPLAY_VER(__display) >= 30)
#define INTEL_NUM_PIPES(__display) (hweight8(DISPLAY_RUNTIME_INFO(__display)->pipe_mask))
-#define OVERLAY_NEEDS_PHYSICAL(__display) (DISPLAY_INFO(__display)->overlay_needs_physical)
#define SUPPORTS_TV(__display) (DISPLAY_INFO(__display)->supports_tv)
/* Check that device has a display IP version within the specific range. */
diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c
index 967da2b41316..229c7ed7a060 100644
--- a/drivers/gpu/drm/i915/display/intel_display_driver.c
+++ b/drivers/gpu/drm/i915/display/intel_display_driver.c
@@ -56,7 +56,6 @@
#include "intel_modeset_lock.h"
#include "intel_modeset_setup.h"
#include "intel_opregion.h"
-#include "intel_overlay.h"
#include "intel_pmdemand.h"
#include "intel_pps.h"
#include "intel_psr.h"
@@ -530,8 +529,6 @@ int intel_display_driver_probe(struct intel_display *display)
if (ret)
drm_dbg_kms(display->drm, "Initial modeset failed, %d\n", ret);
- intel_overlay_setup(display);
-
/* Only enable hotplug handling once the fbdev is fully set up. */
intel_hpd_init(display);
@@ -622,8 +619,6 @@ void intel_display_driver_remove_noirq(struct intel_display *display)
intel_dp_tunnel_mgr_cleanup(display);
- intel_overlay_cleanup(display);
-
intel_gmbus_teardown(display);
destroy_workqueue(display->hotplug.dp_wq);
diff --git a/drivers/gpu/drm/i915/display/intel_display_snapshot.c b/drivers/gpu/drm/i915/display/intel_display_snapshot.c
index 66087302fdbc..a8022c02dfe3 100644
--- a/drivers/gpu/drm/i915/display/intel_display_snapshot.c
+++ b/drivers/gpu/drm/i915/display/intel_display_snapshot.c
@@ -11,7 +11,6 @@
#include "intel_display_params.h"
#include "intel_display_snapshot.h"
#include "intel_dmc.h"
-#include "intel_overlay.h"
struct intel_display_snapshot {
struct intel_display *display;
@@ -19,7 +18,6 @@ struct intel_display_snapshot {
struct intel_display_device_info info;
struct intel_display_runtime_info runtime_info;
struct intel_display_params params;
- struct intel_overlay_snapshot *overlay;
struct intel_dmc_snapshot *dmc;
struct intel_display_irq_snapshot *irq;
};
@@ -41,7 +39,6 @@ struct intel_display_snapshot *intel_display_snapshot_capture(struct intel_displ
intel_display_params_copy(&snapshot->params);
snapshot->irq = intel_display_irq_snapshot_capture(display);
- snapshot->overlay = intel_overlay_snapshot_capture(display);
snapshot->dmc = intel_dmc_snapshot_capture(display);
return snapshot;
@@ -61,7 +58,6 @@ void intel_display_snapshot_print(const struct intel_display_snapshot *snapshot,
intel_display_params_dump(&snapshot->params, display->drm->driver->name, p);
intel_display_irq_snapshot_print(snapshot->irq, p);
- intel_overlay_snapshot_print(snapshot->overlay, p);
intel_dmc_snapshot_print(snapshot->dmc, p);
}
@@ -73,7 +69,6 @@ void intel_display_snapshot_free(struct intel_display_snapshot *snapshot)
intel_display_params_free(&snapshot->params);
kfree(snapshot->irq);
- kfree(snapshot->overlay);
kfree(snapshot->dmc);
kfree(snapshot);
}
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index e6298279dc89..31c88e205634 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1499,7 +1499,6 @@ struct intel_crtc {
struct intel_display_power_domain_set enabled_power_domains;
struct intel_display_power_domain_set hw_readout_power_domains;
- struct intel_overlay *overlay;
struct intel_crtc_state *config;
diff --git a/drivers/gpu/drm/i915/display/intel_overlay.c b/drivers/gpu/drm/i915/display/intel_overlay.c
deleted file mode 100644
index 88eb7ae5765c..000000000000
--- a/drivers/gpu/drm/i915/display/intel_overlay.c
+++ /dev/null
@@ -1,1556 +0,0 @@
-/*
- * Copyright © 2009
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Authors:
- * Daniel Vetter <daniel@ffwll.ch>
- *
- * Derived from Xorg ddx, xf86-video-intel, src/i830_video.c
- */
-
-#include <drm/drm_fourcc.h>
-#include <drm/drm_print.h>
-
-#include "gem/i915_gem_internal.h"
-#include "gem/i915_gem_object_frontbuffer.h"
-#include "gem/i915_gem_pm.h"
-
-#include "gt/intel_gpu_commands.h"
-#include "gt/intel_ring.h"
-
-#include "i915_drv.h"
-#include "i915_reg.h"
-#include "intel_color_regs.h"
-#include "intel_de.h"
-#include "intel_display_regs.h"
-#include "intel_display_types.h"
-#include "intel_frontbuffer.h"
-#include "intel_overlay.h"
-#include "intel_pci_config.h"
-#include "intel_pfit_regs.h"
-
-/* Limits for overlay size. According to intel doc, the real limits are:
- * Y width: 4095, UV width (planar): 2047, Y height: 2047,
- * UV width (planar): * 1023. But the xorg thinks 2048 for height and width. Use
- * the minimum of both.
- */
-#define IMAGE_MAX_WIDTH 2048
-#define IMAGE_MAX_HEIGHT 2046 /* 2 * 1023 */
-/* on 830 and 845 these large limits result in the card hanging */
-#define IMAGE_MAX_WIDTH_LEGACY 1024
-#define IMAGE_MAX_HEIGHT_LEGACY 1088
-
-/* overlay register definitions */
-/* OCMD register */
-#define OCMD_TILED_SURFACE (0x1<<19)
-#define OCMD_MIRROR_MASK (0x3<<17)
-#define OCMD_MIRROR_MODE (0x3<<17)
-#define OCMD_MIRROR_HORIZONTAL (0x1<<17)
-#define OCMD_MIRROR_VERTICAL (0x2<<17)
-#define OCMD_MIRROR_BOTH (0x3<<17)
-#define OCMD_BYTEORDER_MASK (0x3<<14) /* zero for YUYV or FOURCC YUY2 */
-#define OCMD_UV_SWAP (0x1<<14) /* YVYU */
-#define OCMD_Y_SWAP (0x2<<14) /* UYVY or FOURCC UYVY */
-#define OCMD_Y_AND_UV_SWAP (0x3<<14) /* VYUY */
-#define OCMD_SOURCE_FORMAT_MASK (0xf<<10)
-#define OCMD_RGB_888 (0x1<<10) /* not in i965 Intel docs */
-#define OCMD_RGB_555 (0x2<<10) /* not in i965 Intel docs */
-#define OCMD_RGB_565 (0x3<<10) /* not in i965 Intel docs */
-#define OCMD_YUV_422_PACKED (0x8<<10)
-#define OCMD_YUV_411_PACKED (0x9<<10) /* not in i965 Intel docs */
-#define OCMD_YUV_420_PLANAR (0xc<<10)
-#define OCMD_YUV_422_PLANAR (0xd<<10)
-#define OCMD_YUV_410_PLANAR (0xe<<10) /* also 411 */
-#define OCMD_TVSYNCFLIP_PARITY (0x1<<9)
-#define OCMD_TVSYNCFLIP_ENABLE (0x1<<7)
-#define OCMD_BUF_TYPE_MASK (0x1<<5)
-#define OCMD_BUF_TYPE_FRAME (0x0<<5)
-#define OCMD_BUF_TYPE_FIELD (0x1<<5)
-#define OCMD_TEST_MODE (0x1<<4)
-#define OCMD_BUFFER_SELECT (0x3<<2)
-#define OCMD_BUFFER0 (0x0<<2)
-#define OCMD_BUFFER1 (0x1<<2)
-#define OCMD_FIELD_SELECT (0x1<<2)
-#define OCMD_FIELD0 (0x0<<1)
-#define OCMD_FIELD1 (0x1<<1)
-#define OCMD_ENABLE (0x1<<0)
-
-/* OCONFIG register */
-#define OCONF_PIPE_MASK (0x1<<18)
-#define OCONF_PIPE_A (0x0<<18)
-#define OCONF_PIPE_B (0x1<<18)
-#define OCONF_GAMMA2_ENABLE (0x1<<16)
-#define OCONF_CSC_MODE_BT601 (0x0<<5)
-#define OCONF_CSC_MODE_BT709 (0x1<<5)
-#define OCONF_CSC_BYPASS (0x1<<4)
-#define OCONF_CC_OUT_8BIT (0x1<<3)
-#define OCONF_TEST_MODE (0x1<<2)
-#define OCONF_THREE_LINE_BUFFER (0x1<<0)
-#define OCONF_TWO_LINE_BUFFER (0x0<<0)
-
-/* DCLRKM (dst-key) register */
-#define DST_KEY_ENABLE (0x1<<31)
-#define CLK_RGB24_MASK 0x0
-#define CLK_RGB16_MASK 0x070307
-#define CLK_RGB15_MASK 0x070707
-
-#define RGB30_TO_COLORKEY(c) \
- ((((c) & 0x3fc00000) >> 6) | (((c) & 0x000ff000) >> 4) | (((c) & 0x000003fc) >> 2))
-#define RGB16_TO_COLORKEY(c) \
- ((((c) & 0xf800) << 8) | (((c) & 0x07e0) << 5) | (((c) & 0x001f) << 3))
-#define RGB15_TO_COLORKEY(c) \
- ((((c) & 0x7c00) << 9) | (((c) & 0x03e0) << 6) | (((c) & 0x001f) << 3))
-#define RGB8I_TO_COLORKEY(c) \
- ((((c) & 0xff) << 16) | (((c) & 0xff) << 8) | (((c) & 0xff) << 0))
-
-/* overlay flip addr flag */
-#define OFC_UPDATE 0x1
-
-/* polyphase filter coefficients */
-#define N_HORIZ_Y_TAPS 5
-#define N_VERT_Y_TAPS 3
-#define N_HORIZ_UV_TAPS 3
-#define N_VERT_UV_TAPS 3
-#define N_PHASES 17
-#define MAX_TAPS 5
-
-/* memory bufferd overlay registers */
-struct overlay_registers {
- u32 OBUF_0Y;
- u32 OBUF_1Y;
- u32 OBUF_0U;
- u32 OBUF_0V;
- u32 OBUF_1U;
- u32 OBUF_1V;
- u32 OSTRIDE;
- u32 YRGB_VPH;
- u32 UV_VPH;
- u32 HORZ_PH;
- u32 INIT_PHS;
- u32 DWINPOS;
- u32 DWINSZ;
- u32 SWIDTH;
- u32 SWIDTHSW;
- u32 SHEIGHT;
- u32 YRGBSCALE;
- u32 UVSCALE;
- u32 OCLRC0;
- u32 OCLRC1;
- u32 DCLRKV;
- u32 DCLRKM;
- u32 SCLRKVH;
- u32 SCLRKVL;
- u32 SCLRKEN;
- u32 OCONFIG;
- u32 OCMD;
- u32 RESERVED1; /* 0x6C */
- u32 OSTART_0Y;
- u32 OSTART_1Y;
- u32 OSTART_0U;
- u32 OSTART_0V;
- u32 OSTART_1U;
- u32 OSTART_1V;
- u32 OTILEOFF_0Y;
- u32 OTILEOFF_1Y;
- u32 OTILEOFF_0U;
- u32 OTILEOFF_0V;
- u32 OTILEOFF_1U;
- u32 OTILEOFF_1V;
- u32 FASTHSCALE; /* 0xA0 */
- u32 UVSCALEV; /* 0xA4 */
- u32 RESERVEDC[(0x200 - 0xA8) / 4]; /* 0xA8 - 0x1FC */
- u16 Y_VCOEFS[N_VERT_Y_TAPS * N_PHASES]; /* 0x200 */
- u16 RESERVEDD[0x100 / 2 - N_VERT_Y_TAPS * N_PHASES];
- u16 Y_HCOEFS[N_HORIZ_Y_TAPS * N_PHASES]; /* 0x300 */
- u16 RESERVEDE[0x200 / 2 - N_HORIZ_Y_TAPS * N_PHASES];
- u16 UV_VCOEFS[N_VERT_UV_TAPS * N_PHASES]; /* 0x500 */
- u16 RESERVEDF[0x100 / 2 - N_VERT_UV_TAPS * N_PHASES];
- u16 UV_HCOEFS[N_HORIZ_UV_TAPS * N_PHASES]; /* 0x600 */
- u16 RESERVEDG[0x100 / 2 - N_HORIZ_UV_TAPS * N_PHASES];
-};
-
-struct intel_overlay {
- struct intel_display *display;
- struct intel_context *context;
- struct intel_crtc *crtc;
- struct i915_vma *vma;
- struct i915_vma *old_vma;
- struct intel_frontbuffer *frontbuffer;
- bool active;
- bool pfit_active;
- u32 pfit_vscale_ratio; /* shifted-point number, (1<<12) == 1.0 */
- u32 color_key:24;
- u32 color_key_enabled:1;
- u32 brightness, contrast, saturation;
- u32 old_xscale, old_yscale;
- /* register access */
- struct drm_i915_gem_object *reg_bo;
- struct overlay_registers __iomem *regs;
- u32 flip_addr;
- /* flip handling */
- struct i915_active last_flip;
- void (*flip_complete)(struct intel_overlay *ovl);
-};
-
-static void i830_overlay_clock_gating(struct intel_display *display,
- bool enable)
-{
- struct pci_dev *pdev = to_pci_dev(display->drm->dev);
- u8 val;
-
- /* WA_OVERLAY_CLKGATE:alm */
- if (enable)
- intel_de_write(display, DSPCLK_GATE_D, 0);
- else
- intel_de_write(display, DSPCLK_GATE_D, OVRUNIT_CLOCK_GATE_DISABLE);
-
- /* WA_DISABLE_L2CACHE_CLOCK_GATING:alm */
- pci_bus_read_config_byte(pdev->bus,
- PCI_DEVFN(0, 0), I830_CLOCK_GATE, &val);
- if (enable)
- val &= ~I830_L2_CACHE_CLOCK_GATE_DISABLE;
- else
- val |= I830_L2_CACHE_CLOCK_GATE_DISABLE;
- pci_bus_write_config_byte(pdev->bus,
- PCI_DEVFN(0, 0), I830_CLOCK_GATE, val);
-}
-
-static struct i915_request *
-alloc_request(struct intel_overlay *overlay, void (*fn)(struct intel_overlay *))
-{
- struct i915_request *rq;
- int err;
-
- overlay->flip_complete = fn;
-
- rq = i915_request_create(overlay->context);
- if (IS_ERR(rq))
- return rq;
-
- err = i915_active_add_request(&overlay->last_flip, rq);
- if (err) {
- i915_request_add(rq);
- return ERR_PTR(err);
- }
-
- return rq;
-}
-
-/* overlay needs to be disable in OCMD reg */
-static int intel_overlay_on(struct intel_overlay *overlay)
-{
- struct intel_display *display = overlay->display;
- struct i915_request *rq;
- u32 *cs;
-
- drm_WARN_ON(display->drm, overlay->active);
-
- rq = alloc_request(overlay, NULL);
- if (IS_ERR(rq))
- return PTR_ERR(rq);
-
- cs = intel_ring_begin(rq, 4);
- if (IS_ERR(cs)) {
- i915_request_add(rq);
- return PTR_ERR(cs);
- }
-
- overlay->active = true;
-
- if (display->platform.i830)
- i830_overlay_clock_gating(display, false);
-
- *cs++ = MI_OVERLAY_FLIP | MI_OVERLAY_ON;
- *cs++ = overlay->flip_addr | OFC_UPDATE;
- *cs++ = MI_WAIT_FOR_EVENT | MI_WAIT_FOR_OVERLAY_FLIP;
- *cs++ = MI_NOOP;
- intel_ring_advance(rq, cs);
-
- i915_request_add(rq);
-
- return i915_active_wait(&overlay->last_flip);
-}
-
-static void intel_overlay_flip_prepare(struct intel_overlay *overlay,
- struct i915_vma *vma)
-{
- struct intel_display *display = overlay->display;
- enum pipe pipe = overlay->crtc->pipe;
- struct intel_frontbuffer *frontbuffer = NULL;
-
- drm_WARN_ON(display->drm, overlay->old_vma);
-
- if (vma)
- frontbuffer = intel_frontbuffer_get(intel_bo_to_drm_bo(vma->obj));
-
- intel_frontbuffer_track(overlay->frontbuffer, frontbuffer,
- INTEL_FRONTBUFFER_OVERLAY(pipe));
-
- if (overlay->frontbuffer)
- intel_frontbuffer_put(overlay->frontbuffer);
- overlay->frontbuffer = frontbuffer;
-
- overlay->old_vma = overlay->vma;
- if (vma)
- overlay->vma = i915_vma_get(vma);
- else
- overlay->vma = NULL;
-}
-
-/* overlay needs to be enabled in OCMD reg */
-static int intel_overlay_continue(struct intel_overlay *overlay,
- struct i915_vma *vma,
- bool load_polyphase_filter)
-{
- struct intel_display *display = overlay->display;
- struct i915_request *rq;
- u32 flip_addr = overlay->flip_addr;
- u32 tmp, *cs;
-
- drm_WARN_ON(display->drm, !overlay->active);
-
- if (load_polyphase_filter)
- flip_addr |= OFC_UPDATE;
-
- /* check for underruns */
- tmp = intel_de_read(display, DOVSTA);
- if (tmp & (1 << 17))
- drm_dbg(display->drm, "overlay underrun, DOVSTA: %x\n", tmp);
-
- rq = alloc_request(overlay, NULL);
- if (IS_ERR(rq))
- return PTR_ERR(rq);
-
- cs = intel_ring_begin(rq, 2);
- if (IS_ERR(cs)) {
- i915_request_add(rq);
- return PTR_ERR(cs);
- }
-
- *cs++ = MI_OVERLAY_FLIP | MI_OVERLAY_CONTINUE;
- *cs++ = flip_addr;
- intel_ring_advance(rq, cs);
-
- intel_overlay_flip_prepare(overlay, vma);
- i915_request_add(rq);
-
- return 0;
-}
-
-static void intel_overlay_release_old_vma(struct intel_overlay *overlay)
-{
- struct intel_display *display = overlay->display;
- struct i915_vma *vma;
-
- vma = fetch_and_zero(&overlay->old_vma);
- if (drm_WARN_ON(display->drm, !vma))
- return;
-
- intel_frontbuffer_flip(display, INTEL_FRONTBUFFER_OVERLAY(overlay->crtc->pipe));
-
- i915_vma_unpin(vma);
- i915_vma_put(vma);
-}
-
-static void
-intel_overlay_release_old_vid_tail(struct intel_overlay *overlay)
-{
- intel_overlay_release_old_vma(overlay);
-}
-
-static void intel_overlay_off_tail(struct intel_overlay *overlay)
-{
- struct intel_display *display = overlay->display;
-
- intel_overlay_release_old_vma(overlay);
-
- overlay->crtc->overlay = NULL;
- overlay->crtc = NULL;
- overlay->active = false;
-
- if (display->platform.i830)
- i830_overlay_clock_gating(display, true);
-}
-
-static void intel_overlay_last_flip_retire(struct i915_active *active)
-{
- struct intel_overlay *overlay =
- container_of(active, typeof(*overlay), last_flip);
-
- if (overlay->flip_complete)
- overlay->flip_complete(overlay);
-}
-
-/* overlay needs to be disabled in OCMD reg */
-static int intel_overlay_off(struct intel_overlay *overlay)
-{
- struct intel_display *display = overlay->display;
- struct i915_request *rq;
- u32 *cs, flip_addr = overlay->flip_addr;
-
- drm_WARN_ON(display->drm, !overlay->active);
-
- /*
- * According to intel docs the overlay hw may hang (when switching
- * off) without loading the filter coeffs. It is however unclear whether
- * this applies to the disabling of the overlay or to the switching off
- * of the hw. Do it in both cases.
- */
- flip_addr |= OFC_UPDATE;
-
- rq = alloc_request(overlay, intel_overlay_off_tail);
- if (IS_ERR(rq))
- return PTR_ERR(rq);
-
- cs = intel_ring_begin(rq, 6);
- if (IS_ERR(cs)) {
- i915_request_add(rq);
- return PTR_ERR(cs);
- }
-
- /* wait for overlay to go idle */
- *cs++ = MI_OVERLAY_FLIP | MI_OVERLAY_CONTINUE;
- *cs++ = flip_addr;
- *cs++ = MI_WAIT_FOR_EVENT | MI_WAIT_FOR_OVERLAY_FLIP;
-
- /* turn overlay off */
- *cs++ = MI_OVERLAY_FLIP | MI_OVERLAY_OFF;
- *cs++ = flip_addr;
- *cs++ = MI_WAIT_FOR_EVENT | MI_WAIT_FOR_OVERLAY_FLIP;
-
- intel_ring_advance(rq, cs);
-
- intel_overlay_flip_prepare(overlay, NULL);
- i915_request_add(rq);
-
- return i915_active_wait(&overlay->last_flip);
-}
-
-/*
- * Recover from an interruption due to a signal.
- * We have to be careful not to repeat work forever an make forward progress.
- */
-static int intel_overlay_recover_from_interrupt(struct intel_overlay *overlay)
-{
- return i915_active_wait(&overlay->last_flip);
-}
-
-/*
- * Wait for pending overlay flip and release old frame.
- * Needs to be called before the overlay register are changed
- * via intel_overlay_(un)map_regs.
- */
-static int intel_overlay_release_old_vid(struct intel_overlay *overlay)
-{
- struct intel_display *display = overlay->display;
- struct i915_request *rq;
- u32 *cs;
-
- /*
- * Only wait if there is actually an old frame to release to
- * guarantee forward progress.
- */
- if (!overlay->old_vma)
- return 0;
-
- if (!(intel_de_read(display, GEN2_ISR) & I915_OVERLAY_PLANE_FLIP_PENDING_INTERRUPT)) {
- intel_overlay_release_old_vid_tail(overlay);
- return 0;
- }
-
- rq = alloc_request(overlay, intel_overlay_release_old_vid_tail);
- if (IS_ERR(rq))
- return PTR_ERR(rq);
-
- cs = intel_ring_begin(rq, 2);
- if (IS_ERR(cs)) {
- i915_request_add(rq);
- return PTR_ERR(cs);
- }
-
- *cs++ = MI_WAIT_FOR_EVENT | MI_WAIT_FOR_OVERLAY_FLIP;
- *cs++ = MI_NOOP;
- intel_ring_advance(rq, cs);
-
- i915_request_add(rq);
-
- return i915_active_wait(&overlay->last_flip);
-}
-
-void intel_overlay_reset(struct intel_display *display)
-{
- struct intel_overlay *overlay = display->overlay;
-
- if (!overlay)
- return;
-
- overlay->old_xscale = 0;
- overlay->old_yscale = 0;
- overlay->crtc = NULL;
- overlay->active = false;
-}
-
-static int packed_depth_bytes(u32 format)
-{
- switch (format & I915_OVERLAY_DEPTH_MASK) {
- case I915_OVERLAY_YUV422:
- return 4;
- case I915_OVERLAY_YUV411:
- /* return 6; not implemented */
- default:
- return -EINVAL;
- }
-}
-
-static int packed_width_bytes(u32 format, short width)
-{
- switch (format & I915_OVERLAY_DEPTH_MASK) {
- case I915_OVERLAY_YUV422:
- return width << 1;
- default:
- return -EINVAL;
- }
-}
-
-static int uv_hsubsampling(u32 format)
-{
- switch (format & I915_OVERLAY_DEPTH_MASK) {
- case I915_OVERLAY_YUV422:
- case I915_OVERLAY_YUV420:
- return 2;
- case I915_OVERLAY_YUV411:
- case I915_OVERLAY_YUV410:
- return 4;
- default:
- return -EINVAL;
- }
-}
-
-static int uv_vsubsampling(u32 format)
-{
- switch (format & I915_OVERLAY_DEPTH_MASK) {
- case I915_OVERLAY_YUV420:
- case I915_OVERLAY_YUV410:
- return 2;
- case I915_OVERLAY_YUV422:
- case I915_OVERLAY_YUV411:
- return 1;
- default:
- return -EINVAL;
- }
-}
-
-static u32 calc_swidthsw(struct intel_display *display, u32 offset, u32 width)
-{
- u32 sw;
-
- if (DISPLAY_VER(display) == 2)
- sw = ALIGN((offset & 31) + width, 32);
- else
- sw = ALIGN((offset & 63) + width, 64);
-
- if (sw == 0)
- return 0;
-
- return (sw - 32) >> 3;
-}
-
-static const u16 y_static_hcoeffs[N_PHASES][N_HORIZ_Y_TAPS] = {
- [ 0] = { 0x3000, 0xb4a0, 0x1930, 0x1920, 0xb4a0, },
- [ 1] = { 0x3000, 0xb500, 0x19d0, 0x1880, 0xb440, },
- [ 2] = { 0x3000, 0xb540, 0x1a88, 0x2f80, 0xb3e0, },
- [ 3] = { 0x3000, 0xb580, 0x1b30, 0x2e20, 0xb380, },
- [ 4] = { 0x3000, 0xb5c0, 0x1bd8, 0x2cc0, 0xb320, },
- [ 5] = { 0x3020, 0xb5e0, 0x1c60, 0x2b80, 0xb2c0, },
- [ 6] = { 0x3020, 0xb5e0, 0x1cf8, 0x2a20, 0xb260, },
- [ 7] = { 0x3020, 0xb5e0, 0x1d80, 0x28e0, 0xb200, },
- [ 8] = { 0x3020, 0xb5c0, 0x1e08, 0x3f40, 0xb1c0, },
- [ 9] = { 0x3020, 0xb580, 0x1e78, 0x3ce0, 0xb160, },
- [10] = { 0x3040, 0xb520, 0x1ed8, 0x3aa0, 0xb120, },
- [11] = { 0x3040, 0xb4a0, 0x1f30, 0x3880, 0xb0e0, },
- [12] = { 0x3040, 0xb400, 0x1f78, 0x3680, 0xb0a0, },
- [13] = { 0x3020, 0xb340, 0x1fb8, 0x34a0, 0xb060, },
- [14] = { 0x3020, 0xb240, 0x1fe0, 0x32e0, 0xb040, },
- [15] = { 0x3020, 0xb140, 0x1ff8, 0x3160, 0xb020, },
- [16] = { 0xb000, 0x3000, 0x0800, 0x3000, 0xb000, },
-};
-
-static const u16 uv_static_hcoeffs[N_PHASES][N_HORIZ_UV_TAPS] = {
- [ 0] = { 0x3000, 0x1800, 0x1800, },
- [ 1] = { 0xb000, 0x18d0, 0x2e60, },
- [ 2] = { 0xb000, 0x1990, 0x2ce0, },
- [ 3] = { 0xb020, 0x1a68, 0x2b40, },
- [ 4] = { 0xb040, 0x1b20, 0x29e0, },
- [ 5] = { 0xb060, 0x1bd8, 0x2880, },
- [ 6] = { 0xb080, 0x1c88, 0x3e60, },
- [ 7] = { 0xb0a0, 0x1d28, 0x3c00, },
- [ 8] = { 0xb0c0, 0x1db8, 0x39e0, },
- [ 9] = { 0xb0e0, 0x1e40, 0x37e0, },
- [10] = { 0xb100, 0x1eb8, 0x3620, },
- [11] = { 0xb100, 0x1f18, 0x34a0, },
- [12] = { 0xb100, 0x1f68, 0x3360, },
- [13] = { 0xb0e0, 0x1fa8, 0x3240, },
- [14] = { 0xb0c0, 0x1fe0, 0x3140, },
- [15] = { 0xb060, 0x1ff0, 0x30a0, },
- [16] = { 0x3000, 0x0800, 0x3000, },
-};
-
-static void update_polyphase_filter(struct overlay_registers __iomem *regs)
-{
- memcpy_toio(regs->Y_HCOEFS, y_static_hcoeffs, sizeof(y_static_hcoeffs));
- memcpy_toio(regs->UV_HCOEFS, uv_static_hcoeffs,
- sizeof(uv_static_hcoeffs));
-}
-
-static bool update_scaling_factors(struct intel_overlay *overlay,
- struct overlay_registers __iomem *regs,
- struct drm_intel_overlay_put_image *params)
-{
- /* fixed point with a 12 bit shift */
- u32 xscale, yscale, xscale_UV, yscale_UV;
-#define FP_SHIFT 12
-#define FRACT_MASK 0xfff
- bool scale_changed = false;
- int uv_hscale = uv_hsubsampling(params->flags);
- int uv_vscale = uv_vsubsampling(params->flags);
-
- if (params->dst_width > 1)
- xscale = ((params->src_scan_width - 1) << FP_SHIFT) /
- params->dst_width;
- else
- xscale = 1 << FP_SHIFT;
-
- if (params->dst_height > 1)
- yscale = ((params->src_scan_height - 1) << FP_SHIFT) /
- params->dst_height;
- else
- yscale = 1 << FP_SHIFT;
-
- /*if (params->format & I915_OVERLAY_YUV_PLANAR) {*/
- xscale_UV = xscale/uv_hscale;
- yscale_UV = yscale/uv_vscale;
- /* make the Y scale to UV scale ratio an exact multiply */
- xscale = xscale_UV * uv_hscale;
- yscale = yscale_UV * uv_vscale;
- /*} else {
- xscale_UV = 0;
- yscale_UV = 0;
- }*/
-
- if (xscale != overlay->old_xscale || yscale != overlay->old_yscale)
- scale_changed = true;
- overlay->old_xscale = xscale;
- overlay->old_yscale = yscale;
-
- iowrite32(((yscale & FRACT_MASK) << 20) |
- ((xscale >> FP_SHIFT) << 16) |
- ((xscale & FRACT_MASK) << 3),
- ®s->YRGBSCALE);
-
- iowrite32(((yscale_UV & FRACT_MASK) << 20) |
- ((xscale_UV >> FP_SHIFT) << 16) |
- ((xscale_UV & FRACT_MASK) << 3),
- ®s->UVSCALE);
-
- iowrite32((((yscale >> FP_SHIFT) << 16) |
- ((yscale_UV >> FP_SHIFT) << 0)),
- ®s->UVSCALEV);
-
- if (scale_changed)
- update_polyphase_filter(regs);
-
- return scale_changed;
-}
-
-static void update_colorkey(struct intel_overlay *overlay,
- struct overlay_registers __iomem *regs)
-{
- const struct intel_plane_state *state =
- to_intel_plane_state(overlay->crtc->base.primary->state);
- u32 key = overlay->color_key;
- u32 format = 0;
- u32 flags = 0;
-
- if (overlay->color_key_enabled)
- flags |= DST_KEY_ENABLE;
-
- if (state->uapi.visible)
- format = state->hw.fb->format->format;
-
- switch (format) {
- case DRM_FORMAT_C8:
- key = RGB8I_TO_COLORKEY(key);
- flags |= CLK_RGB24_MASK;
- break;
- case DRM_FORMAT_XRGB1555:
- key = RGB15_TO_COLORKEY(key);
- flags |= CLK_RGB15_MASK;
- break;
- case DRM_FORMAT_RGB565:
- key = RGB16_TO_COLORKEY(key);
- flags |= CLK_RGB16_MASK;
- break;
- case DRM_FORMAT_XRGB2101010:
- case DRM_FORMAT_XBGR2101010:
- key = RGB30_TO_COLORKEY(key);
- flags |= CLK_RGB24_MASK;
- break;
- default:
- flags |= CLK_RGB24_MASK;
- break;
- }
-
- iowrite32(key, ®s->DCLRKV);
- iowrite32(flags, ®s->DCLRKM);
-}
-
-static u32 overlay_cmd_reg(struct drm_intel_overlay_put_image *params)
-{
- u32 cmd = OCMD_ENABLE | OCMD_BUF_TYPE_FRAME | OCMD_BUFFER0;
-
- if (params->flags & I915_OVERLAY_YUV_PLANAR) {
- switch (params->flags & I915_OVERLAY_DEPTH_MASK) {
- case I915_OVERLAY_YUV422:
- cmd |= OCMD_YUV_422_PLANAR;
- break;
- case I915_OVERLAY_YUV420:
- cmd |= OCMD_YUV_420_PLANAR;
- break;
- case I915_OVERLAY_YUV411:
- case I915_OVERLAY_YUV410:
- cmd |= OCMD_YUV_410_PLANAR;
- break;
- }
- } else { /* YUV packed */
- switch (params->flags & I915_OVERLAY_DEPTH_MASK) {
- case I915_OVERLAY_YUV422:
- cmd |= OCMD_YUV_422_PACKED;
- break;
- case I915_OVERLAY_YUV411:
- cmd |= OCMD_YUV_411_PACKED;
- break;
- }
-
- switch (params->flags & I915_OVERLAY_SWAP_MASK) {
- case I915_OVERLAY_NO_SWAP:
- break;
- case I915_OVERLAY_UV_SWAP:
- cmd |= OCMD_UV_SWAP;
- break;
- case I915_OVERLAY_Y_SWAP:
- cmd |= OCMD_Y_SWAP;
- break;
- case I915_OVERLAY_Y_AND_UV_SWAP:
- cmd |= OCMD_Y_AND_UV_SWAP;
- break;
- }
- }
-
- return cmd;
-}
-
-static struct i915_vma *intel_overlay_pin_fb(struct drm_i915_gem_object *new_bo)
-{
- struct i915_gem_ww_ctx ww;
- struct i915_vma *vma;
- int ret;
-
- i915_gem_ww_ctx_init(&ww, true);
-retry:
- ret = i915_gem_object_lock(new_bo, &ww);
- if (!ret) {
- vma = i915_gem_object_pin_to_display_plane(new_bo, &ww, 0, 0,
- NULL, PIN_MAPPABLE);
- ret = PTR_ERR_OR_ZERO(vma);
- }
- if (ret == -EDEADLK) {
- ret = i915_gem_ww_ctx_backoff(&ww);
- if (!ret)
- goto retry;
- }
- i915_gem_ww_ctx_fini(&ww);
- if (ret)
- return ERR_PTR(ret);
-
- return vma;
-}
-
-static int intel_overlay_do_put_image(struct intel_overlay *overlay,
- struct drm_i915_gem_object *new_bo,
- struct drm_intel_overlay_put_image *params)
-{
- struct intel_display *display = overlay->display;
- struct overlay_registers __iomem *regs = overlay->regs;
- u32 swidth, swidthsw, sheight, ostride;
- enum pipe pipe = overlay->crtc->pipe;
- bool scale_changed = false;
- struct i915_vma *vma;
- int ret, tmp_width;
-
- drm_WARN_ON(display->drm,
- !drm_modeset_is_locked(&display->drm->mode_config.connection_mutex));
-
- ret = intel_overlay_release_old_vid(overlay);
- if (ret != 0)
- return ret;
-
- atomic_inc(&display->restore.pending_fb_pin);
-
- vma = intel_overlay_pin_fb(new_bo);
- if (IS_ERR(vma)) {
- ret = PTR_ERR(vma);
- goto out_pin_section;
- }
-
- if (!overlay->active) {
- const struct intel_crtc_state *crtc_state =
- overlay->crtc->config;
- u32 oconfig = 0;
-
- if (crtc_state->gamma_enable &&
- crtc_state->gamma_mode == GAMMA_MODE_MODE_8BIT)
- oconfig |= OCONF_CC_OUT_8BIT;
- if (crtc_state->gamma_enable)
- oconfig |= OCONF_GAMMA2_ENABLE;
- if (DISPLAY_VER(display) == 4)
- oconfig |= OCONF_CSC_MODE_BT709;
- oconfig |= pipe == 0 ?
- OCONF_PIPE_A : OCONF_PIPE_B;
- iowrite32(oconfig, ®s->OCONFIG);
-
- ret = intel_overlay_on(overlay);
- if (ret != 0)
- goto out_unpin;
- }
-
- iowrite32(params->dst_y << 16 | params->dst_x, ®s->DWINPOS);
- iowrite32(params->dst_height << 16 | params->dst_width, ®s->DWINSZ);
-
- if (params->flags & I915_OVERLAY_YUV_PACKED)
- tmp_width = packed_width_bytes(params->flags,
- params->src_width);
- else
- tmp_width = params->src_width;
-
- swidth = params->src_width;
- swidthsw = calc_swidthsw(display, params->offset_Y, tmp_width);
- sheight = params->src_height;
- iowrite32(i915_ggtt_offset(vma) + params->offset_Y, ®s->OBUF_0Y);
- ostride = params->stride_Y;
-
- if (params->flags & I915_OVERLAY_YUV_PLANAR) {
- int uv_hscale = uv_hsubsampling(params->flags);
- int uv_vscale = uv_vsubsampling(params->flags);
- u32 tmp_U, tmp_V;
-
- swidth |= (params->src_width / uv_hscale) << 16;
- sheight |= (params->src_height / uv_vscale) << 16;
-
- tmp_U = calc_swidthsw(display, params->offset_U,
- params->src_width / uv_hscale);
- tmp_V = calc_swidthsw(display, params->offset_V,
- params->src_width / uv_hscale);
- swidthsw |= max(tmp_U, tmp_V) << 16;
-
- iowrite32(i915_ggtt_offset(vma) + params->offset_U,
- ®s->OBUF_0U);
- iowrite32(i915_ggtt_offset(vma) + params->offset_V,
- ®s->OBUF_0V);
-
- ostride |= params->stride_UV << 16;
- }
-
- iowrite32(swidth, ®s->SWIDTH);
- iowrite32(swidthsw, ®s->SWIDTHSW);
- iowrite32(sheight, ®s->SHEIGHT);
- iowrite32(ostride, ®s->OSTRIDE);
-
- scale_changed = update_scaling_factors(overlay, regs, params);
-
- update_colorkey(overlay, regs);
-
- iowrite32(overlay_cmd_reg(params), ®s->OCMD);
-
- ret = intel_overlay_continue(overlay, vma, scale_changed);
- if (ret)
- goto out_unpin;
-
- return 0;
-
-out_unpin:
- i915_vma_unpin(vma);
-out_pin_section:
- atomic_dec(&display->restore.pending_fb_pin);
-
- return ret;
-}
-
-int intel_overlay_switch_off(struct intel_overlay *overlay)
-{
- struct intel_display *display = overlay->display;
- int ret;
-
- drm_WARN_ON(display->drm,
- !drm_modeset_is_locked(&display->drm->mode_config.connection_mutex));
-
- ret = intel_overlay_recover_from_interrupt(overlay);
- if (ret != 0)
- return ret;
-
- if (!overlay->active)
- return 0;
-
- ret = intel_overlay_release_old_vid(overlay);
- if (ret != 0)
- return ret;
-
- iowrite32(0, &overlay->regs->OCMD);
-
- return intel_overlay_off(overlay);
-}
-
-static int check_overlay_possible_on_crtc(struct intel_overlay *overlay,
- struct intel_crtc *crtc)
-{
- if (!crtc->active)
- return -EINVAL;
-
- /* can't use the overlay with double wide pipe */
- if (crtc->config->double_wide)
- return -EINVAL;
-
- return 0;
-}
-
-static void update_pfit_vscale_ratio(struct intel_overlay *overlay)
-{
- struct intel_display *display = overlay->display;
- u32 ratio;
-
- /* XXX: This is not the same logic as in the xorg driver, but more in
- * line with the intel documentation for the i965
- */
- if (DISPLAY_VER(display) >= 4) {
- u32 tmp = intel_de_read(display, PFIT_PGM_RATIOS(display));
-
- /* on i965 use the PGM reg to read out the autoscaler values */
- ratio = REG_FIELD_GET(PFIT_VERT_SCALE_MASK_965, tmp);
- } else {
- u32 tmp;
-
- if (intel_de_read(display, PFIT_CONTROL(display)) & PFIT_VERT_AUTO_SCALE)
- tmp = intel_de_read(display, PFIT_AUTO_RATIOS(display));
- else
- tmp = intel_de_read(display, PFIT_PGM_RATIOS(display));
-
- ratio = REG_FIELD_GET(PFIT_VERT_SCALE_MASK, tmp);
- }
-
- overlay->pfit_vscale_ratio = ratio;
-}
-
-static int check_overlay_dst(struct intel_overlay *overlay,
- struct drm_intel_overlay_put_image *rec)
-{
- const struct intel_crtc_state *crtc_state =
- overlay->crtc->config;
- struct drm_rect req, clipped;
-
- drm_rect_init(&req, rec->dst_x, rec->dst_y,
- rec->dst_width, rec->dst_height);
-
- clipped = req;
-
- if (!drm_rect_intersect(&clipped, &crtc_state->pipe_src))
- return -EINVAL;
-
- if (!drm_rect_equals(&clipped, &req))
- return -EINVAL;
-
- return 0;
-}
-
-static int check_overlay_scaling(struct drm_intel_overlay_put_image *rec)
-{
- u32 tmp;
-
- /* downscaling limit is 8.0 */
- tmp = ((rec->src_scan_height << 16) / rec->dst_height) >> 16;
- if (tmp > 7)
- return -EINVAL;
-
- tmp = ((rec->src_scan_width << 16) / rec->dst_width) >> 16;
- if (tmp > 7)
- return -EINVAL;
-
- return 0;
-}
-
-static int check_overlay_src(struct intel_display *display,
- struct drm_intel_overlay_put_image *rec,
- struct drm_i915_gem_object *new_bo)
-{
- int uv_hscale = uv_hsubsampling(rec->flags);
- int uv_vscale = uv_vsubsampling(rec->flags);
- u32 stride_mask;
- int depth;
- u32 tmp;
-
- /* check src dimensions */
- if (display->platform.i845g || display->platform.i830) {
- if (rec->src_height > IMAGE_MAX_HEIGHT_LEGACY ||
- rec->src_width > IMAGE_MAX_WIDTH_LEGACY)
- return -EINVAL;
- } else {
- if (rec->src_height > IMAGE_MAX_HEIGHT ||
- rec->src_width > IMAGE_MAX_WIDTH)
- return -EINVAL;
- }
-
- /* better safe than sorry, use 4 as the maximal subsampling ratio */
- if (rec->src_height < N_VERT_Y_TAPS*4 ||
- rec->src_width < N_HORIZ_Y_TAPS*4)
- return -EINVAL;
-
- /* check alignment constraints */
- switch (rec->flags & I915_OVERLAY_TYPE_MASK) {
- case I915_OVERLAY_RGB:
- /* not implemented */
- return -EINVAL;
-
- case I915_OVERLAY_YUV_PACKED:
- if (uv_vscale != 1)
- return -EINVAL;
-
- depth = packed_depth_bytes(rec->flags);
- if (depth < 0)
- return depth;
-
- /* ignore UV planes */
- rec->stride_UV = 0;
- rec->offset_U = 0;
- rec->offset_V = 0;
- /* check pixel alignment */
- if (rec->offset_Y % depth)
- return -EINVAL;
- break;
-
- case I915_OVERLAY_YUV_PLANAR:
- if (uv_vscale < 0 || uv_hscale < 0)
- return -EINVAL;
- /* no offset restrictions for planar formats */
- break;
-
- default:
- return -EINVAL;
- }
-
- if (rec->src_width % uv_hscale)
- return -EINVAL;
-
- /* stride checking */
- if (display->platform.i830 || display->platform.i845g)
- stride_mask = 255;
- else
- stride_mask = 63;
-
- if (rec->stride_Y & stride_mask || rec->stride_UV & stride_mask)
- return -EINVAL;
- if (DISPLAY_VER(display) == 4 && rec->stride_Y < 512)
- return -EINVAL;
-
- tmp = (rec->flags & I915_OVERLAY_TYPE_MASK) == I915_OVERLAY_YUV_PLANAR ?
- 4096 : 8192;
- if (rec->stride_Y > tmp || rec->stride_UV > 2*1024)
- return -EINVAL;
-
- /* check buffer dimensions */
- switch (rec->flags & I915_OVERLAY_TYPE_MASK) {
- case I915_OVERLAY_RGB:
- case I915_OVERLAY_YUV_PACKED:
- /* always 4 Y values per depth pixels */
- if (packed_width_bytes(rec->flags, rec->src_width) > rec->stride_Y)
- return -EINVAL;
-
- tmp = rec->stride_Y*rec->src_height;
- if (rec->offset_Y + tmp > new_bo->base.size)
- return -EINVAL;
- break;
-
- case I915_OVERLAY_YUV_PLANAR:
- if (rec->src_width > rec->stride_Y)
- return -EINVAL;
- if (rec->src_width/uv_hscale > rec->stride_UV)
- return -EINVAL;
-
- tmp = rec->stride_Y * rec->src_height;
- if (rec->offset_Y + tmp > new_bo->base.size)
- return -EINVAL;
-
- tmp = rec->stride_UV * (rec->src_height / uv_vscale);
- if (rec->offset_U + tmp > new_bo->base.size ||
- rec->offset_V + tmp > new_bo->base.size)
- return -EINVAL;
- break;
- }
-
- return 0;
-}
-
-int intel_overlay_put_image_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv)
-{
- struct intel_display *display = to_intel_display(dev);
- struct drm_intel_overlay_put_image *params = data;
- struct intel_overlay *overlay;
- struct drm_crtc *drmmode_crtc;
- struct intel_crtc *crtc;
- struct drm_i915_gem_object *new_bo;
- int ret;
-
- overlay = display->overlay;
- if (!overlay) {
- drm_dbg(display->drm, "userspace bug: no overlay\n");
- return -ENODEV;
- }
-
- if (!(params->flags & I915_OVERLAY_ENABLE)) {
- drm_modeset_lock_all(dev);
- ret = intel_overlay_switch_off(overlay);
- drm_modeset_unlock_all(dev);
-
- return ret;
- }
-
- drmmode_crtc = drm_crtc_find(dev, file_priv, params->crtc_id);
- if (!drmmode_crtc)
- return -ENOENT;
- crtc = to_intel_crtc(drmmode_crtc);
-
- new_bo = i915_gem_object_lookup(file_priv, params->bo_handle);
- if (!new_bo)
- return -ENOENT;
-
- drm_modeset_lock_all(dev);
-
- if (i915_gem_object_is_tiled(new_bo)) {
- drm_dbg_kms(display->drm,
- "buffer used for overlay image can not be tiled\n");
- ret = -EINVAL;
- goto out_unlock;
- }
-
- ret = intel_overlay_recover_from_interrupt(overlay);
- if (ret != 0)
- goto out_unlock;
-
- if (overlay->crtc != crtc) {
- ret = intel_overlay_switch_off(overlay);
- if (ret != 0)
- goto out_unlock;
-
- ret = check_overlay_possible_on_crtc(overlay, crtc);
- if (ret != 0)
- goto out_unlock;
-
- overlay->crtc = crtc;
- crtc->overlay = overlay;
-
- /* line too wide, i.e. one-line-mode */
- if (drm_rect_width(&crtc->config->pipe_src) > 1024 &&
- crtc->config->gmch_pfit.control & PFIT_ENABLE) {
- overlay->pfit_active = true;
- update_pfit_vscale_ratio(overlay);
- } else
- overlay->pfit_active = false;
- }
-
- ret = check_overlay_dst(overlay, params);
- if (ret != 0)
- goto out_unlock;
-
- if (overlay->pfit_active) {
- params->dst_y = (((u32)params->dst_y << 12) /
- overlay->pfit_vscale_ratio);
- /* shifting right rounds downwards, so add 1 */
- params->dst_height = (((u32)params->dst_height << 12) /
- overlay->pfit_vscale_ratio) + 1;
- }
-
- if (params->src_scan_height > params->src_height ||
- params->src_scan_width > params->src_width) {
- ret = -EINVAL;
- goto out_unlock;
- }
-
- ret = check_overlay_src(display, params, new_bo);
- if (ret != 0)
- goto out_unlock;
-
- /* Check scaling after src size to prevent a divide-by-zero. */
- ret = check_overlay_scaling(params);
- if (ret != 0)
- goto out_unlock;
-
- ret = intel_overlay_do_put_image(overlay, new_bo, params);
- if (ret != 0)
- goto out_unlock;
-
- drm_modeset_unlock_all(dev);
- i915_gem_object_put(new_bo);
-
- return 0;
-
-out_unlock:
- drm_modeset_unlock_all(dev);
- i915_gem_object_put(new_bo);
-
- return ret;
-}
-
-static void update_reg_attrs(struct intel_overlay *overlay,
- struct overlay_registers __iomem *regs)
-{
- iowrite32((overlay->contrast << 18) | (overlay->brightness & 0xff),
- ®s->OCLRC0);
- iowrite32(overlay->saturation, ®s->OCLRC1);
-}
-
-static bool check_gamma_bounds(u32 gamma1, u32 gamma2)
-{
- int i;
-
- if (gamma1 & 0xff000000 || gamma2 & 0xff000000)
- return false;
-
- for (i = 0; i < 3; i++) {
- if (((gamma1 >> i*8) & 0xff) >= ((gamma2 >> i*8) & 0xff))
- return false;
- }
-
- return true;
-}
-
-static bool check_gamma5_errata(u32 gamma5)
-{
- int i;
-
- for (i = 0; i < 3; i++) {
- if (((gamma5 >> i*8) & 0xff) == 0x80)
- return false;
- }
-
- return true;
-}
-
-static int check_gamma(struct drm_intel_overlay_attrs *attrs)
-{
- if (!check_gamma_bounds(0, attrs->gamma0) ||
- !check_gamma_bounds(attrs->gamma0, attrs->gamma1) ||
- !check_gamma_bounds(attrs->gamma1, attrs->gamma2) ||
- !check_gamma_bounds(attrs->gamma2, attrs->gamma3) ||
- !check_gamma_bounds(attrs->gamma3, attrs->gamma4) ||
- !check_gamma_bounds(attrs->gamma4, attrs->gamma5) ||
- !check_gamma_bounds(attrs->gamma5, 0x00ffffff))
- return -EINVAL;
-
- if (!check_gamma5_errata(attrs->gamma5))
- return -EINVAL;
-
- return 0;
-}
-
-int intel_overlay_attrs_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv)
-{
- struct intel_display *display = to_intel_display(dev);
- struct drm_intel_overlay_attrs *attrs = data;
- struct intel_overlay *overlay;
- int ret;
-
- overlay = display->overlay;
- if (!overlay) {
- drm_dbg(display->drm, "userspace bug: no overlay\n");
- return -ENODEV;
- }
-
- drm_modeset_lock_all(dev);
-
- ret = -EINVAL;
- if (!(attrs->flags & I915_OVERLAY_UPDATE_ATTRS)) {
- attrs->color_key = overlay->color_key;
- attrs->brightness = overlay->brightness;
- attrs->contrast = overlay->contrast;
- attrs->saturation = overlay->saturation;
-
- if (DISPLAY_VER(display) != 2) {
- attrs->gamma0 = intel_de_read(display, OGAMC0);
- attrs->gamma1 = intel_de_read(display, OGAMC1);
- attrs->gamma2 = intel_de_read(display, OGAMC2);
- attrs->gamma3 = intel_de_read(display, OGAMC3);
- attrs->gamma4 = intel_de_read(display, OGAMC4);
- attrs->gamma5 = intel_de_read(display, OGAMC5);
- }
- } else {
- if (attrs->brightness < -128 || attrs->brightness > 127)
- goto out_unlock;
- if (attrs->contrast > 255)
- goto out_unlock;
- if (attrs->saturation > 1023)
- goto out_unlock;
-
- overlay->color_key = attrs->color_key;
- overlay->brightness = attrs->brightness;
- overlay->contrast = attrs->contrast;
- overlay->saturation = attrs->saturation;
-
- update_reg_attrs(overlay, overlay->regs);
-
- if (attrs->flags & I915_OVERLAY_UPDATE_GAMMA) {
- if (DISPLAY_VER(display) == 2)
- goto out_unlock;
-
- if (overlay->active) {
- ret = -EBUSY;
- goto out_unlock;
- }
-
- ret = check_gamma(attrs);
- if (ret)
- goto out_unlock;
-
- intel_de_write(display, OGAMC0, attrs->gamma0);
- intel_de_write(display, OGAMC1, attrs->gamma1);
- intel_de_write(display, OGAMC2, attrs->gamma2);
- intel_de_write(display, OGAMC3, attrs->gamma3);
- intel_de_write(display, OGAMC4, attrs->gamma4);
- intel_de_write(display, OGAMC5, attrs->gamma5);
- }
- }
- overlay->color_key_enabled = (attrs->flags & I915_OVERLAY_DISABLE_DEST_COLORKEY) == 0;
-
- ret = 0;
-out_unlock:
- drm_modeset_unlock_all(dev);
-
- return ret;
-}
-
-static int get_registers(struct intel_overlay *overlay, bool use_phys)
-{
- struct intel_display *display = overlay->display;
- struct drm_i915_private *i915 = to_i915(display->drm);
- struct drm_i915_gem_object *obj = ERR_PTR(-ENODEV);
- struct i915_vma *vma;
- int err;
-
- if (!display->platform.meteorlake) /* Wa_22018444074 */
- obj = i915_gem_object_create_stolen(i915, PAGE_SIZE);
- if (IS_ERR(obj))
- obj = i915_gem_object_create_internal(i915, PAGE_SIZE);
- if (IS_ERR(obj))
- return PTR_ERR(obj);
-
- vma = i915_gem_object_ggtt_pin(obj, NULL, 0, 0, PIN_MAPPABLE);
- if (IS_ERR(vma)) {
- err = PTR_ERR(vma);
- goto err_put_bo;
- }
-
- if (use_phys)
- overlay->flip_addr = sg_dma_address(obj->mm.pages->sgl);
- else
- overlay->flip_addr = i915_ggtt_offset(vma);
- overlay->regs = i915_vma_pin_iomap(vma);
- i915_vma_unpin(vma);
-
- if (IS_ERR(overlay->regs)) {
- err = PTR_ERR(overlay->regs);
- goto err_put_bo;
- }
-
- overlay->reg_bo = obj;
- return 0;
-
-err_put_bo:
- i915_gem_object_put(obj);
- return err;
-}
-
-void intel_overlay_setup(struct intel_display *display)
-{
- struct drm_i915_private *dev_priv = to_i915(display->drm);
- struct intel_overlay *overlay;
- struct intel_engine_cs *engine;
- int ret;
-
- if (!HAS_OVERLAY(display))
- return;
-
- engine = to_gt(dev_priv)->engine[RCS0];
- if (!engine || !engine->kernel_context)
- return;
-
- overlay = kzalloc(sizeof(*overlay), GFP_KERNEL);
- if (!overlay)
- return;
-
- overlay->display = display;
- overlay->context = engine->kernel_context;
- overlay->color_key = 0x0101fe;
- overlay->color_key_enabled = true;
- overlay->brightness = -19;
- overlay->contrast = 75;
- overlay->saturation = 146;
-
- i915_active_init(&overlay->last_flip,
- NULL, intel_overlay_last_flip_retire, 0);
-
- ret = get_registers(overlay, OVERLAY_NEEDS_PHYSICAL(display));
- if (ret)
- goto out_free;
-
- memset_io(overlay->regs, 0, sizeof(struct overlay_registers));
- update_polyphase_filter(overlay->regs);
- update_reg_attrs(overlay, overlay->regs);
-
- display->overlay = overlay;
- drm_info(display->drm, "Initialized overlay support.\n");
- return;
-
-out_free:
- kfree(overlay);
-}
-
-bool intel_overlay_available(struct intel_display *display)
-{
- return display->overlay;
-}
-
-void intel_overlay_cleanup(struct intel_display *display)
-{
- struct intel_overlay *overlay;
-
- overlay = fetch_and_zero(&display->overlay);
- if (!overlay)
- return;
-
- /*
- * The bo's should be free'd by the generic code already.
- * Furthermore modesetting teardown happens beforehand so the
- * hardware should be off already.
- */
- drm_WARN_ON(display->drm, overlay->active);
-
- i915_gem_object_put(overlay->reg_bo);
- i915_active_fini(&overlay->last_flip);
-
- kfree(overlay);
-}
-
-#if IS_ENABLED(CONFIG_DRM_I915_CAPTURE_ERROR)
-
-struct intel_overlay_snapshot {
- struct overlay_registers regs;
- unsigned long base;
- u32 dovsta;
- u32 isr;
-};
-
-struct intel_overlay_snapshot *
-intel_overlay_snapshot_capture(struct intel_display *display)
-{
- struct intel_overlay *overlay = display->overlay;
- struct intel_overlay_snapshot *error;
-
- if (!overlay || !overlay->active)
- return NULL;
-
- error = kmalloc(sizeof(*error), GFP_ATOMIC);
- if (error == NULL)
- return NULL;
-
- error->dovsta = intel_de_read(display, DOVSTA);
- error->isr = intel_de_read(display, GEN2_ISR);
- error->base = overlay->flip_addr;
-
- memcpy_fromio(&error->regs, overlay->regs, sizeof(error->regs));
-
- return error;
-}
-
-void
-intel_overlay_snapshot_print(const struct intel_overlay_snapshot *error,
- struct drm_printer *p)
-{
- if (!error)
- return;
-
- drm_printf(p, "Overlay, status: 0x%08x, interrupt: 0x%08x\n",
- error->dovsta, error->isr);
- drm_printf(p, " Register file at 0x%08lx:\n", error->base);
-
-#define P(x) drm_printf(p, " " #x ": 0x%08x\n", error->regs.x)
- P(OBUF_0Y);
- P(OBUF_1Y);
- P(OBUF_0U);
- P(OBUF_0V);
- P(OBUF_1U);
- P(OBUF_1V);
- P(OSTRIDE);
- P(YRGB_VPH);
- P(UV_VPH);
- P(HORZ_PH);
- P(INIT_PHS);
- P(DWINPOS);
- P(DWINSZ);
- P(SWIDTH);
- P(SWIDTHSW);
- P(SHEIGHT);
- P(YRGBSCALE);
- P(UVSCALE);
- P(OCLRC0);
- P(OCLRC1);
- P(DCLRKV);
- P(DCLRKM);
- P(SCLRKVH);
- P(SCLRKVL);
- P(SCLRKEN);
- P(OCONFIG);
- P(OCMD);
- P(OSTART_0Y);
- P(OSTART_1Y);
- P(OSTART_0U);
- P(OSTART_0V);
- P(OSTART_1U);
- P(OSTART_1V);
- P(OTILEOFF_0Y);
- P(OTILEOFF_1Y);
- P(OTILEOFF_0U);
- P(OTILEOFF_0V);
- P(OTILEOFF_1U);
- P(OTILEOFF_1V);
- P(FASTHSCALE);
- P(UVSCALEV);
-#undef P
-}
-
-#endif
diff --git a/drivers/gpu/drm/i915/display/intel_overlay.h b/drivers/gpu/drm/i915/display/intel_overlay.h
deleted file mode 100644
index d259e4c74b03..000000000000
--- a/drivers/gpu/drm/i915/display/intel_overlay.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* SPDX-License-Identifier: MIT */
-/*
- * Copyright © 2019 Intel Corporation
- */
-
-#ifndef __INTEL_OVERLAY_H__
-#define __INTEL_OVERLAY_H__
-
-#include <linux/types.h>
-
-struct drm_device;
-struct drm_file;
-struct drm_printer;
-struct intel_display;
-struct intel_overlay;
-struct intel_overlay_snapshot;
-
-#ifdef I915
-void intel_overlay_setup(struct intel_display *display);
-bool intel_overlay_available(struct intel_display *display);
-void intel_overlay_cleanup(struct intel_display *display);
-int intel_overlay_switch_off(struct intel_overlay *overlay);
-int intel_overlay_put_image_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-int intel_overlay_attrs_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-void intel_overlay_reset(struct intel_display *display);
-#else
-static inline void intel_overlay_setup(struct intel_display *display)
-{
-}
-static inline bool intel_overlay_available(struct intel_display *display)
-{
- return false;
-}
-static inline void intel_overlay_cleanup(struct intel_display *display)
-{
-}
-static inline int intel_overlay_switch_off(struct intel_overlay *overlay)
-{
- return 0;
-}
-static inline int intel_overlay_put_image_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv)
-{
- return 0;
-}
-static inline int intel_overlay_attrs_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv)
-{
- return 0;
-}
-static inline void intel_overlay_reset(struct intel_display *display)
-{
-}
-#endif
-
-#if IS_ENABLED(CONFIG_DRM_I915_CAPTURE_ERROR) && defined(I915)
-struct intel_overlay_snapshot *
-intel_overlay_snapshot_capture(struct intel_display *display);
-void intel_overlay_snapshot_print(const struct intel_overlay_snapshot *error,
- struct drm_printer *p);
-#else
-static inline struct intel_overlay_snapshot *
-intel_overlay_snapshot_capture(struct intel_display *display)
-{
- return NULL;
-}
-static inline void intel_overlay_snapshot_print(const struct intel_overlay_snapshot *error,
- struct drm_printer *p)
-{
-}
-#endif
-
-#endif /* __INTEL_OVERLAY_H__ */
diff --git a/drivers/gpu/drm/i915/gt/intel_reset.c b/drivers/gpu/drm/i915/gt/intel_reset.c
index 41b5036dc538..7dde1fbc3850 100644
--- a/drivers/gpu/drm/i915/gt/intel_reset.c
+++ b/drivers/gpu/drm/i915/gt/intel_reset.c
@@ -8,7 +8,6 @@
#include <linux/string_helpers.h>
#include "display/intel_display_reset.h"
-#include "display/intel_overlay.h"
#include "gem/i915_gem_context.h"
#include "gt/intel_gt_regs.h"
#include "gt/uc/intel_gsc_fw.h"
@@ -1202,7 +1201,6 @@ void intel_gt_reset(struct intel_gt *gt,
intel_engine_mask_t stalled_mask,
const char *reason)
{
- struct intel_display *display = gt->i915->display;
intel_engine_mask_t awake;
int ret;
@@ -1248,8 +1246,6 @@ void intel_gt_reset(struct intel_gt *gt,
if (intel_gt_gpu_reset_clobbers_display(gt))
intel_irq_resume(gt->i915);
- intel_overlay_reset(display);
-
/* sanitize uC after engine reset */
if (!intel_uc_uses_guc_submission(>->uc))
intel_uc_reset_prepare(>->uc);
--
2.47.3
^ permalink raw reply related [flat|nested] 7+ messages in thread
* ✗ CI.checkpatch: warning for series starting with [1/2] drm/i915: drop display version 2-4 overlay uAPI
2026-02-04 16:48 [PATCH 1/2] drm/i915: drop display version 2-4 overlay uAPI Jani Nikula
2026-02-04 16:48 ` [PATCH 2/2] drm/i915/display: drop display version 2-4 overlay implementation Jani Nikula
@ 2026-02-05 3:28 ` Patchwork
2026-02-05 3:30 ` ✓ CI.KUnit: success " Patchwork
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-02-05 3:28 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-xe
== Series Details ==
Series: series starting with [1/2] drm/i915: drop display version 2-4 overlay uAPI
URL : https://patchwork.freedesktop.org/series/161155/
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 2b76076e2a8b83643e82db4884bba768f547e3a5
Author: Jani Nikula <jani.nikula@intel.com>
Date: Wed Feb 4 18:48:27 2026 +0200
drm/i915/display: drop display version 2-4 overlay implementation
With the overlay IOCTLs now returning no overlay support and -ENODEV,
let's drop all the code for the display version 2-4 overlay support.
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+ /mt/dim checkpatch 8883ec84c85819dacca94997b60371c3ed57ee29 drm-intel
4982fa1e8900 drm/i915: drop display version 2-4 overlay uAPI
-:72: CHECK:SPACING: spaces preferred around that '|' (ctx:VxV)
#72: FILE: drivers/gpu/drm/i915/i915_driver.c:1800:
+ DRM_IOCTL_DEF_DRV(I915_GEM_PIN, i915_enodev_ioctl, DRM_AUTH|DRM_ROOT_ONLY),
^
-:73: CHECK:SPACING: spaces preferred around that '|' (ctx:VxV)
#73: FILE: drivers/gpu/drm/i915/i915_driver.c:1801:
+ DRM_IOCTL_DEF_DRV(I915_GEM_UNPIN, i915_enodev_ioctl, DRM_AUTH|DRM_ROOT_ONLY),
^
total: 0 errors, 0 warnings, 2 checks, 59 lines checked
2b76076e2a8b drm/i915/display: drop display version 2-4 overlay implementation
-:285: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#285:
deleted file mode 100644
total: 0 errors, 1 warnings, 0 checks, 229 lines checked
^ permalink raw reply [flat|nested] 7+ messages in thread
* ✓ CI.KUnit: success for series starting with [1/2] drm/i915: drop display version 2-4 overlay uAPI
2026-02-04 16:48 [PATCH 1/2] drm/i915: drop display version 2-4 overlay uAPI Jani Nikula
2026-02-04 16:48 ` [PATCH 2/2] drm/i915/display: drop display version 2-4 overlay implementation Jani Nikula
2026-02-05 3:28 ` ✗ CI.checkpatch: warning for series starting with [1/2] drm/i915: drop display version 2-4 overlay uAPI Patchwork
@ 2026-02-05 3:30 ` Patchwork
2026-02-05 3:46 ` ✗ CI.checksparse: warning " Patchwork
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-02-05 3:30 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-xe
== Series Details ==
Series: series starting with [1/2] drm/i915: drop display version 2-4 overlay uAPI
URL : https://patchwork.freedesktop.org/series/161155/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[03:28:51] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[03:28:56] 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
[03:29:28] Starting KUnit Kernel (1/1)...
[03:29:28] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[03:29:28] ================== guc_buf (11 subtests) ===================
[03:29:28] [PASSED] test_smallest
[03:29:28] [PASSED] test_largest
[03:29:28] [PASSED] test_granular
[03:29:28] [PASSED] test_unique
[03:29:28] [PASSED] test_overlap
[03:29:28] [PASSED] test_reusable
[03:29:28] [PASSED] test_too_big
[03:29:28] [PASSED] test_flush
[03:29:28] [PASSED] test_lookup
[03:29:28] [PASSED] test_data
[03:29:28] [PASSED] test_class
[03:29:28] ===================== [PASSED] guc_buf =====================
[03:29:28] =================== guc_dbm (7 subtests) ===================
[03:29:28] [PASSED] test_empty
[03:29:28] [PASSED] test_default
[03:29:28] ======================== test_size ========================
[03:29:28] [PASSED] 4
[03:29:28] [PASSED] 8
[03:29:28] [PASSED] 32
[03:29:28] [PASSED] 256
[03:29:28] ==================== [PASSED] test_size ====================
[03:29:28] ======================= test_reuse ========================
[03:29:28] [PASSED] 4
[03:29:28] [PASSED] 8
[03:29:28] [PASSED] 32
[03:29:28] [PASSED] 256
[03:29:28] =================== [PASSED] test_reuse ====================
[03:29:28] =================== test_range_overlap ====================
[03:29:28] [PASSED] 4
[03:29:28] [PASSED] 8
[03:29:28] [PASSED] 32
[03:29:28] [PASSED] 256
[03:29:28] =============== [PASSED] test_range_overlap ================
[03:29:28] =================== test_range_compact ====================
[03:29:28] [PASSED] 4
[03:29:28] [PASSED] 8
[03:29:28] [PASSED] 32
[03:29:28] [PASSED] 256
[03:29:28] =============== [PASSED] test_range_compact ================
[03:29:28] ==================== test_range_spare =====================
[03:29:28] [PASSED] 4
[03:29:28] [PASSED] 8
[03:29:28] [PASSED] 32
[03:29:28] [PASSED] 256
[03:29:28] ================ [PASSED] test_range_spare =================
[03:29:28] ===================== [PASSED] guc_dbm =====================
[03:29:28] =================== guc_idm (6 subtests) ===================
[03:29:28] [PASSED] bad_init
[03:29:28] [PASSED] no_init
[03:29:28] [PASSED] init_fini
[03:29:28] [PASSED] check_used
[03:29:28] [PASSED] check_quota
[03:29:28] [PASSED] check_all
[03:29:28] ===================== [PASSED] guc_idm =====================
[03:29:28] ================== no_relay (3 subtests) ===================
[03:29:28] [PASSED] xe_drops_guc2pf_if_not_ready
[03:29:28] [PASSED] xe_drops_guc2vf_if_not_ready
[03:29:28] [PASSED] xe_rejects_send_if_not_ready
[03:29:28] ==================== [PASSED] no_relay =====================
[03:29:28] ================== pf_relay (14 subtests) ==================
[03:29:28] [PASSED] pf_rejects_guc2pf_too_short
[03:29:28] [PASSED] pf_rejects_guc2pf_too_long
[03:29:28] [PASSED] pf_rejects_guc2pf_no_payload
[03:29:28] [PASSED] pf_fails_no_payload
[03:29:28] [PASSED] pf_fails_bad_origin
[03:29:28] [PASSED] pf_fails_bad_type
[03:29:28] [PASSED] pf_txn_reports_error
[03:29:28] [PASSED] pf_txn_sends_pf2guc
[03:29:28] [PASSED] pf_sends_pf2guc
[03:29:28] [SKIPPED] pf_loopback_nop
[03:29:28] [SKIPPED] pf_loopback_echo
[03:29:28] [SKIPPED] pf_loopback_fail
[03:29:28] [SKIPPED] pf_loopback_busy
[03:29:28] [SKIPPED] pf_loopback_retry
[03:29:28] ==================== [PASSED] pf_relay =====================
[03:29:28] ================== vf_relay (3 subtests) ===================
[03:29:28] [PASSED] vf_rejects_guc2vf_too_short
[03:29:28] [PASSED] vf_rejects_guc2vf_too_long
[03:29:28] [PASSED] vf_rejects_guc2vf_no_payload
[03:29:28] ==================== [PASSED] vf_relay =====================
[03:29:28] ================ pf_gt_config (6 subtests) =================
[03:29:28] [PASSED] fair_contexts_1vf
[03:29:28] [PASSED] fair_doorbells_1vf
[03:29:28] [PASSED] fair_ggtt_1vf
[03:29:28] ====================== fair_contexts ======================
[03:29:28] [PASSED] 1 VF
[03:29:28] [PASSED] 2 VFs
[03:29:28] [PASSED] 3 VFs
[03:29:28] [PASSED] 4 VFs
[03:29:28] [PASSED] 5 VFs
[03:29:28] [PASSED] 6 VFs
[03:29:28] [PASSED] 7 VFs
[03:29:28] [PASSED] 8 VFs
[03:29:28] [PASSED] 9 VFs
[03:29:28] [PASSED] 10 VFs
[03:29:28] [PASSED] 11 VFs
[03:29:28] [PASSED] 12 VFs
[03:29:28] [PASSED] 13 VFs
[03:29:28] [PASSED] 14 VFs
[03:29:28] [PASSED] 15 VFs
[03:29:28] [PASSED] 16 VFs
[03:29:28] [PASSED] 17 VFs
[03:29:28] [PASSED] 18 VFs
[03:29:28] [PASSED] 19 VFs
[03:29:28] [PASSED] 20 VFs
[03:29:28] [PASSED] 21 VFs
[03:29:28] [PASSED] 22 VFs
[03:29:28] [PASSED] 23 VFs
[03:29:28] [PASSED] 24 VFs
[03:29:28] [PASSED] 25 VFs
[03:29:28] [PASSED] 26 VFs
[03:29:28] [PASSED] 27 VFs
[03:29:28] [PASSED] 28 VFs
[03:29:28] [PASSED] 29 VFs
[03:29:28] [PASSED] 30 VFs
[03:29:28] [PASSED] 31 VFs
[03:29:28] [PASSED] 32 VFs
[03:29:28] [PASSED] 33 VFs
[03:29:28] [PASSED] 34 VFs
[03:29:28] [PASSED] 35 VFs
[03:29:28] [PASSED] 36 VFs
[03:29:28] [PASSED] 37 VFs
[03:29:28] [PASSED] 38 VFs
[03:29:28] [PASSED] 39 VFs
[03:29:28] [PASSED] 40 VFs
[03:29:28] [PASSED] 41 VFs
[03:29:28] [PASSED] 42 VFs
[03:29:28] [PASSED] 43 VFs
[03:29:28] [PASSED] 44 VFs
[03:29:28] [PASSED] 45 VFs
[03:29:28] [PASSED] 46 VFs
[03:29:28] [PASSED] 47 VFs
[03:29:28] [PASSED] 48 VFs
[03:29:28] [PASSED] 49 VFs
[03:29:28] [PASSED] 50 VFs
[03:29:28] [PASSED] 51 VFs
[03:29:28] [PASSED] 52 VFs
[03:29:28] [PASSED] 53 VFs
[03:29:28] [PASSED] 54 VFs
[03:29:28] [PASSED] 55 VFs
[03:29:28] [PASSED] 56 VFs
[03:29:28] [PASSED] 57 VFs
[03:29:28] [PASSED] 58 VFs
[03:29:28] [PASSED] 59 VFs
[03:29:28] [PASSED] 60 VFs
[03:29:28] [PASSED] 61 VFs
[03:29:28] [PASSED] 62 VFs
[03:29:28] [PASSED] 63 VFs
[03:29:28] ================== [PASSED] fair_contexts ==================
[03:29:28] ===================== fair_doorbells ======================
[03:29:28] [PASSED] 1 VF
[03:29:28] [PASSED] 2 VFs
[03:29:28] [PASSED] 3 VFs
[03:29:28] [PASSED] 4 VFs
[03:29:28] [PASSED] 5 VFs
[03:29:28] [PASSED] 6 VFs
[03:29:28] [PASSED] 7 VFs
[03:29:28] [PASSED] 8 VFs
[03:29:28] [PASSED] 9 VFs
[03:29:28] [PASSED] 10 VFs
[03:29:28] [PASSED] 11 VFs
[03:29:28] [PASSED] 12 VFs
[03:29:28] [PASSED] 13 VFs
[03:29:28] [PASSED] 14 VFs
[03:29:28] [PASSED] 15 VFs
[03:29:28] [PASSED] 16 VFs
[03:29:28] [PASSED] 17 VFs
[03:29:28] [PASSED] 18 VFs
[03:29:28] [PASSED] 19 VFs
[03:29:28] [PASSED] 20 VFs
[03:29:28] [PASSED] 21 VFs
[03:29:28] [PASSED] 22 VFs
[03:29:29] [PASSED] 23 VFs
[03:29:29] [PASSED] 24 VFs
[03:29:29] [PASSED] 25 VFs
[03:29:29] [PASSED] 26 VFs
[03:29:29] [PASSED] 27 VFs
[03:29:29] [PASSED] 28 VFs
[03:29:29] [PASSED] 29 VFs
[03:29:29] [PASSED] 30 VFs
[03:29:29] [PASSED] 31 VFs
[03:29:29] [PASSED] 32 VFs
[03:29:29] [PASSED] 33 VFs
[03:29:29] [PASSED] 34 VFs
[03:29:29] [PASSED] 35 VFs
[03:29:29] [PASSED] 36 VFs
[03:29:29] [PASSED] 37 VFs
[03:29:29] [PASSED] 38 VFs
[03:29:29] [PASSED] 39 VFs
[03:29:29] [PASSED] 40 VFs
[03:29:29] [PASSED] 41 VFs
[03:29:29] [PASSED] 42 VFs
[03:29:29] [PASSED] 43 VFs
[03:29:29] [PASSED] 44 VFs
[03:29:29] [PASSED] 45 VFs
[03:29:29] [PASSED] 46 VFs
[03:29:29] [PASSED] 47 VFs
[03:29:29] [PASSED] 48 VFs
[03:29:29] [PASSED] 49 VFs
[03:29:29] [PASSED] 50 VFs
[03:29:29] [PASSED] 51 VFs
[03:29:29] [PASSED] 52 VFs
[03:29:29] [PASSED] 53 VFs
[03:29:29] [PASSED] 54 VFs
[03:29:29] [PASSED] 55 VFs
[03:29:29] [PASSED] 56 VFs
[03:29:29] [PASSED] 57 VFs
[03:29:29] [PASSED] 58 VFs
[03:29:29] [PASSED] 59 VFs
[03:29:29] [PASSED] 60 VFs
[03:29:29] [PASSED] 61 VFs
[03:29:29] [PASSED] 62 VFs
[03:29:29] [PASSED] 63 VFs
[03:29:29] ================= [PASSED] fair_doorbells ==================
[03:29:29] ======================== fair_ggtt ========================
[03:29:29] [PASSED] 1 VF
[03:29:29] [PASSED] 2 VFs
[03:29:29] [PASSED] 3 VFs
[03:29:29] [PASSED] 4 VFs
[03:29:29] [PASSED] 5 VFs
[03:29:29] [PASSED] 6 VFs
[03:29:29] [PASSED] 7 VFs
[03:29:29] [PASSED] 8 VFs
[03:29:29] [PASSED] 9 VFs
[03:29:29] [PASSED] 10 VFs
[03:29:29] [PASSED] 11 VFs
[03:29:29] [PASSED] 12 VFs
[03:29:29] [PASSED] 13 VFs
[03:29:29] [PASSED] 14 VFs
[03:29:29] [PASSED] 15 VFs
[03:29:29] [PASSED] 16 VFs
[03:29:29] [PASSED] 17 VFs
[03:29:29] [PASSED] 18 VFs
[03:29:29] [PASSED] 19 VFs
[03:29:29] [PASSED] 20 VFs
[03:29:29] [PASSED] 21 VFs
[03:29:29] [PASSED] 22 VFs
[03:29:29] [PASSED] 23 VFs
[03:29:29] [PASSED] 24 VFs
[03:29:29] [PASSED] 25 VFs
[03:29:29] [PASSED] 26 VFs
[03:29:29] [PASSED] 27 VFs
[03:29:29] [PASSED] 28 VFs
[03:29:29] [PASSED] 29 VFs
[03:29:29] [PASSED] 30 VFs
[03:29:29] [PASSED] 31 VFs
[03:29:29] [PASSED] 32 VFs
[03:29:29] [PASSED] 33 VFs
[03:29:29] [PASSED] 34 VFs
[03:29:29] [PASSED] 35 VFs
[03:29:29] [PASSED] 36 VFs
[03:29:29] [PASSED] 37 VFs
[03:29:29] [PASSED] 38 VFs
[03:29:29] [PASSED] 39 VFs
[03:29:29] [PASSED] 40 VFs
[03:29:29] [PASSED] 41 VFs
[03:29:29] [PASSED] 42 VFs
[03:29:29] [PASSED] 43 VFs
[03:29:29] [PASSED] 44 VFs
[03:29:29] [PASSED] 45 VFs
[03:29:29] [PASSED] 46 VFs
[03:29:29] [PASSED] 47 VFs
[03:29:29] [PASSED] 48 VFs
[03:29:29] [PASSED] 49 VFs
[03:29:29] [PASSED] 50 VFs
[03:29:29] [PASSED] 51 VFs
[03:29:29] [PASSED] 52 VFs
[03:29:29] [PASSED] 53 VFs
[03:29:29] [PASSED] 54 VFs
[03:29:29] [PASSED] 55 VFs
[03:29:29] [PASSED] 56 VFs
[03:29:29] [PASSED] 57 VFs
[03:29:29] [PASSED] 58 VFs
[03:29:29] [PASSED] 59 VFs
[03:29:29] [PASSED] 60 VFs
[03:29:29] [PASSED] 61 VFs
[03:29:29] [PASSED] 62 VFs
[03:29:29] [PASSED] 63 VFs
[03:29:29] ==================== [PASSED] fair_ggtt ====================
[03:29:29] ================== [PASSED] pf_gt_config ===================
[03:29:29] ===================== lmtt (1 subtest) =====================
[03:29:29] ======================== test_ops =========================
[03:29:29] [PASSED] 2-level
[03:29:29] [PASSED] multi-level
[03:29:29] ==================== [PASSED] test_ops =====================
[03:29:29] ====================== [PASSED] lmtt =======================
[03:29:29] ================= pf_service (11 subtests) =================
[03:29:29] [PASSED] pf_negotiate_any
[03:29:29] [PASSED] pf_negotiate_base_match
[03:29:29] [PASSED] pf_negotiate_base_newer
[03:29:29] [PASSED] pf_negotiate_base_next
[03:29:29] [SKIPPED] pf_negotiate_base_older
[03:29:29] [PASSED] pf_negotiate_base_prev
[03:29:29] [PASSED] pf_negotiate_latest_match
[03:29:29] [PASSED] pf_negotiate_latest_newer
[03:29:29] [PASSED] pf_negotiate_latest_next
[03:29:29] [SKIPPED] pf_negotiate_latest_older
[03:29:29] [SKIPPED] pf_negotiate_latest_prev
[03:29:29] =================== [PASSED] pf_service ====================
[03:29:29] ================= xe_guc_g2g (2 subtests) ==================
[03:29:29] ============== xe_live_guc_g2g_kunit_default ==============
[03:29:29] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[03:29:29] ============== xe_live_guc_g2g_kunit_allmem ===============
[03:29:29] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[03:29:29] =================== [SKIPPED] xe_guc_g2g ===================
[03:29:29] =================== xe_mocs (2 subtests) ===================
[03:29:29] ================ xe_live_mocs_kernel_kunit ================
[03:29:29] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[03:29:29] ================ xe_live_mocs_reset_kunit =================
[03:29:29] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[03:29:29] ==================== [SKIPPED] xe_mocs =====================
[03:29:29] ================= xe_migrate (2 subtests) ==================
[03:29:29] ================= xe_migrate_sanity_kunit =================
[03:29:29] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[03:29:29] ================== xe_validate_ccs_kunit ==================
[03:29:29] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[03:29:29] =================== [SKIPPED] xe_migrate ===================
[03:29:29] ================== xe_dma_buf (1 subtest) ==================
[03:29:29] ==================== xe_dma_buf_kunit =====================
[03:29:29] ================ [SKIPPED] xe_dma_buf_kunit ================
[03:29:29] =================== [SKIPPED] xe_dma_buf ===================
[03:29:29] ================= xe_bo_shrink (1 subtest) =================
[03:29:29] =================== xe_bo_shrink_kunit ====================
[03:29:29] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[03:29:29] ================== [SKIPPED] xe_bo_shrink ==================
[03:29:29] ==================== xe_bo (2 subtests) ====================
[03:29:29] ================== xe_ccs_migrate_kunit ===================
[03:29:29] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[03:29:29] ==================== xe_bo_evict_kunit ====================
[03:29:29] =============== [SKIPPED] xe_bo_evict_kunit ================
[03:29:29] ===================== [SKIPPED] xe_bo ======================
[03:29:29] ==================== args (13 subtests) ====================
[03:29:29] [PASSED] count_args_test
[03:29:29] [PASSED] call_args_example
[03:29:29] [PASSED] call_args_test
[03:29:29] [PASSED] drop_first_arg_example
[03:29:29] [PASSED] drop_first_arg_test
[03:29:29] [PASSED] first_arg_example
[03:29:29] [PASSED] first_arg_test
[03:29:29] [PASSED] last_arg_example
[03:29:29] [PASSED] last_arg_test
[03:29:29] [PASSED] pick_arg_example
[03:29:29] [PASSED] if_args_example
[03:29:29] [PASSED] if_args_test
[03:29:29] [PASSED] sep_comma_example
[03:29:29] ====================== [PASSED] args =======================
[03:29:29] =================== xe_pci (3 subtests) ====================
[03:29:29] ==================== check_graphics_ip ====================
[03:29:29] [PASSED] 12.00 Xe_LP
[03:29:29] [PASSED] 12.10 Xe_LP+
[03:29:29] [PASSED] 12.55 Xe_HPG
[03:29:29] [PASSED] 12.60 Xe_HPC
[03:29:29] [PASSED] 12.70 Xe_LPG
[03:29:29] [PASSED] 12.71 Xe_LPG
[03:29:29] [PASSED] 12.74 Xe_LPG+
[03:29:29] [PASSED] 20.01 Xe2_HPG
[03:29:29] [PASSED] 20.02 Xe2_HPG
[03:29:29] [PASSED] 20.04 Xe2_LPG
[03:29:29] [PASSED] 30.00 Xe3_LPG
[03:29:29] [PASSED] 30.01 Xe3_LPG
[03:29:29] [PASSED] 30.03 Xe3_LPG
[03:29:29] [PASSED] 30.04 Xe3_LPG
[03:29:29] [PASSED] 30.05 Xe3_LPG
[03:29:29] [PASSED] 35.11 Xe3p_XPC
[03:29:29] ================ [PASSED] check_graphics_ip ================
[03:29:29] ===================== check_media_ip ======================
[03:29:29] [PASSED] 12.00 Xe_M
[03:29:29] [PASSED] 12.55 Xe_HPM
[03:29:29] [PASSED] 13.00 Xe_LPM+
[03:29:29] [PASSED] 13.01 Xe2_HPM
[03:29:29] [PASSED] 20.00 Xe2_LPM
[03:29:29] [PASSED] 30.00 Xe3_LPM
[03:29:29] [PASSED] 30.02 Xe3_LPM
[03:29:29] [PASSED] 35.00 Xe3p_LPM
[03:29:29] [PASSED] 35.03 Xe3p_HPM
[03:29:29] ================= [PASSED] check_media_ip ==================
[03:29:29] =================== check_platform_desc ===================
[03:29:29] [PASSED] 0x9A60 (TIGERLAKE)
[03:29:29] [PASSED] 0x9A68 (TIGERLAKE)
[03:29:29] [PASSED] 0x9A70 (TIGERLAKE)
[03:29:29] [PASSED] 0x9A40 (TIGERLAKE)
[03:29:29] [PASSED] 0x9A49 (TIGERLAKE)
[03:29:29] [PASSED] 0x9A59 (TIGERLAKE)
[03:29:29] [PASSED] 0x9A78 (TIGERLAKE)
[03:29:29] [PASSED] 0x9AC0 (TIGERLAKE)
[03:29:29] [PASSED] 0x9AC9 (TIGERLAKE)
[03:29:29] [PASSED] 0x9AD9 (TIGERLAKE)
[03:29:29] [PASSED] 0x9AF8 (TIGERLAKE)
[03:29:29] [PASSED] 0x4C80 (ROCKETLAKE)
[03:29:29] [PASSED] 0x4C8A (ROCKETLAKE)
[03:29:29] [PASSED] 0x4C8B (ROCKETLAKE)
[03:29:29] [PASSED] 0x4C8C (ROCKETLAKE)
[03:29:29] [PASSED] 0x4C90 (ROCKETLAKE)
[03:29:29] [PASSED] 0x4C9A (ROCKETLAKE)
[03:29:29] [PASSED] 0x4680 (ALDERLAKE_S)
[03:29:29] [PASSED] 0x4682 (ALDERLAKE_S)
[03:29:29] [PASSED] 0x4688 (ALDERLAKE_S)
[03:29:29] [PASSED] 0x468A (ALDERLAKE_S)
[03:29:29] [PASSED] 0x468B (ALDERLAKE_S)
[03:29:29] [PASSED] 0x4690 (ALDERLAKE_S)
[03:29:29] [PASSED] 0x4692 (ALDERLAKE_S)
[03:29:29] [PASSED] 0x4693 (ALDERLAKE_S)
[03:29:29] [PASSED] 0x46A0 (ALDERLAKE_P)
[03:29:29] [PASSED] 0x46A1 (ALDERLAKE_P)
[03:29:29] [PASSED] 0x46A2 (ALDERLAKE_P)
[03:29:29] [PASSED] 0x46A3 (ALDERLAKE_P)
[03:29:29] [PASSED] 0x46A6 (ALDERLAKE_P)
[03:29:29] [PASSED] 0x46A8 (ALDERLAKE_P)
[03:29:29] [PASSED] 0x46AA (ALDERLAKE_P)
[03:29:29] [PASSED] 0x462A (ALDERLAKE_P)
[03:29:29] [PASSED] 0x4626 (ALDERLAKE_P)
[03:29:29] [PASSED] 0x4628 (ALDERLAKE_P)
stty: 'standard input': Inappropriate ioctl for device
[03:29:29] [PASSED] 0x46B0 (ALDERLAKE_P)
[03:29:29] [PASSED] 0x46B1 (ALDERLAKE_P)
[03:29:29] [PASSED] 0x46B2 (ALDERLAKE_P)
[03:29:29] [PASSED] 0x46B3 (ALDERLAKE_P)
[03:29:29] [PASSED] 0x46C0 (ALDERLAKE_P)
[03:29:29] [PASSED] 0x46C1 (ALDERLAKE_P)
[03:29:29] [PASSED] 0x46C2 (ALDERLAKE_P)
[03:29:29] [PASSED] 0x46C3 (ALDERLAKE_P)
[03:29:29] [PASSED] 0x46D0 (ALDERLAKE_N)
[03:29:29] [PASSED] 0x46D1 (ALDERLAKE_N)
[03:29:29] [PASSED] 0x46D2 (ALDERLAKE_N)
[03:29:29] [PASSED] 0x46D3 (ALDERLAKE_N)
[03:29:29] [PASSED] 0x46D4 (ALDERLAKE_N)
[03:29:29] [PASSED] 0xA721 (ALDERLAKE_P)
[03:29:29] [PASSED] 0xA7A1 (ALDERLAKE_P)
[03:29:29] [PASSED] 0xA7A9 (ALDERLAKE_P)
[03:29:29] [PASSED] 0xA7AC (ALDERLAKE_P)
[03:29:29] [PASSED] 0xA7AD (ALDERLAKE_P)
[03:29:29] [PASSED] 0xA720 (ALDERLAKE_P)
[03:29:29] [PASSED] 0xA7A0 (ALDERLAKE_P)
[03:29:29] [PASSED] 0xA7A8 (ALDERLAKE_P)
[03:29:29] [PASSED] 0xA7AA (ALDERLAKE_P)
[03:29:29] [PASSED] 0xA7AB (ALDERLAKE_P)
[03:29:29] [PASSED] 0xA780 (ALDERLAKE_S)
[03:29:29] [PASSED] 0xA781 (ALDERLAKE_S)
[03:29:29] [PASSED] 0xA782 (ALDERLAKE_S)
[03:29:29] [PASSED] 0xA783 (ALDERLAKE_S)
[03:29:29] [PASSED] 0xA788 (ALDERLAKE_S)
[03:29:29] [PASSED] 0xA789 (ALDERLAKE_S)
[03:29:29] [PASSED] 0xA78A (ALDERLAKE_S)
[03:29:29] [PASSED] 0xA78B (ALDERLAKE_S)
[03:29:29] [PASSED] 0x4905 (DG1)
[03:29:29] [PASSED] 0x4906 (DG1)
[03:29:29] [PASSED] 0x4907 (DG1)
[03:29:29] [PASSED] 0x4908 (DG1)
[03:29:29] [PASSED] 0x4909 (DG1)
[03:29:29] [PASSED] 0x56C0 (DG2)
[03:29:29] [PASSED] 0x56C2 (DG2)
[03:29:29] [PASSED] 0x56C1 (DG2)
[03:29:29] [PASSED] 0x7D51 (METEORLAKE)
[03:29:29] [PASSED] 0x7DD1 (METEORLAKE)
[03:29:29] [PASSED] 0x7D41 (METEORLAKE)
[03:29:29] [PASSED] 0x7D67 (METEORLAKE)
[03:29:29] [PASSED] 0xB640 (METEORLAKE)
[03:29:29] [PASSED] 0x56A0 (DG2)
[03:29:29] [PASSED] 0x56A1 (DG2)
[03:29:29] [PASSED] 0x56A2 (DG2)
[03:29:29] [PASSED] 0x56BE (DG2)
[03:29:29] [PASSED] 0x56BF (DG2)
[03:29:29] [PASSED] 0x5690 (DG2)
[03:29:29] [PASSED] 0x5691 (DG2)
[03:29:29] [PASSED] 0x5692 (DG2)
[03:29:29] [PASSED] 0x56A5 (DG2)
[03:29:29] [PASSED] 0x56A6 (DG2)
[03:29:29] [PASSED] 0x56B0 (DG2)
[03:29:29] [PASSED] 0x56B1 (DG2)
[03:29:29] [PASSED] 0x56BA (DG2)
[03:29:29] [PASSED] 0x56BB (DG2)
[03:29:29] [PASSED] 0x56BC (DG2)
[03:29:29] [PASSED] 0x56BD (DG2)
[03:29:29] [PASSED] 0x5693 (DG2)
[03:29:29] [PASSED] 0x5694 (DG2)
[03:29:29] [PASSED] 0x5695 (DG2)
[03:29:29] [PASSED] 0x56A3 (DG2)
[03:29:29] [PASSED] 0x56A4 (DG2)
[03:29:29] [PASSED] 0x56B2 (DG2)
[03:29:29] [PASSED] 0x56B3 (DG2)
[03:29:29] [PASSED] 0x5696 (DG2)
[03:29:29] [PASSED] 0x5697 (DG2)
[03:29:29] [PASSED] 0xB69 (PVC)
[03:29:29] [PASSED] 0xB6E (PVC)
[03:29:29] [PASSED] 0xBD4 (PVC)
[03:29:29] [PASSED] 0xBD5 (PVC)
[03:29:29] [PASSED] 0xBD6 (PVC)
[03:29:29] [PASSED] 0xBD7 (PVC)
[03:29:29] [PASSED] 0xBD8 (PVC)
[03:29:29] [PASSED] 0xBD9 (PVC)
[03:29:29] [PASSED] 0xBDA (PVC)
[03:29:29] [PASSED] 0xBDB (PVC)
[03:29:29] [PASSED] 0xBE0 (PVC)
[03:29:29] [PASSED] 0xBE1 (PVC)
[03:29:29] [PASSED] 0xBE5 (PVC)
[03:29:29] [PASSED] 0x7D40 (METEORLAKE)
[03:29:29] [PASSED] 0x7D45 (METEORLAKE)
[03:29:29] [PASSED] 0x7D55 (METEORLAKE)
[03:29:29] [PASSED] 0x7D60 (METEORLAKE)
[03:29:29] [PASSED] 0x7DD5 (METEORLAKE)
[03:29:29] [PASSED] 0x6420 (LUNARLAKE)
[03:29:29] [PASSED] 0x64A0 (LUNARLAKE)
[03:29:29] [PASSED] 0x64B0 (LUNARLAKE)
[03:29:29] [PASSED] 0xE202 (BATTLEMAGE)
[03:29:29] [PASSED] 0xE209 (BATTLEMAGE)
[03:29:29] [PASSED] 0xE20B (BATTLEMAGE)
[03:29:29] [PASSED] 0xE20C (BATTLEMAGE)
[03:29:29] [PASSED] 0xE20D (BATTLEMAGE)
[03:29:29] [PASSED] 0xE210 (BATTLEMAGE)
[03:29:29] [PASSED] 0xE211 (BATTLEMAGE)
[03:29:29] [PASSED] 0xE212 (BATTLEMAGE)
[03:29:29] [PASSED] 0xE216 (BATTLEMAGE)
[03:29:29] [PASSED] 0xE220 (BATTLEMAGE)
[03:29:29] [PASSED] 0xE221 (BATTLEMAGE)
[03:29:29] [PASSED] 0xE222 (BATTLEMAGE)
[03:29:29] [PASSED] 0xE223 (BATTLEMAGE)
[03:29:29] [PASSED] 0xB080 (PANTHERLAKE)
[03:29:29] [PASSED] 0xB081 (PANTHERLAKE)
[03:29:29] [PASSED] 0xB082 (PANTHERLAKE)
[03:29:29] [PASSED] 0xB083 (PANTHERLAKE)
[03:29:29] [PASSED] 0xB084 (PANTHERLAKE)
[03:29:29] [PASSED] 0xB085 (PANTHERLAKE)
[03:29:29] [PASSED] 0xB086 (PANTHERLAKE)
[03:29:29] [PASSED] 0xB087 (PANTHERLAKE)
[03:29:29] [PASSED] 0xB08F (PANTHERLAKE)
[03:29:29] [PASSED] 0xB090 (PANTHERLAKE)
[03:29:29] [PASSED] 0xB0A0 (PANTHERLAKE)
[03:29:29] [PASSED] 0xB0B0 (PANTHERLAKE)
[03:29:29] [PASSED] 0xFD80 (PANTHERLAKE)
[03:29:29] [PASSED] 0xFD81 (PANTHERLAKE)
[03:29:29] [PASSED] 0xD740 (NOVALAKE_S)
[03:29:29] [PASSED] 0xD741 (NOVALAKE_S)
[03:29:29] [PASSED] 0xD742 (NOVALAKE_S)
[03:29:29] [PASSED] 0xD743 (NOVALAKE_S)
[03:29:29] [PASSED] 0xD744 (NOVALAKE_S)
[03:29:29] [PASSED] 0xD745 (NOVALAKE_S)
[03:29:29] [PASSED] 0x674C (CRESCENTISLAND)
[03:29:29] =============== [PASSED] check_platform_desc ===============
[03:29:29] ===================== [PASSED] xe_pci ======================
[03:29:29] =================== xe_rtp (2 subtests) ====================
[03:29:29] =============== xe_rtp_process_to_sr_tests ================
[03:29:29] [PASSED] coalesce-same-reg
[03:29:29] [PASSED] no-match-no-add
[03:29:29] [PASSED] match-or
[03:29:29] [PASSED] match-or-xfail
[03:29:29] [PASSED] no-match-no-add-multiple-rules
[03:29:29] [PASSED] two-regs-two-entries
[03:29:29] [PASSED] clr-one-set-other
[03:29:29] [PASSED] set-field
[03:29:29] [PASSED] conflict-duplicate
[03:29:29] [PASSED] conflict-not-disjoint
[03:29:29] [PASSED] conflict-reg-type
[03:29:29] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[03:29:29] ================== xe_rtp_process_tests ===================
[03:29:29] [PASSED] active1
[03:29:29] [PASSED] active2
[03:29:29] [PASSED] active-inactive
[03:29:29] [PASSED] inactive-active
[03:29:29] [PASSED] inactive-1st_or_active-inactive
[03:29:29] [PASSED] inactive-2nd_or_active-inactive
[03:29:29] [PASSED] inactive-last_or_active-inactive
[03:29:29] [PASSED] inactive-no_or_active-inactive
[03:29:29] ============== [PASSED] xe_rtp_process_tests ===============
[03:29:29] ===================== [PASSED] xe_rtp ======================
[03:29:29] ==================== xe_wa (1 subtest) =====================
[03:29:29] ======================== xe_wa_gt =========================
[03:29:29] [PASSED] TIGERLAKE B0
[03:29:29] [PASSED] DG1 A0
[03:29:29] [PASSED] DG1 B0
[03:29:29] [PASSED] ALDERLAKE_S A0
[03:29:29] [PASSED] ALDERLAKE_S B0
[03:29:29] [PASSED] ALDERLAKE_S C0
[03:29:29] [PASSED] ALDERLAKE_S D0
[03:29:29] [PASSED] ALDERLAKE_P A0
[03:29:29] [PASSED] ALDERLAKE_P B0
[03:29:29] [PASSED] ALDERLAKE_P C0
[03:29:29] [PASSED] ALDERLAKE_S RPLS D0
[03:29:29] [PASSED] ALDERLAKE_P RPLU E0
[03:29:29] [PASSED] DG2 G10 C0
[03:29:29] [PASSED] DG2 G11 B1
[03:29:29] [PASSED] DG2 G12 A1
[03:29:29] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[03:29:29] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[03:29:29] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[03:29:29] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[03:29:29] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[03:29:29] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[03:29:29] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[03:29:29] ==================== [PASSED] xe_wa_gt =====================
[03:29:29] ====================== [PASSED] xe_wa ======================
[03:29:29] ============================================================
[03:29:29] Testing complete. Ran 512 tests: passed: 494, skipped: 18
[03:29:29] Elapsed time: 37.176s total, 4.157s configuring, 32.502s building, 0.484s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[03:29:29] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[03:29:30] 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
[03:29:57] Starting KUnit Kernel (1/1)...
[03:29:57] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[03:29:57] ============ drm_test_pick_cmdline (2 subtests) ============
[03:29:57] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[03:29:57] =============== drm_test_pick_cmdline_named ===============
[03:29:57] [PASSED] NTSC
[03:29:57] [PASSED] NTSC-J
[03:29:57] [PASSED] PAL
[03:29:57] [PASSED] PAL-M
[03:29:57] =========== [PASSED] drm_test_pick_cmdline_named ===========
[03:29:57] ============== [PASSED] drm_test_pick_cmdline ==============
[03:29:57] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[03:29:57] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[03:29:57] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[03:29:57] =========== drm_validate_clone_mode (2 subtests) ===========
[03:29:57] ============== drm_test_check_in_clone_mode ===============
[03:29:57] [PASSED] in_clone_mode
[03:29:57] [PASSED] not_in_clone_mode
[03:29:57] ========== [PASSED] drm_test_check_in_clone_mode ===========
[03:29:57] =============== drm_test_check_valid_clones ===============
[03:29:57] [PASSED] not_in_clone_mode
[03:29:57] [PASSED] valid_clone
[03:29:57] [PASSED] invalid_clone
[03:29:57] =========== [PASSED] drm_test_check_valid_clones ===========
[03:29:57] ============= [PASSED] drm_validate_clone_mode =============
[03:29:57] ============= drm_validate_modeset (1 subtest) =============
[03:29:57] [PASSED] drm_test_check_connector_changed_modeset
[03:29:57] ============== [PASSED] drm_validate_modeset ===============
[03:29:57] ====== drm_test_bridge_get_current_state (2 subtests) ======
[03:29:57] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[03:29:57] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[03:29:57] ======== [PASSED] drm_test_bridge_get_current_state ========
[03:29:57] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[03:29:57] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[03:29:57] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[03:29:57] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[03:29:57] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[03:29:57] ============== drm_bridge_alloc (2 subtests) ===============
[03:29:57] [PASSED] drm_test_drm_bridge_alloc_basic
[03:29:57] [PASSED] drm_test_drm_bridge_alloc_get_put
[03:29:57] ================ [PASSED] drm_bridge_alloc =================
[03:29:57] ================== drm_buddy (9 subtests) ==================
[03:29:57] [PASSED] drm_test_buddy_alloc_limit
[03:29:57] [PASSED] drm_test_buddy_alloc_optimistic
[03:29:57] [PASSED] drm_test_buddy_alloc_pessimistic
[03:29:57] [PASSED] drm_test_buddy_alloc_pathological
[03:29:57] [PASSED] drm_test_buddy_alloc_contiguous
[03:29:57] [PASSED] drm_test_buddy_alloc_clear
[03:29:57] [PASSED] drm_test_buddy_alloc_range_bias
[03:29:57] [PASSED] drm_test_buddy_fragmentation_performance
[03:29:57] [PASSED] drm_test_buddy_alloc_exceeds_max_order
[03:29:57] ==================== [PASSED] drm_buddy ====================
[03:29:57] ============= drm_cmdline_parser (40 subtests) =============
[03:29:57] [PASSED] drm_test_cmdline_force_d_only
[03:29:57] [PASSED] drm_test_cmdline_force_D_only_dvi
[03:29:57] [PASSED] drm_test_cmdline_force_D_only_hdmi
[03:29:57] [PASSED] drm_test_cmdline_force_D_only_not_digital
[03:29:57] [PASSED] drm_test_cmdline_force_e_only
[03:29:57] [PASSED] drm_test_cmdline_res
[03:29:57] [PASSED] drm_test_cmdline_res_vesa
[03:29:57] [PASSED] drm_test_cmdline_res_vesa_rblank
[03:29:57] [PASSED] drm_test_cmdline_res_rblank
[03:29:57] [PASSED] drm_test_cmdline_res_bpp
[03:29:57] [PASSED] drm_test_cmdline_res_refresh
[03:29:57] [PASSED] drm_test_cmdline_res_bpp_refresh
[03:29:57] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[03:29:57] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[03:29:57] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[03:29:57] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[03:29:57] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[03:29:57] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[03:29:57] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[03:29:57] [PASSED] drm_test_cmdline_res_margins_force_on
[03:29:57] [PASSED] drm_test_cmdline_res_vesa_margins
[03:29:57] [PASSED] drm_test_cmdline_name
[03:29:57] [PASSED] drm_test_cmdline_name_bpp
[03:29:57] [PASSED] drm_test_cmdline_name_option
[03:29:57] [PASSED] drm_test_cmdline_name_bpp_option
[03:29:57] [PASSED] drm_test_cmdline_rotate_0
[03:29:57] [PASSED] drm_test_cmdline_rotate_90
[03:29:57] [PASSED] drm_test_cmdline_rotate_180
[03:29:57] [PASSED] drm_test_cmdline_rotate_270
[03:29:57] [PASSED] drm_test_cmdline_hmirror
[03:29:57] [PASSED] drm_test_cmdline_vmirror
[03:29:57] [PASSED] drm_test_cmdline_margin_options
[03:29:57] [PASSED] drm_test_cmdline_multiple_options
[03:29:57] [PASSED] drm_test_cmdline_bpp_extra_and_option
[03:29:57] [PASSED] drm_test_cmdline_extra_and_option
[03:29:57] [PASSED] drm_test_cmdline_freestanding_options
[03:29:57] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[03:29:57] [PASSED] drm_test_cmdline_panel_orientation
[03:29:57] ================ drm_test_cmdline_invalid =================
[03:29:57] [PASSED] margin_only
[03:29:57] [PASSED] interlace_only
[03:29:57] [PASSED] res_missing_x
[03:29:57] [PASSED] res_missing_y
[03:29:57] [PASSED] res_bad_y
[03:29:57] [PASSED] res_missing_y_bpp
[03:29:57] [PASSED] res_bad_bpp
[03:29:57] [PASSED] res_bad_refresh
[03:29:57] [PASSED] res_bpp_refresh_force_on_off
[03:29:57] [PASSED] res_invalid_mode
[03:29:57] [PASSED] res_bpp_wrong_place_mode
[03:29:57] [PASSED] name_bpp_refresh
[03:29:57] [PASSED] name_refresh
[03:29:57] [PASSED] name_refresh_wrong_mode
[03:29:57] [PASSED] name_refresh_invalid_mode
[03:29:57] [PASSED] rotate_multiple
[03:29:57] [PASSED] rotate_invalid_val
[03:29:57] [PASSED] rotate_truncated
[03:29:57] [PASSED] invalid_option
[03:29:57] [PASSED] invalid_tv_option
[03:29:57] [PASSED] truncated_tv_option
[03:29:57] ============ [PASSED] drm_test_cmdline_invalid =============
[03:29:57] =============== drm_test_cmdline_tv_options ===============
[03:29:57] [PASSED] NTSC
[03:29:57] [PASSED] NTSC_443
[03:29:57] [PASSED] NTSC_J
[03:29:57] [PASSED] PAL
[03:29:57] [PASSED] PAL_M
[03:29:57] [PASSED] PAL_N
[03:29:57] [PASSED] SECAM
[03:29:57] [PASSED] MONO_525
[03:29:57] [PASSED] MONO_625
[03:29:57] =========== [PASSED] drm_test_cmdline_tv_options ===========
[03:29:57] =============== [PASSED] drm_cmdline_parser ================
[03:29:57] ========== drmm_connector_hdmi_init (20 subtests) ==========
[03:29:57] [PASSED] drm_test_connector_hdmi_init_valid
[03:29:57] [PASSED] drm_test_connector_hdmi_init_bpc_8
[03:29:57] [PASSED] drm_test_connector_hdmi_init_bpc_10
[03:29:57] [PASSED] drm_test_connector_hdmi_init_bpc_12
[03:29:57] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[03:29:57] [PASSED] drm_test_connector_hdmi_init_bpc_null
[03:29:57] [PASSED] drm_test_connector_hdmi_init_formats_empty
[03:29:57] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[03:29:57] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[03:29:57] [PASSED] supported_formats=0x9 yuv420_allowed=1
[03:29:57] [PASSED] supported_formats=0x9 yuv420_allowed=0
[03:29:57] [PASSED] supported_formats=0x3 yuv420_allowed=1
[03:29:57] [PASSED] supported_formats=0x3 yuv420_allowed=0
[03:29:57] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[03:29:57] [PASSED] drm_test_connector_hdmi_init_null_ddc
[03:29:57] [PASSED] drm_test_connector_hdmi_init_null_product
[03:29:57] [PASSED] drm_test_connector_hdmi_init_null_vendor
[03:29:57] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[03:29:57] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[03:29:57] [PASSED] drm_test_connector_hdmi_init_product_valid
[03:29:57] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[03:29:57] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[03:29:57] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[03:29:57] ========= drm_test_connector_hdmi_init_type_valid =========
[03:29:57] [PASSED] HDMI-A
[03:29:57] [PASSED] HDMI-B
[03:29:57] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[03:29:57] ======== drm_test_connector_hdmi_init_type_invalid ========
[03:29:57] [PASSED] Unknown
[03:29:57] [PASSED] VGA
[03:29:57] [PASSED] DVI-I
[03:29:57] [PASSED] DVI-D
[03:29:57] [PASSED] DVI-A
[03:29:57] [PASSED] Composite
[03:29:57] [PASSED] SVIDEO
[03:29:57] [PASSED] LVDS
[03:29:57] [PASSED] Component
[03:29:57] [PASSED] DIN
[03:29:57] [PASSED] DP
[03:29:57] [PASSED] TV
[03:29:57] [PASSED] eDP
[03:29:57] [PASSED] Virtual
[03:29:57] [PASSED] DSI
[03:29:57] [PASSED] DPI
[03:29:57] [PASSED] Writeback
[03:29:57] [PASSED] SPI
[03:29:57] [PASSED] USB
[03:29:57] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[03:29:57] ============ [PASSED] drmm_connector_hdmi_init =============
[03:29:57] ============= drmm_connector_init (3 subtests) =============
[03:29:57] [PASSED] drm_test_drmm_connector_init
[03:29:57] [PASSED] drm_test_drmm_connector_init_null_ddc
[03:29:57] ========= drm_test_drmm_connector_init_type_valid =========
[03:29:57] [PASSED] Unknown
[03:29:57] [PASSED] VGA
[03:29:57] [PASSED] DVI-I
[03:29:57] [PASSED] DVI-D
[03:29:57] [PASSED] DVI-A
[03:29:57] [PASSED] Composite
[03:29:57] [PASSED] SVIDEO
[03:29:57] [PASSED] LVDS
[03:29:57] [PASSED] Component
[03:29:57] [PASSED] DIN
[03:29:57] [PASSED] DP
[03:29:57] [PASSED] HDMI-A
[03:29:57] [PASSED] HDMI-B
[03:29:57] [PASSED] TV
[03:29:57] [PASSED] eDP
[03:29:57] [PASSED] Virtual
[03:29:57] [PASSED] DSI
[03:29:57] [PASSED] DPI
[03:29:57] [PASSED] Writeback
[03:29:57] [PASSED] SPI
[03:29:57] [PASSED] USB
[03:29:57] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[03:29:57] =============== [PASSED] drmm_connector_init ===============
[03:29:57] ========= drm_connector_dynamic_init (6 subtests) ==========
[03:29:57] [PASSED] drm_test_drm_connector_dynamic_init
[03:29:57] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[03:29:57] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[03:29:57] [PASSED] drm_test_drm_connector_dynamic_init_properties
[03:29:57] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[03:29:57] [PASSED] Unknown
[03:29:57] [PASSED] VGA
[03:29:57] [PASSED] DVI-I
[03:29:57] [PASSED] DVI-D
[03:29:57] [PASSED] DVI-A
[03:29:57] [PASSED] Composite
[03:29:57] [PASSED] SVIDEO
[03:29:57] [PASSED] LVDS
[03:29:57] [PASSED] Component
[03:29:57] [PASSED] DIN
[03:29:57] [PASSED] DP
[03:29:57] [PASSED] HDMI-A
[03:29:57] [PASSED] HDMI-B
[03:29:57] [PASSED] TV
[03:29:57] [PASSED] eDP
[03:29:57] [PASSED] Virtual
[03:29:57] [PASSED] DSI
[03:29:57] [PASSED] DPI
[03:29:57] [PASSED] Writeback
[03:29:57] [PASSED] SPI
[03:29:57] [PASSED] USB
[03:29:57] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[03:29:57] ======== drm_test_drm_connector_dynamic_init_name =========
[03:29:57] [PASSED] Unknown
[03:29:57] [PASSED] VGA
[03:29:57] [PASSED] DVI-I
[03:29:57] [PASSED] DVI-D
[03:29:57] [PASSED] DVI-A
[03:29:57] [PASSED] Composite
[03:29:57] [PASSED] SVIDEO
[03:29:57] [PASSED] LVDS
[03:29:57] [PASSED] Component
[03:29:57] [PASSED] DIN
[03:29:57] [PASSED] DP
[03:29:57] [PASSED] HDMI-A
[03:29:57] [PASSED] HDMI-B
[03:29:57] [PASSED] TV
[03:29:57] [PASSED] eDP
[03:29:57] [PASSED] Virtual
[03:29:57] [PASSED] DSI
[03:29:57] [PASSED] DPI
[03:29:57] [PASSED] Writeback
[03:29:57] [PASSED] SPI
[03:29:57] [PASSED] USB
[03:29:57] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[03:29:57] =========== [PASSED] drm_connector_dynamic_init ============
[03:29:57] ==== drm_connector_dynamic_register_early (4 subtests) =====
[03:29:57] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[03:29:57] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[03:29:57] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[03:29:57] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[03:29:57] ====== [PASSED] drm_connector_dynamic_register_early =======
[03:29:57] ======= drm_connector_dynamic_register (7 subtests) ========
[03:29:57] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[03:29:57] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[03:29:57] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[03:29:57] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[03:29:57] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[03:29:57] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[03:29:57] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[03:29:57] ========= [PASSED] drm_connector_dynamic_register ==========
[03:29:57] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[03:29:57] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[03:29:57] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[03:29:57] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[03:29:57] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[03:29:57] ========== drm_test_get_tv_mode_from_name_valid ===========
[03:29:57] [PASSED] NTSC
[03:29:57] [PASSED] NTSC-443
[03:29:57] [PASSED] NTSC-J
[03:29:57] [PASSED] PAL
[03:29:57] [PASSED] PAL-M
[03:29:57] [PASSED] PAL-N
[03:29:57] [PASSED] SECAM
[03:29:57] [PASSED] Mono
[03:29:57] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[03:29:57] [PASSED] drm_test_get_tv_mode_from_name_truncated
[03:29:57] ============ [PASSED] drm_get_tv_mode_from_name ============
[03:29:57] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[03:29:57] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[03:29:57] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[03:29:57] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[03:29:57] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[03:29:57] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[03:29:57] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[03:29:57] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[03:29:57] [PASSED] VIC 96
[03:29:57] [PASSED] VIC 97
[03:29:57] [PASSED] VIC 101
[03:29:57] [PASSED] VIC 102
[03:29:57] [PASSED] VIC 106
[03:29:57] [PASSED] VIC 107
[03:29:57] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[03:29:57] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[03:29:57] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[03:29:57] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[03:29:57] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[03:29:57] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[03:29:57] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[03:29:57] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[03:29:57] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[03:29:57] [PASSED] Automatic
[03:29:57] [PASSED] Full
[03:29:57] [PASSED] Limited 16:235
[03:29:57] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[03:29:57] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[03:29:57] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[03:29:57] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[03:29:57] === drm_test_drm_hdmi_connector_get_output_format_name ====
[03:29:57] [PASSED] RGB
[03:29:57] [PASSED] YUV 4:2:0
[03:29:57] [PASSED] YUV 4:2:2
[03:29:57] [PASSED] YUV 4:4:4
[03:29:57] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[03:29:57] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[03:29:57] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[03:29:57] ============= drm_damage_helper (21 subtests) ==============
[03:29:57] [PASSED] drm_test_damage_iter_no_damage
[03:29:57] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[03:29:57] [PASSED] drm_test_damage_iter_no_damage_src_moved
[03:29:57] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[03:29:57] [PASSED] drm_test_damage_iter_no_damage_not_visible
[03:29:57] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[03:29:57] [PASSED] drm_test_damage_iter_no_damage_no_fb
[03:29:57] [PASSED] drm_test_damage_iter_simple_damage
[03:29:57] [PASSED] drm_test_damage_iter_single_damage
[03:29:57] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[03:29:57] [PASSED] drm_test_damage_iter_single_damage_outside_src
[03:29:57] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[03:29:57] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[03:29:57] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[03:29:57] [PASSED] drm_test_damage_iter_single_damage_src_moved
[03:29:57] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[03:29:57] [PASSED] drm_test_damage_iter_damage
[03:29:57] [PASSED] drm_test_damage_iter_damage_one_intersect
[03:29:57] [PASSED] drm_test_damage_iter_damage_one_outside
[03:29:57] [PASSED] drm_test_damage_iter_damage_src_moved
[03:29:57] [PASSED] drm_test_damage_iter_damage_not_visible
[03:29:57] ================ [PASSED] drm_damage_helper ================
[03:29:57] ============== drm_dp_mst_helper (3 subtests) ==============
[03:29:57] ============== drm_test_dp_mst_calc_pbn_mode ==============
[03:29:57] [PASSED] Clock 154000 BPP 30 DSC disabled
[03:29:57] [PASSED] Clock 234000 BPP 30 DSC disabled
[03:29:57] [PASSED] Clock 297000 BPP 24 DSC disabled
[03:29:57] [PASSED] Clock 332880 BPP 24 DSC enabled
[03:29:57] [PASSED] Clock 324540 BPP 24 DSC enabled
[03:29:57] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[03:29:57] ============== drm_test_dp_mst_calc_pbn_div ===============
[03:29:57] [PASSED] Link rate 2000000 lane count 4
[03:29:57] [PASSED] Link rate 2000000 lane count 2
[03:29:57] [PASSED] Link rate 2000000 lane count 1
[03:29:57] [PASSED] Link rate 1350000 lane count 4
[03:29:57] [PASSED] Link rate 1350000 lane count 2
[03:29:57] [PASSED] Link rate 1350000 lane count 1
[03:29:57] [PASSED] Link rate 1000000 lane count 4
[03:29:57] [PASSED] Link rate 1000000 lane count 2
[03:29:57] [PASSED] Link rate 1000000 lane count 1
[03:29:57] [PASSED] Link rate 810000 lane count 4
[03:29:57] [PASSED] Link rate 810000 lane count 2
[03:29:57] [PASSED] Link rate 810000 lane count 1
[03:29:57] [PASSED] Link rate 540000 lane count 4
[03:29:57] [PASSED] Link rate 540000 lane count 2
[03:29:57] [PASSED] Link rate 540000 lane count 1
[03:29:57] [PASSED] Link rate 270000 lane count 4
[03:29:57] [PASSED] Link rate 270000 lane count 2
[03:29:57] [PASSED] Link rate 270000 lane count 1
[03:29:57] [PASSED] Link rate 162000 lane count 4
[03:29:57] [PASSED] Link rate 162000 lane count 2
[03:29:57] [PASSED] Link rate 162000 lane count 1
[03:29:57] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[03:29:57] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[03:29:57] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[03:29:57] [PASSED] DP_POWER_UP_PHY with port number
[03:29:57] [PASSED] DP_POWER_DOWN_PHY with port number
[03:29:57] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[03:29:57] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[03:29:57] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[03:29:57] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[03:29:57] [PASSED] DP_QUERY_PAYLOAD with port number
[03:29:57] [PASSED] DP_QUERY_PAYLOAD with VCPI
[03:29:57] [PASSED] DP_REMOTE_DPCD_READ with port number
[03:29:57] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[03:29:57] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[03:29:57] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[03:29:57] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[03:29:57] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[03:29:57] [PASSED] DP_REMOTE_I2C_READ with port number
[03:29:57] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[03:29:57] [PASSED] DP_REMOTE_I2C_READ with transactions array
[03:29:57] [PASSED] DP_REMOTE_I2C_WRITE with port number
[03:29:57] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[03:29:57] [PASSED] DP_REMOTE_I2C_WRITE with data array
[03:29:57] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[03:29:57] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[03:29:57] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[03:29:57] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[03:29:57] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[03:29:57] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[03:29:57] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[03:29:57] ================ [PASSED] drm_dp_mst_helper ================
[03:29:57] ================== drm_exec (7 subtests) ===================
[03:29:57] [PASSED] sanitycheck
[03:29:57] [PASSED] test_lock
[03:29:57] [PASSED] test_lock_unlock
[03:29:57] [PASSED] test_duplicates
[03:29:57] [PASSED] test_prepare
[03:29:57] [PASSED] test_prepare_array
[03:29:57] [PASSED] test_multiple_loops
[03:29:57] ==================== [PASSED] drm_exec =====================
[03:29:57] =========== drm_format_helper_test (17 subtests) ===========
[03:29:57] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[03:29:57] [PASSED] single_pixel_source_buffer
[03:29:57] [PASSED] single_pixel_clip_rectangle
[03:29:57] [PASSED] well_known_colors
[03:29:57] [PASSED] destination_pitch
[03:29:57] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[03:29:57] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[03:29:57] [PASSED] single_pixel_source_buffer
[03:29:57] [PASSED] single_pixel_clip_rectangle
[03:29:57] [PASSED] well_known_colors
[03:29:57] [PASSED] destination_pitch
[03:29:57] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[03:29:57] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[03:29:57] [PASSED] single_pixel_source_buffer
[03:29:57] [PASSED] single_pixel_clip_rectangle
[03:29:57] [PASSED] well_known_colors
[03:29:57] [PASSED] destination_pitch
[03:29:57] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[03:29:57] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[03:29:57] [PASSED] single_pixel_source_buffer
[03:29:57] [PASSED] single_pixel_clip_rectangle
[03:29:57] [PASSED] well_known_colors
[03:29:57] [PASSED] destination_pitch
[03:29:57] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[03:29:57] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[03:29:57] [PASSED] single_pixel_source_buffer
[03:29:57] [PASSED] single_pixel_clip_rectangle
[03:29:57] [PASSED] well_known_colors
[03:29:57] [PASSED] destination_pitch
[03:29:57] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[03:29:57] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[03:29:57] [PASSED] single_pixel_source_buffer
[03:29:57] [PASSED] single_pixel_clip_rectangle
[03:29:57] [PASSED] well_known_colors
[03:29:57] [PASSED] destination_pitch
[03:29:57] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[03:29:57] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[03:29:57] [PASSED] single_pixel_source_buffer
[03:29:57] [PASSED] single_pixel_clip_rectangle
[03:29:57] [PASSED] well_known_colors
[03:29:57] [PASSED] destination_pitch
[03:29:57] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[03:29:57] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[03:29:57] [PASSED] single_pixel_source_buffer
[03:29:57] [PASSED] single_pixel_clip_rectangle
[03:29:57] [PASSED] well_known_colors
[03:29:57] [PASSED] destination_pitch
[03:29:57] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[03:29:57] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[03:29:57] [PASSED] single_pixel_source_buffer
[03:29:57] [PASSED] single_pixel_clip_rectangle
[03:29:57] [PASSED] well_known_colors
[03:29:57] [PASSED] destination_pitch
[03:29:57] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[03:29:57] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[03:29:57] [PASSED] single_pixel_source_buffer
[03:29:57] [PASSED] single_pixel_clip_rectangle
[03:29:57] [PASSED] well_known_colors
[03:29:57] [PASSED] destination_pitch
[03:29:57] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[03:29:57] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[03:29:57] [PASSED] single_pixel_source_buffer
[03:29:57] [PASSED] single_pixel_clip_rectangle
[03:29:57] [PASSED] well_known_colors
[03:29:57] [PASSED] destination_pitch
[03:29:57] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[03:29:57] ============== drm_test_fb_xrgb8888_to_mono ===============
[03:29:57] [PASSED] single_pixel_source_buffer
[03:29:57] [PASSED] single_pixel_clip_rectangle
[03:29:57] [PASSED] well_known_colors
[03:29:57] [PASSED] destination_pitch
[03:29:57] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[03:29:57] ==================== drm_test_fb_swab =====================
[03:29:57] [PASSED] single_pixel_source_buffer
[03:29:57] [PASSED] single_pixel_clip_rectangle
[03:29:57] [PASSED] well_known_colors
[03:29:57] [PASSED] destination_pitch
[03:29:57] ================ [PASSED] drm_test_fb_swab =================
[03:29:57] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[03:29:57] [PASSED] single_pixel_source_buffer
[03:29:57] [PASSED] single_pixel_clip_rectangle
[03:29:57] [PASSED] well_known_colors
[03:29:57] [PASSED] destination_pitch
[03:29:57] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[03:29:57] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[03:29:57] [PASSED] single_pixel_source_buffer
[03:29:57] [PASSED] single_pixel_clip_rectangle
[03:29:57] [PASSED] well_known_colors
[03:29:57] [PASSED] destination_pitch
[03:29:57] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[03:29:57] ================= drm_test_fb_clip_offset =================
[03:29:57] [PASSED] pass through
[03:29:57] [PASSED] horizontal offset
[03:29:57] [PASSED] vertical offset
[03:29:57] [PASSED] horizontal and vertical offset
[03:29:57] [PASSED] horizontal offset (custom pitch)
[03:29:57] [PASSED] vertical offset (custom pitch)
[03:29:57] [PASSED] horizontal and vertical offset (custom pitch)
[03:29:57] ============= [PASSED] drm_test_fb_clip_offset =============
[03:29:57] =================== drm_test_fb_memcpy ====================
[03:29:57] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[03:29:57] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[03:29:57] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[03:29:57] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[03:29:57] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[03:29:57] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[03:29:57] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[03:29:57] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[03:29:57] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[03:29:57] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[03:29:57] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[03:29:57] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[03:29:57] =============== [PASSED] drm_test_fb_memcpy ================
[03:29:57] ============= [PASSED] drm_format_helper_test ==============
[03:29:57] ================= drm_format (18 subtests) =================
[03:29:57] [PASSED] drm_test_format_block_width_invalid
[03:29:57] [PASSED] drm_test_format_block_width_one_plane
[03:29:57] [PASSED] drm_test_format_block_width_two_plane
[03:29:57] [PASSED] drm_test_format_block_width_three_plane
[03:29:57] [PASSED] drm_test_format_block_width_tiled
[03:29:57] [PASSED] drm_test_format_block_height_invalid
[03:29:57] [PASSED] drm_test_format_block_height_one_plane
[03:29:57] [PASSED] drm_test_format_block_height_two_plane
[03:29:57] [PASSED] drm_test_format_block_height_three_plane
[03:29:57] [PASSED] drm_test_format_block_height_tiled
[03:29:57] [PASSED] drm_test_format_min_pitch_invalid
[03:29:57] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[03:29:57] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[03:29:57] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[03:29:57] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[03:29:57] [PASSED] drm_test_format_min_pitch_two_plane
[03:29:57] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[03:29:57] [PASSED] drm_test_format_min_pitch_tiled
[03:29:57] =================== [PASSED] drm_format ====================
[03:29:57] ============== drm_framebuffer (10 subtests) ===============
[03:29:57] ========== drm_test_framebuffer_check_src_coords ==========
[03:29:57] [PASSED] Success: source fits into fb
[03:29:57] [PASSED] Fail: overflowing fb with x-axis coordinate
[03:29:57] [PASSED] Fail: overflowing fb with y-axis coordinate
[03:29:57] [PASSED] Fail: overflowing fb with source width
[03:29:57] [PASSED] Fail: overflowing fb with source height
[03:29:57] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[03:29:57] [PASSED] drm_test_framebuffer_cleanup
[03:29:57] =============== drm_test_framebuffer_create ===============
[03:29:57] [PASSED] ABGR8888 normal sizes
[03:29:57] [PASSED] ABGR8888 max sizes
[03:29:57] [PASSED] ABGR8888 pitch greater than min required
[03:29:57] [PASSED] ABGR8888 pitch less than min required
[03:29:57] [PASSED] ABGR8888 Invalid width
[03:29:57] [PASSED] ABGR8888 Invalid buffer handle
[03:29:57] [PASSED] No pixel format
[03:29:57] [PASSED] ABGR8888 Width 0
[03:29:57] [PASSED] ABGR8888 Height 0
[03:29:57] [PASSED] ABGR8888 Out of bound height * pitch combination
[03:29:57] [PASSED] ABGR8888 Large buffer offset
[03:29:57] [PASSED] ABGR8888 Buffer offset for inexistent plane
[03:29:57] [PASSED] ABGR8888 Invalid flag
[03:29:57] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[03:29:57] [PASSED] ABGR8888 Valid buffer modifier
[03:29:57] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[03:29:57] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[03:29:57] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[03:29:57] [PASSED] NV12 Normal sizes
[03:29:57] [PASSED] NV12 Max sizes
[03:29:57] [PASSED] NV12 Invalid pitch
[03:29:57] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[03:29:57] [PASSED] NV12 different modifier per-plane
[03:29:57] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[03:29:57] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[03:29:57] [PASSED] NV12 Modifier for inexistent plane
[03:29:57] [PASSED] NV12 Handle for inexistent plane
[03:29:57] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[03:29:57] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[03:29:57] [PASSED] YVU420 Normal sizes
[03:29:57] [PASSED] YVU420 Max sizes
[03:29:57] [PASSED] YVU420 Invalid pitch
[03:29:57] [PASSED] YVU420 Different pitches
[03:29:57] [PASSED] YVU420 Different buffer offsets/pitches
[03:29:57] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[03:29:57] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[03:29:57] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[03:29:57] [PASSED] YVU420 Valid modifier
[03:29:57] [PASSED] YVU420 Different modifiers per plane
[03:29:57] [PASSED] YVU420 Modifier for inexistent plane
[03:29:57] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[03:29:57] [PASSED] X0L2 Normal sizes
[03:29:57] [PASSED] X0L2 Max sizes
[03:29:57] [PASSED] X0L2 Invalid pitch
[03:29:57] [PASSED] X0L2 Pitch greater than minimum required
[03:29:57] [PASSED] X0L2 Handle for inexistent plane
[03:29:57] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[03:29:57] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[03:29:57] [PASSED] X0L2 Valid modifier
[03:29:57] [PASSED] X0L2 Modifier for inexistent plane
[03:29:57] =========== [PASSED] drm_test_framebuffer_create ===========
[03:29:57] [PASSED] drm_test_framebuffer_free
[03:29:57] [PASSED] drm_test_framebuffer_init
[03:29:57] [PASSED] drm_test_framebuffer_init_bad_format
[03:29:57] [PASSED] drm_test_framebuffer_init_dev_mismatch
[03:29:57] [PASSED] drm_test_framebuffer_lookup
[03:29:57] [PASSED] drm_test_framebuffer_lookup_inexistent
[03:29:57] [PASSED] drm_test_framebuffer_modifiers_not_supported
[03:29:57] ================= [PASSED] drm_framebuffer =================
[03:29:57] ================ drm_gem_shmem (8 subtests) ================
[03:29:57] [PASSED] drm_gem_shmem_test_obj_create
[03:29:57] [PASSED] drm_gem_shmem_test_obj_create_private
[03:29:57] [PASSED] drm_gem_shmem_test_pin_pages
[03:29:57] [PASSED] drm_gem_shmem_test_vmap
[03:29:57] [PASSED] drm_gem_shmem_test_get_sg_table
[03:29:57] [PASSED] drm_gem_shmem_test_get_pages_sgt
[03:29:57] [PASSED] drm_gem_shmem_test_madvise
[03:29:57] [PASSED] drm_gem_shmem_test_purge
[03:29:57] ================== [PASSED] drm_gem_shmem ==================
[03:29:57] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[03:29:57] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[03:29:57] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[03:29:57] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[03:29:57] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[03:29:57] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[03:29:57] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[03:29:57] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[03:29:57] [PASSED] Automatic
[03:29:57] [PASSED] Full
[03:29:57] [PASSED] Limited 16:235
[03:29:57] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[03:29:57] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[03:29:57] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[03:29:57] [PASSED] drm_test_check_disable_connector
[03:29:57] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[03:29:57] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[03:29:57] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[03:29:57] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[03:29:57] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[03:29:57] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[03:29:57] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[03:29:57] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[03:29:57] [PASSED] drm_test_check_output_bpc_dvi
[03:29:57] [PASSED] drm_test_check_output_bpc_format_vic_1
[03:29:57] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[03:29:57] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[03:29:57] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[03:29:57] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[03:29:57] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[03:29:57] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[03:29:57] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[03:29:57] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[03:29:57] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[03:29:57] [PASSED] drm_test_check_broadcast_rgb_value
[03:29:57] [PASSED] drm_test_check_bpc_8_value
[03:29:57] [PASSED] drm_test_check_bpc_10_value
[03:29:57] [PASSED] drm_test_check_bpc_12_value
[03:29:57] [PASSED] drm_test_check_format_value
[03:29:57] [PASSED] drm_test_check_tmds_char_value
[03:29:57] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[03:29:57] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[03:29:57] [PASSED] drm_test_check_mode_valid
[03:29:57] [PASSED] drm_test_check_mode_valid_reject
[03:29:57] [PASSED] drm_test_check_mode_valid_reject_rate
[03:29:57] [PASSED] drm_test_check_mode_valid_reject_max_clock
[03:29:57] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[03:29:57] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[03:29:57] [PASSED] drm_test_check_infoframes
[03:29:57] [PASSED] drm_test_check_reject_avi_infoframe
[03:29:57] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[03:29:57] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[03:29:57] [PASSED] drm_test_check_reject_audio_infoframe
[03:29:57] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[03:29:57] ================= drm_managed (2 subtests) =================
[03:29:57] [PASSED] drm_test_managed_release_action
[03:29:57] [PASSED] drm_test_managed_run_action
[03:29:57] =================== [PASSED] drm_managed ===================
[03:29:57] =================== drm_mm (6 subtests) ====================
[03:29:57] [PASSED] drm_test_mm_init
[03:29:57] [PASSED] drm_test_mm_debug
[03:29:57] [PASSED] drm_test_mm_align32
[03:29:57] [PASSED] drm_test_mm_align64
[03:29:57] [PASSED] drm_test_mm_lowest
[03:29:57] [PASSED] drm_test_mm_highest
[03:29:57] ===================== [PASSED] drm_mm ======================
[03:29:57] ============= drm_modes_analog_tv (5 subtests) =============
[03:29:57] [PASSED] drm_test_modes_analog_tv_mono_576i
[03:29:57] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[03:29:57] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[03:29:57] [PASSED] drm_test_modes_analog_tv_pal_576i
[03:29:57] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[03:29:57] =============== [PASSED] drm_modes_analog_tv ===============
[03:29:57] ============== drm_plane_helper (2 subtests) ===============
[03:29:57] =============== drm_test_check_plane_state ================
[03:29:57] [PASSED] clipping_simple
[03:29:57] [PASSED] clipping_rotate_reflect
[03:29:57] [PASSED] positioning_simple
[03:29:57] [PASSED] upscaling
[03:29:57] [PASSED] downscaling
[03:29:57] [PASSED] rounding1
[03:29:57] [PASSED] rounding2
[03:29:57] [PASSED] rounding3
[03:29:57] [PASSED] rounding4
[03:29:57] =========== [PASSED] drm_test_check_plane_state ============
[03:29:57] =========== drm_test_check_invalid_plane_state ============
[03:29:57] [PASSED] positioning_invalid
[03:29:57] [PASSED] upscaling_invalid
[03:29:57] [PASSED] downscaling_invalid
[03:29:57] ======= [PASSED] drm_test_check_invalid_plane_state ========
[03:29:57] ================ [PASSED] drm_plane_helper =================
[03:29:57] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[03:29:57] ====== drm_test_connector_helper_tv_get_modes_check =======
[03:29:57] [PASSED] None
[03:29:57] [PASSED] PAL
[03:29:57] [PASSED] NTSC
[03:29:57] [PASSED] Both, NTSC Default
[03:29:57] [PASSED] Both, PAL Default
[03:29:57] [PASSED] Both, NTSC Default, with PAL on command-line
[03:29:57] [PASSED] Both, PAL Default, with NTSC on command-line
[03:29:57] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[03:29:57] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[03:29:57] ================== drm_rect (9 subtests) ===================
[03:29:57] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[03:29:57] [PASSED] drm_test_rect_clip_scaled_not_clipped
[03:29:57] [PASSED] drm_test_rect_clip_scaled_clipped
[03:29:57] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[03:29:57] ================= drm_test_rect_intersect =================
[03:29:57] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[03:29:57] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[03:29:57] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[03:29:57] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[03:29:57] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[03:29:57] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[03:29:57] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[03:29:57] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[03:29:57] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[03:29:57] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[03:29:57] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[03:29:57] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[03:29:57] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[03:29:57] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[03:29:57] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
stty: 'standard input': Inappropriate ioctl for device
[03:29:57] ============= [PASSED] drm_test_rect_intersect =============
[03:29:57] ================ drm_test_rect_calc_hscale ================
[03:29:57] [PASSED] normal use
[03:29:57] [PASSED] out of max range
[03:29:57] [PASSED] out of min range
[03:29:57] [PASSED] zero dst
[03:29:57] [PASSED] negative src
[03:29:57] [PASSED] negative dst
[03:29:57] ============ [PASSED] drm_test_rect_calc_hscale ============
[03:29:57] ================ drm_test_rect_calc_vscale ================
[03:29:57] [PASSED] normal use
[03:29:57] [PASSED] out of max range
[03:29:57] [PASSED] out of min range
[03:29:57] [PASSED] zero dst
[03:29:57] [PASSED] negative src
[03:29:57] [PASSED] negative dst
[03:29:57] ============ [PASSED] drm_test_rect_calc_vscale ============
[03:29:57] ================== drm_test_rect_rotate ===================
[03:29:57] [PASSED] reflect-x
[03:29:57] [PASSED] reflect-y
[03:29:57] [PASSED] rotate-0
[03:29:57] [PASSED] rotate-90
[03:29:57] [PASSED] rotate-180
[03:29:57] [PASSED] rotate-270
[03:29:57] ============== [PASSED] drm_test_rect_rotate ===============
[03:29:57] ================ drm_test_rect_rotate_inv =================
[03:29:57] [PASSED] reflect-x
[03:29:57] [PASSED] reflect-y
[03:29:57] [PASSED] rotate-0
[03:29:57] [PASSED] rotate-90
[03:29:57] [PASSED] rotate-180
[03:29:57] [PASSED] rotate-270
[03:29:57] ============ [PASSED] drm_test_rect_rotate_inv =============
[03:29:57] ==================== [PASSED] drm_rect =====================
[03:29:57] ============ drm_sysfb_modeset_test (1 subtest) ============
[03:29:57] ============ drm_test_sysfb_build_fourcc_list =============
[03:29:57] [PASSED] no native formats
[03:29:57] [PASSED] XRGB8888 as native format
[03:29:57] [PASSED] remove duplicates
[03:29:57] [PASSED] convert alpha formats
[03:29:57] [PASSED] random formats
[03:29:57] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[03:29:57] ============= [PASSED] drm_sysfb_modeset_test ==============
[03:29:57] ================== drm_fixp (2 subtests) ===================
[03:29:57] [PASSED] drm_test_int2fixp
[03:29:57] [PASSED] drm_test_sm2fixp
[03:29:57] ==================== [PASSED] drm_fixp =====================
[03:29:57] ============================================================
[03:29:57] Testing complete. Ran 630 tests: passed: 630
[03:29:57] Elapsed time: 28.163s total, 1.697s configuring, 26.048s building, 0.384s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[03:29:57] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[03:29:59] 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
[03:30:08] Starting KUnit Kernel (1/1)...
[03:30:08] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[03:30:08] ================= ttm_device (5 subtests) ==================
[03:30:08] [PASSED] ttm_device_init_basic
[03:30:08] [PASSED] ttm_device_init_multiple
[03:30:08] [PASSED] ttm_device_fini_basic
[03:30:08] [PASSED] ttm_device_init_no_vma_man
[03:30:08] ================== ttm_device_init_pools ==================
[03:30:08] [PASSED] No DMA allocations, no DMA32 required
[03:30:08] [PASSED] DMA allocations, DMA32 required
[03:30:08] [PASSED] No DMA allocations, DMA32 required
[03:30:08] [PASSED] DMA allocations, no DMA32 required
[03:30:08] ============== [PASSED] ttm_device_init_pools ==============
[03:30:08] =================== [PASSED] ttm_device ====================
[03:30:08] ================== ttm_pool (8 subtests) ===================
[03:30:08] ================== ttm_pool_alloc_basic ===================
[03:30:08] [PASSED] One page
[03:30:08] [PASSED] More than one page
[03:30:08] [PASSED] Above the allocation limit
[03:30:08] [PASSED] One page, with coherent DMA mappings enabled
[03:30:08] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[03:30:08] ============== [PASSED] ttm_pool_alloc_basic ===============
[03:30:08] ============== ttm_pool_alloc_basic_dma_addr ==============
[03:30:08] [PASSED] One page
[03:30:08] [PASSED] More than one page
[03:30:08] [PASSED] Above the allocation limit
[03:30:08] [PASSED] One page, with coherent DMA mappings enabled
[03:30:08] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[03:30:08] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[03:30:08] [PASSED] ttm_pool_alloc_order_caching_match
[03:30:08] [PASSED] ttm_pool_alloc_caching_mismatch
[03:30:08] [PASSED] ttm_pool_alloc_order_mismatch
[03:30:08] [PASSED] ttm_pool_free_dma_alloc
[03:30:08] [PASSED] ttm_pool_free_no_dma_alloc
[03:30:08] [PASSED] ttm_pool_fini_basic
[03:30:08] ==================== [PASSED] ttm_pool =====================
[03:30:08] ================ ttm_resource (8 subtests) =================
[03:30:08] ================= ttm_resource_init_basic =================
[03:30:08] [PASSED] Init resource in TTM_PL_SYSTEM
[03:30:08] [PASSED] Init resource in TTM_PL_VRAM
[03:30:08] [PASSED] Init resource in a private placement
[03:30:08] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[03:30:08] ============= [PASSED] ttm_resource_init_basic =============
[03:30:08] [PASSED] ttm_resource_init_pinned
[03:30:08] [PASSED] ttm_resource_fini_basic
[03:30:08] [PASSED] ttm_resource_manager_init_basic
[03:30:08] [PASSED] ttm_resource_manager_usage_basic
[03:30:08] [PASSED] ttm_resource_manager_set_used_basic
[03:30:08] [PASSED] ttm_sys_man_alloc_basic
[03:30:08] [PASSED] ttm_sys_man_free_basic
[03:30:08] ================== [PASSED] ttm_resource ===================
[03:30:08] =================== ttm_tt (15 subtests) ===================
[03:30:08] ==================== ttm_tt_init_basic ====================
[03:30:08] [PASSED] Page-aligned size
[03:30:08] [PASSED] Extra pages requested
[03:30:08] ================ [PASSED] ttm_tt_init_basic ================
[03:30:08] [PASSED] ttm_tt_init_misaligned
[03:30:08] [PASSED] ttm_tt_fini_basic
[03:30:08] [PASSED] ttm_tt_fini_sg
[03:30:08] [PASSED] ttm_tt_fini_shmem
[03:30:08] [PASSED] ttm_tt_create_basic
[03:30:08] [PASSED] ttm_tt_create_invalid_bo_type
[03:30:08] [PASSED] ttm_tt_create_ttm_exists
[03:30:08] [PASSED] ttm_tt_create_failed
[03:30:08] [PASSED] ttm_tt_destroy_basic
[03:30:08] [PASSED] ttm_tt_populate_null_ttm
[03:30:08] [PASSED] ttm_tt_populate_populated_ttm
[03:30:08] [PASSED] ttm_tt_unpopulate_basic
[03:30:08] [PASSED] ttm_tt_unpopulate_empty_ttm
[03:30:08] [PASSED] ttm_tt_swapin_basic
[03:30:08] ===================== [PASSED] ttm_tt ======================
[03:30:08] =================== ttm_bo (14 subtests) ===================
[03:30:08] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[03:30:08] [PASSED] Cannot be interrupted and sleeps
[03:30:08] [PASSED] Cannot be interrupted, locks straight away
[03:30:08] [PASSED] Can be interrupted, sleeps
[03:30:08] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[03:30:08] [PASSED] ttm_bo_reserve_locked_no_sleep
[03:30:08] [PASSED] ttm_bo_reserve_no_wait_ticket
[03:30:09] [PASSED] ttm_bo_reserve_double_resv
[03:30:09] [PASSED] ttm_bo_reserve_interrupted
[03:30:09] [PASSED] ttm_bo_reserve_deadlock
[03:30:09] [PASSED] ttm_bo_unreserve_basic
[03:30:09] [PASSED] ttm_bo_unreserve_pinned
[03:30:09] [PASSED] ttm_bo_unreserve_bulk
[03:30:09] [PASSED] ttm_bo_fini_basic
[03:30:09] [PASSED] ttm_bo_fini_shared_resv
[03:30:09] [PASSED] ttm_bo_pin_basic
[03:30:09] [PASSED] ttm_bo_pin_unpin_resource
[03:30:09] [PASSED] ttm_bo_multiple_pin_one_unpin
[03:30:09] ===================== [PASSED] ttm_bo ======================
[03:30:09] ============== ttm_bo_validate (21 subtests) ===============
[03:30:09] ============== ttm_bo_init_reserved_sys_man ===============
[03:30:09] [PASSED] Buffer object for userspace
[03:30:09] [PASSED] Kernel buffer object
[03:30:09] [PASSED] Shared buffer object
[03:30:09] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[03:30:09] ============== ttm_bo_init_reserved_mock_man ==============
[03:30:09] [PASSED] Buffer object for userspace
[03:30:09] [PASSED] Kernel buffer object
[03:30:09] [PASSED] Shared buffer object
[03:30:09] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[03:30:09] [PASSED] ttm_bo_init_reserved_resv
[03:30:09] ================== ttm_bo_validate_basic ==================
[03:30:09] [PASSED] Buffer object for userspace
[03:30:09] [PASSED] Kernel buffer object
[03:30:09] [PASSED] Shared buffer object
[03:30:09] ============== [PASSED] ttm_bo_validate_basic ==============
[03:30:09] [PASSED] ttm_bo_validate_invalid_placement
[03:30:09] ============= ttm_bo_validate_same_placement ==============
[03:30:09] [PASSED] System manager
[03:30:09] [PASSED] VRAM manager
[03:30:09] ========= [PASSED] ttm_bo_validate_same_placement ==========
[03:30:09] [PASSED] ttm_bo_validate_failed_alloc
[03:30:09] [PASSED] ttm_bo_validate_pinned
[03:30:09] [PASSED] ttm_bo_validate_busy_placement
[03:30:09] ================ ttm_bo_validate_multihop =================
[03:30:09] [PASSED] Buffer object for userspace
[03:30:09] [PASSED] Kernel buffer object
[03:30:09] [PASSED] Shared buffer object
[03:30:09] ============ [PASSED] ttm_bo_validate_multihop =============
[03:30:09] ========== ttm_bo_validate_no_placement_signaled ==========
[03:30:09] [PASSED] Buffer object in system domain, no page vector
[03:30:09] [PASSED] Buffer object in system domain with an existing page vector
[03:30:09] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[03:30:09] ======== ttm_bo_validate_no_placement_not_signaled ========
[03:30:09] [PASSED] Buffer object for userspace
[03:30:09] [PASSED] Kernel buffer object
[03:30:09] [PASSED] Shared buffer object
[03:30:09] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[03:30:09] [PASSED] ttm_bo_validate_move_fence_signaled
[03:30:09] ========= ttm_bo_validate_move_fence_not_signaled =========
[03:30:09] [PASSED] Waits for GPU
[03:30:09] [PASSED] Tries to lock straight away
[03:30:09] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[03:30:09] [PASSED] ttm_bo_validate_happy_evict
[03:30:09] [PASSED] ttm_bo_validate_all_pinned_evict
[03:30:09] [PASSED] ttm_bo_validate_allowed_only_evict
[03:30:09] [PASSED] ttm_bo_validate_deleted_evict
[03:30:09] [PASSED] ttm_bo_validate_busy_domain_evict
[03:30:09] [PASSED] ttm_bo_validate_evict_gutting
[03:30:09] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[03:30:09] ================= [PASSED] ttm_bo_validate =================
[03:30:09] ============================================================
[03:30:09] Testing complete. Ran 101 tests: passed: 101
[03:30:09] Elapsed time: 11.591s total, 1.741s configuring, 9.633s building, 0.188s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 7+ messages in thread
* ✗ CI.checksparse: warning for series starting with [1/2] drm/i915: drop display version 2-4 overlay uAPI
2026-02-04 16:48 [PATCH 1/2] drm/i915: drop display version 2-4 overlay uAPI Jani Nikula
` (2 preceding siblings ...)
2026-02-05 3:30 ` ✓ CI.KUnit: success " Patchwork
@ 2026-02-05 3:46 ` Patchwork
2026-02-05 4:03 ` ✓ Xe.CI.BAT: success " Patchwork
2026-02-05 19:08 ` ✓ Xe.CI.FULL: " Patchwork
5 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-02-05 3:46 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-xe
== Series Details ==
Series: series starting with [1/2] drm/i915: drop display version 2-4 overlay uAPI
URL : https://patchwork.freedesktop.org/series/161155/
State : warning
== Summary ==
+ trap cleanup EXIT
+ KERNEL=/kernel
+ MT=/root/linux/maintainer-tools
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools /root/linux/maintainer-tools
Cloning into '/root/linux/maintainer-tools'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ make -C /root/linux/maintainer-tools
make: Entering directory '/root/linux/maintainer-tools'
cc -O2 -g -Wextra -o remap-log remap-log.c
make: Leaving directory '/root/linux/maintainer-tools'
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ /root/linux/maintainer-tools/dim sparse --fast 8883ec84c85819dacca94997b60371c3ed57ee29
Sparse version: 0.6.4 (Ubuntu: 0.6.4-4ubuntu3)
Fast mode used, each commit won't be checked separately.
-drivers/gpu/drm/i915/display/intel_overlay.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
-./include/linux/pwm.h:13:1: error: bad constant expression
+ 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 series starting with [1/2] drm/i915: drop display version 2-4 overlay uAPI
2026-02-04 16:48 [PATCH 1/2] drm/i915: drop display version 2-4 overlay uAPI Jani Nikula
` (3 preceding siblings ...)
2026-02-05 3:46 ` ✗ CI.checksparse: warning " Patchwork
@ 2026-02-05 4:03 ` Patchwork
2026-02-05 19:08 ` ✓ Xe.CI.FULL: " Patchwork
5 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-02-05 4:03 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 1784 bytes --]
== Series Details ==
Series: series starting with [1/2] drm/i915: drop display version 2-4 overlay uAPI
URL : https://patchwork.freedesktop.org/series/161155/
State : success
== Summary ==
CI Bug Log - changes from xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3_BAT -> xe-pw-161155v1_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (11 -> 12)
------------------------------
Additional (1): bat-bmg-3
Known issues
------------
Here are the changes found in xe-pw-161155v1_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@xe_peer2peer@read@read-gpua-vram01-gpub-vram01-p2p:
- bat-bmg-3: NOTRUN -> [SKIP][1] ([Intel XE#6566]) +3 other tests skip
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/bat-bmg-3/igt@xe_peer2peer@read@read-gpua-vram01-gpub-vram01-p2p.html
* igt@xe_waitfence@engine:
- bat-dg2-oem2: [PASS][2] -> [FAIL][3] ([Intel XE#6519])
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/bat-dg2-oem2/igt@xe_waitfence@engine.html
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/bat-dg2-oem2/igt@xe_waitfence@engine.html
[Intel XE#6519]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6519
[Intel XE#6566]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6566
Build changes
-------------
* Linux: xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3 -> xe-pw-161155v1
IGT_8737: 8737
xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3: 55e3e3aeecf80d9fd2536acd8ed785282be5a7b3
xe-pw-161155v1: 161155v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/index.html
[-- Attachment #2: Type: text/html, Size: 2382 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* ✓ Xe.CI.FULL: success for series starting with [1/2] drm/i915: drop display version 2-4 overlay uAPI
2026-02-04 16:48 [PATCH 1/2] drm/i915: drop display version 2-4 overlay uAPI Jani Nikula
` (4 preceding siblings ...)
2026-02-05 4:03 ` ✓ Xe.CI.BAT: success " Patchwork
@ 2026-02-05 19:08 ` Patchwork
5 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-02-05 19:08 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 26224 bytes --]
== Series Details ==
Series: series starting with [1/2] drm/i915: drop display version 2-4 overlay uAPI
URL : https://patchwork.freedesktop.org/series/161155/
State : success
== Summary ==
CI Bug Log - changes from xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3_FULL -> xe-pw-161155v1_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (2 -> 2)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-161155v1_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip:
- shard-lnl: NOTRUN -> [SKIP][1] ([Intel XE#7059])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip.html
* igt@kms_big_fb@yf-tiled-16bpp-rotate-0:
- shard-lnl: NOTRUN -> [SKIP][2] ([Intel XE#1124]) +1 other test skip
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@kms_big_fb@yf-tiled-16bpp-rotate-0.html
* igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p:
- shard-bmg: [PASS][3] -> [SKIP][4] ([Intel XE#2314] / [Intel XE#2894])
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-7/igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-5/igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p.html
* igt@kms_bw@linear-tiling-2-displays-1920x1080p:
- shard-lnl: NOTRUN -> [SKIP][5] ([Intel XE#367])
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@kms_bw@linear-tiling-2-displays-1920x1080p.html
* igt@kms_ccs@crc-primary-basic-y-tiled-gen12-rc-ccs:
- shard-lnl: NOTRUN -> [SKIP][6] ([Intel XE#2887])
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@kms_ccs@crc-primary-basic-y-tiled-gen12-rc-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
- shard-bmg: [PASS][7] -> [DMESG-WARN][8] ([Intel XE#3428] / [Intel XE#7181])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-5/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-3/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-a-dp-2:
- shard-bmg: NOTRUN -> [DMESG-WARN][9] ([Intel XE#3428])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-3/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-a-dp-2.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-d-hdmi-a-3:
- shard-bmg: [PASS][10] -> [DMESG-WARN][11] ([Intel XE#3428])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-5/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-d-hdmi-a-3.html
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-3/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-d-hdmi-a-3.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-a-dp-2:
- shard-bmg: NOTRUN -> [SKIP][12] ([Intel XE#2652] / [Intel XE#787]) +7 other tests skip
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-7/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-a-dp-2.html
* igt@kms_chamelium_color@gamma:
- shard-lnl: NOTRUN -> [SKIP][13] ([Intel XE#306])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@kms_chamelium_color@gamma.html
* igt@kms_color_pipeline@plane-lut3d-green-only@pipe-a-dp-2:
- shard-bmg: NOTRUN -> [SKIP][14] ([Intel XE#6969]) +1 other test skip
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-3/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-a-dp-2.html
* igt@kms_color_pipeline@plane-lut3d-green-only@pipe-d-dp-2:
- shard-bmg: NOTRUN -> [SKIP][15] ([Intel XE#6969] / [Intel XE#7006])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-3/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-d-dp-2.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
- shard-bmg: [PASS][16] -> [SKIP][17] ([Intel XE#2291]) +5 other tests skip
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-7/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-5/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-bmg: [PASS][18] -> [FAIL][19] ([Intel XE#5299])
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
* igt@kms_feature_discovery@display-2x:
- shard-bmg: [PASS][20] -> [SKIP][21] ([Intel XE#2373])
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-4/igt@kms_feature_discovery@display-2x.html
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-5/igt@kms_feature_discovery@display-2x.html
* igt@kms_flip@2x-nonexisting-fb:
- shard-bmg: [PASS][22] -> [SKIP][23] ([Intel XE#2316]) +6 other tests skip
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-7/igt@kms_flip@2x-nonexisting-fb.html
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-5/igt@kms_flip@2x-nonexisting-fb.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-bmg: [PASS][24] -> [FAIL][25] ([Intel XE#7030]) +1 other test fail
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-10/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-7/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:
- shard-lnl: [PASS][26] -> [FAIL][27] ([Intel XE#301]) +1 other test fail
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling:
- shard-lnl: NOTRUN -> [SKIP][28] ([Intel XE#7178])
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html
* igt@kms_force_connector_basic@force-connector-state:
- shard-lnl: NOTRUN -> [SKIP][29] ([Intel XE#352])
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@kms_force_connector_basic@force-connector-state.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt:
- shard-lnl: NOTRUN -> [SKIP][30] ([Intel XE#656]) +2 other tests skip
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-render:
- shard-lnl: NOTRUN -> [SKIP][31] ([Intel XE#651])
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-argb161616f-draw-mmap-wc:
- shard-lnl: NOTRUN -> [SKIP][32] ([Intel XE#7061]) +1 other test skip
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@kms_frontbuffer_tracking@fbcdrrs-argb161616f-draw-mmap-wc.html
* igt@kms_hdr@static-swap:
- shard-bmg: [PASS][33] -> [SKIP][34] ([Intel XE#1503]) +1 other test skip
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-10/igt@kms_hdr@static-swap.html
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-5/igt@kms_hdr@static-swap.html
* igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping@pipe-a-plane-5:
- shard-lnl: NOTRUN -> [SKIP][35] ([Intel XE#7131]) +1 other test skip
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping@pipe-a-plane-5.html
* igt@kms_plane_scaling@2x-scaler-multi-pipe:
- shard-bmg: [PASS][36] -> [SKIP][37] ([Intel XE#2571])
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-7/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-5/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
* igt@kms_pm_dc@deep-pkgc:
- shard-lnl: NOTRUN -> [FAIL][38] ([Intel XE#2029])
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@kms_pm_dc@deep-pkgc.html
* igt@kms_psr@fbc-psr2-primary-page-flip:
- shard-lnl: NOTRUN -> [SKIP][39] ([Intel XE#1406])
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@kms_psr@fbc-psr2-primary-page-flip.html
* igt@kms_psr@fbc-psr2-primary-page-flip@edp-1:
- shard-lnl: NOTRUN -> [SKIP][40] ([Intel XE#1406] / [Intel XE#4609])
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@kms_psr@fbc-psr2-primary-page-flip@edp-1.html
* igt@kms_setmode@invalid-clone-single-crtc-stealing:
- shard-bmg: [PASS][41] -> [SKIP][42] ([Intel XE#1435])
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-4/igt@kms_setmode@invalid-clone-single-crtc-stealing.html
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-5/igt@kms_setmode@invalid-clone-single-crtc-stealing.html
* igt@xe_eudebug@multiple-sessions:
- shard-lnl: NOTRUN -> [SKIP][43] ([Intel XE#4837])
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@xe_eudebug@multiple-sessions.html
* igt@xe_evict@evict-beng-small-multi-vm:
- shard-lnl: NOTRUN -> [SKIP][44] ([Intel XE#688])
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@xe_evict@evict-beng-small-multi-vm.html
* igt@xe_exec_multi_queue@two-queues-close-fd-smem:
- shard-lnl: NOTRUN -> [SKIP][45] ([Intel XE#6874]) +1 other test skip
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@xe_exec_multi_queue@two-queues-close-fd-smem.html
* igt@xe_exec_system_allocator@threads-many-stride-mmap-free-huge-nomemset:
- shard-lnl: NOTRUN -> [SKIP][46] ([Intel XE#4943]) +1 other test skip
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@xe_exec_system_allocator@threads-many-stride-mmap-free-huge-nomemset.html
* igt@xe_pm@d3hot-mmap-vram:
- shard-lnl: NOTRUN -> [SKIP][47] ([Intel XE#1948])
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@xe_pm@d3hot-mmap-vram.html
* igt@xe_sriov_admin@bulk-sched-priority-vfs-disabled:
- shard-lnl: NOTRUN -> [SKIP][48] ([Intel XE#7174])
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-7/igt@xe_sriov_admin@bulk-sched-priority-vfs-disabled.html
#### Possible fixes ####
* igt@kms_cursor_legacy@cursora-vs-flipb-atomic:
- shard-bmg: [SKIP][49] ([Intel XE#2291]) -> [PASS][50] +2 other tests pass
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-5/igt@kms_cursor_legacy@cursora-vs-flipb-atomic.html
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-7/igt@kms_cursor_legacy@cursora-vs-flipb-atomic.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic:
- shard-bmg: [FAIL][51] ([Intel XE#4633]) -> [PASS][52]
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-9/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-1/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
* igt@kms_display_modes@extended-mode-basic:
- shard-bmg: [SKIP][53] ([Intel XE#4302]) -> [PASS][54]
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-5/igt@kms_display_modes@extended-mode-basic.html
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-3/igt@kms_display_modes@extended-mode-basic.html
* igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible:
- shard-bmg: [SKIP][55] ([Intel XE#2316]) -> [PASS][56] +2 other tests pass
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-5/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible.html
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-3/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible.html
* igt@kms_hdr@invalid-hdr:
- shard-bmg: [SKIP][57] ([Intel XE#1503]) -> [PASS][58]
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-9/igt@kms_hdr@invalid-hdr.html
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-1/igt@kms_hdr@invalid-hdr.html
* igt@kms_plane_multiple@2x-tiling-none:
- shard-bmg: [SKIP][59] ([Intel XE#4596]) -> [PASS][60]
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-5/igt@kms_plane_multiple@2x-tiling-none.html
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-10/igt@kms_plane_multiple@2x-tiling-none.html
* igt@kms_vrr@cmrr@pipe-a-edp-1:
- shard-lnl: [FAIL][61] ([Intel XE#4459]) -> [PASS][62] +1 other test pass
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-lnl-3/igt@kms_vrr@cmrr@pipe-a-edp-1.html
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-4/igt@kms_vrr@cmrr@pipe-a-edp-1.html
* igt@kms_vrr@negative-basic:
- shard-bmg: [SKIP][63] ([Intel XE#1499]) -> [PASS][64]
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-5/igt@kms_vrr@negative-basic.html
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-3/igt@kms_vrr@negative-basic.html
* igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-single-vma:
- shard-lnl: [FAIL][65] ([Intel XE#5625]) -> [PASS][66]
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-lnl-7/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-single-vma.html
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-lnl-1/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-single-vma.html
#### Warnings ####
* igt@kms_content_protection@atomic-dpms:
- shard-bmg: [FAIL][67] ([Intel XE#1178] / [Intel XE#3304]) -> [SKIP][68] ([Intel XE#2341])
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-4/igt@kms_content_protection@atomic-dpms.html
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-5/igt@kms_content_protection@atomic-dpms.html
* igt@kms_flip@2x-modeset-vs-vblank-race:
- shard-bmg: [FAIL][69] ([Intel XE#3098]) -> [SKIP][70] ([Intel XE#2316])
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-10/igt@kms_flip@2x-modeset-vs-vblank-race.html
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-5/igt@kms_flip@2x-modeset-vs-vblank-race.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render:
- shard-bmg: [SKIP][71] ([Intel XE#2312]) -> [SKIP][72] ([Intel XE#2311]) +10 other tests skip
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render.html
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-10/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt:
- shard-bmg: [SKIP][73] ([Intel XE#2312]) -> [SKIP][74] ([Intel XE#4141]) +4 other tests skip
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt.html
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-10/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff:
- shard-bmg: [SKIP][75] ([Intel XE#4141]) -> [SKIP][76] ([Intel XE#2312]) +4 other tests skip
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-10/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc:
- shard-bmg: [SKIP][77] ([Intel XE#2311]) -> [SKIP][78] ([Intel XE#2312]) +11 other tests skip
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc.html
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-rte:
- shard-bmg: [SKIP][79] ([Intel XE#2313]) -> [SKIP][80] ([Intel XE#2312]) +10 other tests skip
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-rte.html
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-rte.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt:
- shard-bmg: [SKIP][81] ([Intel XE#2312]) -> [SKIP][82] ([Intel XE#2313]) +11 other tests skip
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-5/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt.html
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-3/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt.html
* igt@kms_plane_multiple@2x-tiling-y:
- shard-bmg: [SKIP][83] ([Intel XE#5021]) -> [SKIP][84] ([Intel XE#4596])
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-7/igt@kms_plane_multiple@2x-tiling-y.html
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-5/igt@kms_plane_multiple@2x-tiling-y.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-bmg: [FAIL][85] ([Intel XE#1729]) -> [SKIP][86] ([Intel XE#2426])
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-10/igt@kms_tiled_display@basic-test-pattern.html
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-7/igt@kms_tiled_display@basic-test-pattern.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-bmg: [SKIP][87] ([Intel XE#2426]) -> [SKIP][88] ([Intel XE#2509])
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-8/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-2/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
* igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv:
- shard-bmg: [ABORT][89] ([Intel XE#5466]) -> [ABORT][90] ([Intel XE#5466] / [Intel XE#6652])
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3/shard-bmg-7/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/shard-bmg-3/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#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
[Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
[Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
[Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
[Intel XE#1948]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1948
[Intel XE#2029]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2029
[Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
[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#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
[Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
[Intel XE#2373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2373
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
[Intel XE#2571]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2571
[Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
[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#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#3098]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3098
[Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
[Intel XE#3428]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3428
[Intel XE#352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/352
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4302]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4302
[Intel XE#4459]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4459
[Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
[Intel XE#4609]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4609
[Intel XE#4633]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4633
[Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
[Intel XE#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
[Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021
[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#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#6652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6652
[Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#6969]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6969
[Intel XE#7006]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7006
[Intel XE#7030]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7030
[Intel XE#7059]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7059
[Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
[Intel XE#7131]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7131
[Intel XE#7174]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7174
[Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
[Intel XE#7181]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7181
[Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
Build changes
-------------
* Linux: xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3 -> xe-pw-161155v1
IGT_8737: 8737
xe-4502-55e3e3aeecf80d9fd2536acd8ed785282be5a7b3: 55e3e3aeecf80d9fd2536acd8ed785282be5a7b3
xe-pw-161155v1: 161155v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161155v1/index.html
[-- Attachment #2: Type: text/html, Size: 29343 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-02-05 19:08 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-04 16:48 [PATCH 1/2] drm/i915: drop display version 2-4 overlay uAPI Jani Nikula
2026-02-04 16:48 ` [PATCH 2/2] drm/i915/display: drop display version 2-4 overlay implementation Jani Nikula
2026-02-05 3:28 ` ✗ CI.checkpatch: warning for series starting with [1/2] drm/i915: drop display version 2-4 overlay uAPI Patchwork
2026-02-05 3:30 ` ✓ CI.KUnit: success " Patchwork
2026-02-05 3:46 ` ✗ CI.checksparse: warning " Patchwork
2026-02-05 4:03 ` ✓ Xe.CI.BAT: success " Patchwork
2026-02-05 19:08 ` ✓ Xe.CI.FULL: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox