* [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups
@ 2025-04-10 16:31 Ville Syrjala
2025-04-10 16:32 ` [PATCH 01/19] drm: Pass pixel_format+modifier to .get_format_info() Ville Syrjala
` (28 more replies)
0 siblings, 29 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:31 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx, intel-xe
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
I noticed a bunch of redundant (and rather expensive) drm_format_info
lookups in some traces recently. This series is an attempt to eliminate
them.
Ville Syrjälä (19):
drm: Pass pixel_format+modifier to .get_format_info()
drm: Pass pixel_format+modifier directly to drm_get_format_info()
drm: Look up the format info earlier
drm: Pass the format info to .fb_create()
drm: Allow the caller to pass in the format info to
drm_helper_mode_fill_fb_struct()
drm/malidp: Pass along the format info from .fb_create()
malidp_verify_afbc_framebuffer_size()
drm/gem: Pass along the format info from .fb_create() to
drm_helper_mode_fill_fb_struct()
drm/gem/afbc: Eliminate redundant drm_get_format_info()
drm/amdgpu: Pass along the format info from .fb_create() to
drm_helper_mode_fill_fb_struct()
drm/armada: Pass along the format info from .fb_create() to
drm_helper_mode_fill_fb_struct()
drm/exynos: Pass along the format info from .fb_create() to
drm_helper_mode_fill_fb_struct()
drm/gma500: Pass along the format info from .fb_create() to
drm_helper_mode_fill_fb_struct()
drm/i915: Pass along the format info from .fb_create() to
drm_helper_mode_fill_fb_struct()
drm/komeda: Pass along the format info from .fb_create() to
drm_helper_mode_fill_fb_struct()
drm/msm: Pass along the format info from .fb_create() to
drm_helper_mode_fill_fb_struct()
drm/tegra: Pass along the format info from .fb_create() to
drm_helper_mode_fill_fb_struct()
drm/virtio: Pass along the format info from .fb_create() to
drm_helper_mode_fill_fb_struct()
drm/vmwgfx: Pass along the format info from .fb_create() to
drm_helper_mode_fill_fb_struct()
drm: Make passing of format info to drm_helper_mode_fill_fb_struct()
mandatory
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 6 ++-
drivers/gpu/drm/amd/amdgpu/amdgpu_display.h | 1 +
.../amd/display/amdgpu_dm/amdgpu_dm_plane.c | 4 +-
.../amd/display/amdgpu_dm/amdgpu_dm_plane.h | 2 +-
.../arm/display/komeda/komeda_framebuffer.c | 3 +-
.../arm/display/komeda/komeda_framebuffer.h | 1 +
drivers/gpu/drm/arm/malidp_drv.c | 12 +++---
drivers/gpu/drm/armada/armada_fb.c | 12 +++---
drivers/gpu/drm/armada/armada_fb.h | 4 +-
drivers/gpu/drm/armada/armada_fbdev.c | 5 ++-
drivers/gpu/drm/drm_fourcc.c | 7 ++--
drivers/gpu/drm/drm_framebuffer.c | 27 ++++++-------
drivers/gpu/drm/drm_gem_framebuffer_helper.c | 38 ++++++++-----------
drivers/gpu/drm/drm_modeset_helper.c | 4 +-
drivers/gpu/drm/exynos/exynos_drm_fb.c | 7 ++--
drivers/gpu/drm/exynos/exynos_drm_fb.h | 1 +
drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 5 ++-
drivers/gpu/drm/gma500/fbdev.c | 5 ++-
drivers/gpu/drm/gma500/framebuffer.c | 14 ++++---
drivers/gpu/drm/gma500/psb_drv.h | 1 +
drivers/gpu/drm/i915/display/intel_fb.c | 18 +++++----
drivers/gpu/drm/i915/display/intel_fb.h | 5 ++-
drivers/gpu/drm/i915/display/intel_fbdev_fb.c | 6 ++-
.../drm/i915/display/intel_plane_initial.c | 3 +-
drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 5 ++-
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 5 +--
drivers/gpu/drm/msm/msm_drv.h | 3 +-
drivers/gpu/drm/msm/msm_fb.c | 18 +++++----
drivers/gpu/drm/mxsfb/mxsfb_drv.c | 9 +----
drivers/gpu/drm/nouveau/nouveau_display.c | 6 ++-
drivers/gpu/drm/nouveau/nouveau_display.h | 1 +
drivers/gpu/drm/omapdrm/omap_fb.c | 10 ++---
drivers/gpu/drm/omapdrm/omap_fb.h | 3 +-
drivers/gpu/drm/qxl/qxl_display.c | 3 +-
drivers/gpu/drm/radeon/radeon_display.c | 3 +-
drivers/gpu/drm/radeon/radeon_fbdev.c | 3 +-
drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c | 3 +-
drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c | 3 +-
.../gpu/drm/renesas/shmobile/shmob_drm_kms.c | 3 +-
drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 11 ++----
drivers/gpu/drm/tegra/drm.h | 2 +
drivers/gpu/drm/tegra/fb.c | 7 ++--
drivers/gpu/drm/tegra/fbdev.c | 4 +-
drivers/gpu/drm/tests/drm_framebuffer_test.c | 1 +
drivers/gpu/drm/vc4/vc4_kms.c | 3 +-
drivers/gpu/drm/virtio/virtgpu_display.c | 6 ++-
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 15 +++++---
drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 1 +
drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 6 ++-
drivers/gpu/drm/xe/display/xe_plane_initial.c | 2 +-
drivers/gpu/drm/xen/xen_drm_front_kms.c | 3 +-
drivers/gpu/drm/xlnx/zynqmp_kms.c | 3 +-
include/drm/drm_fourcc.h | 2 +-
include/drm/drm_gem_framebuffer_helper.h | 6 +++
include/drm/drm_mode_config.h | 3 +-
include/drm/drm_modeset_helper.h | 2 +
56 files changed, 207 insertions(+), 139 deletions(-)
--
2.49.0
^ permalink raw reply [flat|nested] 53+ messages in thread
* [PATCH 01/19] drm: Pass pixel_format+modifier to .get_format_info()
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
@ 2025-04-10 16:32 ` Ville Syrjala
2025-04-10 19:27 ` Laurent Pinchart
2025-04-11 19:19 ` [PATCH v2 " Ville Syrjala
2025-04-10 16:32 ` [PATCH 02/19] drm: Pass pixel_format+modifier directly to drm_get_format_info() Ville Syrjala
` (27 subsequent siblings)
28 siblings, 2 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:32 UTC (permalink / raw)
To: dri-devel
Cc: intel-gfx, intel-xe, Harry Wentland, Leo Li, Rodrigo Siqueira,
Alex Deucher, amd-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Decouple .get_format_info() from struct drm_mode_fb_cmd2 and just
pass the pixel format+modifier combo in by hand.
We may want to use .get_format_info() outside of the normal
addfb paths where we won't have a struct drm_mode_fb_cmd2, and
creating a temporary one just for this seems silly.
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Leo Li <sunpeng.li@amd.com>
Cc: Rodrigo Siqueira <siqueira@igalia.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: amd-gfx@lists.freedesktop.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 4 ++--
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h | 2 +-
drivers/gpu/drm/drm_fourcc.c | 3 ++-
drivers/gpu/drm/i915/display/intel_fb.c | 9 +++++----
drivers/gpu/drm/i915/display/intel_fb.h | 2 +-
include/drm/drm_mode_config.h | 2 +-
6 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
index 3e0f45f1711c..69d715b6abd3 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
@@ -92,9 +92,9 @@ enum dm_micro_swizzle {
MICRO_SWIZZLE_R = 3
};
-const struct drm_format_info *amdgpu_dm_plane_get_format_info(const struct drm_mode_fb_cmd2 *cmd)
+const struct drm_format_info *amdgpu_dm_plane_get_format_info(u32 pixel_format, u64 modifier)
{
- return amdgpu_lookup_format_info(cmd->pixel_format, cmd->modifier[0]);
+ return amdgpu_lookup_format_info(pixel_format, modifier);
}
void amdgpu_dm_plane_fill_blending_from_plane_state(const struct drm_plane_state *plane_state,
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
index 615d2ab2b803..ea2619b507db 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
@@ -58,7 +58,7 @@ int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm,
unsigned long possible_crtcs,
const struct dc_plane_cap *plane_cap);
-const struct drm_format_info *amdgpu_dm_plane_get_format_info(const struct drm_mode_fb_cmd2 *cmd);
+const struct drm_format_info *amdgpu_dm_plane_get_format_info(u32 pixel_format, u64 modifier);
void amdgpu_dm_plane_fill_blending_from_plane_state(const struct drm_plane_state *plane_state,
bool *per_pixel_alpha, bool *pre_multiplied_alpha,
diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c
index 3a94ca211f9c..f79fff8209fd 100644
--- a/drivers/gpu/drm/drm_fourcc.c
+++ b/drivers/gpu/drm/drm_fourcc.c
@@ -395,7 +395,8 @@ drm_get_format_info(struct drm_device *dev,
const struct drm_format_info *info = NULL;
if (dev->mode_config.funcs->get_format_info)
- info = dev->mode_config.funcs->get_format_info(mode_cmd);
+ info = dev->mode_config.funcs->get_format_info(mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
if (!info)
info = drm_format_info(mode_cmd->pixel_format);
diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index 2b0e0f220442..b83c42fe3233 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -421,21 +421,22 @@ unsigned int intel_fb_modifier_to_tiling(u64 fb_modifier)
/**
* intel_fb_get_format_info: Get a modifier specific format information
- * @cmd: FB add command structure
+ * @pixel_format: pixel format
+ * @modifier: modifier
*
* Returns:
* Returns the format information for @cmd->pixel_format specific to @cmd->modifier[0],
* or %NULL if the modifier doesn't override the format.
*/
const struct drm_format_info *
-intel_fb_get_format_info(const struct drm_mode_fb_cmd2 *cmd)
+intel_fb_get_format_info(u32 pixel_format, u64 modifier)
{
- const struct intel_modifier_desc *md = lookup_modifier_or_null(cmd->modifier[0]);
+ const struct intel_modifier_desc *md = lookup_modifier_or_null(modifier);
if (!md || !md->formats)
return NULL;
- return lookup_format_info(md->formats, md->format_count, cmd->pixel_format);
+ return lookup_format_info(md->formats, md->format_count, pixel_format);
}
static bool plane_caps_contain_any(u8 caps, u8 mask)
diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
index bdd76b372957..7d1267fbeee2 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.h
+++ b/drivers/gpu/drm/i915/display/intel_fb.h
@@ -47,7 +47,7 @@ u64 *intel_fb_plane_get_modifiers(struct intel_display *display,
bool intel_fb_plane_supports_modifier(struct intel_plane *plane, u64 modifier);
const struct drm_format_info *
-intel_fb_get_format_info(const struct drm_mode_fb_cmd2 *cmd);
+intel_fb_get_format_info(u32 pixel_format, u64 modifier);
bool
intel_format_info_is_yuv_semiplanar(const struct drm_format_info *info,
diff --git a/include/drm/drm_mode_config.h b/include/drm/drm_mode_config.h
index 4b8f0370b79b..6fca0362bc31 100644
--- a/include/drm/drm_mode_config.h
+++ b/include/drm/drm_mode_config.h
@@ -95,7 +95,7 @@ struct drm_mode_config_funcs {
* The format information specific to the given fb metadata, or
* NULL if none is found.
*/
- const struct drm_format_info *(*get_format_info)(const struct drm_mode_fb_cmd2 *mode_cmd);
+ const struct drm_format_info *(*get_format_info)(u32 pixel_format, u64 modifier);
/**
* @mode_valid:
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH 02/19] drm: Pass pixel_format+modifier directly to drm_get_format_info()
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
2025-04-10 16:32 ` [PATCH 01/19] drm: Pass pixel_format+modifier to .get_format_info() Ville Syrjala
@ 2025-04-10 16:32 ` Ville Syrjala
2025-04-10 19:31 ` Laurent Pinchart
` (3 more replies)
2025-04-10 16:32 ` [PATCH 03/19] drm: Look up the format info earlier Ville Syrjala
` (26 subsequent siblings)
28 siblings, 4 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:32 UTC (permalink / raw)
To: dri-devel
Cc: intel-gfx, intel-xe, Liviu Dudau, Russell King, Inki Dae,
Seung-Woo Kim, Kyungmin Park, Patrik Jakobsson, Chun-Kuang Hu,
Philipp Zabel, Rob Clark, Abhinav Kumar, Dmitry Baryshkov,
Sean Paul, Marijn Suijten, Marek Vasut, Stefan Agner, Lyude Paul,
Danilo Krummrich, Tomi Valkeinen, Alex Deucher, Sandy Huang,
Heiko Stübner, Andy Yan, Thierry Reding, Mikko Perttunen,
linux-arm-msm, freedreno, nouveau, amd-gfx, linux-tegra
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Decouple drm_get_format_info() from struct drm_mode_fb_cmd2 and just
pass the pixel format+modifier combo in by hand.
We may want to use drm_get_format_info() outside of the normal
addfb paths where we won't have a struct drm_mode_fb_cmd2, and
creating a temporary one just for this seems silly.
Done with cocci:
@@
identifier dev, mode_cmd;
@@
struct drm_format_info *
drm_get_format_info(struct drm_device *dev,
- const struct drm_mode_fb_cmd2 *mode_cmd
+ u32 pixel_format, u64 modifier
)
{
<...
(
- mode_cmd->pixel_format
+ pixel_format
|
- mode_cmd->modifier[0]
+ modifier
)
...>
}
@@
identifier dev, mode_cmd;
@@
struct drm_format_info *
drm_get_format_info(struct drm_device *dev,
- const struct drm_mode_fb_cmd2 *mode_cmd
+ u32 pixel_format, u64 modifier
);
@@
expression dev, mode_cmd;
@@
- drm_get_format_info(dev, mode_cmd)
+ drm_get_format_info(dev, mode_cmd->pixel_format, mode_cmd->modifier[0])
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Cc: Chun-Kuang Hu <chunkuang.hu@kernel.org>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
Cc: Dmitry Baryshkov <lumag@kernel.org>
Cc: Sean Paul <sean@poorly.run>
Cc: Marijn Suijten <marijn.suijten@somainline.org>
Cc: Marek Vasut <marex@denx.de>
Cc: Stefan Agner <stefan@agner.ch>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Danilo Krummrich <dakr@kernel.org>
Cc: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Sandy Huang <hjc@rock-chips.com>
Cc: "Heiko Stübner" <heiko@sntech.de>
Cc: Andy Yan <andy.yan@rock-chips.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Mikko Perttunen <mperttunen@nvidia.com>
Cc: linux-arm-msm@vger.kernel.org
Cc: freedreno@lists.freedesktop.org
Cc: nouveau@lists.freedesktop.org
Cc: amd-gfx@lists.freedesktop.org
Cc: linux-tegra@vger.kernel.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/arm/malidp_drv.c | 3 ++-
drivers/gpu/drm/armada/armada_fb.c | 4 +++-
drivers/gpu/drm/drm_fourcc.c | 8 ++++----
drivers/gpu/drm/drm_framebuffer.c | 2 +-
drivers/gpu/drm/drm_gem_framebuffer_helper.c | 9 ++++++---
drivers/gpu/drm/drm_modeset_helper.c | 3 ++-
drivers/gpu/drm/exynos/exynos_drm_fb.c | 4 +++-
drivers/gpu/drm/gma500/framebuffer.c | 3 ++-
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 4 +++-
drivers/gpu/drm/msm/msm_fb.c | 6 ++++--
drivers/gpu/drm/mxsfb/mxsfb_drv.c | 3 ++-
drivers/gpu/drm/nouveau/nouveau_display.c | 3 ++-
drivers/gpu/drm/omapdrm/omap_fb.c | 6 ++++--
drivers/gpu/drm/radeon/radeon_fbdev.c | 3 ++-
drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 3 ++-
drivers/gpu/drm/tegra/fb.c | 4 +++-
include/drm/drm_fourcc.h | 2 +-
17 files changed, 46 insertions(+), 24 deletions(-)
diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
index e083021e9e99..558e44a7e627 100644
--- a/drivers/gpu/drm/arm/malidp_drv.c
+++ b/drivers/gpu/drm/arm/malidp_drv.c
@@ -325,7 +325,8 @@ malidp_verify_afbc_framebuffer_size(struct drm_device *dev,
return false;
}
- info = drm_get_format_info(dev, mode_cmd);
+ info = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
n_superblocks = (mode_cmd->width / afbc_superblock_width) *
(mode_cmd->height / afbc_superblock_height);
diff --git a/drivers/gpu/drm/armada/armada_fb.c b/drivers/gpu/drm/armada/armada_fb.c
index cf2e88218dc0..85fc2cb50544 100644
--- a/drivers/gpu/drm/armada/armada_fb.c
+++ b/drivers/gpu/drm/armada/armada_fb.c
@@ -86,7 +86,9 @@ struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev,
struct drm_framebuffer *armada_fb_create(struct drm_device *dev,
struct drm_file *dfile, const struct drm_mode_fb_cmd2 *mode)
{
- const struct drm_format_info *info = drm_get_format_info(dev, mode);
+ const struct drm_format_info *info = drm_get_format_info(dev,
+ mode->pixel_format,
+ mode->modifier[0]);
struct armada_gem_object *obj;
struct armada_framebuffer *dfb;
int ret;
diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c
index f79fff8209fd..3c6998b74a4f 100644
--- a/drivers/gpu/drm/drm_fourcc.c
+++ b/drivers/gpu/drm/drm_fourcc.c
@@ -390,16 +390,16 @@ EXPORT_SYMBOL(drm_format_info);
*/
const struct drm_format_info *
drm_get_format_info(struct drm_device *dev,
- const struct drm_mode_fb_cmd2 *mode_cmd)
+ u32 pixel_format, u64 modifier)
{
const struct drm_format_info *info = NULL;
if (dev->mode_config.funcs->get_format_info)
- info = dev->mode_config.funcs->get_format_info(mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
+ info = dev->mode_config.funcs->get_format_info(pixel_format,
+ modifier);
if (!info)
- info = drm_format_info(mode_cmd->pixel_format);
+ info = drm_format_info(pixel_format);
return info;
}
diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c
index b781601946db..18a0267e374e 100644
--- a/drivers/gpu/drm/drm_framebuffer.c
+++ b/drivers/gpu/drm/drm_framebuffer.c
@@ -176,7 +176,7 @@ static int framebuffer_check(struct drm_device *dev,
}
/* now let the driver pick its own format info */
- info = drm_get_format_info(dev, r);
+ info = drm_get_format_info(dev, r->pixel_format, r->modifier[0]);
for (i = 0; i < info->num_planes; i++) {
unsigned int width = drm_format_info_plane_width(info, r->width, i);
diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
index 6f72e7a0f427..8f1213ea0e16 100644
--- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
+++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
@@ -159,7 +159,8 @@ int drm_gem_fb_init_with_funcs(struct drm_device *dev,
unsigned int i;
int ret;
- info = drm_get_format_info(dev, mode_cmd);
+ info = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
if (!info) {
drm_dbg_kms(dev, "Failed to get FB format info\n");
return -EINVAL;
@@ -501,7 +502,8 @@ static __u32 drm_gem_afbc_get_bpp(struct drm_device *dev,
{
const struct drm_format_info *info;
- info = drm_get_format_info(dev, mode_cmd);
+ info = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
switch (info->format) {
case DRM_FORMAT_YUV420_8BIT:
@@ -599,7 +601,8 @@ int drm_gem_fb_afbc_init(struct drm_device *dev,
int ret;
objs = afbc_fb->base.obj;
- info = drm_get_format_info(dev, mode_cmd);
+ info = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
if (!info)
return -EINVAL;
diff --git a/drivers/gpu/drm/drm_modeset_helper.c b/drivers/gpu/drm/drm_modeset_helper.c
index 5565464c1734..dff14af68832 100644
--- a/drivers/gpu/drm/drm_modeset_helper.c
+++ b/drivers/gpu/drm/drm_modeset_helper.c
@@ -84,7 +84,8 @@ void drm_helper_mode_fill_fb_struct(struct drm_device *dev,
int i;
fb->dev = dev;
- fb->format = drm_get_format_info(dev, mode_cmd);
+ fb->format = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
fb->width = mode_cmd->width;
fb->height = mode_cmd->height;
for (i = 0; i < 4; i++) {
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fb.c b/drivers/gpu/drm/exynos/exynos_drm_fb.c
index fc1c5608db96..bcf7b534d1f7 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fb.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fb.c
@@ -96,7 +96,9 @@ static struct drm_framebuffer *
exynos_user_fb_create(struct drm_device *dev, struct drm_file *file_priv,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
- const struct drm_format_info *info = drm_get_format_info(dev, mode_cmd);
+ const struct drm_format_info *info = drm_get_format_info(dev,
+ mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
struct exynos_drm_gem *exynos_gem[MAX_FB_BUFFER];
struct drm_framebuffer *fb;
int i;
diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
index 1a374702b696..c82e623a2071 100644
--- a/drivers/gpu/drm/gma500/framebuffer.c
+++ b/drivers/gpu/drm/gma500/framebuffer.c
@@ -39,7 +39,8 @@ static int psb_framebuffer_init(struct drm_device *dev,
* Reject unknown formats, YUV formats, and formats with more than
* 4 bytes per pixel.
*/
- info = drm_get_format_info(dev, mode_cmd);
+ info = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
if (!info || !info->depth || info->cpp[0] > 4)
return -EINVAL;
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
index 74158b9d6503..64521577b05f 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -45,7 +45,9 @@ mtk_drm_mode_fb_create(struct drm_device *dev,
struct drm_file *file,
const struct drm_mode_fb_cmd2 *cmd)
{
- const struct drm_format_info *info = drm_get_format_info(dev, cmd);
+ const struct drm_format_info *info = drm_get_format_info(dev,
+ cmd->pixel_format,
+ cmd->modifier[0]);
if (info->num_planes != 1)
return ERR_PTR(-EINVAL);
diff --git a/drivers/gpu/drm/msm/msm_fb.c b/drivers/gpu/drm/msm/msm_fb.c
index 09268e416843..df2f85c44d55 100644
--- a/drivers/gpu/drm/msm/msm_fb.c
+++ b/drivers/gpu/drm/msm/msm_fb.c
@@ -137,7 +137,8 @@ struct drm_framebuffer *msm_framebuffer_create(struct drm_device *dev,
struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd)
{
const struct drm_format_info *info = drm_get_format_info(dev,
- mode_cmd);
+ mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
struct drm_gem_object *bos[4] = {0};
struct drm_framebuffer *fb;
int ret, i, n = info->num_planes;
@@ -168,7 +169,8 @@ static struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev,
const struct drm_mode_fb_cmd2 *mode_cmd, struct drm_gem_object **bos)
{
const struct drm_format_info *info = drm_get_format_info(dev,
- mode_cmd);
+ mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
struct msm_drm_private *priv = dev->dev_private;
struct msm_kms *kms = priv->kms;
struct msm_framebuffer *msm_fb = NULL;
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
index c183b1112bc4..09329af9b01e 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -95,7 +95,8 @@ mxsfb_fb_create(struct drm_device *dev, struct drm_file *file_priv,
{
const struct drm_format_info *info;
- info = drm_get_format_info(dev, mode_cmd);
+ info = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
if (!info)
return ERR_PTR(-EINVAL);
diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
index add006fc8d81..a54c3f132c5c 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
@@ -295,7 +295,8 @@ nouveau_framebuffer_new(struct drm_device *dev,
kind = nvbo->kind;
}
- info = drm_get_format_info(dev, mode_cmd);
+ info = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
for (i = 0; i < info->num_planes; i++) {
height = drm_format_info_plane_height(info,
diff --git a/drivers/gpu/drm/omapdrm/omap_fb.c b/drivers/gpu/drm/omapdrm/omap_fb.c
index 449d521c78fe..e18878068c57 100644
--- a/drivers/gpu/drm/omapdrm/omap_fb.c
+++ b/drivers/gpu/drm/omapdrm/omap_fb.c
@@ -338,7 +338,8 @@ struct drm_framebuffer *omap_framebuffer_create(struct drm_device *dev,
struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd)
{
const struct drm_format_info *info = drm_get_format_info(dev,
- mode_cmd);
+ mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
unsigned int num_planes = info->num_planes;
struct drm_gem_object *bos[4];
struct drm_framebuffer *fb;
@@ -378,7 +379,8 @@ struct drm_framebuffer *omap_framebuffer_init(struct drm_device *dev,
dev, mode_cmd, mode_cmd->width, mode_cmd->height,
(char *)&mode_cmd->pixel_format);
- format = drm_get_format_info(dev, mode_cmd);
+ format = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
for (i = 0; i < ARRAY_SIZE(formats); i++) {
if (formats[i] == mode_cmd->pixel_format)
diff --git a/drivers/gpu/drm/radeon/radeon_fbdev.c b/drivers/gpu/drm/radeon/radeon_fbdev.c
index d4a58bd679db..e3a481bbee7b 100644
--- a/drivers/gpu/drm/radeon/radeon_fbdev.c
+++ b/drivers/gpu/drm/radeon/radeon_fbdev.c
@@ -67,7 +67,8 @@ static int radeon_fbdev_create_pinned_object(struct drm_fb_helper *fb_helper,
int height = mode_cmd->height;
u32 cpp;
- info = drm_get_format_info(rdev_to_drm(rdev), mode_cmd);
+ info = drm_get_format_info(rdev_to_drm(rdev), mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
cpp = info->cpp[0];
/* need to align pitch with crtc limits */
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
index dcc1f07632c3..bf25286c7665 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
@@ -36,7 +36,8 @@ rockchip_fb_create(struct drm_device *dev, struct drm_file *file,
const struct drm_format_info *info;
int ret;
- info = drm_get_format_info(dev, mode_cmd);
+ info = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
if (!info)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index 46170753699d..634c6346d947 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -134,7 +134,9 @@ struct drm_framebuffer *tegra_fb_create(struct drm_device *drm,
struct drm_file *file,
const struct drm_mode_fb_cmd2 *cmd)
{
- const struct drm_format_info *info = drm_get_format_info(drm, cmd);
+ const struct drm_format_info *info = drm_get_format_info(drm,
+ cmd->pixel_format,
+ cmd->modifier[0]);
struct tegra_bo *planes[4];
struct drm_gem_object *gem;
struct drm_framebuffer *fb;
diff --git a/include/drm/drm_fourcc.h b/include/drm/drm_fourcc.h
index c3f4405d6662..6fc08d884b80 100644
--- a/include/drm/drm_fourcc.h
+++ b/include/drm/drm_fourcc.h
@@ -309,7 +309,7 @@ const struct drm_format_info *__drm_format_info(u32 format);
const struct drm_format_info *drm_format_info(u32 format);
const struct drm_format_info *
drm_get_format_info(struct drm_device *dev,
- const struct drm_mode_fb_cmd2 *mode_cmd);
+ u32 pixel_format, u64 modifier);
uint32_t drm_mode_legacy_fb_format(uint32_t bpp, uint32_t depth);
uint32_t drm_driver_legacy_fb_format(struct drm_device *dev,
uint32_t bpp, uint32_t depth);
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH 03/19] drm: Look up the format info earlier
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
2025-04-10 16:32 ` [PATCH 01/19] drm: Pass pixel_format+modifier to .get_format_info() Ville Syrjala
2025-04-10 16:32 ` [PATCH 02/19] drm: Pass pixel_format+modifier directly to drm_get_format_info() Ville Syrjala
@ 2025-04-10 16:32 ` Ville Syrjala
2025-04-10 19:33 ` Laurent Pinchart
` (2 more replies)
2025-04-10 16:32 ` [PATCH 04/19] drm: Pass the format info to .fb_create() Ville Syrjala
` (25 subsequent siblings)
28 siblings, 3 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:32 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx, intel-xe
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Looks up the format info in already drm_internal_framebuffer_create()
so that we can later pass it along to .fb_create(). Currently various
drivers are doing additional lookups in their .fb_create()
implementations, and these lookups are rather expensive now (given
how many different pixel formats we have).
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/drm_framebuffer.c | 25 +++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c
index 18a0267e374e..ae09ef6977b2 100644
--- a/drivers/gpu/drm/drm_framebuffer.c
+++ b/drivers/gpu/drm/drm_framebuffer.c
@@ -153,18 +153,11 @@ int drm_mode_addfb_ioctl(struct drm_device *dev,
}
static int framebuffer_check(struct drm_device *dev,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *r)
{
- const struct drm_format_info *info;
int i;
- /* check if the format is supported at all */
- if (!__drm_format_info(r->pixel_format)) {
- drm_dbg_kms(dev, "bad framebuffer format %p4cc\n",
- &r->pixel_format);
- return -EINVAL;
- }
-
if (r->width == 0) {
drm_dbg_kms(dev, "bad framebuffer width %u\n", r->width);
return -EINVAL;
@@ -175,9 +168,6 @@ static int framebuffer_check(struct drm_device *dev,
return -EINVAL;
}
- /* now let the driver pick its own format info */
- info = drm_get_format_info(dev, r->pixel_format, r->modifier[0]);
-
for (i = 0; i < info->num_planes; i++) {
unsigned int width = drm_format_info_plane_width(info, r->width, i);
unsigned int height = drm_format_info_plane_height(info, r->height, i);
@@ -272,6 +262,7 @@ drm_internal_framebuffer_create(struct drm_device *dev,
struct drm_file *file_priv)
{
struct drm_mode_config *config = &dev->mode_config;
+ const struct drm_format_info *info;
struct drm_framebuffer *fb;
int ret;
@@ -297,7 +288,17 @@ drm_internal_framebuffer_create(struct drm_device *dev,
return ERR_PTR(-EINVAL);
}
- ret = framebuffer_check(dev, r);
+ /* check if the format is supported at all */
+ if (!__drm_format_info(r->pixel_format)) {
+ drm_dbg_kms(dev, "bad framebuffer format %p4cc\n",
+ &r->pixel_format);
+ return ERR_PTR(-EINVAL);
+ }
+
+ /* now let the driver pick its own format info */
+ info = drm_get_format_info(dev, r->pixel_format, r->modifier[0]);
+
+ ret = framebuffer_check(dev, info, r);
if (ret)
return ERR_PTR(ret);
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH 04/19] drm: Pass the format info to .fb_create()
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (2 preceding siblings ...)
2025-04-10 16:32 ` [PATCH 03/19] drm: Look up the format info earlier Ville Syrjala
@ 2025-04-10 16:32 ` Ville Syrjala
2025-04-10 19:37 ` Laurent Pinchart
` (3 more replies)
2025-04-10 16:32 ` [PATCH 05/19] drm: Allow the caller to pass in the format info to drm_helper_mode_fill_fb_struct() Ville Syrjala
` (24 subsequent siblings)
28 siblings, 4 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:32 UTC (permalink / raw)
To: dri-devel
Cc: intel-gfx, intel-xe, Alex Deucher, Liviu Dudau, Maxime Ripard,
Russell King, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Patrik Jakobsson, Chun-Kuang Hu, Philipp Zabel, Rob Clark,
Abhinav Kumar, Dmitry Baryshkov, Sean Paul, Marijn Suijten,
Marek Vasut, Stefan Agner, Lyude Paul, Danilo Krummrich,
Tomi Valkeinen, Dave Airlie, Gerd Hoffmann, Laurent Pinchart,
Kieran Bingham, Biju Das, Geert Uytterhoeven, Sandy Huang,
Heiko Stübner, Andy Yan, Thierry Reding, Mikko Perttunen,
Dave Stevenson, Maíra Canal, Raspberry Pi Kernel Maintenance,
Dmitry Osipenko, Gurchetan Singh, Chia-I Wu, Zack Rusin,
Broadcom internal kernel review list, Oleksandr Andrushchenko,
amd-gfx, linux-arm-msm, freedreno, nouveau, virtualization,
spice-devel
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Pass long the format information from the top to .fb_create()
so that we can avoid redundant (and somewhat expensive) lookups
in the drivers.
Done with cocci (with some manual fixups):
@@
identifier func =~ ".*create.*";
identifier dev, file, mode_cmd;
@@
struct drm_framebuffer *func(
struct drm_device *dev,
struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
...
(
- const struct drm_format_info *info = drm_get_format_info(...);
|
- const struct drm_format_info *info;
...
- info = drm_get_format_info(...);
)
<...
- if (!info)
- return ...;
...>
}
@@
identifier func =~ ".*create.*";
identifier dev, file, mode_cmd;
@@
struct drm_framebuffer *func(
struct drm_device *dev,
struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
...
}
@find@
identifier fb_create_func =~ ".*create.*";
identifier dev, file, mode_cmd;
@@
struct drm_framebuffer *fb_create_func(
struct drm_device *dev,
struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd);
@@
identifier find.fb_create_func;
expression dev, file, mode_cmd;
@@
fb_create_func(dev, file
+ ,info
,mode_cmd)
@@
expression dev, file, mode_cmd;
@@
drm_gem_fb_create(dev, file
+ ,info
,mode_cmd)
@@
expression dev, file, mode_cmd;
@@
drm_gem_fb_create_with_dirty(dev, file
+ ,info
,mode_cmd)
@@
expression dev, file_priv, mode_cmd;
identifier info, fb;
@@
info = drm_get_format_info(...);
...
fb = dev->mode_config.funcs->fb_create(dev, file_priv
+ ,info
,mode_cmd);
@@
identifier dev, file_priv, mode_cmd;
@@
struct drm_mode_config_funcs {
...
struct drm_framebuffer *(*fb_create)(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd);
...
};
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Cc: Chun-Kuang Hu <chunkuang.hu@kernel.org>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
Cc: Dmitry Baryshkov <lumag@kernel.org>
Cc: Sean Paul <sean@poorly.run>
Cc: Marijn Suijten <marijn.suijten@somainline.org>
Cc: Marek Vasut <marex@denx.de>
Cc: Stefan Agner <stefan@agner.ch>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Danilo Krummrich <dakr@kernel.org>
Cc: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Cc: Biju Das <biju.das.jz@bp.renesas.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Sandy Huang <hjc@rock-chips.com>
Cc: "Heiko Stübner" <heiko@sntech.de>
Cc: Andy Yan <andy.yan@rock-chips.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Mikko Perttunen <mperttunen@nvidia.com>
Cc: Dave Stevenson <dave.stevenson@raspberrypi.com>
Cc: "Maíra Canal" <mcanal@igalia.com>
Cc: Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
Cc: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Cc: Gurchetan Singh <gurchetansingh@chromium.org>
Cc: Chia-I Wu <olvaffe@gmail.com>
Cc: Zack Rusin <zack.rusin@broadcom.com>
Cc: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Cc: amd-gfx@lists.freedesktop.org
Cc: linux-arm-msm@vger.kernel.org
Cc: freedreno@lists.freedesktop.org
Cc: nouveau@lists.freedesktop.org
Cc: virtualization@lists.linux.dev
Cc: spice-devel@lists.freedesktop.org
Cc: linux-renesas-soc@vger.kernel.org
Cc: linux-tegra@vger.kernel.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_display.h | 1 +
.../gpu/drm/arm/display/komeda/komeda_framebuffer.c | 1 +
.../gpu/drm/arm/display/komeda/komeda_framebuffer.h | 1 +
drivers/gpu/drm/arm/malidp_drv.c | 3 ++-
drivers/gpu/drm/armada/armada_fb.c | 6 ++----
drivers/gpu/drm/armada/armada_fb.h | 3 ++-
drivers/gpu/drm/drm_framebuffer.c | 2 +-
drivers/gpu/drm/drm_gem_framebuffer_helper.c | 2 ++
drivers/gpu/drm/exynos/exynos_drm_fb.c | 4 +---
drivers/gpu/drm/gma500/framebuffer.c | 1 +
drivers/gpu/drm/i915/display/intel_fb.c | 1 +
drivers/gpu/drm/i915/display/intel_fb.h | 1 +
drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 5 +++--
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 7 ++-----
drivers/gpu/drm/msm/msm_drv.h | 3 ++-
drivers/gpu/drm/msm/msm_fb.c | 6 ++----
drivers/gpu/drm/mxsfb/mxsfb_drv.c | 10 ++--------
drivers/gpu/drm/nouveau/nouveau_display.c | 1 +
drivers/gpu/drm/nouveau/nouveau_display.h | 1 +
drivers/gpu/drm/omapdrm/omap_fb.c | 6 ++----
drivers/gpu/drm/omapdrm/omap_fb.h | 3 ++-
drivers/gpu/drm/qxl/qxl_display.c | 1 +
drivers/gpu/drm/radeon/radeon_display.c | 1 +
drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c | 3 ++-
drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c | 3 ++-
drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c | 3 ++-
drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 7 +------
drivers/gpu/drm/tegra/drm.h | 1 +
drivers/gpu/drm/tegra/fb.c | 4 +---
drivers/gpu/drm/tests/drm_framebuffer_test.c | 1 +
drivers/gpu/drm/vc4/vc4_kms.c | 3 ++-
drivers/gpu/drm/virtio/virtgpu_display.c | 1 +
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 1 +
drivers/gpu/drm/xen/xen_drm_front_kms.c | 1 +
drivers/gpu/drm/xlnx/zynqmp_kms.c | 3 ++-
include/drm/drm_gem_framebuffer_helper.h | 3 +++
include/drm/drm_mode_config.h | 1 +
38 files changed, 57 insertions(+), 49 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
index 35c778426a7c..10c57ded0e3e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
@@ -1297,6 +1297,7 @@ static int amdgpu_display_framebuffer_init(struct drm_device *dev,
struct drm_framebuffer *
amdgpu_display_user_framebuffer_create(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct amdgpu_framebuffer *amdgpu_fb;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.h
index dfa0d642ac16..930c171473b4 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.h
@@ -44,6 +44,7 @@ uint32_t amdgpu_display_supported_domains(struct amdgpu_device *adev,
struct drm_framebuffer *
amdgpu_display_user_framebuffer_create(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd);
const struct drm_format_info *
amdgpu_lookup_format_info(u32 format, uint64_t modifier);
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
index df5da5a44755..29b05482f713 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
@@ -157,6 +157,7 @@ komeda_fb_none_afbc_size_check(struct komeda_dev *mdev, struct komeda_fb *kfb,
struct drm_framebuffer *
komeda_fb_create(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct komeda_dev *mdev = dev->dev_private;
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.h b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.h
index c61ca98a3a63..02b2b8ae482a 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.h
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.h
@@ -37,6 +37,7 @@ struct komeda_fb {
struct drm_framebuffer *
komeda_fb_create(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd);
int komeda_fb_check_src_coords(const struct komeda_fb *kfb,
u32 src_x, u32 src_y, u32 src_w, u32 src_h);
diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
index 558e44a7e627..8b920566f2e8 100644
--- a/drivers/gpu/drm/arm/malidp_drv.c
+++ b/drivers/gpu/drm/arm/malidp_drv.c
@@ -377,6 +377,7 @@ malidp_verify_afbc_framebuffer(struct drm_device *dev, struct drm_file *file,
static struct drm_framebuffer *
malidp_fb_create(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
if (mode_cmd->modifier[0]) {
@@ -384,7 +385,7 @@ malidp_fb_create(struct drm_device *dev, struct drm_file *file,
return ERR_PTR(-EINVAL);
}
- return drm_gem_fb_create(dev, file, mode_cmd);
+ return drm_gem_fb_create(dev, file, info, mode_cmd);
}
static const struct drm_mode_config_funcs malidp_mode_config_funcs = {
diff --git a/drivers/gpu/drm/armada/armada_fb.c b/drivers/gpu/drm/armada/armada_fb.c
index 85fc2cb50544..597720e229c2 100644
--- a/drivers/gpu/drm/armada/armada_fb.c
+++ b/drivers/gpu/drm/armada/armada_fb.c
@@ -84,11 +84,9 @@ struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev,
}
struct drm_framebuffer *armada_fb_create(struct drm_device *dev,
- struct drm_file *dfile, const struct drm_mode_fb_cmd2 *mode)
+ struct drm_file *dfile, const struct drm_format_info *info,
+ const struct drm_mode_fb_cmd2 *mode)
{
- const struct drm_format_info *info = drm_get_format_info(dev,
- mode->pixel_format,
- mode->modifier[0]);
struct armada_gem_object *obj;
struct armada_framebuffer *dfb;
int ret;
diff --git a/drivers/gpu/drm/armada/armada_fb.h b/drivers/gpu/drm/armada/armada_fb.h
index c5bc53d7e0c4..41ba76dd80d6 100644
--- a/drivers/gpu/drm/armada/armada_fb.h
+++ b/drivers/gpu/drm/armada/armada_fb.h
@@ -19,5 +19,6 @@ struct armada_framebuffer {
struct armada_framebuffer *armada_framebuffer_create(struct drm_device *,
const struct drm_mode_fb_cmd2 *, struct armada_gem_object *);
struct drm_framebuffer *armada_fb_create(struct drm_device *dev,
- struct drm_file *dfile, const struct drm_mode_fb_cmd2 *mode);
+ struct drm_file *dfile, const struct drm_format_info *info,
+ const struct drm_mode_fb_cmd2 *mode);
#endif
diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c
index ae09ef6977b2..61a7213f2389 100644
--- a/drivers/gpu/drm/drm_framebuffer.c
+++ b/drivers/gpu/drm/drm_framebuffer.c
@@ -302,7 +302,7 @@ drm_internal_framebuffer_create(struct drm_device *dev,
if (ret)
return ERR_PTR(ret);
- fb = dev->mode_config.funcs->fb_create(dev, file_priv, r);
+ fb = dev->mode_config.funcs->fb_create(dev, file_priv, info, r);
if (IS_ERR(fb)) {
drm_dbg_kms(dev, "could not create framebuffer\n");
return fb;
diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
index 8f1213ea0e16..1b58823e14b1 100644
--- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
+++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
@@ -282,6 +282,7 @@ static const struct drm_framebuffer_funcs drm_gem_fb_funcs = {
*/
struct drm_framebuffer *
drm_gem_fb_create(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
return drm_gem_fb_create_with_funcs(dev, file, mode_cmd,
@@ -320,6 +321,7 @@ static const struct drm_framebuffer_funcs drm_gem_fb_funcs_dirtyfb = {
*/
struct drm_framebuffer *
drm_gem_fb_create_with_dirty(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
return drm_gem_fb_create_with_funcs(dev, file, mode_cmd,
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fb.c b/drivers/gpu/drm/exynos/exynos_drm_fb.c
index bcf7b534d1f7..9ae526825726 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fb.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fb.c
@@ -94,11 +94,9 @@ exynos_drm_framebuffer_init(struct drm_device *dev,
static struct drm_framebuffer *
exynos_user_fb_create(struct drm_device *dev, struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
- const struct drm_format_info *info = drm_get_format_info(dev,
- mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
struct exynos_drm_gem *exynos_gem[MAX_FB_BUFFER];
struct drm_framebuffer *fb;
int i;
diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
index c82e623a2071..a4a18ec2dd56 100644
--- a/drivers/gpu/drm/gma500/framebuffer.c
+++ b/drivers/gpu/drm/gma500/framebuffer.c
@@ -97,6 +97,7 @@ struct drm_framebuffer *psb_framebuffer_create(struct drm_device *dev,
*/
static struct drm_framebuffer *psb_user_framebuffer_create
(struct drm_device *dev, struct drm_file *filp,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *cmd)
{
struct drm_gem_object *obj;
diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index b83c42fe3233..dd1d5c00395e 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -2323,6 +2323,7 @@ int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
struct drm_framebuffer *
intel_user_framebuffer_create(struct drm_device *dev,
struct drm_file *filp,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *user_mode_cmd)
{
struct drm_framebuffer *fb;
diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
index 7d1267fbeee2..00181c4a67dc 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.h
+++ b/drivers/gpu/drm/i915/display/intel_fb.h
@@ -109,6 +109,7 @@ intel_framebuffer_create(struct drm_gem_object *obj,
struct drm_framebuffer *
intel_user_framebuffer_create(struct drm_device *dev,
struct drm_file *filp,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *user_mode_cmd);
bool intel_fb_modifier_uses_dpt(struct intel_display *display, u64 modifier);
diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
index f851e9ffdb28..9db1ceaed518 100644
--- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
+++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
@@ -901,14 +901,15 @@ static void ingenic_drm_disable_vblank(struct drm_crtc *crtc)
static struct drm_framebuffer *
ingenic_drm_gem_fb_create(struct drm_device *drm, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct ingenic_drm *priv = drm_device_get_priv(drm);
if (priv->soc_info->map_noncoherent)
- return drm_gem_fb_create_with_dirty(drm, file, mode_cmd);
+ return drm_gem_fb_create_with_dirty(drm, file, info, mode_cmd);
- return drm_gem_fb_create(drm, file, mode_cmd);
+ return drm_gem_fb_create(drm, file, info, mode_cmd);
}
static struct drm_gem_object *
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
index 64521577b05f..76fd10afe467 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -43,16 +43,13 @@ static const struct drm_mode_config_helper_funcs mtk_drm_mode_config_helpers = {
static struct drm_framebuffer *
mtk_drm_mode_fb_create(struct drm_device *dev,
struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *cmd)
{
- const struct drm_format_info *info = drm_get_format_info(dev,
- cmd->pixel_format,
- cmd->modifier[0]);
-
if (info->num_planes != 1)
return ERR_PTR(-EINVAL);
- return drm_gem_fb_create(dev, file, cmd);
+ return drm_gem_fb_create(dev, file, info, cmd);
}
static const struct drm_mode_config_funcs mtk_drm_mode_config_funcs = {
diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h
index a65077855201..ba82fa756e57 100644
--- a/drivers/gpu/drm/msm/msm_drv.h
+++ b/drivers/gpu/drm/msm/msm_drv.h
@@ -271,7 +271,8 @@ uint32_t msm_framebuffer_iova(struct drm_framebuffer *fb,
struct drm_gem_object *msm_framebuffer_bo(struct drm_framebuffer *fb, int plane);
const struct msm_format *msm_framebuffer_format(struct drm_framebuffer *fb);
struct drm_framebuffer *msm_framebuffer_create(struct drm_device *dev,
- struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd);
+ struct drm_file *file, const struct drm_format_info *info,
+ const struct drm_mode_fb_cmd2 *mode_cmd);
struct drm_framebuffer * msm_alloc_stolen_fb(struct drm_device *dev,
int w, int h, int p, uint32_t format);
diff --git a/drivers/gpu/drm/msm/msm_fb.c b/drivers/gpu/drm/msm/msm_fb.c
index df2f85c44d55..4aef51cef3d5 100644
--- a/drivers/gpu/drm/msm/msm_fb.c
+++ b/drivers/gpu/drm/msm/msm_fb.c
@@ -134,11 +134,9 @@ const struct msm_format *msm_framebuffer_format(struct drm_framebuffer *fb)
}
struct drm_framebuffer *msm_framebuffer_create(struct drm_device *dev,
- struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd)
+ struct drm_file *file, const struct drm_format_info *info,
+ const struct drm_mode_fb_cmd2 *mode_cmd)
{
- const struct drm_format_info *info = drm_get_format_info(dev,
- mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
struct drm_gem_object *bos[4] = {0};
struct drm_framebuffer *fb;
int ret, i, n = info->num_planes;
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
index 09329af9b01e..0b756da2fec2 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -91,21 +91,15 @@ void mxsfb_disable_axi_clk(struct mxsfb_drm_private *mxsfb)
static struct drm_framebuffer *
mxsfb_fb_create(struct drm_device *dev, struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
- const struct drm_format_info *info;
-
- info = drm_get_format_info(dev, mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
- if (!info)
- return ERR_PTR(-EINVAL);
-
if (mode_cmd->width * info->cpp[0] != mode_cmd->pitches[0]) {
dev_dbg(dev->dev, "Invalid pitch: fb width must match pitch\n");
return ERR_PTR(-EINVAL);
}
- return drm_gem_fb_create(dev, file_priv, mode_cmd);
+ return drm_gem_fb_create(dev, file_priv, info, mode_cmd);
}
static const struct drm_mode_config_funcs mxsfb_mode_config_funcs = {
diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
index a54c3f132c5c..3df388784bd3 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
@@ -333,6 +333,7 @@ nouveau_framebuffer_new(struct drm_device *dev,
struct drm_framebuffer *
nouveau_user_framebuffer_create(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct drm_framebuffer *fb;
diff --git a/drivers/gpu/drm/nouveau/nouveau_display.h b/drivers/gpu/drm/nouveau/nouveau_display.h
index 1f506f8b289c..e45f211501f6 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.h
+++ b/drivers/gpu/drm/nouveau/nouveau_display.h
@@ -67,5 +67,6 @@ nouveau_framebuffer_get_layout(struct drm_framebuffer *fb, uint32_t *tile_mode,
struct drm_framebuffer *
nouveau_user_framebuffer_create(struct drm_device *, struct drm_file *,
+ const struct drm_format_info *,
const struct drm_mode_fb_cmd2 *);
#endif
diff --git a/drivers/gpu/drm/omapdrm/omap_fb.c b/drivers/gpu/drm/omapdrm/omap_fb.c
index e18878068c57..36afcd1c1fd7 100644
--- a/drivers/gpu/drm/omapdrm/omap_fb.c
+++ b/drivers/gpu/drm/omapdrm/omap_fb.c
@@ -335,11 +335,9 @@ void omap_framebuffer_describe(struct drm_framebuffer *fb, struct seq_file *m)
#endif
struct drm_framebuffer *omap_framebuffer_create(struct drm_device *dev,
- struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd)
+ struct drm_file *file, const struct drm_format_info *info,
+ const struct drm_mode_fb_cmd2 *mode_cmd)
{
- const struct drm_format_info *info = drm_get_format_info(dev,
- mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
unsigned int num_planes = info->num_planes;
struct drm_gem_object *bos[4];
struct drm_framebuffer *fb;
diff --git a/drivers/gpu/drm/omapdrm/omap_fb.h b/drivers/gpu/drm/omapdrm/omap_fb.h
index b75f0b5ef1d8..0873f953cf1d 100644
--- a/drivers/gpu/drm/omapdrm/omap_fb.h
+++ b/drivers/gpu/drm/omapdrm/omap_fb.h
@@ -20,7 +20,8 @@ struct omap_overlay_info;
struct seq_file;
struct drm_framebuffer *omap_framebuffer_create(struct drm_device *dev,
- struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd);
+ struct drm_file *file, const struct drm_format_info *info,
+ const struct drm_mode_fb_cmd2 *mode_cmd);
struct drm_framebuffer *omap_framebuffer_init(struct drm_device *dev,
const struct drm_mode_fb_cmd2 *mode_cmd, struct drm_gem_object **bos);
int omap_framebuffer_pin(struct drm_framebuffer *fb);
diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
index 70aff64ced87..f7bc83f2d489 100644
--- a/drivers/gpu/drm/qxl/qxl_display.c
+++ b/drivers/gpu/drm/qxl/qxl_display.c
@@ -1176,6 +1176,7 @@ static int qdev_output_init(struct drm_device *dev, int num_output)
static struct drm_framebuffer *
qxl_user_framebuffer_create(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
return drm_gem_fb_create_with_funcs(dev, file_priv, mode_cmd,
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index 8f5f8abcb1b4..85b714ac9882 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -1314,6 +1314,7 @@ radeon_framebuffer_init(struct drm_device *dev,
static struct drm_framebuffer *
radeon_user_framebuffer_create(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct drm_gem_object *obj;
diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
index 70d8ad065bfa..af22a5d23637 100644
--- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
+++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
@@ -426,6 +426,7 @@ int rcar_du_dumb_create(struct drm_file *file, struct drm_device *dev,
static struct drm_framebuffer *
rcar_du_fb_create(struct drm_device *dev, struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct rcar_du_device *rcdu = to_rcar_du_device(dev);
@@ -490,7 +491,7 @@ rcar_du_fb_create(struct drm_device *dev, struct drm_file *file_priv,
}
}
- return drm_gem_fb_create(dev, file_priv, mode_cmd);
+ return drm_gem_fb_create(dev, file_priv, info, mode_cmd);
}
/* -----------------------------------------------------------------------------
diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
index 55a97691e9b2..87f171145a23 100644
--- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
+++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
@@ -191,6 +191,7 @@ int rzg2l_du_dumb_create(struct drm_file *file, struct drm_device *dev,
static struct drm_framebuffer *
rzg2l_du_fb_create(struct drm_device *dev, struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
const struct rzg2l_du_format_info *format;
@@ -214,7 +215,7 @@ rzg2l_du_fb_create(struct drm_device *dev, struct drm_file *file_priv,
return ERR_PTR(-EINVAL);
}
- return drm_gem_fb_create(dev, file_priv, mode_cmd);
+ return drm_gem_fb_create(dev, file_priv, info, mode_cmd);
}
/* -----------------------------------------------------------------------------
diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c
index 4202ab00fb0c..fd9460da1789 100644
--- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c
+++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c
@@ -117,6 +117,7 @@ const struct shmob_drm_format_info *shmob_drm_format_info(u32 fourcc)
static struct drm_framebuffer *
shmob_drm_fb_create(struct drm_device *dev, struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
const struct shmob_drm_format_info *format;
@@ -144,7 +145,7 @@ shmob_drm_fb_create(struct drm_device *dev, struct drm_file *file_priv,
}
}
- return drm_gem_fb_create(dev, file_priv, mode_cmd);
+ return drm_gem_fb_create(dev, file_priv, info, mode_cmd);
}
static const struct drm_mode_config_funcs shmob_drm_mode_config_funcs = {
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
index bf25286c7665..d46297bec5f8 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
@@ -30,17 +30,12 @@ static const struct drm_mode_config_helper_funcs rockchip_mode_config_helpers =
static struct drm_framebuffer *
rockchip_fb_create(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct drm_afbc_framebuffer *afbc_fb;
- const struct drm_format_info *info;
int ret;
- info = drm_get_format_info(dev, mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
- if (!info)
- return ERR_PTR(-ENOMEM);
-
afbc_fb = kzalloc(sizeof(*afbc_fb), GFP_KERNEL);
if (!afbc_fb)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/tegra/drm.h b/drivers/gpu/drm/tegra/drm.h
index 0b65e69f3a8a..77e520c43f72 100644
--- a/drivers/gpu/drm/tegra/drm.h
+++ b/drivers/gpu/drm/tegra/drm.h
@@ -190,6 +190,7 @@ struct drm_framebuffer *tegra_fb_alloc(struct drm_device *drm,
unsigned int num_planes);
struct drm_framebuffer *tegra_fb_create(struct drm_device *drm,
struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *cmd);
#ifdef CONFIG_DRM_FBDEV_EMULATION
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index 634c6346d947..24907573e758 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -132,11 +132,9 @@ struct drm_framebuffer *tegra_fb_alloc(struct drm_device *drm,
struct drm_framebuffer *tegra_fb_create(struct drm_device *drm,
struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *cmd)
{
- const struct drm_format_info *info = drm_get_format_info(drm,
- cmd->pixel_format,
- cmd->modifier[0]);
struct tegra_bo *planes[4];
struct drm_gem_object *gem;
struct drm_framebuffer *fb;
diff --git a/drivers/gpu/drm/tests/drm_framebuffer_test.c b/drivers/gpu/drm/tests/drm_framebuffer_test.c
index 6ea04cc8f324..9b8e01e8cd91 100644
--- a/drivers/gpu/drm/tests/drm_framebuffer_test.c
+++ b/drivers/gpu/drm/tests/drm_framebuffer_test.c
@@ -363,6 +363,7 @@ struct drm_framebuffer_test_priv {
static struct drm_framebuffer *fb_create_mock(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct drm_framebuffer_test_priv *priv = container_of(dev, typeof(*priv), dev);
diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c
index f5b167417428..8f983edb81ff 100644
--- a/drivers/gpu/drm/vc4/vc4_kms.c
+++ b/drivers/gpu/drm/vc4/vc4_kms.c
@@ -530,6 +530,7 @@ static int vc4_atomic_commit_setup(struct drm_atomic_state *state)
static struct drm_framebuffer *vc4_fb_create(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct vc4_dev *vc4 = to_vc4_dev(dev);
@@ -568,7 +569,7 @@ static struct drm_framebuffer *vc4_fb_create(struct drm_device *dev,
mode_cmd = &mode_cmd_local;
}
- return drm_gem_fb_create(dev, file_priv, mode_cmd);
+ return drm_gem_fb_create(dev, file_priv, info, mode_cmd);
}
/* Our CTM has some peculiar limitations: we can only enable it for one CRTC
diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
index 59a45e74a641..f9a98fbbabd1 100644
--- a/drivers/gpu/drm/virtio/virtgpu_display.c
+++ b/drivers/gpu/drm/virtio/virtgpu_display.c
@@ -293,6 +293,7 @@ static int vgdev_output_init(struct virtio_gpu_device *vgdev, int index)
static struct drm_framebuffer *
virtio_gpu_user_framebuffer_create(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct drm_gem_object *obj = NULL;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
index 05b1c54a070c..2d48a28cda9c 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
@@ -712,6 +712,7 @@ vmw_kms_new_framebuffer(struct vmw_private *dev_priv,
static struct drm_framebuffer *vmw_kms_fb_create(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct vmw_private *dev_priv = vmw_priv(dev);
diff --git a/drivers/gpu/drm/xen/xen_drm_front_kms.c b/drivers/gpu/drm/xen/xen_drm_front_kms.c
index dfa78a49a6d9..a360003bee47 100644
--- a/drivers/gpu/drm/xen/xen_drm_front_kms.c
+++ b/drivers/gpu/drm/xen/xen_drm_front_kms.c
@@ -54,6 +54,7 @@ static const struct drm_framebuffer_funcs fb_funcs = {
static struct drm_framebuffer *
fb_create(struct drm_device *dev, struct drm_file *filp,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct xen_drm_front_drm_info *drm_info = dev->dev_private;
diff --git a/drivers/gpu/drm/xlnx/zynqmp_kms.c b/drivers/gpu/drm/xlnx/zynqmp_kms.c
index b47463473472..2bee0a2275ed 100644
--- a/drivers/gpu/drm/xlnx/zynqmp_kms.c
+++ b/drivers/gpu/drm/xlnx/zynqmp_kms.c
@@ -373,6 +373,7 @@ static int zynqmp_dpsub_dumb_create(struct drm_file *file_priv,
static struct drm_framebuffer *
zynqmp_dpsub_fb_create(struct drm_device *drm, struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct zynqmp_dpsub *dpsub = to_zynqmp_dpsub(drm);
@@ -383,7 +384,7 @@ zynqmp_dpsub_fb_create(struct drm_device *drm, struct drm_file *file_priv,
for (i = 0; i < ARRAY_SIZE(cmd.pitches); ++i)
cmd.pitches[i] = ALIGN(cmd.pitches[i], dpsub->dma_align);
- return drm_gem_fb_create(drm, file_priv, &cmd);
+ return drm_gem_fb_create(drm, file_priv, info, &cmd);
}
static const struct drm_mode_config_funcs zynqmp_dpsub_mode_config_funcs = {
diff --git a/include/drm/drm_gem_framebuffer_helper.h b/include/drm/drm_gem_framebuffer_helper.h
index d302521f3dd4..4fdf9d3d1863 100644
--- a/include/drm/drm_gem_framebuffer_helper.h
+++ b/include/drm/drm_gem_framebuffer_helper.h
@@ -8,6 +8,7 @@ struct drm_afbc_framebuffer;
struct drm_device;
struct drm_fb_helper_surface_size;
struct drm_file;
+struct drm_format_info;
struct drm_framebuffer;
struct drm_framebuffer_funcs;
struct drm_gem_object;
@@ -32,9 +33,11 @@ drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
const struct drm_framebuffer_funcs *funcs);
struct drm_framebuffer *
drm_gem_fb_create(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd);
struct drm_framebuffer *
drm_gem_fb_create_with_dirty(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd);
int drm_gem_fb_vmap(struct drm_framebuffer *fb, struct iosys_map *map,
diff --git a/include/drm/drm_mode_config.h b/include/drm/drm_mode_config.h
index 6fca0362bc31..bea88446fcdc 100644
--- a/include/drm/drm_mode_config.h
+++ b/include/drm/drm_mode_config.h
@@ -82,6 +82,7 @@ struct drm_mode_config_funcs {
*/
struct drm_framebuffer *(*fb_create)(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd);
/**
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH 05/19] drm: Allow the caller to pass in the format info to drm_helper_mode_fill_fb_struct()
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (3 preceding siblings ...)
2025-04-10 16:32 ` [PATCH 04/19] drm: Pass the format info to .fb_create() Ville Syrjala
@ 2025-04-10 16:32 ` Ville Syrjala
2025-04-10 19:38 ` Laurent Pinchart
2025-04-10 16:32 ` [PATCH 06/19] drm/malidp: Pass along the format info from .fb_create() malidp_verify_afbc_framebuffer_size() Ville Syrjala
` (23 subsequent siblings)
28 siblings, 1 reply; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:32 UTC (permalink / raw)
To: dri-devel
Cc: intel-gfx, intel-xe, Alex Deucher, Liviu Dudau, Russell King,
Inki Dae, Seung-Woo Kim, Kyungmin Park, Patrik Jakobsson,
Rob Clark, Abhinav Kumar, Dmitry Baryshkov, Sean Paul,
Marijn Suijten, Lyude Paul, Danilo Krummrich, Tomi Valkeinen,
Thierry Reding, Mikko Perttunen, Gerd Hoffmann, Dmitry Osipenko,
Gurchetan Singh, Chia-I Wu, Zack Rusin,
Broadcom internal kernel review list, amd-gfx, linux-arm-msm,
freedreno, nouveau, linux-tegra, virtualization
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Soon all drivers should have the format info already available in the
places where they call drm_helper_mode_fill_fb_struct(). Allow it to
be passed along into drm_helper_mode_fill_fb_struct() instead of doing
yet another redundant lookup.
Start by always passing in NULL and still doing the extra lookup.
The actual changes to avoid the lookup will follow.
Done with cocci (with some manual fixups):
@@
identifier dev, fb, mode_cmd;
expression get_format_info;
@@
void drm_helper_mode_fill_fb_struct(struct drm_device *dev,
struct drm_framebuffer *fb,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
...
- fb->format = get_format_info;
+ fb->format = info ?: get_format_info;
...
}
@@
identifier dev, fb, mode_cmd;
@@
void drm_helper_mode_fill_fb_struct(struct drm_device *dev,
struct drm_framebuffer *fb,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd);
@@
expression dev, fb, mode_cmd;
@@
drm_helper_mode_fill_fb_struct(dev, fb
+ ,NULL
,mode_cmd);
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
Cc: Dmitry Baryshkov <lumag@kernel.org>
Cc: Sean Paul <sean@poorly.run>
Cc: Marijn Suijten <marijn.suijten@somainline.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Danilo Krummrich <dakr@kernel.org>
Cc: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Mikko Perttunen <mperttunen@nvidia.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Cc: Gurchetan Singh <gurchetansingh@chromium.org>
Cc: Chia-I Wu <olvaffe@gmail.com>
Cc: Zack Rusin <zack.rusin@broadcom.com>
Cc: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
Cc: amd-gfx@lists.freedesktop.org
Cc: linux-arm-msm@vger.kernel.org
Cc: freedreno@lists.freedesktop.org
Cc: nouveau@lists.freedesktop.org
Cc: linux-tegra@vger.kernel.org
Cc: virtualization@lists.linux.dev
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 2 +-
drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c | 2 +-
drivers/gpu/drm/armada/armada_fb.c | 2 +-
drivers/gpu/drm/drm_gem_framebuffer_helper.c | 2 +-
drivers/gpu/drm/drm_modeset_helper.c | 6 ++++--
drivers/gpu/drm/exynos/exynos_drm_fb.c | 2 +-
drivers/gpu/drm/gma500/framebuffer.c | 2 +-
drivers/gpu/drm/i915/display/intel_fb.c | 2 +-
drivers/gpu/drm/msm/msm_fb.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_display.c | 2 +-
drivers/gpu/drm/omapdrm/omap_fb.c | 2 +-
drivers/gpu/drm/radeon/radeon_display.c | 2 +-
drivers/gpu/drm/tegra/fb.c | 2 +-
drivers/gpu/drm/virtio/virtgpu_display.c | 2 +-
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 4 ++--
include/drm/drm_modeset_helper.h | 2 ++
16 files changed, 21 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
index 10c57ded0e3e..4cbbae543e34 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
@@ -1202,7 +1202,7 @@ static int amdgpu_display_gem_fb_verify_and_init(struct drm_device *dev,
int ret;
rfb->base.obj[0] = obj;
- drm_helper_mode_fill_fb_struct(dev, &rfb->base, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, &rfb->base, NULL, mode_cmd);
/* Verify that the modifier is supported. */
if (!drm_any_plane_has_format(dev, mode_cmd->pixel_format,
mode_cmd->modifier[0])) {
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
index 29b05482f713..acd8e505ebc7 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
@@ -178,7 +178,7 @@ komeda_fb_create(struct drm_device *dev, struct drm_file *file,
return ERR_PTR(-EINVAL);
}
- drm_helper_mode_fill_fb_struct(dev, &kfb->base, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, &kfb->base, NULL, mode_cmd);
if (kfb->base.modifier)
ret = komeda_fb_afbc_size_check(kfb, file, mode_cmd);
diff --git a/drivers/gpu/drm/armada/armada_fb.c b/drivers/gpu/drm/armada/armada_fb.c
index 597720e229c2..7e94ec5bd4f4 100644
--- a/drivers/gpu/drm/armada/armada_fb.c
+++ b/drivers/gpu/drm/armada/armada_fb.c
@@ -64,7 +64,7 @@ struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev,
dfb->mod = config;
dfb->fb.obj[0] = &obj->obj;
- drm_helper_mode_fill_fb_struct(dev, &dfb->fb, mode);
+ drm_helper_mode_fill_fb_struct(dev, &dfb->fb, NULL, mode);
ret = drm_framebuffer_init(dev, &dfb->fb, &armada_fb_funcs);
if (ret) {
diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
index 1b58823e14b1..dc9cb6cdcfd6 100644
--- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
+++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
@@ -74,7 +74,7 @@ drm_gem_fb_init(struct drm_device *dev,
unsigned int i;
int ret;
- drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
for (i = 0; i < num_planes; i++)
fb->obj[i] = obj[i];
diff --git a/drivers/gpu/drm/drm_modeset_helper.c b/drivers/gpu/drm/drm_modeset_helper.c
index dff14af68832..ae2a83ecb1cf 100644
--- a/drivers/gpu/drm/drm_modeset_helper.c
+++ b/drivers/gpu/drm/drm_modeset_helper.c
@@ -72,6 +72,7 @@ EXPORT_SYMBOL(drm_helper_move_panel_connectors_to_head);
* drm_helper_mode_fill_fb_struct - fill out framebuffer metadata
* @dev: DRM device
* @fb: drm_framebuffer object to fill out
+ * @info: pixel format information
* @mode_cmd: metadata from the userspace fb creation request
*
* This helper can be used in a drivers fb_create callback to pre-fill the fb's
@@ -79,13 +80,14 @@ EXPORT_SYMBOL(drm_helper_move_panel_connectors_to_head);
*/
void drm_helper_mode_fill_fb_struct(struct drm_device *dev,
struct drm_framebuffer *fb,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
int i;
fb->dev = dev;
- fb->format = drm_get_format_info(dev, mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
+ fb->format = info ? : drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
fb->width = mode_cmd->width;
fb->height = mode_cmd->height;
for (i = 0; i < 4; i++) {
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fb.c b/drivers/gpu/drm/exynos/exynos_drm_fb.c
index 9ae526825726..7091d31835ec 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fb.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fb.c
@@ -76,7 +76,7 @@ exynos_drm_framebuffer_init(struct drm_device *dev,
fb->obj[i] = &exynos_gem[i]->base;
}
- drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
ret = drm_framebuffer_init(dev, fb, &exynos_drm_fb_funcs);
if (ret < 0) {
diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
index a4a18ec2dd56..f9ade8361354 100644
--- a/drivers/gpu/drm/gma500/framebuffer.c
+++ b/drivers/gpu/drm/gma500/framebuffer.c
@@ -47,7 +47,7 @@ static int psb_framebuffer_init(struct drm_device *dev,
if (mode_cmd->pitches[0] & 63)
return -EINVAL;
- drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
fb->obj[0] = obj;
ret = drm_framebuffer_init(dev, fb, &psb_fb_funcs);
if (ret) {
diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index dd1d5c00395e..80a90bf1c75c 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -2253,7 +2253,7 @@ int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
goto err_frontbuffer_put;
}
- drm_helper_mode_fill_fb_struct(display->drm, fb, mode_cmd);
+ drm_helper_mode_fill_fb_struct(display->drm, fb, NULL, mode_cmd);
for (i = 0; i < fb->format->num_planes; i++) {
unsigned int stride_alignment;
diff --git a/drivers/gpu/drm/msm/msm_fb.c b/drivers/gpu/drm/msm/msm_fb.c
index 4aef51cef3d5..0615427e85ce 100644
--- a/drivers/gpu/drm/msm/msm_fb.c
+++ b/drivers/gpu/drm/msm/msm_fb.c
@@ -222,7 +222,7 @@ static struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev,
msm_fb->base.obj[i] = bos[i];
}
- drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
ret = drm_framebuffer_init(dev, fb, &msm_framebuffer_funcs);
if (ret) {
diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
index 3df388784bd3..dd069aaac9f4 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
@@ -321,7 +321,7 @@ nouveau_framebuffer_new(struct drm_device *dev,
if (!(fb = *pfb = kzalloc(sizeof(*fb), GFP_KERNEL)))
return -ENOMEM;
- drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
fb->obj[0] = gem;
ret = drm_framebuffer_init(dev, fb, &nouveau_framebuffer_funcs);
diff --git a/drivers/gpu/drm/omapdrm/omap_fb.c b/drivers/gpu/drm/omapdrm/omap_fb.c
index 36afcd1c1fd7..30c81e2e5d6b 100644
--- a/drivers/gpu/drm/omapdrm/omap_fb.c
+++ b/drivers/gpu/drm/omapdrm/omap_fb.c
@@ -440,7 +440,7 @@ struct drm_framebuffer *omap_framebuffer_init(struct drm_device *dev,
plane->dma_addr = 0;
}
- drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
ret = drm_framebuffer_init(dev, fb, &omap_framebuffer_funcs);
if (ret) {
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index 85b714ac9882..b4bf5dfeea2d 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -1302,7 +1302,7 @@ radeon_framebuffer_init(struct drm_device *dev,
{
int ret;
fb->obj[0] = obj;
- drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
ret = drm_framebuffer_init(dev, fb, &radeon_fb_funcs);
if (ret) {
fb->obj[0] = NULL;
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index 24907573e758..d359683f5ce6 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -114,7 +114,7 @@ struct drm_framebuffer *tegra_fb_alloc(struct drm_device *drm,
if (!fb)
return ERR_PTR(-ENOMEM);
- drm_helper_mode_fill_fb_struct(drm, fb, mode_cmd);
+ drm_helper_mode_fill_fb_struct(drm, fb, NULL, mode_cmd);
for (i = 0; i < fb->format->num_planes; i++)
fb->obj[i] = &planes[i]->gem;
diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
index f9a98fbbabd1..93763b91bab5 100644
--- a/drivers/gpu/drm/virtio/virtgpu_display.c
+++ b/drivers/gpu/drm/virtio/virtgpu_display.c
@@ -73,7 +73,7 @@ virtio_gpu_framebuffer_init(struct drm_device *dev,
vgfb->base.obj[0] = obj;
- drm_helper_mode_fill_fb_struct(dev, &vgfb->base, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, &vgfb->base, NULL, mode_cmd);
ret = drm_framebuffer_init(dev, &vgfb->base, &virtio_gpu_fb_funcs);
if (ret) {
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
index 2d48a28cda9c..35965e29e408 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
@@ -548,7 +548,7 @@ static int vmw_kms_new_framebuffer_surface(struct vmw_private *dev_priv,
goto out_err1;
}
- drm_helper_mode_fill_fb_struct(dev, &vfbs->base.base, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, &vfbs->base.base, NULL, mode_cmd);
memcpy(&vfbs->uo, uo, sizeof(vfbs->uo));
vmw_user_object_ref(&vfbs->uo);
@@ -634,7 +634,7 @@ static int vmw_kms_new_framebuffer_bo(struct vmw_private *dev_priv,
}
vfbd->base.base.obj[0] = &bo->tbo.base;
- drm_helper_mode_fill_fb_struct(dev, &vfbd->base.base, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, &vfbd->base.base, NULL, mode_cmd);
vfbd->base.bo = true;
vfbd->buffer = vmw_bo_reference(bo);
*out = &vfbd->base;
diff --git a/include/drm/drm_modeset_helper.h b/include/drm/drm_modeset_helper.h
index 995fd981cab0..7e3d4c5a7f66 100644
--- a/include/drm/drm_modeset_helper.h
+++ b/include/drm/drm_modeset_helper.h
@@ -26,6 +26,7 @@
struct drm_crtc;
struct drm_crtc_funcs;
struct drm_device;
+struct drm_format_info;
struct drm_framebuffer;
struct drm_mode_fb_cmd2;
@@ -33,6 +34,7 @@ void drm_helper_move_panel_connectors_to_head(struct drm_device *);
void drm_helper_mode_fill_fb_struct(struct drm_device *dev,
struct drm_framebuffer *fb,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd);
int drm_crtc_init(struct drm_device *dev, struct drm_crtc *crtc,
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH 06/19] drm/malidp: Pass along the format info from .fb_create() malidp_verify_afbc_framebuffer_size()
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (4 preceding siblings ...)
2025-04-10 16:32 ` [PATCH 05/19] drm: Allow the caller to pass in the format info to drm_helper_mode_fill_fb_struct() Ville Syrjala
@ 2025-04-10 16:32 ` Ville Syrjala
2025-04-10 16:32 ` [PATCH 07/19] drm/gem: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() Ville Syrjala
` (22 subsequent siblings)
28 siblings, 0 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:32 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx, intel-xe, Liviu Dudau
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Plumb the format info from .fb_create() all the way to
malidp_verify_afbc_framebuffer_size() to avoid the
redundant lookup.
Cc: Liviu Dudau <liviu.dudau@arm.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/arm/malidp_drv.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
index 8b920566f2e8..bc5f5e9798c3 100644
--- a/drivers/gpu/drm/arm/malidp_drv.c
+++ b/drivers/gpu/drm/arm/malidp_drv.c
@@ -306,10 +306,10 @@ malidp_verify_afbc_framebuffer_caps(struct drm_device *dev,
static bool
malidp_verify_afbc_framebuffer_size(struct drm_device *dev,
struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
int n_superblocks = 0;
- const struct drm_format_info *info;
struct drm_gem_object *objs = NULL;
u32 afbc_superblock_size = 0, afbc_superblock_height = 0;
u32 afbc_superblock_width = 0, afbc_size = 0;
@@ -325,9 +325,6 @@ malidp_verify_afbc_framebuffer_size(struct drm_device *dev,
return false;
}
- info = drm_get_format_info(dev, mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
-
n_superblocks = (mode_cmd->width / afbc_superblock_width) *
(mode_cmd->height / afbc_superblock_height);
@@ -367,10 +364,11 @@ malidp_verify_afbc_framebuffer_size(struct drm_device *dev,
static bool
malidp_verify_afbc_framebuffer(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
if (malidp_verify_afbc_framebuffer_caps(dev, mode_cmd))
- return malidp_verify_afbc_framebuffer_size(dev, file, mode_cmd);
+ return malidp_verify_afbc_framebuffer_size(dev, file, info, mode_cmd);
return false;
}
@@ -381,7 +379,7 @@ malidp_fb_create(struct drm_device *dev, struct drm_file *file,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
if (mode_cmd->modifier[0]) {
- if (!malidp_verify_afbc_framebuffer(dev, file, mode_cmd))
+ if (!malidp_verify_afbc_framebuffer(dev, file, info, mode_cmd))
return ERR_PTR(-EINVAL);
}
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH 07/19] drm/gem: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (5 preceding siblings ...)
2025-04-10 16:32 ` [PATCH 06/19] drm/malidp: Pass along the format info from .fb_create() malidp_verify_afbc_framebuffer_size() Ville Syrjala
@ 2025-04-10 16:32 ` Ville Syrjala
2025-04-10 19:39 ` Laurent Pinchart
` (2 more replies)
2025-04-10 16:32 ` [PATCH 08/19] drm/gem/afbc: Eliminate redundant drm_get_format_info() Ville Syrjala
` (21 subsequent siblings)
28 siblings, 3 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:32 UTC (permalink / raw)
To: dri-devel
Cc: intel-gfx, intel-xe, Dave Airlie, Gerd Hoffmann, Sandy Huang,
Heiko Stübner, Andy Yan, Oleksandr Andrushchenko,
virtualization, spice-devel
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Pass along the format info from .fb_create() to aliminate the
redundant drm_get_format_info() calls from the gem fb code.
Cc: Dave Airlie <airlied@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Sandy Huang <hjc@rock-chips.com>
Cc: "Heiko Stübner" <heiko@sntech.de>
Cc: Andy Yan <andy.yan@rock-chips.com>
Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Cc: virtualization@lists.linux.dev
Cc: spice-devel@lists.freedesktop.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/drm_gem_framebuffer_helper.c | 21 ++++++++------------
drivers/gpu/drm/qxl/qxl_display.c | 2 +-
drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 3 ++-
drivers/gpu/drm/xen/xen_drm_front_kms.c | 2 +-
include/drm/drm_gem_framebuffer_helper.h | 2 ++
5 files changed, 14 insertions(+), 16 deletions(-)
diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
index dc9cb6cdcfd6..44016915c8fe 100644
--- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
+++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
@@ -67,6 +67,7 @@ EXPORT_SYMBOL_GPL(drm_gem_fb_get_obj);
static int
drm_gem_fb_init(struct drm_device *dev,
struct drm_framebuffer *fb,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
struct drm_gem_object **obj, unsigned int num_planes,
const struct drm_framebuffer_funcs *funcs)
@@ -74,7 +75,7 @@ drm_gem_fb_init(struct drm_device *dev,
unsigned int i;
int ret;
- drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, fb, info, mode_cmd);
for (i = 0; i < num_planes; i++)
fb->obj[i] = obj[i];
@@ -151,21 +152,14 @@ EXPORT_SYMBOL(drm_gem_fb_create_handle);
int drm_gem_fb_init_with_funcs(struct drm_device *dev,
struct drm_framebuffer *fb,
struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
const struct drm_framebuffer_funcs *funcs)
{
- const struct drm_format_info *info;
struct drm_gem_object *objs[DRM_FORMAT_MAX_PLANES];
unsigned int i;
int ret;
- info = drm_get_format_info(dev, mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
- if (!info) {
- drm_dbg_kms(dev, "Failed to get FB format info\n");
- return -EINVAL;
- }
-
if (drm_drv_uses_atomic_modeset(dev) &&
!drm_any_plane_has_format(dev, mode_cmd->pixel_format,
mode_cmd->modifier[0])) {
@@ -200,7 +194,7 @@ int drm_gem_fb_init_with_funcs(struct drm_device *dev,
}
}
- ret = drm_gem_fb_init(dev, fb, mode_cmd, objs, i, funcs);
+ ret = drm_gem_fb_init(dev, fb, info, mode_cmd, objs, i, funcs);
if (ret)
goto err_gem_object_put;
@@ -233,6 +227,7 @@ EXPORT_SYMBOL_GPL(drm_gem_fb_init_with_funcs);
*/
struct drm_framebuffer *
drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
const struct drm_framebuffer_funcs *funcs)
{
@@ -243,7 +238,7 @@ drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
if (!fb)
return ERR_PTR(-ENOMEM);
- ret = drm_gem_fb_init_with_funcs(dev, fb, file, mode_cmd, funcs);
+ ret = drm_gem_fb_init_with_funcs(dev, fb, file, info, mode_cmd, funcs);
if (ret) {
kfree(fb);
return ERR_PTR(ret);
@@ -285,7 +280,7 @@ drm_gem_fb_create(struct drm_device *dev, struct drm_file *file,
const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
- return drm_gem_fb_create_with_funcs(dev, file, mode_cmd,
+ return drm_gem_fb_create_with_funcs(dev, file, info, mode_cmd,
&drm_gem_fb_funcs);
}
EXPORT_SYMBOL_GPL(drm_gem_fb_create);
@@ -324,7 +319,7 @@ drm_gem_fb_create_with_dirty(struct drm_device *dev, struct drm_file *file,
const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
- return drm_gem_fb_create_with_funcs(dev, file, mode_cmd,
+ return drm_gem_fb_create_with_funcs(dev, file, info, mode_cmd,
&drm_gem_fb_funcs_dirtyfb);
}
EXPORT_SYMBOL_GPL(drm_gem_fb_create_with_dirty);
diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
index f7bc83f2d489..ae7e572b1b4a 100644
--- a/drivers/gpu/drm/qxl/qxl_display.c
+++ b/drivers/gpu/drm/qxl/qxl_display.c
@@ -1179,7 +1179,7 @@ qxl_user_framebuffer_create(struct drm_device *dev,
const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
- return drm_gem_fb_create_with_funcs(dev, file_priv, mode_cmd,
+ return drm_gem_fb_create_with_funcs(dev, file_priv, info, mode_cmd,
&qxl_fb_funcs);
}
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
index d46297bec5f8..1211ca0ffa00 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
@@ -40,7 +40,8 @@ rockchip_fb_create(struct drm_device *dev, struct drm_file *file,
if (!afbc_fb)
return ERR_PTR(-ENOMEM);
- ret = drm_gem_fb_init_with_funcs(dev, &afbc_fb->base, file, mode_cmd,
+ ret = drm_gem_fb_init_with_funcs(dev, &afbc_fb->base,
+ file, info, mode_cmd,
&rockchip_drm_fb_funcs);
if (ret) {
kfree(afbc_fb);
diff --git a/drivers/gpu/drm/xen/xen_drm_front_kms.c b/drivers/gpu/drm/xen/xen_drm_front_kms.c
index a360003bee47..806ec66ee7f7 100644
--- a/drivers/gpu/drm/xen/xen_drm_front_kms.c
+++ b/drivers/gpu/drm/xen/xen_drm_front_kms.c
@@ -62,7 +62,7 @@ fb_create(struct drm_device *dev, struct drm_file *filp,
struct drm_gem_object *gem_obj;
int ret;
- fb = drm_gem_fb_create_with_funcs(dev, filp, mode_cmd, &fb_funcs);
+ fb = drm_gem_fb_create_with_funcs(dev, filp, info, mode_cmd, &fb_funcs);
if (IS_ERR(fb))
return fb;
diff --git a/include/drm/drm_gem_framebuffer_helper.h b/include/drm/drm_gem_framebuffer_helper.h
index 4fdf9d3d1863..971d266ab1ba 100644
--- a/include/drm/drm_gem_framebuffer_helper.h
+++ b/include/drm/drm_gem_framebuffer_helper.h
@@ -25,10 +25,12 @@ int drm_gem_fb_create_handle(struct drm_framebuffer *fb, struct drm_file *file,
int drm_gem_fb_init_with_funcs(struct drm_device *dev,
struct drm_framebuffer *fb,
struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
const struct drm_framebuffer_funcs *funcs);
struct drm_framebuffer *
drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
const struct drm_framebuffer_funcs *funcs);
struct drm_framebuffer *
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH 08/19] drm/gem/afbc: Eliminate redundant drm_get_format_info()
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (6 preceding siblings ...)
2025-04-10 16:32 ` [PATCH 07/19] drm/gem: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() Ville Syrjala
@ 2025-04-10 16:32 ` Ville Syrjala
2025-04-10 16:32 ` [PATCH 09/19] drm/amdgpu: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() Ville Syrjala
` (20 subsequent siblings)
28 siblings, 0 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:32 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx, intel-xe, Sandy Huang, Heiko Stübner, Andy Yan
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Pass along the format info from .fb_create() to aliminate the
redundant drm_get_format_info() calls from the afbc code.
Cc: Sandy Huang <hjc@rock-chips.com>
Cc: "Heiko Stübner" <heiko@sntech.de>
Cc: Andy Yan <andy.yan@rock-chips.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/drm_gem_framebuffer_helper.c | 18 ++++++------------
drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 2 +-
include/drm/drm_gem_framebuffer_helper.h | 1 +
3 files changed, 8 insertions(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
index 44016915c8fe..f243ea930033 100644
--- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
+++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
@@ -495,13 +495,9 @@ EXPORT_SYMBOL(drm_gem_fb_end_cpu_access);
// TODO Drop this function and replace by drm_format_info_bpp() once all
// DRM_FORMAT_* provide proper block info in drivers/gpu/drm/drm_fourcc.c
static __u32 drm_gem_afbc_get_bpp(struct drm_device *dev,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
- const struct drm_format_info *info;
-
- info = drm_get_format_info(dev, mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
-
switch (info->format) {
case DRM_FORMAT_YUV420_8BIT:
return 12;
@@ -515,6 +511,7 @@ static __u32 drm_gem_afbc_get_bpp(struct drm_device *dev,
}
static int drm_gem_afbc_min_size(struct drm_device *dev,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
struct drm_afbc_framebuffer *afbc_fb)
{
@@ -555,7 +552,7 @@ static int drm_gem_afbc_min_size(struct drm_device *dev,
afbc_fb->aligned_height = ALIGN(mode_cmd->height, h_alignment);
afbc_fb->offset = mode_cmd->offsets[0];
- bpp = drm_gem_afbc_get_bpp(dev, mode_cmd);
+ bpp = drm_gem_afbc_get_bpp(dev, info, mode_cmd);
if (!bpp) {
drm_dbg_kms(dev, "Invalid AFBC bpp value: %d\n", bpp);
return -EINVAL;
@@ -577,6 +574,7 @@ static int drm_gem_afbc_min_size(struct drm_device *dev,
*
* @dev: DRM device
* @afbc_fb: afbc-specific framebuffer
+ * @info: pixel format information
* @mode_cmd: Metadata from the userspace framebuffer creation request
* @afbc_fb: afbc framebuffer
*
@@ -590,20 +588,16 @@ static int drm_gem_afbc_min_size(struct drm_device *dev,
* Zero on success or a negative error value on failure.
*/
int drm_gem_fb_afbc_init(struct drm_device *dev,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
struct drm_afbc_framebuffer *afbc_fb)
{
- const struct drm_format_info *info;
struct drm_gem_object **objs;
int ret;
objs = afbc_fb->base.obj;
- info = drm_get_format_info(dev, mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
- if (!info)
- return -EINVAL;
- ret = drm_gem_afbc_min_size(dev, mode_cmd, afbc_fb);
+ ret = drm_gem_afbc_min_size(dev, info, mode_cmd, afbc_fb);
if (ret < 0)
return ret;
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
index 1211ca0ffa00..2a6207b7f61e 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
@@ -51,7 +51,7 @@ rockchip_fb_create(struct drm_device *dev, struct drm_file *file,
if (drm_is_afbc(mode_cmd->modifier[0])) {
int ret, i;
- ret = drm_gem_fb_afbc_init(dev, mode_cmd, afbc_fb);
+ ret = drm_gem_fb_afbc_init(dev, info, mode_cmd, afbc_fb);
if (ret) {
struct drm_gem_object **obj = afbc_fb->base.obj;
diff --git a/include/drm/drm_gem_framebuffer_helper.h b/include/drm/drm_gem_framebuffer_helper.h
index 971d266ab1ba..24f1fd40d553 100644
--- a/include/drm/drm_gem_framebuffer_helper.h
+++ b/include/drm/drm_gem_framebuffer_helper.h
@@ -52,6 +52,7 @@ void drm_gem_fb_end_cpu_access(struct drm_framebuffer *fb, enum dma_data_directi
(((modifier) & AFBC_VENDOR_AND_TYPE_MASK) == DRM_FORMAT_MOD_ARM_AFBC(0))
int drm_gem_fb_afbc_init(struct drm_device *dev,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
struct drm_afbc_framebuffer *afbc_fb);
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH 09/19] drm/amdgpu: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (7 preceding siblings ...)
2025-04-10 16:32 ` [PATCH 08/19] drm/gem/afbc: Eliminate redundant drm_get_format_info() Ville Syrjala
@ 2025-04-10 16:32 ` Ville Syrjala
2025-04-10 16:32 ` [PATCH 10/19] drm/armada: " Ville Syrjala
` (19 subsequent siblings)
28 siblings, 0 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:32 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx, intel-xe, Alex Deucher, amd-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Plumb the format info from .fb_create() all the way to
drm_helper_mode_fill_fb_struct() to avoid the redundant
lookup.
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: amd-gfx@lists.freedesktop.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
index 4cbbae543e34..2bc0d9a2509f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
@@ -1196,13 +1196,14 @@ static int amdgpu_display_get_fb_info(const struct amdgpu_framebuffer *amdgpu_fb
static int amdgpu_display_gem_fb_verify_and_init(struct drm_device *dev,
struct amdgpu_framebuffer *rfb,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
struct drm_gem_object *obj)
{
int ret;
rfb->base.obj[0] = obj;
- drm_helper_mode_fill_fb_struct(dev, &rfb->base, NULL, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, &rfb->base, info, mode_cmd);
/* Verify that the modifier is supported. */
if (!drm_any_plane_has_format(dev, mode_cmd->pixel_format,
mode_cmd->modifier[0])) {
@@ -1331,7 +1332,7 @@ amdgpu_display_user_framebuffer_create(struct drm_device *dev,
}
ret = amdgpu_display_gem_fb_verify_and_init(dev, amdgpu_fb, file_priv,
- mode_cmd, obj);
+ info, mode_cmd, obj);
if (ret) {
kfree(amdgpu_fb);
drm_gem_object_put(obj);
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH 10/19] drm/armada: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (8 preceding siblings ...)
2025-04-10 16:32 ` [PATCH 09/19] drm/amdgpu: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() Ville Syrjala
@ 2025-04-10 16:32 ` Ville Syrjala
2025-04-10 16:32 ` [PATCH 11/19] drm/exynos: " Ville Syrjala
` (18 subsequent siblings)
28 siblings, 0 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:32 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx, intel-xe, Russell King
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Plumb the format info from .fb_create() all the way to
drm_helper_mode_fill_fb_struct() to avoid the redundant
lookup.
For the fbdev case a manual drm_get_format_info() lookup
is needed.
Cc: Russell King <linux@armlinux.org.uk>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/armada/armada_fb.c | 8 +++++---
drivers/gpu/drm/armada/armada_fb.h | 1 +
drivers/gpu/drm/armada/armada_fbdev.c | 5 ++++-
3 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/armada/armada_fb.c b/drivers/gpu/drm/armada/armada_fb.c
index 7e94ec5bd4f4..aa4289127086 100644
--- a/drivers/gpu/drm/armada/armada_fb.c
+++ b/drivers/gpu/drm/armada/armada_fb.c
@@ -18,7 +18,9 @@ static const struct drm_framebuffer_funcs armada_fb_funcs = {
};
struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev,
- const struct drm_mode_fb_cmd2 *mode, struct armada_gem_object *obj)
+ const struct drm_format_info *info,
+ const struct drm_mode_fb_cmd2 *mode,
+ struct armada_gem_object *obj)
{
struct armada_framebuffer *dfb;
uint8_t format, config;
@@ -64,7 +66,7 @@ struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev,
dfb->mod = config;
dfb->fb.obj[0] = &obj->obj;
- drm_helper_mode_fill_fb_struct(dev, &dfb->fb, NULL, mode);
+ drm_helper_mode_fill_fb_struct(dev, &dfb->fb, info, mode);
ret = drm_framebuffer_init(dev, &dfb->fb, &armada_fb_funcs);
if (ret) {
@@ -122,7 +124,7 @@ struct drm_framebuffer *armada_fb_create(struct drm_device *dev,
goto err_unref;
}
- dfb = armada_framebuffer_create(dev, mode, obj);
+ dfb = armada_framebuffer_create(dev, info, mode, obj);
if (IS_ERR(dfb)) {
ret = PTR_ERR(dfb);
goto err;
diff --git a/drivers/gpu/drm/armada/armada_fb.h b/drivers/gpu/drm/armada/armada_fb.h
index 41ba76dd80d6..f2b990f055a2 100644
--- a/drivers/gpu/drm/armada/armada_fb.h
+++ b/drivers/gpu/drm/armada/armada_fb.h
@@ -17,6 +17,7 @@ struct armada_framebuffer {
#define drm_fb_obj(fb) drm_to_armada_gem((fb)->obj[0])
struct armada_framebuffer *armada_framebuffer_create(struct drm_device *,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *, struct armada_gem_object *);
struct drm_framebuffer *armada_fb_create(struct drm_device *dev,
struct drm_file *dfile, const struct drm_format_info *info,
diff --git a/drivers/gpu/drm/armada/armada_fbdev.c b/drivers/gpu/drm/armada/armada_fbdev.c
index 6ee7ce04ee71..cb53cc91bafb 100644
--- a/drivers/gpu/drm/armada/armada_fbdev.c
+++ b/drivers/gpu/drm/armada/armada_fbdev.c
@@ -78,7 +78,10 @@ int armada_fbdev_driver_fbdev_probe(struct drm_fb_helper *fbh,
return -ENOMEM;
}
- dfb = armada_framebuffer_create(dev, &mode, obj);
+ dfb = armada_framebuffer_create(dev,
+ drm_get_format_info(dev, mode.pixel_format,
+ mode.modifier[0]),
+ &mode, obj);
/*
* A reference is now held by the framebuffer object if
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH 11/19] drm/exynos: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (9 preceding siblings ...)
2025-04-10 16:32 ` [PATCH 10/19] drm/armada: " Ville Syrjala
@ 2025-04-10 16:32 ` Ville Syrjala
2025-04-10 16:32 ` [PATCH 12/19] drm/gma500: " Ville Syrjala
` (17 subsequent siblings)
28 siblings, 0 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:32 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx, intel-xe, Inki Dae, Seung-Woo Kim, Kyungmin Park
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Plumb the format info from .fb_create() all the way to
drm_helper_mode_fill_fb_struct() to avoid the redundant
lookup.
For the fbdev case a manual drm_get_format_info() lookup
is needed.
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/exynos/exynos_drm_fb.c | 5 +++--
drivers/gpu/drm/exynos/exynos_drm_fb.h | 1 +
drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 5 ++++-
3 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fb.c b/drivers/gpu/drm/exynos/exynos_drm_fb.c
index 7091d31835ec..ddd73e7f26a3 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fb.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fb.c
@@ -56,6 +56,7 @@ static const struct drm_framebuffer_funcs exynos_drm_fb_funcs = {
struct drm_framebuffer *
exynos_drm_framebuffer_init(struct drm_device *dev,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
struct exynos_drm_gem **exynos_gem,
int count)
@@ -76,7 +77,7 @@ exynos_drm_framebuffer_init(struct drm_device *dev,
fb->obj[i] = &exynos_gem[i]->base;
}
- drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, fb, info, mode_cmd);
ret = drm_framebuffer_init(dev, fb, &exynos_drm_fb_funcs);
if (ret < 0) {
@@ -124,7 +125,7 @@ exynos_user_fb_create(struct drm_device *dev, struct drm_file *file_priv,
}
}
- fb = exynos_drm_framebuffer_init(dev, mode_cmd, exynos_gem, i);
+ fb = exynos_drm_framebuffer_init(dev, info, mode_cmd, exynos_gem, i);
if (IS_ERR(fb)) {
ret = PTR_ERR(fb);
goto err;
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fb.h b/drivers/gpu/drm/exynos/exynos_drm_fb.h
index 2f841bbdddc5..fdc6cb40cc9c 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fb.h
+++ b/drivers/gpu/drm/exynos/exynos_drm_fb.h
@@ -14,6 +14,7 @@
struct drm_framebuffer *
exynos_drm_framebuffer_init(struct drm_device *dev,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
struct exynos_drm_gem **exynos_gem,
int count);
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
index 9526a25e90ac..93de25b77e68 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
@@ -116,7 +116,10 @@ int exynos_drm_fbdev_driver_fbdev_probe(struct drm_fb_helper *helper,
return PTR_ERR(exynos_gem);
helper->fb =
- exynos_drm_framebuffer_init(dev, &mode_cmd, &exynos_gem, 1);
+ exynos_drm_framebuffer_init(dev,
+ drm_get_format_info(dev, mode_cmd.pixel_format,
+ mode_cmd.modifier[0]),
+ &mode_cmd, &exynos_gem, 1);
if (IS_ERR(helper->fb)) {
DRM_DEV_ERROR(dev->dev, "failed to create drm framebuffer.\n");
ret = PTR_ERR(helper->fb);
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH 12/19] drm/gma500: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (10 preceding siblings ...)
2025-04-10 16:32 ` [PATCH 11/19] drm/exynos: " Ville Syrjala
@ 2025-04-10 16:32 ` Ville Syrjala
2025-04-10 16:32 ` [PATCH 13/19] drm/i915: " Ville Syrjala
` (16 subsequent siblings)
28 siblings, 0 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:32 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx, intel-xe, Patrik Jakobsson
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Plumb the format info from .fb_create() all the way to
drm_helper_mode_fill_fb_struct() to avoid the redundant
lookup.
For the fbdev case a manual drm_get_format_info() lookup
is needed.
Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/gma500/fbdev.c | 5 ++++-
drivers/gpu/drm/gma500/framebuffer.c | 14 +++++++-------
drivers/gpu/drm/gma500/psb_drv.h | 1 +
3 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/gma500/fbdev.c b/drivers/gpu/drm/gma500/fbdev.c
index 8edefea2ef59..d32689cb0e23 100644
--- a/drivers/gpu/drm/gma500/fbdev.c
+++ b/drivers/gpu/drm/gma500/fbdev.c
@@ -203,7 +203,10 @@ int psb_fbdev_driver_fbdev_probe(struct drm_fb_helper *fb_helper,
return PTR_ERR(backing);
obj = &backing->base;
- fb = psb_framebuffer_create(dev, &mode_cmd, obj);
+ fb = psb_framebuffer_create(dev,
+ drm_get_format_info(dev, mode_cmd.pixel_format,
+ mode_cmd.modifier[0]),
+ &mode_cmd, obj);
if (IS_ERR(fb)) {
ret = PTR_ERR(fb);
goto err_drm_gem_object_put;
diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
index f9ade8361354..e69b537ded6b 100644
--- a/drivers/gpu/drm/gma500/framebuffer.c
+++ b/drivers/gpu/drm/gma500/framebuffer.c
@@ -29,25 +29,23 @@ static const struct drm_framebuffer_funcs psb_fb_funcs = {
*/
static int psb_framebuffer_init(struct drm_device *dev,
struct drm_framebuffer *fb,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
struct drm_gem_object *obj)
{
- const struct drm_format_info *info;
int ret;
/*
* Reject unknown formats, YUV formats, and formats with more than
* 4 bytes per pixel.
*/
- info = drm_get_format_info(dev, mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
- if (!info || !info->depth || info->cpp[0] > 4)
+ if (!info->depth || info->cpp[0] > 4)
return -EINVAL;
if (mode_cmd->pitches[0] & 63)
return -EINVAL;
- drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, fb, info, mode_cmd);
fb->obj[0] = obj;
ret = drm_framebuffer_init(dev, fb, &psb_fb_funcs);
if (ret) {
@@ -60,6 +58,7 @@ static int psb_framebuffer_init(struct drm_device *dev,
/**
* psb_framebuffer_create - create a framebuffer backed by gt
* @dev: our DRM device
+ * @info: pixel format information
* @mode_cmd: the description of the requested mode
* @obj: the backing object
*
@@ -69,6 +68,7 @@ static int psb_framebuffer_init(struct drm_device *dev,
* TODO: review object references
*/
struct drm_framebuffer *psb_framebuffer_create(struct drm_device *dev,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
struct drm_gem_object *obj)
{
@@ -79,7 +79,7 @@ struct drm_framebuffer *psb_framebuffer_create(struct drm_device *dev,
if (!fb)
return ERR_PTR(-ENOMEM);
- ret = psb_framebuffer_init(dev, fb, mode_cmd, obj);
+ ret = psb_framebuffer_init(dev, fb, info, mode_cmd, obj);
if (ret) {
kfree(fb);
return ERR_PTR(ret);
@@ -112,7 +112,7 @@ static struct drm_framebuffer *psb_user_framebuffer_create
return ERR_PTR(-ENOENT);
/* Let the core code do all the work */
- fb = psb_framebuffer_create(dev, cmd, obj);
+ fb = psb_framebuffer_create(dev, info, cmd, obj);
if (IS_ERR(fb))
drm_gem_object_put(obj);
diff --git a/drivers/gpu/drm/gma500/psb_drv.h b/drivers/gpu/drm/gma500/psb_drv.h
index 7f77cb2b2751..0b27112ec46f 100644
--- a/drivers/gpu/drm/gma500/psb_drv.h
+++ b/drivers/gpu/drm/gma500/psb_drv.h
@@ -594,6 +594,7 @@ extern void psb_modeset_cleanup(struct drm_device *dev);
/* framebuffer */
struct drm_framebuffer *psb_framebuffer_create(struct drm_device *dev,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
struct drm_gem_object *obj);
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH 13/19] drm/i915: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (11 preceding siblings ...)
2025-04-10 16:32 ` [PATCH 12/19] drm/gma500: " Ville Syrjala
@ 2025-04-10 16:32 ` Ville Syrjala
2025-04-10 16:32 ` [PATCH 14/19] drm/komeda: " Ville Syrjala
` (15 subsequent siblings)
28 siblings, 0 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:32 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx, intel-xe
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Plumb the format info from .fb_create() all the way to
drm_helper_mode_fill_fb_struct() to avoid the redundant
lookup.
For the fbdev case a manual drm_get_format_info() lookup
is needed.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_fb.c | 8 +++++---
drivers/gpu/drm/i915/display/intel_fb.h | 2 ++
drivers/gpu/drm/i915/display/intel_fbdev_fb.c | 6 +++++-
drivers/gpu/drm/i915/display/intel_plane_initial.c | 3 ++-
drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 6 +++++-
drivers/gpu/drm/xe/display/xe_plane_initial.c | 2 +-
6 files changed, 20 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index 80a90bf1c75c..7f6aae33bd0b 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -2206,6 +2206,7 @@ static const struct drm_framebuffer_funcs intel_fb_funcs = {
int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
struct drm_gem_object *obj,
+ const struct drm_format_info *info,
struct drm_mode_fb_cmd2 *mode_cmd)
{
struct intel_display *display = to_intel_display(obj->dev);
@@ -2253,7 +2254,7 @@ int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
goto err_frontbuffer_put;
}
- drm_helper_mode_fill_fb_struct(display->drm, fb, NULL, mode_cmd);
+ drm_helper_mode_fill_fb_struct(display->drm, fb, info, mode_cmd);
for (i = 0; i < fb->format->num_planes; i++) {
unsigned int stride_alignment;
@@ -2334,7 +2335,7 @@ intel_user_framebuffer_create(struct drm_device *dev,
if (IS_ERR(obj))
return ERR_CAST(obj);
- fb = intel_framebuffer_create(obj, &mode_cmd);
+ fb = intel_framebuffer_create(obj, info, &mode_cmd);
drm_gem_object_put(obj);
return fb;
@@ -2342,6 +2343,7 @@ intel_user_framebuffer_create(struct drm_device *dev,
struct drm_framebuffer *
intel_framebuffer_create(struct drm_gem_object *obj,
+ const struct drm_format_info *info,
struct drm_mode_fb_cmd2 *mode_cmd)
{
struct intel_framebuffer *intel_fb;
@@ -2351,7 +2353,7 @@ intel_framebuffer_create(struct drm_gem_object *obj,
if (!intel_fb)
return ERR_PTR(-ENOMEM);
- ret = intel_framebuffer_init(intel_fb, obj, mode_cmd);
+ ret = intel_framebuffer_init(intel_fb, obj, info, mode_cmd);
if (ret)
goto err;
diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
index 00181c4a67dc..403b8b63721a 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.h
+++ b/drivers/gpu/drm/i915/display/intel_fb.h
@@ -102,9 +102,11 @@ void intel_add_fb_offsets(int *x, int *y,
int intel_framebuffer_init(struct intel_framebuffer *ifb,
struct drm_gem_object *obj,
+ const struct drm_format_info *info,
struct drm_mode_fb_cmd2 *mode_cmd);
struct drm_framebuffer *
intel_framebuffer_create(struct drm_gem_object *obj,
+ const struct drm_format_info *info,
struct drm_mode_fb_cmd2 *mode_cmd);
struct drm_framebuffer *
intel_user_framebuffer_create(struct drm_device *dev,
diff --git a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
index 4991c35a2632..dd81d3fdda40 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
@@ -61,7 +61,11 @@ struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
return ERR_PTR(-ENOMEM);
}
- fb = intel_framebuffer_create(intel_bo_to_drm_bo(obj), &mode_cmd);
+ fb = intel_framebuffer_create(intel_bo_to_drm_bo(obj),
+ drm_get_format_info(dev,
+ mode_cmd.pixel_format,
+ mode_cmd.modifier[0]),
+ &mode_cmd);
i915_gem_object_put(obj);
return to_intel_framebuffer(fb);
diff --git a/drivers/gpu/drm/i915/display/intel_plane_initial.c b/drivers/gpu/drm/i915/display/intel_plane_initial.c
index b0c4892775ce..6ce61c5befc9 100644
--- a/drivers/gpu/drm/i915/display/intel_plane_initial.c
+++ b/drivers/gpu/drm/i915/display/intel_plane_initial.c
@@ -286,7 +286,8 @@ intel_alloc_initial_plane_obj(struct intel_crtc *crtc,
mode_cmd.flags = DRM_MODE_FB_MODIFIERS;
if (intel_framebuffer_init(to_intel_framebuffer(fb),
- intel_bo_to_drm_bo(vma->obj), &mode_cmd)) {
+ intel_bo_to_drm_bo(vma->obj),
+ fb->format, &mode_cmd)) {
drm_dbg_kms(display->drm, "intel fb init failed\n");
goto err_vma;
}
diff --git a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
index 267f31697343..7b7a2439be61 100644
--- a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
+++ b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
@@ -65,7 +65,11 @@ struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
goto err;
}
- fb = intel_framebuffer_create(&obj->ttm.base, &mode_cmd);
+ fb = intel_framebuffer_create(&obj->ttm.base,
+ drm_get_format_info(dev,
+ mode_cmd.pixel_format,
+ mode_cmd.modifier[0]),
+ &mode_cmd);
if (IS_ERR(fb)) {
xe_bo_unpin_map_no_vm(obj);
goto err;
diff --git a/drivers/gpu/drm/xe/display/xe_plane_initial.c b/drivers/gpu/drm/xe/display/xe_plane_initial.c
index 6502b8274173..bfeba5d57309 100644
--- a/drivers/gpu/drm/xe/display/xe_plane_initial.c
+++ b/drivers/gpu/drm/xe/display/xe_plane_initial.c
@@ -187,7 +187,7 @@ intel_alloc_initial_plane_obj(struct intel_crtc *crtc,
return false;
if (intel_framebuffer_init(to_intel_framebuffer(fb),
- &bo->ttm.base, &mode_cmd)) {
+ &bo->ttm.base, fb->format, &mode_cmd)) {
drm_dbg_kms(&xe->drm, "intel fb init failed\n");
goto err_bo;
}
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH 14/19] drm/komeda: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (12 preceding siblings ...)
2025-04-10 16:32 ` [PATCH 13/19] drm/i915: " Ville Syrjala
@ 2025-04-10 16:32 ` Ville Syrjala
2025-04-10 16:32 ` [PATCH 15/19] drm/msm: " Ville Syrjala
` (14 subsequent siblings)
28 siblings, 0 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:32 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx, intel-xe, Liviu Dudau
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Plumb the format info from .fb_create() all the way to
drm_helper_mode_fill_fb_struct() to avoid the redundant
lookup.
Cc: Liviu Dudau <liviu.dudau@arm.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
index acd8e505ebc7..901f938aefe0 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
@@ -178,7 +178,7 @@ komeda_fb_create(struct drm_device *dev, struct drm_file *file,
return ERR_PTR(-EINVAL);
}
- drm_helper_mode_fill_fb_struct(dev, &kfb->base, NULL, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, &kfb->base, info, mode_cmd);
if (kfb->base.modifier)
ret = komeda_fb_afbc_size_check(kfb, file, mode_cmd);
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH 15/19] drm/msm: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (13 preceding siblings ...)
2025-04-10 16:32 ` [PATCH 14/19] drm/komeda: " Ville Syrjala
@ 2025-04-10 16:32 ` Ville Syrjala
2025-04-10 19:28 ` Dmitry Baryshkov
2025-04-10 16:32 ` [PATCH 16/19] drm/tegra: " Ville Syrjala
` (13 subsequent siblings)
28 siblings, 1 reply; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:32 UTC (permalink / raw)
To: dri-devel
Cc: intel-gfx, intel-xe, Rob Clark, Abhinav Kumar, Dmitry Baryshkov,
Sean Paul, Marijn Suijten, linux-arm-msm, freedreno
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Plumb the format info from .fb_create() all the way to
drm_helper_mode_fill_fb_struct() to avoid the redundant
lookups.
For the fbdev case a manual drm_get_format_info() lookup
is needed.
Cc: Rob Clark <robdclark@gmail.com>
Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
Cc: Dmitry Baryshkov <lumag@kernel.org>
Cc: Sean Paul <sean@poorly.run>
Cc: Marijn Suijten <marijn.suijten@somainline.org>
Cc: linux-arm-msm@vger.kernel.org
Cc: freedreno@lists.freedesktop.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/msm/msm_fb.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/msm/msm_fb.c b/drivers/gpu/drm/msm/msm_fb.c
index 0615427e85ce..d7bc4479547d 100644
--- a/drivers/gpu/drm/msm/msm_fb.c
+++ b/drivers/gpu/drm/msm/msm_fb.c
@@ -30,6 +30,7 @@ struct msm_framebuffer {
#define to_msm_framebuffer(x) container_of(x, struct msm_framebuffer, base)
static struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd, struct drm_gem_object **bos);
static int msm_framebuffer_dirtyfb(struct drm_framebuffer *fb,
@@ -149,7 +150,7 @@ struct drm_framebuffer *msm_framebuffer_create(struct drm_device *dev,
}
}
- fb = msm_framebuffer_init(dev, mode_cmd, bos);
+ fb = msm_framebuffer_init(dev, info, mode_cmd, bos);
if (IS_ERR(fb)) {
ret = PTR_ERR(fb);
goto out_unref;
@@ -164,11 +165,9 @@ struct drm_framebuffer *msm_framebuffer_create(struct drm_device *dev,
}
static struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd, struct drm_gem_object **bos)
{
- const struct drm_format_info *info = drm_get_format_info(dev,
- mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
struct msm_drm_private *priv = dev->dev_private;
struct msm_kms *kms = priv->kms;
struct msm_framebuffer *msm_fb = NULL;
@@ -222,7 +221,7 @@ static struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev,
msm_fb->base.obj[i] = bos[i];
}
- drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, fb, info, mode_cmd);
ret = drm_framebuffer_init(dev, fb, &msm_framebuffer_funcs);
if (ret) {
@@ -271,7 +270,10 @@ msm_alloc_stolen_fb(struct drm_device *dev, int w, int h, int p, uint32_t format
msm_gem_object_set_name(bo, "stolenfb");
- fb = msm_framebuffer_init(dev, &mode_cmd, &bo);
+ fb = msm_framebuffer_init(dev,
+ drm_get_format_info(dev, mode_cmd.pixel_format,
+ mode_cmd.modifier[0]),
+ &mode_cmd, &bo);
if (IS_ERR(fb)) {
DRM_DEV_ERROR(dev->dev, "failed to allocate fb\n");
/* note: if fb creation failed, we can't rely on fb destroy
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH 16/19] drm/tegra: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (14 preceding siblings ...)
2025-04-10 16:32 ` [PATCH 15/19] drm/msm: " Ville Syrjala
@ 2025-04-10 16:32 ` Ville Syrjala
2025-04-10 16:32 ` [PATCH 17/19] drm/virtio: " Ville Syrjala
` (12 subsequent siblings)
28 siblings, 0 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:32 UTC (permalink / raw)
To: dri-devel
Cc: intel-gfx, intel-xe, Thierry Reding, Mikko Perttunen, linux-tegra
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Plumb the format info from .fb_create() all the way to
drm_helper_mode_fill_fb_struct() to avoid the redundant
lookup.
For the fbdev case a manual drm_get_format_info() lookup
is needed.
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Mikko Perttunen <mperttunen@nvidia.com>
Cc: linux-tegra@vger.kernel.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/tegra/drm.h | 1 +
drivers/gpu/drm/tegra/fb.c | 5 +++--
drivers/gpu/drm/tegra/fbdev.c | 4 +++-
3 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/tegra/drm.h b/drivers/gpu/drm/tegra/drm.h
index 77e520c43f72..1dd3670f37db 100644
--- a/drivers/gpu/drm/tegra/drm.h
+++ b/drivers/gpu/drm/tegra/drm.h
@@ -185,6 +185,7 @@ bool tegra_fb_is_bottom_up(struct drm_framebuffer *framebuffer);
int tegra_fb_get_tiling(struct drm_framebuffer *framebuffer,
struct tegra_bo_tiling *tiling);
struct drm_framebuffer *tegra_fb_alloc(struct drm_device *drm,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
struct tegra_bo **planes,
unsigned int num_planes);
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index d359683f5ce6..dd041089f797 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -102,6 +102,7 @@ static const struct drm_framebuffer_funcs tegra_fb_funcs = {
};
struct drm_framebuffer *tegra_fb_alloc(struct drm_device *drm,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
struct tegra_bo **planes,
unsigned int num_planes)
@@ -114,7 +115,7 @@ struct drm_framebuffer *tegra_fb_alloc(struct drm_device *drm,
if (!fb)
return ERR_PTR(-ENOMEM);
- drm_helper_mode_fill_fb_struct(drm, fb, NULL, mode_cmd);
+ drm_helper_mode_fill_fb_struct(drm, fb, info, mode_cmd);
for (i = 0; i < fb->format->num_planes; i++)
fb->obj[i] = &planes[i]->gem;
@@ -166,7 +167,7 @@ struct drm_framebuffer *tegra_fb_create(struct drm_device *drm,
planes[i] = to_tegra_bo(gem);
}
- fb = tegra_fb_alloc(drm, cmd, planes, i);
+ fb = tegra_fb_alloc(drm, info, cmd, planes, i);
if (IS_ERR(fb)) {
err = PTR_ERR(fb);
goto unreference;
diff --git a/drivers/gpu/drm/tegra/fbdev.c b/drivers/gpu/drm/tegra/fbdev.c
index cd9d798f8870..1b70f5e164af 100644
--- a/drivers/gpu/drm/tegra/fbdev.c
+++ b/drivers/gpu/drm/tegra/fbdev.c
@@ -106,7 +106,9 @@ int tegra_fbdev_driver_fbdev_probe(struct drm_fb_helper *helper,
return PTR_ERR(info);
}
- fb = tegra_fb_alloc(drm, &cmd, &bo, 1);
+ fb = tegra_fb_alloc(drm,
+ drm_get_format_info(drm, cmd.pixel_format, cmd.modifier[0]),
+ &cmd, &bo, 1);
if (IS_ERR(fb)) {
err = PTR_ERR(fb);
dev_err(drm->dev, "failed to allocate DRM framebuffer: %d\n",
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH 17/19] drm/virtio: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (15 preceding siblings ...)
2025-04-10 16:32 ` [PATCH 16/19] drm/tegra: " Ville Syrjala
@ 2025-04-10 16:32 ` Ville Syrjala
2025-04-16 6:44 ` Dmitry Osipenko
2025-04-10 16:32 ` [PATCH 18/19] drm/vmwgfx: " Ville Syrjala
` (11 subsequent siblings)
28 siblings, 1 reply; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:32 UTC (permalink / raw)
To: dri-devel
Cc: intel-gfx, intel-xe, David Airlie, Gerd Hoffmann, Dmitry Osipenko,
Gurchetan Singh, Chia-I Wu, virtualization
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Plumb the format info from .fb_create() all the way to
drm_helper_mode_fill_fb_struct() to avoid the redundant
lookup.
Cc: David Airlie <airlied@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Cc: Gurchetan Singh <gurchetansingh@chromium.org>
Cc: Chia-I Wu <olvaffe@gmail.com>
Cc: virtualization@lists.linux.dev
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/virtio/virtgpu_display.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
index 93763b91bab5..e5805ca646c7 100644
--- a/drivers/gpu/drm/virtio/virtgpu_display.c
+++ b/drivers/gpu/drm/virtio/virtgpu_display.c
@@ -66,6 +66,7 @@ static const struct drm_framebuffer_funcs virtio_gpu_fb_funcs = {
static int
virtio_gpu_framebuffer_init(struct drm_device *dev,
struct virtio_gpu_framebuffer *vgfb,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
struct drm_gem_object *obj)
{
@@ -73,7 +74,7 @@ virtio_gpu_framebuffer_init(struct drm_device *dev,
vgfb->base.obj[0] = obj;
- drm_helper_mode_fill_fb_struct(dev, &vgfb->base, NULL, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, &vgfb->base, info, mode_cmd);
ret = drm_framebuffer_init(dev, &vgfb->base, &virtio_gpu_fb_funcs);
if (ret) {
@@ -315,7 +316,7 @@ virtio_gpu_user_framebuffer_create(struct drm_device *dev,
return ERR_PTR(-ENOMEM);
}
- ret = virtio_gpu_framebuffer_init(dev, virtio_gpu_fb, mode_cmd, obj);
+ ret = virtio_gpu_framebuffer_init(dev, virtio_gpu_fb, info, mode_cmd, obj);
if (ret) {
kfree(virtio_gpu_fb);
drm_gem_object_put(obj);
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH 18/19] drm/vmwgfx: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (16 preceding siblings ...)
2025-04-10 16:32 ` [PATCH 17/19] drm/virtio: " Ville Syrjala
@ 2025-04-10 16:32 ` Ville Syrjala
2025-04-10 16:32 ` [PATCH 19/19] drm: Make passing of format info to drm_helper_mode_fill_fb_struct() mandatory Ville Syrjala
` (10 subsequent siblings)
28 siblings, 0 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:32 UTC (permalink / raw)
To: dri-devel
Cc: intel-gfx, intel-xe, Zack Rusin,
Broadcom internal kernel review list
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Plumb the format info from .fb_create() all the way to
drm_helper_mode_fill_fb_struct() to avoid the redundant
lookup.
Cc: Zack Rusin <zack.rusin@broadcom.com>
Cc: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 14 +++++++++-----
drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 1 +
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
index 35965e29e408..54ea1b513950 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
@@ -500,6 +500,7 @@ static const struct drm_framebuffer_funcs vmw_framebuffer_surface_funcs = {
static int vmw_kms_new_framebuffer_surface(struct vmw_private *dev_priv,
struct vmw_user_object *uo,
struct vmw_framebuffer **out,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2
*mode_cmd)
@@ -548,7 +549,7 @@ static int vmw_kms_new_framebuffer_surface(struct vmw_private *dev_priv,
goto out_err1;
}
- drm_helper_mode_fill_fb_struct(dev, &vfbs->base.base, NULL, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, &vfbs->base.base, info, mode_cmd);
memcpy(&vfbs->uo, uo, sizeof(vfbs->uo));
vmw_user_object_ref(&vfbs->uo);
@@ -602,6 +603,7 @@ static const struct drm_framebuffer_funcs vmw_framebuffer_bo_funcs = {
static int vmw_kms_new_framebuffer_bo(struct vmw_private *dev_priv,
struct vmw_bo *bo,
struct vmw_framebuffer **out,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2
*mode_cmd)
@@ -634,7 +636,7 @@ static int vmw_kms_new_framebuffer_bo(struct vmw_private *dev_priv,
}
vfbd->base.base.obj[0] = &bo->tbo.base;
- drm_helper_mode_fill_fb_struct(dev, &vfbd->base.base, NULL, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, &vfbd->base.base, info, mode_cmd);
vfbd->base.bo = true;
vfbd->buffer = vmw_bo_reference(bo);
*out = &vfbd->base;
@@ -679,11 +681,13 @@ vmw_kms_srf_ok(struct vmw_private *dev_priv, uint32_t width, uint32_t height)
* @dev_priv: Pointer to device private struct.
* @uo: Pointer to user object to wrap the kms framebuffer around.
* Either the buffer or surface inside the user object must be NULL.
+ * @info: pixel format information.
* @mode_cmd: Frame-buffer metadata.
*/
struct vmw_framebuffer *
vmw_kms_new_framebuffer(struct vmw_private *dev_priv,
struct vmw_user_object *uo,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct vmw_framebuffer *vfb = NULL;
@@ -692,10 +696,10 @@ vmw_kms_new_framebuffer(struct vmw_private *dev_priv,
/* Create the new framebuffer depending one what we have */
if (vmw_user_object_surface(uo)) {
ret = vmw_kms_new_framebuffer_surface(dev_priv, uo, &vfb,
- mode_cmd);
+ info, mode_cmd);
} else if (uo->buffer) {
ret = vmw_kms_new_framebuffer_bo(dev_priv, uo->buffer, &vfb,
- mode_cmd);
+ info, mode_cmd);
} else {
BUG();
}
@@ -742,7 +746,7 @@ static struct drm_framebuffer *vmw_kms_fb_create(struct drm_device *dev,
}
- vfb = vmw_kms_new_framebuffer(dev_priv, &uo, mode_cmd);
+ vfb = vmw_kms_new_framebuffer(dev_priv, &uo, info, mode_cmd);
if (IS_ERR(vfb)) {
ret = PTR_ERR(vfb);
goto err_out;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h
index 511e29cdb987..445471fe9be6 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h
@@ -399,6 +399,7 @@ int vmw_kms_readback(struct vmw_private *dev_priv,
struct vmw_framebuffer *
vmw_kms_new_framebuffer(struct vmw_private *dev_priv,
struct vmw_user_object *uo,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd);
void vmw_guess_mode_timing(struct drm_display_mode *mode);
void vmw_kms_update_implicit_fb(struct vmw_private *dev_priv);
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH 19/19] drm: Make passing of format info to drm_helper_mode_fill_fb_struct() mandatory
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (17 preceding siblings ...)
2025-04-10 16:32 ` [PATCH 18/19] drm/vmwgfx: " Ville Syrjala
@ 2025-04-10 16:32 ` Ville Syrjala
2025-04-10 19:40 ` Laurent Pinchart
2025-04-10 17:07 ` ✗ Fi.CI.CHECKPATCH: warning for drm: Eliminate redundant drm_format_info lookups Patchwork
` (9 subsequent siblings)
28 siblings, 1 reply; 53+ messages in thread
From: Ville Syrjala @ 2025-04-10 16:32 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx, intel-xe
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Now that everyone passes along the format info to
drm_helper_mode_fill_fb_struct() we can make this behaviour
mandatory and drop the extra lookup.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/drm_modeset_helper.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_modeset_helper.c b/drivers/gpu/drm/drm_modeset_helper.c
index ae2a83ecb1cf..3c153d420822 100644
--- a/drivers/gpu/drm/drm_modeset_helper.c
+++ b/drivers/gpu/drm/drm_modeset_helper.c
@@ -86,8 +86,7 @@ void drm_helper_mode_fill_fb_struct(struct drm_device *dev,
int i;
fb->dev = dev;
- fb->format = info ? : drm_get_format_info(dev, mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
+ fb->format = info;
fb->width = mode_cmd->width;
fb->height = mode_cmd->height;
for (i = 0; i < 4; i++) {
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* ✗ Fi.CI.CHECKPATCH: warning for drm: Eliminate redundant drm_format_info lookups
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (18 preceding siblings ...)
2025-04-10 16:32 ` [PATCH 19/19] drm: Make passing of format info to drm_helper_mode_fill_fb_struct() mandatory Ville Syrjala
@ 2025-04-10 17:07 ` Patchwork
2025-04-10 17:07 ` ✗ Fi.CI.SPARSE: " Patchwork
` (8 subsequent siblings)
28 siblings, 0 replies; 53+ messages in thread
From: Patchwork @ 2025-04-10 17:07 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
== Series Details ==
Series: drm: Eliminate redundant drm_format_info lookups
URL : https://patchwork.freedesktop.org/series/147544/
State : warning
== Summary ==
Error: dim checkpatch failed
ef446fee01d7 drm: Pass pixel_format+modifier to .get_format_info()
38547e9c8681 drm: Pass pixel_format+modifier directly to drm_get_format_info()
9e94a892ea72 drm: Look up the format info earlier
2e868d525e92 drm: Pass the format info to .fb_create()
-:101: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#101:
const struct drm_mode_fb_cmd2 *mode_cmd);
total: 0 errors, 1 warnings, 0 checks, 412 lines checked
27608bd0b77e drm: Allow the caller to pass in the format info to drm_helper_mode_fill_fb_struct()
-:26: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#26:
const struct drm_mode_fb_cmd2 *mode_cmd)
total: 0 errors, 1 warnings, 0 checks, 157 lines checked
fc4ef53cdbab drm/malidp: Pass along the format info from .fb_create() malidp_verify_afbc_framebuffer_size()
241ee444d762 drm/gem: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
f1367dbd20be drm/gem/afbc: Eliminate redundant drm_get_format_info()
c83e62965bdf drm/amdgpu: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
f6f83e507988 drm/armada: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
5d5d6d379df0 drm/exynos: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
08658efcfef5 drm/gma500: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
35809f0fc563 drm/i915: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
268d83aa2b31 drm/komeda: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
4ba5181f4cec drm/msm: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
aeee68377f89 drm/tegra: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
9c308662eb4c drm/virtio: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
d652c4213bec drm/vmwgfx: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
5ca183878535 drm: Make passing of format info to drm_helper_mode_fill_fb_struct() mandatory
^ permalink raw reply [flat|nested] 53+ messages in thread
* ✗ Fi.CI.SPARSE: warning for drm: Eliminate redundant drm_format_info lookups
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (19 preceding siblings ...)
2025-04-10 17:07 ` ✗ Fi.CI.CHECKPATCH: warning for drm: Eliminate redundant drm_format_info lookups Patchwork
@ 2025-04-10 17:07 ` Patchwork
2025-04-10 17:27 ` ✓ i915.CI.BAT: success " Patchwork
` (7 subsequent siblings)
28 siblings, 0 replies; 53+ messages in thread
From: Patchwork @ 2025-04-10 17:07 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
== Series Details ==
Series: drm: Eliminate redundant drm_format_info lookups
URL : https://patchwork.freedesktop.org/series/147544/
State : warning
== Summary ==
Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
^ permalink raw reply [flat|nested] 53+ messages in thread
* ✓ i915.CI.BAT: success for drm: Eliminate redundant drm_format_info lookups
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (20 preceding siblings ...)
2025-04-10 17:07 ` ✗ Fi.CI.SPARSE: " Patchwork
@ 2025-04-10 17:27 ` Patchwork
2025-04-10 22:45 ` ✗ i915.CI.Full: failure " Patchwork
` (6 subsequent siblings)
28 siblings, 0 replies; 53+ messages in thread
From: Patchwork @ 2025-04-10 17:27 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 2269 bytes --]
== Series Details ==
Series: drm: Eliminate redundant drm_format_info lookups
URL : https://patchwork.freedesktop.org/series/147544/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_16397 -> Patchwork_147544v1
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/index.html
Participating hosts (43 -> 42)
------------------------------
Missing (1): fi-snb-2520m
Known issues
------------
Here are the changes found in Patchwork_147544v1 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live@workarounds:
- bat-dg2-9: [PASS][1] -> [DMESG-FAIL][2] ([i915#12061]) +1 other test dmesg-fail
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/bat-dg2-9/igt@i915_selftest@live@workarounds.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/bat-dg2-9/igt@i915_selftest@live@workarounds.html
#### Possible fixes ####
* igt@i915_selftest@live@workarounds:
- bat-dg2-11: [DMESG-FAIL][3] ([i915#12061]) -> [PASS][4] +1 other test pass
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/bat-dg2-11/igt@i915_selftest@live@workarounds.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/bat-dg2-11/igt@i915_selftest@live@workarounds.html
- bat-dg2-14: [DMESG-FAIL][5] ([i915#12061]) -> [PASS][6] +1 other test pass
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/bat-dg2-14/igt@i915_selftest@live@workarounds.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/bat-dg2-14/igt@i915_selftest@live@workarounds.html
[i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
Build changes
-------------
* Linux: CI_DRM_16397 -> Patchwork_147544v1
CI-20190529: 20190529
CI_DRM_16397: 457049ad31ee5b64dd86230518144d366c32bc04 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8313: 8313
Patchwork_147544v1: 457049ad31ee5b64dd86230518144d366c32bc04 @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/index.html
[-- Attachment #2: Type: text/html, Size: 3039 bytes --]
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 01/19] drm: Pass pixel_format+modifier to .get_format_info()
2025-04-10 16:32 ` [PATCH 01/19] drm: Pass pixel_format+modifier to .get_format_info() Ville Syrjala
@ 2025-04-10 19:27 ` Laurent Pinchart
2025-04-11 6:47 ` Ville Syrjälä
2025-04-11 19:19 ` [PATCH v2 " Ville Syrjala
1 sibling, 1 reply; 53+ messages in thread
From: Laurent Pinchart @ 2025-04-10 19:27 UTC (permalink / raw)
To: Ville Syrjala
Cc: dri-devel, intel-gfx, intel-xe, Harry Wentland, Leo Li,
Rodrigo Siqueira, Alex Deucher, amd-gfx
Hi Ville,
Thank you for the patch.
On Thu, Apr 10, 2025 at 07:32:00PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Decouple .get_format_info() from struct drm_mode_fb_cmd2 and just
> pass the pixel format+modifier combo in by hand.
>
> We may want to use .get_format_info() outside of the normal
> addfb paths where we won't have a struct drm_mode_fb_cmd2, and
> creating a temporary one just for this seems silly.
>
> Cc: Harry Wentland <harry.wentland@amd.com>
> Cc: Leo Li <sunpeng.li@amd.com>
> Cc: Rodrigo Siqueira <siqueira@igalia.com>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: amd-gfx@lists.freedesktop.org
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 4 ++--
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h | 2 +-
> drivers/gpu/drm/drm_fourcc.c | 3 ++-
> drivers/gpu/drm/i915/display/intel_fb.c | 9 +++++----
> drivers/gpu/drm/i915/display/intel_fb.h | 2 +-
> include/drm/drm_mode_config.h | 2 +-
> 6 files changed, 12 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> index 3e0f45f1711c..69d715b6abd3 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> @@ -92,9 +92,9 @@ enum dm_micro_swizzle {
> MICRO_SWIZZLE_R = 3
> };
>
> -const struct drm_format_info *amdgpu_dm_plane_get_format_info(const struct drm_mode_fb_cmd2 *cmd)
> +const struct drm_format_info *amdgpu_dm_plane_get_format_info(u32 pixel_format, u64 modifier)
> {
> - return amdgpu_lookup_format_info(cmd->pixel_format, cmd->modifier[0]);
> + return amdgpu_lookup_format_info(pixel_format, modifier);
> }
>
> void amdgpu_dm_plane_fill_blending_from_plane_state(const struct drm_plane_state *plane_state,
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
> index 615d2ab2b803..ea2619b507db 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
> @@ -58,7 +58,7 @@ int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm,
> unsigned long possible_crtcs,
> const struct dc_plane_cap *plane_cap);
>
> -const struct drm_format_info *amdgpu_dm_plane_get_format_info(const struct drm_mode_fb_cmd2 *cmd);
> +const struct drm_format_info *amdgpu_dm_plane_get_format_info(u32 pixel_format, u64 modifier);
>
> void amdgpu_dm_plane_fill_blending_from_plane_state(const struct drm_plane_state *plane_state,
> bool *per_pixel_alpha, bool *pre_multiplied_alpha,
> diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c
> index 3a94ca211f9c..f79fff8209fd 100644
> --- a/drivers/gpu/drm/drm_fourcc.c
> +++ b/drivers/gpu/drm/drm_fourcc.c
> @@ -395,7 +395,8 @@ drm_get_format_info(struct drm_device *dev,
> const struct drm_format_info *info = NULL;
>
> if (dev->mode_config.funcs->get_format_info)
> - info = dev->mode_config.funcs->get_format_info(mode_cmd);
> + info = dev->mode_config.funcs->get_format_info(mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
>
> if (!info)
> info = drm_format_info(mode_cmd->pixel_format);
> diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
> index 2b0e0f220442..b83c42fe3233 100644
> --- a/drivers/gpu/drm/i915/display/intel_fb.c
> +++ b/drivers/gpu/drm/i915/display/intel_fb.c
> @@ -421,21 +421,22 @@ unsigned int intel_fb_modifier_to_tiling(u64 fb_modifier)
>
> /**
> * intel_fb_get_format_info: Get a modifier specific format information
> - * @cmd: FB add command structure
> + * @pixel_format: pixel format
> + * @modifier: modifier
> *
> * Returns:
> * Returns the format information for @cmd->pixel_format specific to @cmd->modifier[0],
> * or %NULL if the modifier doesn't override the format.
This needs to be updated too.
> */
> const struct drm_format_info *
> -intel_fb_get_format_info(const struct drm_mode_fb_cmd2 *cmd)
> +intel_fb_get_format_info(u32 pixel_format, u64 modifier)
> {
> - const struct intel_modifier_desc *md = lookup_modifier_or_null(cmd->modifier[0]);
> + const struct intel_modifier_desc *md = lookup_modifier_or_null(modifier);
>
> if (!md || !md->formats)
> return NULL;
>
> - return lookup_format_info(md->formats, md->format_count, cmd->pixel_format);
> + return lookup_format_info(md->formats, md->format_count, pixel_format);
> }
>
> static bool plane_caps_contain_any(u8 caps, u8 mask)
> diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
> index bdd76b372957..7d1267fbeee2 100644
> --- a/drivers/gpu/drm/i915/display/intel_fb.h
> +++ b/drivers/gpu/drm/i915/display/intel_fb.h
> @@ -47,7 +47,7 @@ u64 *intel_fb_plane_get_modifiers(struct intel_display *display,
> bool intel_fb_plane_supports_modifier(struct intel_plane *plane, u64 modifier);
>
> const struct drm_format_info *
> -intel_fb_get_format_info(const struct drm_mode_fb_cmd2 *cmd);
> +intel_fb_get_format_info(u32 pixel_format, u64 modifier);
>
> bool
> intel_format_info_is_yuv_semiplanar(const struct drm_format_info *info,
> diff --git a/include/drm/drm_mode_config.h b/include/drm/drm_mode_config.h
> index 4b8f0370b79b..6fca0362bc31 100644
> --- a/include/drm/drm_mode_config.h
> +++ b/include/drm/drm_mode_config.h
> @@ -95,7 +95,7 @@ struct drm_mode_config_funcs {
> * The format information specific to the given fb metadata, or
> * NULL if none is found.
And here too. The full documentation block states
/**
* @get_format_info:
*
* Allows a driver to return custom format information for special
* fb layouts (eg. ones with auxiliary compression control planes).
*
* RETURNS:
*
* The format information specific to the given fb metadata, or
* NULL if none is found.
*/
Updating the RETURNS section is easy, but the text before that is
problematic. If the intent was to support formats with auxialiary
compression control planes, this won't be possible anymore if we pass
cmd->modifier[0] only. Is that an issue, or was this a foreseen use case
that never materialized ? If we don't need to support this anymore then
the code change is fine, and the documentation should be updated
accordingly.
> */
> - const struct drm_format_info *(*get_format_info)(const struct drm_mode_fb_cmd2 *mode_cmd);
> + const struct drm_format_info *(*get_format_info)(u32 pixel_format, u64 modifier);
>
> /**
> * @mode_valid:
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 15/19] drm/msm: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
2025-04-10 16:32 ` [PATCH 15/19] drm/msm: " Ville Syrjala
@ 2025-04-10 19:28 ` Dmitry Baryshkov
0 siblings, 0 replies; 53+ messages in thread
From: Dmitry Baryshkov @ 2025-04-10 19:28 UTC (permalink / raw)
To: Ville Syrjala
Cc: dri-devel, intel-gfx, intel-xe, Rob Clark, Abhinav Kumar,
Dmitry Baryshkov, Sean Paul, Marijn Suijten, linux-arm-msm,
freedreno
On Thu, Apr 10, 2025 at 07:32:14PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Plumb the format info from .fb_create() all the way to
> drm_helper_mode_fill_fb_struct() to avoid the redundant
> lookups.
>
> For the fbdev case a manual drm_get_format_info() lookup
> is needed.
>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
> Cc: Dmitry Baryshkov <lumag@kernel.org>
> Cc: Sean Paul <sean@poorly.run>
> Cc: Marijn Suijten <marijn.suijten@somainline.org>
> Cc: linux-arm-msm@vger.kernel.org
> Cc: freedreno@lists.freedesktop.org
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/msm/msm_fb.c | 14 ++++++++------
> 1 file changed, 8 insertions(+), 6 deletions(-)
>
Acked-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 02/19] drm: Pass pixel_format+modifier directly to drm_get_format_info()
2025-04-10 16:32 ` [PATCH 02/19] drm: Pass pixel_format+modifier directly to drm_get_format_info() Ville Syrjala
@ 2025-04-10 19:31 ` Laurent Pinchart
2025-04-10 19:43 ` kernel test robot
` (2 subsequent siblings)
3 siblings, 0 replies; 53+ messages in thread
From: Laurent Pinchart @ 2025-04-10 19:31 UTC (permalink / raw)
To: Ville Syrjala
Cc: dri-devel, intel-gfx, intel-xe, Liviu Dudau, Russell King,
Inki Dae, Seung-Woo Kim, Kyungmin Park, Patrik Jakobsson,
Chun-Kuang Hu, Philipp Zabel, Rob Clark, Abhinav Kumar,
Dmitry Baryshkov, Sean Paul, Marijn Suijten, Marek Vasut,
Stefan Agner, Lyude Paul, Danilo Krummrich, Tomi Valkeinen,
Alex Deucher, Sandy Huang, Heiko Stübner, Andy Yan,
Thierry Reding, Mikko Perttunen, linux-arm-msm, freedreno,
nouveau, amd-gfx, linux-tegra
Hi Ville,
Thank you for the patch.
On Thu, Apr 10, 2025 at 07:32:01PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Decouple drm_get_format_info() from struct drm_mode_fb_cmd2 and just
> pass the pixel format+modifier combo in by hand.
>
> We may want to use drm_get_format_info() outside of the normal
> addfb paths where we won't have a struct drm_mode_fb_cmd2, and
> creating a temporary one just for this seems silly.
>
> Done with cocci:
> @@
> identifier dev, mode_cmd;
> @@
> struct drm_format_info *
> drm_get_format_info(struct drm_device *dev,
> - const struct drm_mode_fb_cmd2 *mode_cmd
> + u32 pixel_format, u64 modifier
> )
> {
> <...
> (
> - mode_cmd->pixel_format
> + pixel_format
> |
> - mode_cmd->modifier[0]
> + modifier
> )
> ...>
> }
>
> @@
> identifier dev, mode_cmd;
> @@
> struct drm_format_info *
> drm_get_format_info(struct drm_device *dev,
> - const struct drm_mode_fb_cmd2 *mode_cmd
> + u32 pixel_format, u64 modifier
> );
>
> @@
> expression dev, mode_cmd;
> @@
> - drm_get_format_info(dev, mode_cmd)
> + drm_get_format_info(dev, mode_cmd->pixel_format, mode_cmd->modifier[0])
>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
> Cc: Chun-Kuang Hu <chunkuang.hu@kernel.org>
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
> Cc: Dmitry Baryshkov <lumag@kernel.org>
> Cc: Sean Paul <sean@poorly.run>
> Cc: Marijn Suijten <marijn.suijten@somainline.org>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Stefan Agner <stefan@agner.ch>
> Cc: Lyude Paul <lyude@redhat.com>
> Cc: Danilo Krummrich <dakr@kernel.org>
> Cc: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: Sandy Huang <hjc@rock-chips.com>
> Cc: "Heiko Stübner" <heiko@sntech.de>
> Cc: Andy Yan <andy.yan@rock-chips.com>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Mikko Perttunen <mperttunen@nvidia.com>
> Cc: linux-arm-msm@vger.kernel.org
> Cc: freedreno@lists.freedesktop.org
> Cc: nouveau@lists.freedesktop.org
> Cc: amd-gfx@lists.freedesktop.org
> Cc: linux-tegra@vger.kernel.org
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> ---
> drivers/gpu/drm/arm/malidp_drv.c | 3 ++-
> drivers/gpu/drm/armada/armada_fb.c | 4 +++-
> drivers/gpu/drm/drm_fourcc.c | 8 ++++----
> drivers/gpu/drm/drm_framebuffer.c | 2 +-
> drivers/gpu/drm/drm_gem_framebuffer_helper.c | 9 ++++++---
> drivers/gpu/drm/drm_modeset_helper.c | 3 ++-
> drivers/gpu/drm/exynos/exynos_drm_fb.c | 4 +++-
> drivers/gpu/drm/gma500/framebuffer.c | 3 ++-
> drivers/gpu/drm/mediatek/mtk_drm_drv.c | 4 +++-
> drivers/gpu/drm/msm/msm_fb.c | 6 ++++--
> drivers/gpu/drm/mxsfb/mxsfb_drv.c | 3 ++-
> drivers/gpu/drm/nouveau/nouveau_display.c | 3 ++-
> drivers/gpu/drm/omapdrm/omap_fb.c | 6 ++++--
> drivers/gpu/drm/radeon/radeon_fbdev.c | 3 ++-
> drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 3 ++-
> drivers/gpu/drm/tegra/fb.c | 4 +++-
> include/drm/drm_fourcc.h | 2 +-
> 17 files changed, 46 insertions(+), 24 deletions(-)
>
> diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
> index e083021e9e99..558e44a7e627 100644
> --- a/drivers/gpu/drm/arm/malidp_drv.c
> +++ b/drivers/gpu/drm/arm/malidp_drv.c
> @@ -325,7 +325,8 @@ malidp_verify_afbc_framebuffer_size(struct drm_device *dev,
> return false;
> }
>
> - info = drm_get_format_info(dev, mode_cmd);
> + info = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
>
> n_superblocks = (mode_cmd->width / afbc_superblock_width) *
> (mode_cmd->height / afbc_superblock_height);
> diff --git a/drivers/gpu/drm/armada/armada_fb.c b/drivers/gpu/drm/armada/armada_fb.c
> index cf2e88218dc0..85fc2cb50544 100644
> --- a/drivers/gpu/drm/armada/armada_fb.c
> +++ b/drivers/gpu/drm/armada/armada_fb.c
> @@ -86,7 +86,9 @@ struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev,
> struct drm_framebuffer *armada_fb_create(struct drm_device *dev,
> struct drm_file *dfile, const struct drm_mode_fb_cmd2 *mode)
> {
> - const struct drm_format_info *info = drm_get_format_info(dev, mode);
> + const struct drm_format_info *info = drm_get_format_info(dev,
> + mode->pixel_format,
> + mode->modifier[0]);
> struct armada_gem_object *obj;
> struct armada_framebuffer *dfb;
> int ret;
> diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c
> index f79fff8209fd..3c6998b74a4f 100644
> --- a/drivers/gpu/drm/drm_fourcc.c
> +++ b/drivers/gpu/drm/drm_fourcc.c
> @@ -390,16 +390,16 @@ EXPORT_SYMBOL(drm_format_info);
> */
> const struct drm_format_info *
> drm_get_format_info(struct drm_device *dev,
> - const struct drm_mode_fb_cmd2 *mode_cmd)
> + u32 pixel_format, u64 modifier)
> {
> const struct drm_format_info *info = NULL;
>
> if (dev->mode_config.funcs->get_format_info)
> - info = dev->mode_config.funcs->get_format_info(mode_cmd->pixel_format,
> - mode_cmd->modifier[0]);
> + info = dev->mode_config.funcs->get_format_info(pixel_format,
> + modifier);
>
> if (!info)
> - info = drm_format_info(mode_cmd->pixel_format);
> + info = drm_format_info(pixel_format);
>
> return info;
> }
> diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c
> index b781601946db..18a0267e374e 100644
> --- a/drivers/gpu/drm/drm_framebuffer.c
> +++ b/drivers/gpu/drm/drm_framebuffer.c
> @@ -176,7 +176,7 @@ static int framebuffer_check(struct drm_device *dev,
> }
>
> /* now let the driver pick its own format info */
> - info = drm_get_format_info(dev, r);
> + info = drm_get_format_info(dev, r->pixel_format, r->modifier[0]);
>
> for (i = 0; i < info->num_planes; i++) {
> unsigned int width = drm_format_info_plane_width(info, r->width, i);
> diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> index 6f72e7a0f427..8f1213ea0e16 100644
> --- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> +++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> @@ -159,7 +159,8 @@ int drm_gem_fb_init_with_funcs(struct drm_device *dev,
> unsigned int i;
> int ret;
>
> - info = drm_get_format_info(dev, mode_cmd);
> + info = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> if (!info) {
> drm_dbg_kms(dev, "Failed to get FB format info\n");
> return -EINVAL;
> @@ -501,7 +502,8 @@ static __u32 drm_gem_afbc_get_bpp(struct drm_device *dev,
> {
> const struct drm_format_info *info;
>
> - info = drm_get_format_info(dev, mode_cmd);
> + info = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
>
> switch (info->format) {
> case DRM_FORMAT_YUV420_8BIT:
> @@ -599,7 +601,8 @@ int drm_gem_fb_afbc_init(struct drm_device *dev,
> int ret;
>
> objs = afbc_fb->base.obj;
> - info = drm_get_format_info(dev, mode_cmd);
> + info = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> if (!info)
> return -EINVAL;
>
> diff --git a/drivers/gpu/drm/drm_modeset_helper.c b/drivers/gpu/drm/drm_modeset_helper.c
> index 5565464c1734..dff14af68832 100644
> --- a/drivers/gpu/drm/drm_modeset_helper.c
> +++ b/drivers/gpu/drm/drm_modeset_helper.c
> @@ -84,7 +84,8 @@ void drm_helper_mode_fill_fb_struct(struct drm_device *dev,
> int i;
>
> fb->dev = dev;
> - fb->format = drm_get_format_info(dev, mode_cmd);
> + fb->format = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> fb->width = mode_cmd->width;
> fb->height = mode_cmd->height;
> for (i = 0; i < 4; i++) {
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fb.c b/drivers/gpu/drm/exynos/exynos_drm_fb.c
> index fc1c5608db96..bcf7b534d1f7 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_fb.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_fb.c
> @@ -96,7 +96,9 @@ static struct drm_framebuffer *
> exynos_user_fb_create(struct drm_device *dev, struct drm_file *file_priv,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> - const struct drm_format_info *info = drm_get_format_info(dev, mode_cmd);
> + const struct drm_format_info *info = drm_get_format_info(dev,
> + mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> struct exynos_drm_gem *exynos_gem[MAX_FB_BUFFER];
> struct drm_framebuffer *fb;
> int i;
> diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
> index 1a374702b696..c82e623a2071 100644
> --- a/drivers/gpu/drm/gma500/framebuffer.c
> +++ b/drivers/gpu/drm/gma500/framebuffer.c
> @@ -39,7 +39,8 @@ static int psb_framebuffer_init(struct drm_device *dev,
> * Reject unknown formats, YUV formats, and formats with more than
> * 4 bytes per pixel.
> */
> - info = drm_get_format_info(dev, mode_cmd);
> + info = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> if (!info || !info->depth || info->cpp[0] > 4)
> return -EINVAL;
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> index 74158b9d6503..64521577b05f 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> @@ -45,7 +45,9 @@ mtk_drm_mode_fb_create(struct drm_device *dev,
> struct drm_file *file,
> const struct drm_mode_fb_cmd2 *cmd)
> {
> - const struct drm_format_info *info = drm_get_format_info(dev, cmd);
> + const struct drm_format_info *info = drm_get_format_info(dev,
> + cmd->pixel_format,
> + cmd->modifier[0]);
>
> if (info->num_planes != 1)
> return ERR_PTR(-EINVAL);
> diff --git a/drivers/gpu/drm/msm/msm_fb.c b/drivers/gpu/drm/msm/msm_fb.c
> index 09268e416843..df2f85c44d55 100644
> --- a/drivers/gpu/drm/msm/msm_fb.c
> +++ b/drivers/gpu/drm/msm/msm_fb.c
> @@ -137,7 +137,8 @@ struct drm_framebuffer *msm_framebuffer_create(struct drm_device *dev,
> struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> const struct drm_format_info *info = drm_get_format_info(dev,
> - mode_cmd);
> + mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> struct drm_gem_object *bos[4] = {0};
> struct drm_framebuffer *fb;
> int ret, i, n = info->num_planes;
> @@ -168,7 +169,8 @@ static struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev,
> const struct drm_mode_fb_cmd2 *mode_cmd, struct drm_gem_object **bos)
> {
> const struct drm_format_info *info = drm_get_format_info(dev,
> - mode_cmd);
> + mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> struct msm_drm_private *priv = dev->dev_private;
> struct msm_kms *kms = priv->kms;
> struct msm_framebuffer *msm_fb = NULL;
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> index c183b1112bc4..09329af9b01e 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> @@ -95,7 +95,8 @@ mxsfb_fb_create(struct drm_device *dev, struct drm_file *file_priv,
> {
> const struct drm_format_info *info;
>
> - info = drm_get_format_info(dev, mode_cmd);
> + info = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> if (!info)
> return ERR_PTR(-EINVAL);
>
> diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
> index add006fc8d81..a54c3f132c5c 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_display.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_display.c
> @@ -295,7 +295,8 @@ nouveau_framebuffer_new(struct drm_device *dev,
> kind = nvbo->kind;
> }
>
> - info = drm_get_format_info(dev, mode_cmd);
> + info = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
>
> for (i = 0; i < info->num_planes; i++) {
> height = drm_format_info_plane_height(info,
> diff --git a/drivers/gpu/drm/omapdrm/omap_fb.c b/drivers/gpu/drm/omapdrm/omap_fb.c
> index 449d521c78fe..e18878068c57 100644
> --- a/drivers/gpu/drm/omapdrm/omap_fb.c
> +++ b/drivers/gpu/drm/omapdrm/omap_fb.c
> @@ -338,7 +338,8 @@ struct drm_framebuffer *omap_framebuffer_create(struct drm_device *dev,
> struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> const struct drm_format_info *info = drm_get_format_info(dev,
> - mode_cmd);
> + mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> unsigned int num_planes = info->num_planes;
> struct drm_gem_object *bos[4];
> struct drm_framebuffer *fb;
> @@ -378,7 +379,8 @@ struct drm_framebuffer *omap_framebuffer_init(struct drm_device *dev,
> dev, mode_cmd, mode_cmd->width, mode_cmd->height,
> (char *)&mode_cmd->pixel_format);
>
> - format = drm_get_format_info(dev, mode_cmd);
> + format = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
>
> for (i = 0; i < ARRAY_SIZE(formats); i++) {
> if (formats[i] == mode_cmd->pixel_format)
> diff --git a/drivers/gpu/drm/radeon/radeon_fbdev.c b/drivers/gpu/drm/radeon/radeon_fbdev.c
> index d4a58bd679db..e3a481bbee7b 100644
> --- a/drivers/gpu/drm/radeon/radeon_fbdev.c
> +++ b/drivers/gpu/drm/radeon/radeon_fbdev.c
> @@ -67,7 +67,8 @@ static int radeon_fbdev_create_pinned_object(struct drm_fb_helper *fb_helper,
> int height = mode_cmd->height;
> u32 cpp;
>
> - info = drm_get_format_info(rdev_to_drm(rdev), mode_cmd);
> + info = drm_get_format_info(rdev_to_drm(rdev), mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> cpp = info->cpp[0];
>
> /* need to align pitch with crtc limits */
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
> index dcc1f07632c3..bf25286c7665 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
> @@ -36,7 +36,8 @@ rockchip_fb_create(struct drm_device *dev, struct drm_file *file,
> const struct drm_format_info *info;
> int ret;
>
> - info = drm_get_format_info(dev, mode_cmd);
> + info = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> if (!info)
> return ERR_PTR(-ENOMEM);
>
> diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
> index 46170753699d..634c6346d947 100644
> --- a/drivers/gpu/drm/tegra/fb.c
> +++ b/drivers/gpu/drm/tegra/fb.c
> @@ -134,7 +134,9 @@ struct drm_framebuffer *tegra_fb_create(struct drm_device *drm,
> struct drm_file *file,
> const struct drm_mode_fb_cmd2 *cmd)
> {
> - const struct drm_format_info *info = drm_get_format_info(drm, cmd);
> + const struct drm_format_info *info = drm_get_format_info(drm,
> + cmd->pixel_format,
> + cmd->modifier[0]);
> struct tegra_bo *planes[4];
> struct drm_gem_object *gem;
> struct drm_framebuffer *fb;
> diff --git a/include/drm/drm_fourcc.h b/include/drm/drm_fourcc.h
> index c3f4405d6662..6fc08d884b80 100644
> --- a/include/drm/drm_fourcc.h
> +++ b/include/drm/drm_fourcc.h
> @@ -309,7 +309,7 @@ const struct drm_format_info *__drm_format_info(u32 format);
> const struct drm_format_info *drm_format_info(u32 format);
> const struct drm_format_info *
> drm_get_format_info(struct drm_device *dev,
> - const struct drm_mode_fb_cmd2 *mode_cmd);
> + u32 pixel_format, u64 modifier);
> uint32_t drm_mode_legacy_fb_format(uint32_t bpp, uint32_t depth);
> uint32_t drm_driver_legacy_fb_format(struct drm_device *dev,
> uint32_t bpp, uint32_t depth);
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 03/19] drm: Look up the format info earlier
2025-04-10 16:32 ` [PATCH 03/19] drm: Look up the format info earlier Ville Syrjala
@ 2025-04-10 19:33 ` Laurent Pinchart
2025-04-11 7:01 ` Ville Syrjälä
2025-04-11 7:18 ` Thomas Zimmermann
2025-04-11 19:27 ` [PATCH v2 " Ville Syrjala
2 siblings, 1 reply; 53+ messages in thread
From: Laurent Pinchart @ 2025-04-10 19:33 UTC (permalink / raw)
To: Ville Syrjala; +Cc: dri-devel, intel-gfx, intel-xe
Hi Ville,
Thank you for the patch.
On Thu, Apr 10, 2025 at 07:32:02PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Looks up the format info in already drm_internal_framebuffer_create()
> so that we can later pass it along to .fb_create(). Currently various
> drivers are doing additional lookups in their .fb_create()
> implementations, and these lookups are rather expensive now (given
> how many different pixel formats we have).
That's a separate issue, but would it be worth using a data structure
that supports more efficient lookup ?
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> ---
> drivers/gpu/drm/drm_framebuffer.c | 25 +++++++++++++------------
> 1 file changed, 13 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c
> index 18a0267e374e..ae09ef6977b2 100644
> --- a/drivers/gpu/drm/drm_framebuffer.c
> +++ b/drivers/gpu/drm/drm_framebuffer.c
> @@ -153,18 +153,11 @@ int drm_mode_addfb_ioctl(struct drm_device *dev,
> }
>
> static int framebuffer_check(struct drm_device *dev,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *r)
> {
> - const struct drm_format_info *info;
> int i;
>
> - /* check if the format is supported at all */
> - if (!__drm_format_info(r->pixel_format)) {
> - drm_dbg_kms(dev, "bad framebuffer format %p4cc\n",
> - &r->pixel_format);
> - return -EINVAL;
> - }
> -
> if (r->width == 0) {
> drm_dbg_kms(dev, "bad framebuffer width %u\n", r->width);
> return -EINVAL;
> @@ -175,9 +168,6 @@ static int framebuffer_check(struct drm_device *dev,
> return -EINVAL;
> }
>
> - /* now let the driver pick its own format info */
> - info = drm_get_format_info(dev, r->pixel_format, r->modifier[0]);
> -
> for (i = 0; i < info->num_planes; i++) {
> unsigned int width = drm_format_info_plane_width(info, r->width, i);
> unsigned int height = drm_format_info_plane_height(info, r->height, i);
> @@ -272,6 +262,7 @@ drm_internal_framebuffer_create(struct drm_device *dev,
> struct drm_file *file_priv)
> {
> struct drm_mode_config *config = &dev->mode_config;
> + const struct drm_format_info *info;
> struct drm_framebuffer *fb;
> int ret;
>
> @@ -297,7 +288,17 @@ drm_internal_framebuffer_create(struct drm_device *dev,
> return ERR_PTR(-EINVAL);
> }
>
> - ret = framebuffer_check(dev, r);
> + /* check if the format is supported at all */
> + if (!__drm_format_info(r->pixel_format)) {
> + drm_dbg_kms(dev, "bad framebuffer format %p4cc\n",
> + &r->pixel_format);
> + return ERR_PTR(-EINVAL);
> + }
> +
> + /* now let the driver pick its own format info */
> + info = drm_get_format_info(dev, r->pixel_format, r->modifier[0]);
> +
> + ret = framebuffer_check(dev, info, r);
> if (ret)
> return ERR_PTR(ret);
>
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 04/19] drm: Pass the format info to .fb_create()
2025-04-10 16:32 ` [PATCH 04/19] drm: Pass the format info to .fb_create() Ville Syrjala
@ 2025-04-10 19:37 ` Laurent Pinchart
2025-04-10 21:26 ` kernel test robot
` (2 subsequent siblings)
3 siblings, 0 replies; 53+ messages in thread
From: Laurent Pinchart @ 2025-04-10 19:37 UTC (permalink / raw)
To: Ville Syrjala
Cc: dri-devel, intel-gfx, intel-xe, Alex Deucher, Liviu Dudau,
Maxime Ripard, Russell King, Inki Dae, Seung-Woo Kim,
Kyungmin Park, Patrik Jakobsson, Chun-Kuang Hu, Philipp Zabel,
Rob Clark, Abhinav Kumar, Dmitry Baryshkov, Sean Paul,
Marijn Suijten, Marek Vasut, Stefan Agner, Lyude Paul,
Danilo Krummrich, Tomi Valkeinen, Dave Airlie, Gerd Hoffmann,
Kieran Bingham, Biju Das, Geert Uytterhoeven, Sandy Huang,
Heiko Stübner, Andy Yan, Thierry Reding, Mikko Perttunen,
Dave Stevenson, Maíra Canal, Raspberry Pi Kernel Maintenance,
Dmitry Osipenko, Gurchetan Singh, Chia-I Wu, Zack Rusin,
Broadcom internal kernel review list, Oleksandr Andrushchenko,
amd-gfx, linux-arm-msm, freedreno, nouveau, virtualization
Hi Ville,
Thank you for the patch.
On Thu, Apr 10, 2025 at 07:32:03PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Pass long the format information from the top to .fb_create()
> so that we can avoid redundant (and somewhat expensive) lookups
> in the drivers.
>
> Done with cocci (with some manual fixups):
> @@
> identifier func =~ ".*create.*";
> identifier dev, file, mode_cmd;
> @@
> struct drm_framebuffer *func(
> struct drm_device *dev,
> struct drm_file *file,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> ...
> (
> - const struct drm_format_info *info = drm_get_format_info(...);
> |
> - const struct drm_format_info *info;
> ...
> - info = drm_get_format_info(...);
> )
> <...
> - if (!info)
> - return ...;
> ...>
> }
>
> @@
> identifier func =~ ".*create.*";
> identifier dev, file, mode_cmd;
> @@
> struct drm_framebuffer *func(
> struct drm_device *dev,
> struct drm_file *file,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> ...
> }
>
> @find@
> identifier fb_create_func =~ ".*create.*";
> identifier dev, file, mode_cmd;
> @@
> struct drm_framebuffer *fb_create_func(
> struct drm_device *dev,
> struct drm_file *file,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd);
>
> @@
> identifier find.fb_create_func;
> expression dev, file, mode_cmd;
> @@
> fb_create_func(dev, file
> + ,info
> ,mode_cmd)
>
> @@
> expression dev, file, mode_cmd;
> @@
> drm_gem_fb_create(dev, file
> + ,info
> ,mode_cmd)
>
> @@
> expression dev, file, mode_cmd;
> @@
> drm_gem_fb_create_with_dirty(dev, file
> + ,info
> ,mode_cmd)
>
> @@
> expression dev, file_priv, mode_cmd;
> identifier info, fb;
> @@
> info = drm_get_format_info(...);
> ...
> fb = dev->mode_config.funcs->fb_create(dev, file_priv
> + ,info
> ,mode_cmd);
>
> @@
> identifier dev, file_priv, mode_cmd;
> @@
> struct drm_mode_config_funcs {
> ...
> struct drm_framebuffer *(*fb_create)(struct drm_device *dev,
> struct drm_file *file_priv,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd);
> ...
> };
>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Maxime Ripard <mripard@kernel.org>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
> Cc: Chun-Kuang Hu <chunkuang.hu@kernel.org>
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
> Cc: Dmitry Baryshkov <lumag@kernel.org>
> Cc: Sean Paul <sean@poorly.run>
> Cc: Marijn Suijten <marijn.suijten@somainline.org>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Stefan Agner <stefan@agner.ch>
> Cc: Lyude Paul <lyude@redhat.com>
> Cc: Danilo Krummrich <dakr@kernel.org>
> Cc: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
> Cc: Dave Airlie <airlied@redhat.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
> Cc: Biju Das <biju.das.jz@bp.renesas.com>
> Cc: Geert Uytterhoeven <geert+renesas@glider.be>
> Cc: Sandy Huang <hjc@rock-chips.com>
> Cc: "Heiko Stübner" <heiko@sntech.de>
> Cc: Andy Yan <andy.yan@rock-chips.com>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Mikko Perttunen <mperttunen@nvidia.com>
> Cc: Dave Stevenson <dave.stevenson@raspberrypi.com>
> Cc: "Maíra Canal" <mcanal@igalia.com>
> Cc: Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
> Cc: Dmitry Osipenko <dmitry.osipenko@collabora.com>
> Cc: Gurchetan Singh <gurchetansingh@chromium.org>
> Cc: Chia-I Wu <olvaffe@gmail.com>
> Cc: Zack Rusin <zack.rusin@broadcom.com>
> Cc: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
> Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Cc: amd-gfx@lists.freedesktop.org
> Cc: linux-arm-msm@vger.kernel.org
> Cc: freedreno@lists.freedesktop.org
> Cc: nouveau@lists.freedesktop.org
> Cc: virtualization@lists.linux.dev
> Cc: spice-devel@lists.freedesktop.org
> Cc: linux-renesas-soc@vger.kernel.org
> Cc: linux-tegra@vger.kernel.org
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 1 +
> drivers/gpu/drm/amd/amdgpu/amdgpu_display.h | 1 +
> .../gpu/drm/arm/display/komeda/komeda_framebuffer.c | 1 +
> .../gpu/drm/arm/display/komeda/komeda_framebuffer.h | 1 +
> drivers/gpu/drm/arm/malidp_drv.c | 3 ++-
> drivers/gpu/drm/armada/armada_fb.c | 6 ++----
> drivers/gpu/drm/armada/armada_fb.h | 3 ++-
> drivers/gpu/drm/drm_framebuffer.c | 2 +-
> drivers/gpu/drm/drm_gem_framebuffer_helper.c | 2 ++
> drivers/gpu/drm/exynos/exynos_drm_fb.c | 4 +---
> drivers/gpu/drm/gma500/framebuffer.c | 1 +
> drivers/gpu/drm/i915/display/intel_fb.c | 1 +
> drivers/gpu/drm/i915/display/intel_fb.h | 1 +
> drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 5 +++--
> drivers/gpu/drm/mediatek/mtk_drm_drv.c | 7 ++-----
> drivers/gpu/drm/msm/msm_drv.h | 3 ++-
> drivers/gpu/drm/msm/msm_fb.c | 6 ++----
> drivers/gpu/drm/mxsfb/mxsfb_drv.c | 10 ++--------
> drivers/gpu/drm/nouveau/nouveau_display.c | 1 +
> drivers/gpu/drm/nouveau/nouveau_display.h | 1 +
> drivers/gpu/drm/omapdrm/omap_fb.c | 6 ++----
> drivers/gpu/drm/omapdrm/omap_fb.h | 3 ++-
> drivers/gpu/drm/qxl/qxl_display.c | 1 +
> drivers/gpu/drm/radeon/radeon_display.c | 1 +
> drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c | 3 ++-
> drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c | 3 ++-
> drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c | 3 ++-
> drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 7 +------
> drivers/gpu/drm/tegra/drm.h | 1 +
> drivers/gpu/drm/tegra/fb.c | 4 +---
> drivers/gpu/drm/tests/drm_framebuffer_test.c | 1 +
> drivers/gpu/drm/vc4/vc4_kms.c | 3 ++-
> drivers/gpu/drm/virtio/virtgpu_display.c | 1 +
> drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 1 +
> drivers/gpu/drm/xen/xen_drm_front_kms.c | 1 +
> drivers/gpu/drm/xlnx/zynqmp_kms.c | 3 ++-
> include/drm/drm_gem_framebuffer_helper.h | 3 +++
> include/drm/drm_mode_config.h | 1 +
> 38 files changed, 57 insertions(+), 49 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
> index 35c778426a7c..10c57ded0e3e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
> @@ -1297,6 +1297,7 @@ static int amdgpu_display_framebuffer_init(struct drm_device *dev,
> struct drm_framebuffer *
> amdgpu_display_user_framebuffer_create(struct drm_device *dev,
> struct drm_file *file_priv,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> struct amdgpu_framebuffer *amdgpu_fb;
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.h
> index dfa0d642ac16..930c171473b4 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.h
> @@ -44,6 +44,7 @@ uint32_t amdgpu_display_supported_domains(struct amdgpu_device *adev,
> struct drm_framebuffer *
> amdgpu_display_user_framebuffer_create(struct drm_device *dev,
> struct drm_file *file_priv,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd);
> const struct drm_format_info *
> amdgpu_lookup_format_info(u32 format, uint64_t modifier);
> diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
> index df5da5a44755..29b05482f713 100644
> --- a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
> +++ b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
> @@ -157,6 +157,7 @@ komeda_fb_none_afbc_size_check(struct komeda_dev *mdev, struct komeda_fb *kfb,
>
> struct drm_framebuffer *
> komeda_fb_create(struct drm_device *dev, struct drm_file *file,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> struct komeda_dev *mdev = dev->dev_private;
> diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.h b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.h
> index c61ca98a3a63..02b2b8ae482a 100644
> --- a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.h
> +++ b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.h
> @@ -37,6 +37,7 @@ struct komeda_fb {
>
> struct drm_framebuffer *
> komeda_fb_create(struct drm_device *dev, struct drm_file *file,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd);
> int komeda_fb_check_src_coords(const struct komeda_fb *kfb,
> u32 src_x, u32 src_y, u32 src_w, u32 src_h);
> diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
> index 558e44a7e627..8b920566f2e8 100644
> --- a/drivers/gpu/drm/arm/malidp_drv.c
> +++ b/drivers/gpu/drm/arm/malidp_drv.c
> @@ -377,6 +377,7 @@ malidp_verify_afbc_framebuffer(struct drm_device *dev, struct drm_file *file,
>
> static struct drm_framebuffer *
> malidp_fb_create(struct drm_device *dev, struct drm_file *file,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> if (mode_cmd->modifier[0]) {
> @@ -384,7 +385,7 @@ malidp_fb_create(struct drm_device *dev, struct drm_file *file,
> return ERR_PTR(-EINVAL);
> }
>
> - return drm_gem_fb_create(dev, file, mode_cmd);
> + return drm_gem_fb_create(dev, file, info, mode_cmd);
> }
>
> static const struct drm_mode_config_funcs malidp_mode_config_funcs = {
> diff --git a/drivers/gpu/drm/armada/armada_fb.c b/drivers/gpu/drm/armada/armada_fb.c
> index 85fc2cb50544..597720e229c2 100644
> --- a/drivers/gpu/drm/armada/armada_fb.c
> +++ b/drivers/gpu/drm/armada/armada_fb.c
> @@ -84,11 +84,9 @@ struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev,
> }
>
> struct drm_framebuffer *armada_fb_create(struct drm_device *dev,
> - struct drm_file *dfile, const struct drm_mode_fb_cmd2 *mode)
> + struct drm_file *dfile, const struct drm_format_info *info,
> + const struct drm_mode_fb_cmd2 *mode)
> {
> - const struct drm_format_info *info = drm_get_format_info(dev,
> - mode->pixel_format,
> - mode->modifier[0]);
> struct armada_gem_object *obj;
> struct armada_framebuffer *dfb;
> int ret;
> diff --git a/drivers/gpu/drm/armada/armada_fb.h b/drivers/gpu/drm/armada/armada_fb.h
> index c5bc53d7e0c4..41ba76dd80d6 100644
> --- a/drivers/gpu/drm/armada/armada_fb.h
> +++ b/drivers/gpu/drm/armada/armada_fb.h
> @@ -19,5 +19,6 @@ struct armada_framebuffer {
> struct armada_framebuffer *armada_framebuffer_create(struct drm_device *,
> const struct drm_mode_fb_cmd2 *, struct armada_gem_object *);
> struct drm_framebuffer *armada_fb_create(struct drm_device *dev,
> - struct drm_file *dfile, const struct drm_mode_fb_cmd2 *mode);
> + struct drm_file *dfile, const struct drm_format_info *info,
> + const struct drm_mode_fb_cmd2 *mode);
> #endif
> diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c
> index ae09ef6977b2..61a7213f2389 100644
> --- a/drivers/gpu/drm/drm_framebuffer.c
> +++ b/drivers/gpu/drm/drm_framebuffer.c
> @@ -302,7 +302,7 @@ drm_internal_framebuffer_create(struct drm_device *dev,
> if (ret)
> return ERR_PTR(ret);
>
> - fb = dev->mode_config.funcs->fb_create(dev, file_priv, r);
> + fb = dev->mode_config.funcs->fb_create(dev, file_priv, info, r);
> if (IS_ERR(fb)) {
> drm_dbg_kms(dev, "could not create framebuffer\n");
> return fb;
> diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> index 8f1213ea0e16..1b58823e14b1 100644
> --- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> +++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> @@ -282,6 +282,7 @@ static const struct drm_framebuffer_funcs drm_gem_fb_funcs = {
> */
Missing documentation update.
> struct drm_framebuffer *
> drm_gem_fb_create(struct drm_device *dev, struct drm_file *file,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> return drm_gem_fb_create_with_funcs(dev, file, mode_cmd,
> @@ -320,6 +321,7 @@ static const struct drm_framebuffer_funcs drm_gem_fb_funcs_dirtyfb = {
> */
Here too.
> struct drm_framebuffer *
> drm_gem_fb_create_with_dirty(struct drm_device *dev, struct drm_file *file,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> return drm_gem_fb_create_with_funcs(dev, file, mode_cmd,
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fb.c b/drivers/gpu/drm/exynos/exynos_drm_fb.c
> index bcf7b534d1f7..9ae526825726 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_fb.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_fb.c
> @@ -94,11 +94,9 @@ exynos_drm_framebuffer_init(struct drm_device *dev,
>
> static struct drm_framebuffer *
> exynos_user_fb_create(struct drm_device *dev, struct drm_file *file_priv,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> - const struct drm_format_info *info = drm_get_format_info(dev,
> - mode_cmd->pixel_format,
> - mode_cmd->modifier[0]);
> struct exynos_drm_gem *exynos_gem[MAX_FB_BUFFER];
> struct drm_framebuffer *fb;
> int i;
> diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
> index c82e623a2071..a4a18ec2dd56 100644
> --- a/drivers/gpu/drm/gma500/framebuffer.c
> +++ b/drivers/gpu/drm/gma500/framebuffer.c
> @@ -97,6 +97,7 @@ struct drm_framebuffer *psb_framebuffer_create(struct drm_device *dev,
> */
> static struct drm_framebuffer *psb_user_framebuffer_create
> (struct drm_device *dev, struct drm_file *filp,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *cmd)
> {
> struct drm_gem_object *obj;
> diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
> index b83c42fe3233..dd1d5c00395e 100644
> --- a/drivers/gpu/drm/i915/display/intel_fb.c
> +++ b/drivers/gpu/drm/i915/display/intel_fb.c
> @@ -2323,6 +2323,7 @@ int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
> struct drm_framebuffer *
> intel_user_framebuffer_create(struct drm_device *dev,
> struct drm_file *filp,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *user_mode_cmd)
> {
> struct drm_framebuffer *fb;
> diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
> index 7d1267fbeee2..00181c4a67dc 100644
> --- a/drivers/gpu/drm/i915/display/intel_fb.h
> +++ b/drivers/gpu/drm/i915/display/intel_fb.h
> @@ -109,6 +109,7 @@ intel_framebuffer_create(struct drm_gem_object *obj,
> struct drm_framebuffer *
> intel_user_framebuffer_create(struct drm_device *dev,
> struct drm_file *filp,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *user_mode_cmd);
>
> bool intel_fb_modifier_uses_dpt(struct intel_display *display, u64 modifier);
> diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
> index f851e9ffdb28..9db1ceaed518 100644
> --- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
> +++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
> @@ -901,14 +901,15 @@ static void ingenic_drm_disable_vblank(struct drm_crtc *crtc)
>
> static struct drm_framebuffer *
> ingenic_drm_gem_fb_create(struct drm_device *drm, struct drm_file *file,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> struct ingenic_drm *priv = drm_device_get_priv(drm);
>
> if (priv->soc_info->map_noncoherent)
> - return drm_gem_fb_create_with_dirty(drm, file, mode_cmd);
> + return drm_gem_fb_create_with_dirty(drm, file, info, mode_cmd);
>
> - return drm_gem_fb_create(drm, file, mode_cmd);
> + return drm_gem_fb_create(drm, file, info, mode_cmd);
> }
>
> static struct drm_gem_object *
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> index 64521577b05f..76fd10afe467 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> @@ -43,16 +43,13 @@ static const struct drm_mode_config_helper_funcs mtk_drm_mode_config_helpers = {
> static struct drm_framebuffer *
> mtk_drm_mode_fb_create(struct drm_device *dev,
> struct drm_file *file,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *cmd)
> {
> - const struct drm_format_info *info = drm_get_format_info(dev,
> - cmd->pixel_format,
> - cmd->modifier[0]);
> -
> if (info->num_planes != 1)
> return ERR_PTR(-EINVAL);
>
> - return drm_gem_fb_create(dev, file, cmd);
> + return drm_gem_fb_create(dev, file, info, cmd);
> }
>
> static const struct drm_mode_config_funcs mtk_drm_mode_config_funcs = {
> diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h
> index a65077855201..ba82fa756e57 100644
> --- a/drivers/gpu/drm/msm/msm_drv.h
> +++ b/drivers/gpu/drm/msm/msm_drv.h
> @@ -271,7 +271,8 @@ uint32_t msm_framebuffer_iova(struct drm_framebuffer *fb,
> struct drm_gem_object *msm_framebuffer_bo(struct drm_framebuffer *fb, int plane);
> const struct msm_format *msm_framebuffer_format(struct drm_framebuffer *fb);
> struct drm_framebuffer *msm_framebuffer_create(struct drm_device *dev,
> - struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd);
> + struct drm_file *file, const struct drm_format_info *info,
> + const struct drm_mode_fb_cmd2 *mode_cmd);
> struct drm_framebuffer * msm_alloc_stolen_fb(struct drm_device *dev,
> int w, int h, int p, uint32_t format);
>
> diff --git a/drivers/gpu/drm/msm/msm_fb.c b/drivers/gpu/drm/msm/msm_fb.c
> index df2f85c44d55..4aef51cef3d5 100644
> --- a/drivers/gpu/drm/msm/msm_fb.c
> +++ b/drivers/gpu/drm/msm/msm_fb.c
> @@ -134,11 +134,9 @@ const struct msm_format *msm_framebuffer_format(struct drm_framebuffer *fb)
> }
>
> struct drm_framebuffer *msm_framebuffer_create(struct drm_device *dev,
> - struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd)
> + struct drm_file *file, const struct drm_format_info *info,
> + const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> - const struct drm_format_info *info = drm_get_format_info(dev,
> - mode_cmd->pixel_format,
> - mode_cmd->modifier[0]);
> struct drm_gem_object *bos[4] = {0};
> struct drm_framebuffer *fb;
> int ret, i, n = info->num_planes;
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> index 09329af9b01e..0b756da2fec2 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> @@ -91,21 +91,15 @@ void mxsfb_disable_axi_clk(struct mxsfb_drm_private *mxsfb)
>
> static struct drm_framebuffer *
> mxsfb_fb_create(struct drm_device *dev, struct drm_file *file_priv,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> - const struct drm_format_info *info;
> -
> - info = drm_get_format_info(dev, mode_cmd->pixel_format,
> - mode_cmd->modifier[0]);
> - if (!info)
> - return ERR_PTR(-EINVAL);
> -
> if (mode_cmd->width * info->cpp[0] != mode_cmd->pitches[0]) {
> dev_dbg(dev->dev, "Invalid pitch: fb width must match pitch\n");
> return ERR_PTR(-EINVAL);
> }
>
> - return drm_gem_fb_create(dev, file_priv, mode_cmd);
> + return drm_gem_fb_create(dev, file_priv, info, mode_cmd);
> }
>
> static const struct drm_mode_config_funcs mxsfb_mode_config_funcs = {
> diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
> index a54c3f132c5c..3df388784bd3 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_display.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_display.c
> @@ -333,6 +333,7 @@ nouveau_framebuffer_new(struct drm_device *dev,
> struct drm_framebuffer *
> nouveau_user_framebuffer_create(struct drm_device *dev,
> struct drm_file *file_priv,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> struct drm_framebuffer *fb;
> diff --git a/drivers/gpu/drm/nouveau/nouveau_display.h b/drivers/gpu/drm/nouveau/nouveau_display.h
> index 1f506f8b289c..e45f211501f6 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_display.h
> +++ b/drivers/gpu/drm/nouveau/nouveau_display.h
> @@ -67,5 +67,6 @@ nouveau_framebuffer_get_layout(struct drm_framebuffer *fb, uint32_t *tile_mode,
>
> struct drm_framebuffer *
> nouveau_user_framebuffer_create(struct drm_device *, struct drm_file *,
> + const struct drm_format_info *,
> const struct drm_mode_fb_cmd2 *);
> #endif
> diff --git a/drivers/gpu/drm/omapdrm/omap_fb.c b/drivers/gpu/drm/omapdrm/omap_fb.c
> index e18878068c57..36afcd1c1fd7 100644
> --- a/drivers/gpu/drm/omapdrm/omap_fb.c
> +++ b/drivers/gpu/drm/omapdrm/omap_fb.c
> @@ -335,11 +335,9 @@ void omap_framebuffer_describe(struct drm_framebuffer *fb, struct seq_file *m)
> #endif
>
> struct drm_framebuffer *omap_framebuffer_create(struct drm_device *dev,
> - struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd)
> + struct drm_file *file, const struct drm_format_info *info,
> + const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> - const struct drm_format_info *info = drm_get_format_info(dev,
> - mode_cmd->pixel_format,
> - mode_cmd->modifier[0]);
> unsigned int num_planes = info->num_planes;
> struct drm_gem_object *bos[4];
> struct drm_framebuffer *fb;
> diff --git a/drivers/gpu/drm/omapdrm/omap_fb.h b/drivers/gpu/drm/omapdrm/omap_fb.h
> index b75f0b5ef1d8..0873f953cf1d 100644
> --- a/drivers/gpu/drm/omapdrm/omap_fb.h
> +++ b/drivers/gpu/drm/omapdrm/omap_fb.h
> @@ -20,7 +20,8 @@ struct omap_overlay_info;
> struct seq_file;
>
> struct drm_framebuffer *omap_framebuffer_create(struct drm_device *dev,
> - struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd);
> + struct drm_file *file, const struct drm_format_info *info,
> + const struct drm_mode_fb_cmd2 *mode_cmd);
> struct drm_framebuffer *omap_framebuffer_init(struct drm_device *dev,
> const struct drm_mode_fb_cmd2 *mode_cmd, struct drm_gem_object **bos);
> int omap_framebuffer_pin(struct drm_framebuffer *fb);
> diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
> index 70aff64ced87..f7bc83f2d489 100644
> --- a/drivers/gpu/drm/qxl/qxl_display.c
> +++ b/drivers/gpu/drm/qxl/qxl_display.c
> @@ -1176,6 +1176,7 @@ static int qdev_output_init(struct drm_device *dev, int num_output)
> static struct drm_framebuffer *
> qxl_user_framebuffer_create(struct drm_device *dev,
> struct drm_file *file_priv,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> return drm_gem_fb_create_with_funcs(dev, file_priv, mode_cmd,
> diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
> index 8f5f8abcb1b4..85b714ac9882 100644
> --- a/drivers/gpu/drm/radeon/radeon_display.c
> +++ b/drivers/gpu/drm/radeon/radeon_display.c
> @@ -1314,6 +1314,7 @@ radeon_framebuffer_init(struct drm_device *dev,
> static struct drm_framebuffer *
> radeon_user_framebuffer_create(struct drm_device *dev,
> struct drm_file *file_priv,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> struct drm_gem_object *obj;
> diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
> index 70d8ad065bfa..af22a5d23637 100644
> --- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
> +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
> @@ -426,6 +426,7 @@ int rcar_du_dumb_create(struct drm_file *file, struct drm_device *dev,
>
> static struct drm_framebuffer *
> rcar_du_fb_create(struct drm_device *dev, struct drm_file *file_priv,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> struct rcar_du_device *rcdu = to_rcar_du_device(dev);
> @@ -490,7 +491,7 @@ rcar_du_fb_create(struct drm_device *dev, struct drm_file *file_priv,
> }
> }
>
> - return drm_gem_fb_create(dev, file_priv, mode_cmd);
> + return drm_gem_fb_create(dev, file_priv, info, mode_cmd);
> }
>
> /* -----------------------------------------------------------------------------
> diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
> index 55a97691e9b2..87f171145a23 100644
> --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
> +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
> @@ -191,6 +191,7 @@ int rzg2l_du_dumb_create(struct drm_file *file, struct drm_device *dev,
>
> static struct drm_framebuffer *
> rzg2l_du_fb_create(struct drm_device *dev, struct drm_file *file_priv,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> const struct rzg2l_du_format_info *format;
> @@ -214,7 +215,7 @@ rzg2l_du_fb_create(struct drm_device *dev, struct drm_file *file_priv,
> return ERR_PTR(-EINVAL);
> }
>
> - return drm_gem_fb_create(dev, file_priv, mode_cmd);
> + return drm_gem_fb_create(dev, file_priv, info, mode_cmd);
> }
>
> /* -----------------------------------------------------------------------------
> diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c
> index 4202ab00fb0c..fd9460da1789 100644
> --- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c
> +++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c
> @@ -117,6 +117,7 @@ const struct shmob_drm_format_info *shmob_drm_format_info(u32 fourcc)
>
> static struct drm_framebuffer *
> shmob_drm_fb_create(struct drm_device *dev, struct drm_file *file_priv,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> const struct shmob_drm_format_info *format;
> @@ -144,7 +145,7 @@ shmob_drm_fb_create(struct drm_device *dev, struct drm_file *file_priv,
> }
> }
>
> - return drm_gem_fb_create(dev, file_priv, mode_cmd);
> + return drm_gem_fb_create(dev, file_priv, info, mode_cmd);
> }
>
> static const struct drm_mode_config_funcs shmob_drm_mode_config_funcs = {
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
> index bf25286c7665..d46297bec5f8 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
> @@ -30,17 +30,12 @@ static const struct drm_mode_config_helper_funcs rockchip_mode_config_helpers =
>
> static struct drm_framebuffer *
> rockchip_fb_create(struct drm_device *dev, struct drm_file *file,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> struct drm_afbc_framebuffer *afbc_fb;
> - const struct drm_format_info *info;
> int ret;
>
> - info = drm_get_format_info(dev, mode_cmd->pixel_format,
> - mode_cmd->modifier[0]);
> - if (!info)
> - return ERR_PTR(-ENOMEM);
> -
> afbc_fb = kzalloc(sizeof(*afbc_fb), GFP_KERNEL);
> if (!afbc_fb)
> return ERR_PTR(-ENOMEM);
> diff --git a/drivers/gpu/drm/tegra/drm.h b/drivers/gpu/drm/tegra/drm.h
> index 0b65e69f3a8a..77e520c43f72 100644
> --- a/drivers/gpu/drm/tegra/drm.h
> +++ b/drivers/gpu/drm/tegra/drm.h
> @@ -190,6 +190,7 @@ struct drm_framebuffer *tegra_fb_alloc(struct drm_device *drm,
> unsigned int num_planes);
> struct drm_framebuffer *tegra_fb_create(struct drm_device *drm,
> struct drm_file *file,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *cmd);
>
> #ifdef CONFIG_DRM_FBDEV_EMULATION
> diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
> index 634c6346d947..24907573e758 100644
> --- a/drivers/gpu/drm/tegra/fb.c
> +++ b/drivers/gpu/drm/tegra/fb.c
> @@ -132,11 +132,9 @@ struct drm_framebuffer *tegra_fb_alloc(struct drm_device *drm,
>
> struct drm_framebuffer *tegra_fb_create(struct drm_device *drm,
> struct drm_file *file,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *cmd)
> {
> - const struct drm_format_info *info = drm_get_format_info(drm,
> - cmd->pixel_format,
> - cmd->modifier[0]);
> struct tegra_bo *planes[4];
> struct drm_gem_object *gem;
> struct drm_framebuffer *fb;
> diff --git a/drivers/gpu/drm/tests/drm_framebuffer_test.c b/drivers/gpu/drm/tests/drm_framebuffer_test.c
> index 6ea04cc8f324..9b8e01e8cd91 100644
> --- a/drivers/gpu/drm/tests/drm_framebuffer_test.c
> +++ b/drivers/gpu/drm/tests/drm_framebuffer_test.c
> @@ -363,6 +363,7 @@ struct drm_framebuffer_test_priv {
>
> static struct drm_framebuffer *fb_create_mock(struct drm_device *dev,
> struct drm_file *file_priv,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> struct drm_framebuffer_test_priv *priv = container_of(dev, typeof(*priv), dev);
> diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c
> index f5b167417428..8f983edb81ff 100644
> --- a/drivers/gpu/drm/vc4/vc4_kms.c
> +++ b/drivers/gpu/drm/vc4/vc4_kms.c
> @@ -530,6 +530,7 @@ static int vc4_atomic_commit_setup(struct drm_atomic_state *state)
>
> static struct drm_framebuffer *vc4_fb_create(struct drm_device *dev,
> struct drm_file *file_priv,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> struct vc4_dev *vc4 = to_vc4_dev(dev);
> @@ -568,7 +569,7 @@ static struct drm_framebuffer *vc4_fb_create(struct drm_device *dev,
> mode_cmd = &mode_cmd_local;
> }
>
> - return drm_gem_fb_create(dev, file_priv, mode_cmd);
> + return drm_gem_fb_create(dev, file_priv, info, mode_cmd);
> }
>
> /* Our CTM has some peculiar limitations: we can only enable it for one CRTC
> diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
> index 59a45e74a641..f9a98fbbabd1 100644
> --- a/drivers/gpu/drm/virtio/virtgpu_display.c
> +++ b/drivers/gpu/drm/virtio/virtgpu_display.c
> @@ -293,6 +293,7 @@ static int vgdev_output_init(struct virtio_gpu_device *vgdev, int index)
> static struct drm_framebuffer *
> virtio_gpu_user_framebuffer_create(struct drm_device *dev,
> struct drm_file *file_priv,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> struct drm_gem_object *obj = NULL;
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> index 05b1c54a070c..2d48a28cda9c 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> @@ -712,6 +712,7 @@ vmw_kms_new_framebuffer(struct vmw_private *dev_priv,
>
> static struct drm_framebuffer *vmw_kms_fb_create(struct drm_device *dev,
> struct drm_file *file_priv,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> struct vmw_private *dev_priv = vmw_priv(dev);
> diff --git a/drivers/gpu/drm/xen/xen_drm_front_kms.c b/drivers/gpu/drm/xen/xen_drm_front_kms.c
> index dfa78a49a6d9..a360003bee47 100644
> --- a/drivers/gpu/drm/xen/xen_drm_front_kms.c
> +++ b/drivers/gpu/drm/xen/xen_drm_front_kms.c
> @@ -54,6 +54,7 @@ static const struct drm_framebuffer_funcs fb_funcs = {
>
> static struct drm_framebuffer *
> fb_create(struct drm_device *dev, struct drm_file *filp,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> struct xen_drm_front_drm_info *drm_info = dev->dev_private;
> diff --git a/drivers/gpu/drm/xlnx/zynqmp_kms.c b/drivers/gpu/drm/xlnx/zynqmp_kms.c
> index b47463473472..2bee0a2275ed 100644
> --- a/drivers/gpu/drm/xlnx/zynqmp_kms.c
> +++ b/drivers/gpu/drm/xlnx/zynqmp_kms.c
> @@ -373,6 +373,7 @@ static int zynqmp_dpsub_dumb_create(struct drm_file *file_priv,
>
> static struct drm_framebuffer *
> zynqmp_dpsub_fb_create(struct drm_device *drm, struct drm_file *file_priv,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> struct zynqmp_dpsub *dpsub = to_zynqmp_dpsub(drm);
> @@ -383,7 +384,7 @@ zynqmp_dpsub_fb_create(struct drm_device *drm, struct drm_file *file_priv,
> for (i = 0; i < ARRAY_SIZE(cmd.pitches); ++i)
> cmd.pitches[i] = ALIGN(cmd.pitches[i], dpsub->dma_align);
>
> - return drm_gem_fb_create(drm, file_priv, &cmd);
> + return drm_gem_fb_create(drm, file_priv, info, &cmd);
> }
>
> static const struct drm_mode_config_funcs zynqmp_dpsub_mode_config_funcs = {
> diff --git a/include/drm/drm_gem_framebuffer_helper.h b/include/drm/drm_gem_framebuffer_helper.h
> index d302521f3dd4..4fdf9d3d1863 100644
> --- a/include/drm/drm_gem_framebuffer_helper.h
> +++ b/include/drm/drm_gem_framebuffer_helper.h
> @@ -8,6 +8,7 @@ struct drm_afbc_framebuffer;
> struct drm_device;
> struct drm_fb_helper_surface_size;
> struct drm_file;
> +struct drm_format_info;
> struct drm_framebuffer;
> struct drm_framebuffer_funcs;
> struct drm_gem_object;
> @@ -32,9 +33,11 @@ drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
> const struct drm_framebuffer_funcs *funcs);
> struct drm_framebuffer *
> drm_gem_fb_create(struct drm_device *dev, struct drm_file *file,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd);
> struct drm_framebuffer *
> drm_gem_fb_create_with_dirty(struct drm_device *dev, struct drm_file *file,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd);
>
> int drm_gem_fb_vmap(struct drm_framebuffer *fb, struct iosys_map *map,
> diff --git a/include/drm/drm_mode_config.h b/include/drm/drm_mode_config.h
> index 6fca0362bc31..bea88446fcdc 100644
> --- a/include/drm/drm_mode_config.h
> +++ b/include/drm/drm_mode_config.h
> @@ -82,6 +82,7 @@ struct drm_mode_config_funcs {
> */
No need to document the new parameter ?
> struct drm_framebuffer *(*fb_create)(struct drm_device *dev,
> struct drm_file *file_priv,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd);
>
> /**
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 05/19] drm: Allow the caller to pass in the format info to drm_helper_mode_fill_fb_struct()
2025-04-10 16:32 ` [PATCH 05/19] drm: Allow the caller to pass in the format info to drm_helper_mode_fill_fb_struct() Ville Syrjala
@ 2025-04-10 19:38 ` Laurent Pinchart
0 siblings, 0 replies; 53+ messages in thread
From: Laurent Pinchart @ 2025-04-10 19:38 UTC (permalink / raw)
To: Ville Syrjala
Cc: dri-devel, intel-gfx, intel-xe, Alex Deucher, Liviu Dudau,
Russell King, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Patrik Jakobsson, Rob Clark, Abhinav Kumar, Dmitry Baryshkov,
Sean Paul, Marijn Suijten, Lyude Paul, Danilo Krummrich,
Tomi Valkeinen, Thierry Reding, Mikko Perttunen, Gerd Hoffmann,
Dmitry Osipenko, Gurchetan Singh, Chia-I Wu, Zack Rusin,
Broadcom internal kernel review list, amd-gfx, linux-arm-msm,
freedreno, nouveau, linux-tegra, virtualization
Hi Ville,
Thank you for the patch.
On Thu, Apr 10, 2025 at 07:32:04PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Soon all drivers should have the format info already available in the
> places where they call drm_helper_mode_fill_fb_struct(). Allow it to
> be passed along into drm_helper_mode_fill_fb_struct() instead of doing
> yet another redundant lookup.
>
> Start by always passing in NULL and still doing the extra lookup.
> The actual changes to avoid the lookup will follow.
>
> Done with cocci (with some manual fixups):
> @@
> identifier dev, fb, mode_cmd;
> expression get_format_info;
> @@
> void drm_helper_mode_fill_fb_struct(struct drm_device *dev,
> struct drm_framebuffer *fb,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> ...
> - fb->format = get_format_info;
> + fb->format = info ?: get_format_info;
> ...
> }
>
> @@
> identifier dev, fb, mode_cmd;
> @@
> void drm_helper_mode_fill_fb_struct(struct drm_device *dev,
> struct drm_framebuffer *fb,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd);
>
> @@
> expression dev, fb, mode_cmd;
> @@
> drm_helper_mode_fill_fb_struct(dev, fb
> + ,NULL
> ,mode_cmd);
>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
> Cc: Dmitry Baryshkov <lumag@kernel.org>
> Cc: Sean Paul <sean@poorly.run>
> Cc: Marijn Suijten <marijn.suijten@somainline.org>
> Cc: Lyude Paul <lyude@redhat.com>
> Cc: Danilo Krummrich <dakr@kernel.org>
> Cc: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Mikko Perttunen <mperttunen@nvidia.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Dmitry Osipenko <dmitry.osipenko@collabora.com>
> Cc: Gurchetan Singh <gurchetansingh@chromium.org>
> Cc: Chia-I Wu <olvaffe@gmail.com>
> Cc: Zack Rusin <zack.rusin@broadcom.com>
> Cc: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
> Cc: amd-gfx@lists.freedesktop.org
> Cc: linux-arm-msm@vger.kernel.org
> Cc: freedreno@lists.freedesktop.org
> Cc: nouveau@lists.freedesktop.org
> Cc: linux-tegra@vger.kernel.org
> Cc: virtualization@lists.linux.dev
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 2 +-
> drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c | 2 +-
> drivers/gpu/drm/armada/armada_fb.c | 2 +-
> drivers/gpu/drm/drm_gem_framebuffer_helper.c | 2 +-
> drivers/gpu/drm/drm_modeset_helper.c | 6 ++++--
> drivers/gpu/drm/exynos/exynos_drm_fb.c | 2 +-
> drivers/gpu/drm/gma500/framebuffer.c | 2 +-
> drivers/gpu/drm/i915/display/intel_fb.c | 2 +-
> drivers/gpu/drm/msm/msm_fb.c | 2 +-
> drivers/gpu/drm/nouveau/nouveau_display.c | 2 +-
> drivers/gpu/drm/omapdrm/omap_fb.c | 2 +-
> drivers/gpu/drm/radeon/radeon_display.c | 2 +-
> drivers/gpu/drm/tegra/fb.c | 2 +-
> drivers/gpu/drm/virtio/virtgpu_display.c | 2 +-
> drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 4 ++--
> include/drm/drm_modeset_helper.h | 2 ++
> 16 files changed, 21 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
> index 10c57ded0e3e..4cbbae543e34 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
> @@ -1202,7 +1202,7 @@ static int amdgpu_display_gem_fb_verify_and_init(struct drm_device *dev,
> int ret;
>
> rfb->base.obj[0] = obj;
> - drm_helper_mode_fill_fb_struct(dev, &rfb->base, mode_cmd);
> + drm_helper_mode_fill_fb_struct(dev, &rfb->base, NULL, mode_cmd);
> /* Verify that the modifier is supported. */
> if (!drm_any_plane_has_format(dev, mode_cmd->pixel_format,
> mode_cmd->modifier[0])) {
> diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
> index 29b05482f713..acd8e505ebc7 100644
> --- a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
> +++ b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
> @@ -178,7 +178,7 @@ komeda_fb_create(struct drm_device *dev, struct drm_file *file,
> return ERR_PTR(-EINVAL);
> }
>
> - drm_helper_mode_fill_fb_struct(dev, &kfb->base, mode_cmd);
> + drm_helper_mode_fill_fb_struct(dev, &kfb->base, NULL, mode_cmd);
>
> if (kfb->base.modifier)
> ret = komeda_fb_afbc_size_check(kfb, file, mode_cmd);
> diff --git a/drivers/gpu/drm/armada/armada_fb.c b/drivers/gpu/drm/armada/armada_fb.c
> index 597720e229c2..7e94ec5bd4f4 100644
> --- a/drivers/gpu/drm/armada/armada_fb.c
> +++ b/drivers/gpu/drm/armada/armada_fb.c
> @@ -64,7 +64,7 @@ struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev,
> dfb->mod = config;
> dfb->fb.obj[0] = &obj->obj;
>
> - drm_helper_mode_fill_fb_struct(dev, &dfb->fb, mode);
> + drm_helper_mode_fill_fb_struct(dev, &dfb->fb, NULL, mode);
>
> ret = drm_framebuffer_init(dev, &dfb->fb, &armada_fb_funcs);
> if (ret) {
> diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> index 1b58823e14b1..dc9cb6cdcfd6 100644
> --- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> +++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> @@ -74,7 +74,7 @@ drm_gem_fb_init(struct drm_device *dev,
> unsigned int i;
> int ret;
>
> - drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
> + drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
>
> for (i = 0; i < num_planes; i++)
> fb->obj[i] = obj[i];
> diff --git a/drivers/gpu/drm/drm_modeset_helper.c b/drivers/gpu/drm/drm_modeset_helper.c
> index dff14af68832..ae2a83ecb1cf 100644
> --- a/drivers/gpu/drm/drm_modeset_helper.c
> +++ b/drivers/gpu/drm/drm_modeset_helper.c
> @@ -72,6 +72,7 @@ EXPORT_SYMBOL(drm_helper_move_panel_connectors_to_head);
> * drm_helper_mode_fill_fb_struct - fill out framebuffer metadata
> * @dev: DRM device
> * @fb: drm_framebuffer object to fill out
> + * @info: pixel format information
> * @mode_cmd: metadata from the userspace fb creation request
> *
> * This helper can be used in a drivers fb_create callback to pre-fill the fb's
> @@ -79,13 +80,14 @@ EXPORT_SYMBOL(drm_helper_move_panel_connectors_to_head);
> */
> void drm_helper_mode_fill_fb_struct(struct drm_device *dev,
> struct drm_framebuffer *fb,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> int i;
>
> fb->dev = dev;
> - fb->format = drm_get_format_info(dev, mode_cmd->pixel_format,
> - mode_cmd->modifier[0]);
> + fb->format = info ? : drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> fb->width = mode_cmd->width;
> fb->height = mode_cmd->height;
> for (i = 0; i < 4; i++) {
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fb.c b/drivers/gpu/drm/exynos/exynos_drm_fb.c
> index 9ae526825726..7091d31835ec 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_fb.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_fb.c
> @@ -76,7 +76,7 @@ exynos_drm_framebuffer_init(struct drm_device *dev,
> fb->obj[i] = &exynos_gem[i]->base;
> }
>
> - drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
> + drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
>
> ret = drm_framebuffer_init(dev, fb, &exynos_drm_fb_funcs);
> if (ret < 0) {
> diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
> index a4a18ec2dd56..f9ade8361354 100644
> --- a/drivers/gpu/drm/gma500/framebuffer.c
> +++ b/drivers/gpu/drm/gma500/framebuffer.c
> @@ -47,7 +47,7 @@ static int psb_framebuffer_init(struct drm_device *dev,
> if (mode_cmd->pitches[0] & 63)
> return -EINVAL;
>
> - drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
> + drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
> fb->obj[0] = obj;
> ret = drm_framebuffer_init(dev, fb, &psb_fb_funcs);
> if (ret) {
> diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
> index dd1d5c00395e..80a90bf1c75c 100644
> --- a/drivers/gpu/drm/i915/display/intel_fb.c
> +++ b/drivers/gpu/drm/i915/display/intel_fb.c
> @@ -2253,7 +2253,7 @@ int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
> goto err_frontbuffer_put;
> }
>
> - drm_helper_mode_fill_fb_struct(display->drm, fb, mode_cmd);
> + drm_helper_mode_fill_fb_struct(display->drm, fb, NULL, mode_cmd);
>
> for (i = 0; i < fb->format->num_planes; i++) {
> unsigned int stride_alignment;
> diff --git a/drivers/gpu/drm/msm/msm_fb.c b/drivers/gpu/drm/msm/msm_fb.c
> index 4aef51cef3d5..0615427e85ce 100644
> --- a/drivers/gpu/drm/msm/msm_fb.c
> +++ b/drivers/gpu/drm/msm/msm_fb.c
> @@ -222,7 +222,7 @@ static struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev,
> msm_fb->base.obj[i] = bos[i];
> }
>
> - drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
> + drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
>
> ret = drm_framebuffer_init(dev, fb, &msm_framebuffer_funcs);
> if (ret) {
> diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
> index 3df388784bd3..dd069aaac9f4 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_display.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_display.c
> @@ -321,7 +321,7 @@ nouveau_framebuffer_new(struct drm_device *dev,
> if (!(fb = *pfb = kzalloc(sizeof(*fb), GFP_KERNEL)))
> return -ENOMEM;
>
> - drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
> + drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
> fb->obj[0] = gem;
>
> ret = drm_framebuffer_init(dev, fb, &nouveau_framebuffer_funcs);
> diff --git a/drivers/gpu/drm/omapdrm/omap_fb.c b/drivers/gpu/drm/omapdrm/omap_fb.c
> index 36afcd1c1fd7..30c81e2e5d6b 100644
> --- a/drivers/gpu/drm/omapdrm/omap_fb.c
> +++ b/drivers/gpu/drm/omapdrm/omap_fb.c
> @@ -440,7 +440,7 @@ struct drm_framebuffer *omap_framebuffer_init(struct drm_device *dev,
> plane->dma_addr = 0;
> }
>
> - drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
> + drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
>
> ret = drm_framebuffer_init(dev, fb, &omap_framebuffer_funcs);
> if (ret) {
> diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
> index 85b714ac9882..b4bf5dfeea2d 100644
> --- a/drivers/gpu/drm/radeon/radeon_display.c
> +++ b/drivers/gpu/drm/radeon/radeon_display.c
> @@ -1302,7 +1302,7 @@ radeon_framebuffer_init(struct drm_device *dev,
> {
> int ret;
> fb->obj[0] = obj;
> - drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
> + drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
> ret = drm_framebuffer_init(dev, fb, &radeon_fb_funcs);
> if (ret) {
> fb->obj[0] = NULL;
> diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
> index 24907573e758..d359683f5ce6 100644
> --- a/drivers/gpu/drm/tegra/fb.c
> +++ b/drivers/gpu/drm/tegra/fb.c
> @@ -114,7 +114,7 @@ struct drm_framebuffer *tegra_fb_alloc(struct drm_device *drm,
> if (!fb)
> return ERR_PTR(-ENOMEM);
>
> - drm_helper_mode_fill_fb_struct(drm, fb, mode_cmd);
> + drm_helper_mode_fill_fb_struct(drm, fb, NULL, mode_cmd);
>
> for (i = 0; i < fb->format->num_planes; i++)
> fb->obj[i] = &planes[i]->gem;
> diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
> index f9a98fbbabd1..93763b91bab5 100644
> --- a/drivers/gpu/drm/virtio/virtgpu_display.c
> +++ b/drivers/gpu/drm/virtio/virtgpu_display.c
> @@ -73,7 +73,7 @@ virtio_gpu_framebuffer_init(struct drm_device *dev,
>
> vgfb->base.obj[0] = obj;
>
> - drm_helper_mode_fill_fb_struct(dev, &vgfb->base, mode_cmd);
> + drm_helper_mode_fill_fb_struct(dev, &vgfb->base, NULL, mode_cmd);
>
> ret = drm_framebuffer_init(dev, &vgfb->base, &virtio_gpu_fb_funcs);
> if (ret) {
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> index 2d48a28cda9c..35965e29e408 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> @@ -548,7 +548,7 @@ static int vmw_kms_new_framebuffer_surface(struct vmw_private *dev_priv,
> goto out_err1;
> }
>
> - drm_helper_mode_fill_fb_struct(dev, &vfbs->base.base, mode_cmd);
> + drm_helper_mode_fill_fb_struct(dev, &vfbs->base.base, NULL, mode_cmd);
> memcpy(&vfbs->uo, uo, sizeof(vfbs->uo));
> vmw_user_object_ref(&vfbs->uo);
>
> @@ -634,7 +634,7 @@ static int vmw_kms_new_framebuffer_bo(struct vmw_private *dev_priv,
> }
>
> vfbd->base.base.obj[0] = &bo->tbo.base;
> - drm_helper_mode_fill_fb_struct(dev, &vfbd->base.base, mode_cmd);
> + drm_helper_mode_fill_fb_struct(dev, &vfbd->base.base, NULL, mode_cmd);
> vfbd->base.bo = true;
> vfbd->buffer = vmw_bo_reference(bo);
> *out = &vfbd->base;
> diff --git a/include/drm/drm_modeset_helper.h b/include/drm/drm_modeset_helper.h
> index 995fd981cab0..7e3d4c5a7f66 100644
> --- a/include/drm/drm_modeset_helper.h
> +++ b/include/drm/drm_modeset_helper.h
> @@ -26,6 +26,7 @@
> struct drm_crtc;
> struct drm_crtc_funcs;
> struct drm_device;
> +struct drm_format_info;
> struct drm_framebuffer;
> struct drm_mode_fb_cmd2;
>
> @@ -33,6 +34,7 @@ void drm_helper_move_panel_connectors_to_head(struct drm_device *);
>
> void drm_helper_mode_fill_fb_struct(struct drm_device *dev,
> struct drm_framebuffer *fb,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd);
>
> int drm_crtc_init(struct drm_device *dev, struct drm_crtc *crtc,
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 07/19] drm/gem: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
2025-04-10 16:32 ` [PATCH 07/19] drm/gem: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() Ville Syrjala
@ 2025-04-10 19:39 ` Laurent Pinchart
2025-04-10 22:58 ` kernel test robot
2025-04-11 19:31 ` [PATCH v2 " Ville Syrjala
2 siblings, 0 replies; 53+ messages in thread
From: Laurent Pinchart @ 2025-04-10 19:39 UTC (permalink / raw)
To: Ville Syrjala
Cc: dri-devel, intel-gfx, intel-xe, Dave Airlie, Gerd Hoffmann,
Sandy Huang, Heiko Stübner, Andy Yan,
Oleksandr Andrushchenko, virtualization, spice-devel
Hi Ville,
Thank you for the patch.
On Thu, Apr 10, 2025 at 07:32:06PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Pass along the format info from .fb_create() to aliminate the
> redundant drm_get_format_info() calls from the gem fb code.
>
> Cc: Dave Airlie <airlied@redhat.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Sandy Huang <hjc@rock-chips.com>
> Cc: "Heiko Stübner" <heiko@sntech.de>
> Cc: Andy Yan <andy.yan@rock-chips.com>
> Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Cc: virtualization@lists.linux.dev
> Cc: spice-devel@lists.freedesktop.org
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/drm_gem_framebuffer_helper.c | 21 ++++++++------------
> drivers/gpu/drm/qxl/qxl_display.c | 2 +-
> drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 3 ++-
> drivers/gpu/drm/xen/xen_drm_front_kms.c | 2 +-
> include/drm/drm_gem_framebuffer_helper.h | 2 ++
> 5 files changed, 14 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> index dc9cb6cdcfd6..44016915c8fe 100644
> --- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> +++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> @@ -67,6 +67,7 @@ EXPORT_SYMBOL_GPL(drm_gem_fb_get_obj);
> static int
> drm_gem_fb_init(struct drm_device *dev,
> struct drm_framebuffer *fb,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd,
> struct drm_gem_object **obj, unsigned int num_planes,
> const struct drm_framebuffer_funcs *funcs)
> @@ -74,7 +75,7 @@ drm_gem_fb_init(struct drm_device *dev,
> unsigned int i;
> int ret;
>
> - drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
> + drm_helper_mode_fill_fb_struct(dev, fb, info, mode_cmd);
>
> for (i = 0; i < num_planes; i++)
> fb->obj[i] = obj[i];
> @@ -151,21 +152,14 @@ EXPORT_SYMBOL(drm_gem_fb_create_handle);
Missing documentation update. Please make sure to build to documentation
when testing the next version of the series.
> int drm_gem_fb_init_with_funcs(struct drm_device *dev,
> struct drm_framebuffer *fb,
> struct drm_file *file,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd,
> const struct drm_framebuffer_funcs *funcs)
> {
> - const struct drm_format_info *info;
> struct drm_gem_object *objs[DRM_FORMAT_MAX_PLANES];
> unsigned int i;
> int ret;
>
> - info = drm_get_format_info(dev, mode_cmd->pixel_format,
> - mode_cmd->modifier[0]);
> - if (!info) {
> - drm_dbg_kms(dev, "Failed to get FB format info\n");
> - return -EINVAL;
> - }
> -
> if (drm_drv_uses_atomic_modeset(dev) &&
> !drm_any_plane_has_format(dev, mode_cmd->pixel_format,
> mode_cmd->modifier[0])) {
> @@ -200,7 +194,7 @@ int drm_gem_fb_init_with_funcs(struct drm_device *dev,
> }
> }
>
> - ret = drm_gem_fb_init(dev, fb, mode_cmd, objs, i, funcs);
> + ret = drm_gem_fb_init(dev, fb, info, mode_cmd, objs, i, funcs);
> if (ret)
> goto err_gem_object_put;
>
> @@ -233,6 +227,7 @@ EXPORT_SYMBOL_GPL(drm_gem_fb_init_with_funcs);
> */
Same here.
> struct drm_framebuffer *
> drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd,
> const struct drm_framebuffer_funcs *funcs)
> {
> @@ -243,7 +238,7 @@ drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
> if (!fb)
> return ERR_PTR(-ENOMEM);
>
> - ret = drm_gem_fb_init_with_funcs(dev, fb, file, mode_cmd, funcs);
> + ret = drm_gem_fb_init_with_funcs(dev, fb, file, info, mode_cmd, funcs);
> if (ret) {
> kfree(fb);
> return ERR_PTR(ret);
> @@ -285,7 +280,7 @@ drm_gem_fb_create(struct drm_device *dev, struct drm_file *file,
> const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> - return drm_gem_fb_create_with_funcs(dev, file, mode_cmd,
> + return drm_gem_fb_create_with_funcs(dev, file, info, mode_cmd,
> &drm_gem_fb_funcs);
> }
> EXPORT_SYMBOL_GPL(drm_gem_fb_create);
> @@ -324,7 +319,7 @@ drm_gem_fb_create_with_dirty(struct drm_device *dev, struct drm_file *file,
> const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> - return drm_gem_fb_create_with_funcs(dev, file, mode_cmd,
> + return drm_gem_fb_create_with_funcs(dev, file, info, mode_cmd,
> &drm_gem_fb_funcs_dirtyfb);
> }
> EXPORT_SYMBOL_GPL(drm_gem_fb_create_with_dirty);
> diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
> index f7bc83f2d489..ae7e572b1b4a 100644
> --- a/drivers/gpu/drm/qxl/qxl_display.c
> +++ b/drivers/gpu/drm/qxl/qxl_display.c
> @@ -1179,7 +1179,7 @@ qxl_user_framebuffer_create(struct drm_device *dev,
> const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> - return drm_gem_fb_create_with_funcs(dev, file_priv, mode_cmd,
> + return drm_gem_fb_create_with_funcs(dev, file_priv, info, mode_cmd,
> &qxl_fb_funcs);
> }
>
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
> index d46297bec5f8..1211ca0ffa00 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
> @@ -40,7 +40,8 @@ rockchip_fb_create(struct drm_device *dev, struct drm_file *file,
> if (!afbc_fb)
> return ERR_PTR(-ENOMEM);
>
> - ret = drm_gem_fb_init_with_funcs(dev, &afbc_fb->base, file, mode_cmd,
> + ret = drm_gem_fb_init_with_funcs(dev, &afbc_fb->base,
> + file, info, mode_cmd,
> &rockchip_drm_fb_funcs);
> if (ret) {
> kfree(afbc_fb);
> diff --git a/drivers/gpu/drm/xen/xen_drm_front_kms.c b/drivers/gpu/drm/xen/xen_drm_front_kms.c
> index a360003bee47..806ec66ee7f7 100644
> --- a/drivers/gpu/drm/xen/xen_drm_front_kms.c
> +++ b/drivers/gpu/drm/xen/xen_drm_front_kms.c
> @@ -62,7 +62,7 @@ fb_create(struct drm_device *dev, struct drm_file *filp,
> struct drm_gem_object *gem_obj;
> int ret;
>
> - fb = drm_gem_fb_create_with_funcs(dev, filp, mode_cmd, &fb_funcs);
> + fb = drm_gem_fb_create_with_funcs(dev, filp, info, mode_cmd, &fb_funcs);
> if (IS_ERR(fb))
> return fb;
>
> diff --git a/include/drm/drm_gem_framebuffer_helper.h b/include/drm/drm_gem_framebuffer_helper.h
> index 4fdf9d3d1863..971d266ab1ba 100644
> --- a/include/drm/drm_gem_framebuffer_helper.h
> +++ b/include/drm/drm_gem_framebuffer_helper.h
> @@ -25,10 +25,12 @@ int drm_gem_fb_create_handle(struct drm_framebuffer *fb, struct drm_file *file,
> int drm_gem_fb_init_with_funcs(struct drm_device *dev,
> struct drm_framebuffer *fb,
> struct drm_file *file,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd,
> const struct drm_framebuffer_funcs *funcs);
> struct drm_framebuffer *
> drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd,
> const struct drm_framebuffer_funcs *funcs);
> struct drm_framebuffer *
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 19/19] drm: Make passing of format info to drm_helper_mode_fill_fb_struct() mandatory
2025-04-10 16:32 ` [PATCH 19/19] drm: Make passing of format info to drm_helper_mode_fill_fb_struct() mandatory Ville Syrjala
@ 2025-04-10 19:40 ` Laurent Pinchart
0 siblings, 0 replies; 53+ messages in thread
From: Laurent Pinchart @ 2025-04-10 19:40 UTC (permalink / raw)
To: Ville Syrjala; +Cc: dri-devel, intel-gfx, intel-xe
Hi Ville,
Thank you for the patch.
On Thu, Apr 10, 2025 at 07:32:18PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Now that everyone passes along the format info to
> drm_helper_mode_fill_fb_struct() we can make this behaviour
> mandatory and drop the extra lookup.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> ---
> drivers/gpu/drm/drm_modeset_helper.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_modeset_helper.c b/drivers/gpu/drm/drm_modeset_helper.c
> index ae2a83ecb1cf..3c153d420822 100644
> --- a/drivers/gpu/drm/drm_modeset_helper.c
> +++ b/drivers/gpu/drm/drm_modeset_helper.c
> @@ -86,8 +86,7 @@ void drm_helper_mode_fill_fb_struct(struct drm_device *dev,
> int i;
>
> fb->dev = dev;
> - fb->format = info ? : drm_get_format_info(dev, mode_cmd->pixel_format,
> - mode_cmd->modifier[0]);
> + fb->format = info;
> fb->width = mode_cmd->width;
> fb->height = mode_cmd->height;
> for (i = 0; i < 4; i++) {
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 02/19] drm: Pass pixel_format+modifier directly to drm_get_format_info()
2025-04-10 16:32 ` [PATCH 02/19] drm: Pass pixel_format+modifier directly to drm_get_format_info() Ville Syrjala
2025-04-10 19:31 ` Laurent Pinchart
@ 2025-04-10 19:43 ` kernel test robot
2025-04-11 7:23 ` Thomas Zimmermann
2025-04-11 19:27 ` [PATCH v2 " Ville Syrjala
3 siblings, 0 replies; 53+ messages in thread
From: kernel test robot @ 2025-04-10 19:43 UTC (permalink / raw)
To: Ville Syrjala, dri-devel
Cc: llvm, oe-kbuild-all, intel-gfx, intel-xe, Liviu Dudau,
Russell King, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Patrik Jakobsson, Chun-Kuang Hu, Philipp Zabel, Rob Clark,
Abhinav Kumar, Dmitry Baryshkov, Sean Paul, Marijn Suijten,
Marek Vasut, Stefan Agner, Lyude Paul, Danilo Krummrich,
Tomi Valkeinen, Alex Deucher, Sandy Huang, Heiko Stübner,
Andy Yan, Thierry Reding, Mikko Perttunen, linux-arm-msm,
freedreno, nouveau
Hi Ville,
kernel test robot noticed the following build warnings:
[auto build test WARNING on linus/master]
[also build test WARNING on v6.15-rc1 next-20250410]
[cannot apply to drm-exynos/exynos-drm-next tegra/for-next rmk-arm/drm-armada-devel rmk-arm/drm-armada-fixes]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Ville-Syrjala/drm-Pass-pixel_format-modifier-to-get_format_info/20250411-005845
base: linus/master
patch link: https://lore.kernel.org/r/20250410163218.15130-3-ville.syrjala%40linux.intel.com
patch subject: [PATCH 02/19] drm: Pass pixel_format+modifier directly to drm_get_format_info()
config: hexagon-randconfig-001-20250411 (https://download.01.org/0day-ci/archive/20250411/202504110343.FEc4bNDr-lkp@intel.com/config)
compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project f819f46284f2a79790038e1f6649172789734ae8)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250411/202504110343.FEc4bNDr-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202504110343.FEc4bNDr-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/gpu/drm/drm_fourcc.c:394: warning: Function parameter or struct member 'pixel_format' not described in 'drm_get_format_info'
>> drivers/gpu/drm/drm_fourcc.c:394: warning: Function parameter or struct member 'modifier' not described in 'drm_get_format_info'
>> drivers/gpu/drm/drm_fourcc.c:394: warning: Excess function parameter 'mode_cmd' description in 'drm_get_format_info'
vim +394 drivers/gpu/drm/drm_fourcc.c
84770cc24f3a51 Laurent Pinchart 2016-10-18 381
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 382 /**
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 383 * drm_get_format_info - query information for a given framebuffer configuration
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 384 * @dev: DRM device
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 385 * @mode_cmd: metadata from the userspace fb creation request
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 386 *
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 387 * Returns:
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 388 * The instance of struct drm_format_info that describes the pixel format, or
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 389 * NULL if the format is unsupported.
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 390 */
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 391 const struct drm_format_info *
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 392 drm_get_format_info(struct drm_device *dev,
9a77ad08811ab1 Ville Syrjälä 2025-04-10 393 u32 pixel_format, u64 modifier)
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 @394 {
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 395 const struct drm_format_info *info = NULL;
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 396
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 397 if (dev->mode_config.funcs->get_format_info)
9a77ad08811ab1 Ville Syrjälä 2025-04-10 398 info = dev->mode_config.funcs->get_format_info(pixel_format,
9a77ad08811ab1 Ville Syrjälä 2025-04-10 399 modifier);
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 400
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 401 if (!info)
9a77ad08811ab1 Ville Syrjälä 2025-04-10 402 info = drm_format_info(pixel_format);
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 403
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 404 return info;
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 405 }
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 406 EXPORT_SYMBOL(drm_get_format_info);
6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 407
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 04/19] drm: Pass the format info to .fb_create()
2025-04-10 16:32 ` [PATCH 04/19] drm: Pass the format info to .fb_create() Ville Syrjala
2025-04-10 19:37 ` Laurent Pinchart
@ 2025-04-10 21:26 ` kernel test robot
2025-04-11 6:36 ` Geert Uytterhoeven
2025-04-11 19:29 ` [PATCH v2 " Ville Syrjala
3 siblings, 0 replies; 53+ messages in thread
From: kernel test robot @ 2025-04-10 21:26 UTC (permalink / raw)
To: Ville Syrjala, dri-devel
Cc: llvm, oe-kbuild-all, intel-gfx, intel-xe, Alex Deucher,
Liviu Dudau, Maxime Ripard, Russell King, Inki Dae, Seung-Woo Kim,
Kyungmin Park, Patrik Jakobsson, Chun-Kuang Hu, Philipp Zabel,
Rob Clark, Abhinav Kumar, Dmitry Baryshkov, Sean Paul,
Marijn Suijten, Marek Vasut, Stefan Agner, Lyude Paul,
Danilo Krummrich, Tomi Valkeinen, Dave Airlie, Gerd Hoffmann,
Laurent Pinchart, Kieran Bingham, Biju Das, Geert Uytterhoeven,
Sandy Huang
Hi Ville,
kernel test robot noticed the following build warnings:
[auto build test WARNING on linus/master]
[also build test WARNING on v6.15-rc1 next-20250410]
[cannot apply to drm-exynos/exynos-drm-next tegra/for-next rmk-arm/drm-armada-devel rmk-arm/drm-armada-fixes]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Ville-Syrjala/drm-Pass-pixel_format-modifier-to-get_format_info/20250411-005845
base: linus/master
patch link: https://lore.kernel.org/r/20250410163218.15130-5-ville.syrjala%40linux.intel.com
patch subject: [PATCH 04/19] drm: Pass the format info to .fb_create()
config: hexagon-randconfig-001-20250411 (https://download.01.org/0day-ci/archive/20250411/202504110434.QQdqu4gU-lkp@intel.com/config)
compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project f819f46284f2a79790038e1f6649172789734ae8)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250411/202504110434.QQdqu4gU-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202504110434.QQdqu4gU-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/gpu/drm/drm_gem_framebuffer_helper.c:287: warning: Function parameter or struct member 'info' not described in 'drm_gem_fb_create'
>> drivers/gpu/drm/drm_gem_framebuffer_helper.c:326: warning: Function parameter or struct member 'info' not described in 'drm_gem_fb_create_with_dirty'
vim +287 drivers/gpu/drm/drm_gem_framebuffer_helper.c
4c3dbb2c312c9fa Noralf Trønnes 2017-08-13 260
4c3dbb2c312c9fa Noralf Trønnes 2017-08-13 261 /**
2e187b2099034a2 Noralf Trønnes 2017-09-22 262 * drm_gem_fb_create() - Helper function for the
2e187b2099034a2 Noralf Trønnes 2017-09-22 263 * &drm_mode_config_funcs.fb_create callback
4c3dbb2c312c9fa Noralf Trønnes 2017-08-13 264 * @dev: DRM device
2e187b2099034a2 Noralf Trønnes 2017-09-22 265 * @file: DRM file that holds the GEM handle(s) backing the framebuffer
2e187b2099034a2 Noralf Trønnes 2017-09-22 266 * @mode_cmd: Metadata from the userspace framebuffer creation request
2e187b2099034a2 Noralf Trønnes 2017-09-22 267 *
2e187b2099034a2 Noralf Trønnes 2017-09-22 268 * This function creates a new framebuffer object described by
2e187b2099034a2 Noralf Trønnes 2017-09-22 269 * &drm_mode_fb_cmd2. This description includes handles for the buffer(s)
2e187b2099034a2 Noralf Trønnes 2017-09-22 270 * backing the framebuffer.
4c3dbb2c312c9fa Noralf Trønnes 2017-08-13 271 *
4c3dbb2c312c9fa Noralf Trønnes 2017-08-13 272 * If your hardware has special alignment or pitch requirements these should be
4c3dbb2c312c9fa Noralf Trønnes 2017-08-13 273 * checked before calling this function. The function does buffer size
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 274 * validation. Use drm_gem_fb_create_with_dirty() if you need framebuffer
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 275 * flushing.
2e187b2099034a2 Noralf Trønnes 2017-09-22 276 *
2e187b2099034a2 Noralf Trønnes 2017-09-22 277 * Drivers can use this as their &drm_mode_config_funcs.fb_create callback.
2e187b2099034a2 Noralf Trønnes 2017-09-22 278 * The ADDFB2 IOCTL calls into this callback.
2e187b2099034a2 Noralf Trønnes 2017-09-22 279 *
2e187b2099034a2 Noralf Trønnes 2017-09-22 280 * Returns:
2e187b2099034a2 Noralf Trønnes 2017-09-22 281 * Pointer to a &drm_framebuffer on success or an error pointer on failure.
4c3dbb2c312c9fa Noralf Trønnes 2017-08-13 282 */
4c3dbb2c312c9fa Noralf Trønnes 2017-08-13 283 struct drm_framebuffer *
4c3dbb2c312c9fa Noralf Trønnes 2017-08-13 284 drm_gem_fb_create(struct drm_device *dev, struct drm_file *file,
7b2bf36de2fd436 Ville Syrjälä 2025-04-10 285 const struct drm_format_info *info,
4c3dbb2c312c9fa Noralf Trønnes 2017-08-13 286 const struct drm_mode_fb_cmd2 *mode_cmd)
4c3dbb2c312c9fa Noralf Trønnes 2017-08-13 @287 {
4c3dbb2c312c9fa Noralf Trønnes 2017-08-13 288 return drm_gem_fb_create_with_funcs(dev, file, mode_cmd,
4c3dbb2c312c9fa Noralf Trønnes 2017-08-13 289 &drm_gem_fb_funcs);
4c3dbb2c312c9fa Noralf Trønnes 2017-08-13 290 }
4c3dbb2c312c9fa Noralf Trønnes 2017-08-13 291 EXPORT_SYMBOL_GPL(drm_gem_fb_create);
4c3dbb2c312c9fa Noralf Trønnes 2017-08-13 292
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 293 static const struct drm_framebuffer_funcs drm_gem_fb_funcs_dirtyfb = {
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 294 .destroy = drm_gem_fb_destroy,
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 295 .create_handle = drm_gem_fb_create_handle,
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 296 .dirty = drm_atomic_helper_dirtyfb,
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 297 };
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 298
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 299 /**
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 300 * drm_gem_fb_create_with_dirty() - Helper function for the
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 301 * &drm_mode_config_funcs.fb_create callback
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 302 * @dev: DRM device
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 303 * @file: DRM file that holds the GEM handle(s) backing the framebuffer
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 304 * @mode_cmd: Metadata from the userspace framebuffer creation request
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 305 *
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 306 * This function creates a new framebuffer object described by
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 307 * &drm_mode_fb_cmd2. This description includes handles for the buffer(s)
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 308 * backing the framebuffer. drm_atomic_helper_dirtyfb() is used for the dirty
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 309 * callback giving framebuffer flushing through the atomic machinery. Use
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 310 * drm_gem_fb_create() if you don't need the dirty callback.
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 311 * The function does buffer size validation.
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 312 *
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 313 * Drivers should also call drm_plane_enable_fb_damage_clips() on all planes
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 314 * to enable userspace to use damage clips also with the ATOMIC IOCTL.
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 315 *
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 316 * Drivers can use this as their &drm_mode_config_funcs.fb_create callback.
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 317 * The ADDFB2 IOCTL calls into this callback.
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 318 *
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 319 * Returns:
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 320 * Pointer to a &drm_framebuffer on success or an error pointer on failure.
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 321 */
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 322 struct drm_framebuffer *
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 323 drm_gem_fb_create_with_dirty(struct drm_device *dev, struct drm_file *file,
7b2bf36de2fd436 Ville Syrjälä 2025-04-10 324 const struct drm_format_info *info,
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 325 const struct drm_mode_fb_cmd2 *mode_cmd)
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 @326 {
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 327 return drm_gem_fb_create_with_funcs(dev, file, mode_cmd,
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 328 &drm_gem_fb_funcs_dirtyfb);
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 329 }
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 330 EXPORT_SYMBOL_GPL(drm_gem_fb_create_with_dirty);
dbd62e16fd53d37 Noralf Trønnes 2019-01-15 331
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 53+ messages in thread
* ✗ i915.CI.Full: failure for drm: Eliminate redundant drm_format_info lookups
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (21 preceding siblings ...)
2025-04-10 17:27 ` ✓ i915.CI.BAT: success " Patchwork
@ 2025-04-10 22:45 ` Patchwork
2025-04-11 7:30 ` [PATCH 00/19] " Thomas Zimmermann
` (5 subsequent siblings)
28 siblings, 0 replies; 53+ messages in thread
From: Patchwork @ 2025-04-10 22:45 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 124599 bytes --]
== Series Details ==
Series: drm: Eliminate redundant drm_format_info lookups
URL : https://patchwork.freedesktop.org/series/147544/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_16397_full -> Patchwork_147544v1_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_147544v1_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_147544v1_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (10 -> 10)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_147544v1_full:
### IGT changes ###
#### Possible regressions ####
* igt@gem_ctx_isolation@preservation-s3:
- shard-rkl: NOTRUN -> [INCOMPLETE][1] +1 other test incomplete
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-5/igt@gem_ctx_isolation@preservation-s3.html
* igt@gem_exec_await@wide-contexts:
- shard-dg1: [PASS][2] -> [INCOMPLETE][3]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-14/igt@gem_exec_await@wide-contexts.html
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@gem_exec_await@wide-contexts.html
* igt@kms_async_flips@overlay-atomic:
- shard-dg2-9: NOTRUN -> [SKIP][4]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_async_flips@overlay-atomic.html
- shard-rkl: NOTRUN -> [SKIP][5]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-4/igt@kms_async_flips@overlay-atomic.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling@pipe-a-valid-mode:
- shard-rkl: [PASS][6] -> [FAIL][7] +1 other test fail
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-rkl-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling@pipe-a-valid-mode.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling@pipe-a-valid-mode.html
* igt@prime_self_import@export-vs-gem_close-race:
- shard-mtlp: [PASS][8] -> [INCOMPLETE][9]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-mtlp-3/igt@prime_self_import@export-vs-gem_close-race.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-3/igt@prime_self_import@export-vs-gem_close-race.html
Known issues
------------
Here are the changes found in Patchwork_147544v1_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@api_intel_bb@crc32:
- shard-tglu-1: NOTRUN -> [SKIP][10] ([i915#6230])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@api_intel_bb@crc32.html
* igt@api_intel_bb@object-reloc-purge-cache:
- shard-mtlp: NOTRUN -> [SKIP][11] ([i915#8411])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@api_intel_bb@object-reloc-purge-cache.html
- shard-dg2-9: NOTRUN -> [SKIP][12] ([i915#8411])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@api_intel_bb@object-reloc-purge-cache.html
- shard-rkl: NOTRUN -> [SKIP][13] ([i915#8411])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-4/igt@api_intel_bb@object-reloc-purge-cache.html
* igt@debugfs_test@basic-hwmon:
- shard-mtlp: NOTRUN -> [SKIP][14] ([i915#9318])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-1/igt@debugfs_test@basic-hwmon.html
* igt@drm_fdinfo@busy-check-all@ccs0:
- shard-dg2-9: NOTRUN -> [SKIP][15] ([i915#11527] / [i915#8414]) +7 other tests skip
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@drm_fdinfo@busy-check-all@ccs0.html
* igt@drm_fdinfo@busy-idle-check-all@ccs0:
- shard-mtlp: NOTRUN -> [SKIP][16] ([i915#8414]) +6 other tests skip
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-1/igt@drm_fdinfo@busy-idle-check-all@ccs0.html
* igt@drm_fdinfo@virtual-busy:
- shard-dg1: NOTRUN -> [SKIP][17] ([i915#8414])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@drm_fdinfo@virtual-busy.html
* igt@drm_fdinfo@virtual-busy-idle-all:
- shard-dg2: NOTRUN -> [SKIP][18] ([i915#8414]) +2 other tests skip
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@drm_fdinfo@virtual-busy-idle-all.html
* igt@gem_caching@reads:
- shard-mtlp: NOTRUN -> [SKIP][19] ([i915#4873])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-1/igt@gem_caching@reads.html
* igt@gem_ccs@block-multicopy-inplace:
- shard-rkl: NOTRUN -> [SKIP][20] ([i915#3555] / [i915#9323])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-1/igt@gem_ccs@block-multicopy-inplace.html
* igt@gem_ccs@ctrl-surf-copy-new-ctx:
- shard-rkl: NOTRUN -> [SKIP][21] ([i915#9323])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@gem_ccs@ctrl-surf-copy-new-ctx.html
- shard-dg1: NOTRUN -> [SKIP][22] ([i915#9323])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@gem_ccs@ctrl-surf-copy-new-ctx.html
* igt@gem_ccs@large-ctrl-surf-copy:
- shard-tglu-1: NOTRUN -> [SKIP][23] ([i915#13008])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@gem_ccs@large-ctrl-surf-copy.html
* igt@gem_ccs@suspend-resume:
- shard-tglu: NOTRUN -> [SKIP][24] ([i915#9323]) +1 other test skip
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@gem_ccs@suspend-resume.html
* igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-lmem0-lmem0:
- shard-dg2: [PASS][25] -> [INCOMPLETE][26] ([i915#12392])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-3/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-lmem0-lmem0.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-1/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-lmem0-lmem0.html
* igt@gem_close_race@multigpu-basic-threads:
- shard-tglu-1: NOTRUN -> [SKIP][27] ([i915#7697])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@gem_close_race@multigpu-basic-threads.html
* igt@gem_ctx_freq@sysfs@gt0:
- shard-dg2: [PASS][28] -> [FAIL][29] ([i915#9561]) +1 other test fail
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-3/igt@gem_ctx_freq@sysfs@gt0.html
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-1/igt@gem_ctx_freq@sysfs@gt0.html
* igt@gem_ctx_sseu@invalid-args:
- shard-dg2: NOTRUN -> [SKIP][30] ([i915#280])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-10/igt@gem_ctx_sseu@invalid-args.html
- shard-tglu-1: NOTRUN -> [SKIP][31] ([i915#280])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@gem_ctx_sseu@invalid-args.html
* igt@gem_ctx_sseu@invalid-sseu:
- shard-dg2-9: NOTRUN -> [SKIP][32] ([i915#280])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@gem_ctx_sseu@invalid-sseu.html
* igt@gem_eio@in-flight-suspend:
- shard-mtlp: [PASS][33] -> [ABORT][34] ([i915#13193] / [i915#13723]) +1 other test abort
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-mtlp-3/igt@gem_eio@in-flight-suspend.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-7/igt@gem_eio@in-flight-suspend.html
* igt@gem_eio@reset-stress:
- shard-dg1: [PASS][35] -> [FAIL][36] ([i915#12543] / [i915#5784])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-12/igt@gem_eio@reset-stress.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-12/igt@gem_eio@reset-stress.html
* igt@gem_exec_balancer@bonded-sync:
- shard-mtlp: NOTRUN -> [SKIP][37] ([i915#4771])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@gem_exec_balancer@bonded-sync.html
- shard-dg2-9: NOTRUN -> [SKIP][38] ([i915#4771])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@gem_exec_balancer@bonded-sync.html
* igt@gem_exec_balancer@parallel-balancer:
- shard-tglu-1: NOTRUN -> [SKIP][39] ([i915#4525])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@gem_exec_balancer@parallel-balancer.html
* igt@gem_exec_balancer@parallel-contexts:
- shard-rkl: NOTRUN -> [SKIP][40] ([i915#4525])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-6/igt@gem_exec_balancer@parallel-contexts.html
* igt@gem_exec_capture@capture-invisible@lmem0:
- shard-dg2: NOTRUN -> [SKIP][41] ([i915#6334]) +2 other tests skip
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@gem_exec_capture@capture-invisible@lmem0.html
* igt@gem_exec_capture@capture-invisible@smem0:
- shard-tglu-1: NOTRUN -> [SKIP][42] ([i915#6334]) +1 other test skip
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@gem_exec_capture@capture-invisible@smem0.html
* igt@gem_exec_fence@submit:
- shard-dg2: NOTRUN -> [SKIP][43] ([i915#4812])
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-7/igt@gem_exec_fence@submit.html
- shard-dg1: NOTRUN -> [SKIP][44] ([i915#4812])
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@gem_exec_fence@submit.html
* igt@gem_exec_flush@basic-uc-set-default:
- shard-dg2: NOTRUN -> [SKIP][45] ([i915#3539])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@gem_exec_flush@basic-uc-set-default.html
* igt@gem_exec_flush@basic-wb-prw-default:
- shard-dg2: NOTRUN -> [SKIP][46] ([i915#3539] / [i915#4852]) +1 other test skip
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-7/igt@gem_exec_flush@basic-wb-prw-default.html
- shard-dg1: NOTRUN -> [SKIP][47] ([i915#3539] / [i915#4852])
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@gem_exec_flush@basic-wb-prw-default.html
* igt@gem_exec_flush@basic-wb-rw-before-default:
- shard-dg2-9: NOTRUN -> [SKIP][48] ([i915#3539] / [i915#4852])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@gem_exec_flush@basic-wb-rw-before-default.html
* igt@gem_exec_reloc@basic-cpu-gtt-noreloc:
- shard-dg2: NOTRUN -> [SKIP][49] ([i915#3281]) +10 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-7/igt@gem_exec_reloc@basic-cpu-gtt-noreloc.html
- shard-rkl: NOTRUN -> [SKIP][50] ([i915#3281]) +14 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@gem_exec_reloc@basic-cpu-gtt-noreloc.html
- shard-dg1: NOTRUN -> [SKIP][51] ([i915#3281]) +1 other test skip
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@gem_exec_reloc@basic-cpu-gtt-noreloc.html
* igt@gem_exec_reloc@basic-cpu-read-active:
- shard-mtlp: NOTRUN -> [SKIP][52] ([i915#3281]) +1 other test skip
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@gem_exec_reloc@basic-cpu-read-active.html
* igt@gem_exec_reloc@basic-gtt-read-active:
- shard-dg2-9: NOTRUN -> [SKIP][53] ([i915#3281]) +6 other tests skip
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@gem_exec_reloc@basic-gtt-read-active.html
* igt@gem_exec_schedule@semaphore-power:
- shard-rkl: NOTRUN -> [SKIP][54] ([i915#7276])
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-7/igt@gem_exec_schedule@semaphore-power.html
* igt@gem_fence_thrash@bo-write-verify-y:
- shard-dg2-9: NOTRUN -> [SKIP][55] ([i915#4860])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@gem_fence_thrash@bo-write-verify-y.html
* igt@gem_fenced_exec_thrash@no-spare-fences-busy:
- shard-dg2: NOTRUN -> [SKIP][56] ([i915#4860]) +1 other test skip
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@gem_fenced_exec_thrash@no-spare-fences-busy.html
* igt@gem_lmem_evict@dontneed-evict-race:
- shard-rkl: NOTRUN -> [SKIP][57] ([i915#4613] / [i915#7582])
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-1/igt@gem_lmem_evict@dontneed-evict-race.html
* igt@gem_lmem_swapping@massive-random:
- shard-tglu-1: NOTRUN -> [SKIP][58] ([i915#4613]) +2 other tests skip
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@gem_lmem_swapping@massive-random.html
* igt@gem_lmem_swapping@parallel-random-engines:
- shard-mtlp: NOTRUN -> [SKIP][59] ([i915#4613])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@gem_lmem_swapping@parallel-random-engines.html
* igt@gem_lmem_swapping@random:
- shard-tglu: NOTRUN -> [SKIP][60] ([i915#4613]) +1 other test skip
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@gem_lmem_swapping@random.html
* igt@gem_lmem_swapping@smem-oom@lmem0:
- shard-dg2: [PASS][61] -> [TIMEOUT][62] ([i915#5493]) +1 other test timeout
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-3/igt@gem_lmem_swapping@smem-oom@lmem0.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-3/igt@gem_lmem_swapping@smem-oom@lmem0.html
- shard-dg1: [PASS][63] -> [TIMEOUT][64] ([i915#14044] / [i915#5493]) +1 other test timeout
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-19/igt@gem_lmem_swapping@smem-oom@lmem0.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-16/igt@gem_lmem_swapping@smem-oom@lmem0.html
* igt@gem_lmem_swapping@verify-ccs:
- shard-rkl: NOTRUN -> [SKIP][65] ([i915#4613]) +4 other tests skip
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@gem_lmem_swapping@verify-ccs.html
- shard-dg1: NOTRUN -> [SKIP][66] ([i915#12193])
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@gem_lmem_swapping@verify-ccs.html
* igt@gem_lmem_swapping@verify-ccs@lmem0:
- shard-dg1: NOTRUN -> [SKIP][67] ([i915#4565])
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@gem_lmem_swapping@verify-ccs@lmem0.html
* igt@gem_madvise@dontneed-before-exec:
- shard-dg2-9: NOTRUN -> [SKIP][68] ([i915#3282])
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@gem_madvise@dontneed-before-exec.html
* igt@gem_mmap@big-bo:
- shard-dg1: NOTRUN -> [SKIP][69] ([i915#4083]) +1 other test skip
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@gem_mmap@big-bo.html
* igt@gem_mmap_gtt@big-copy-xy:
- shard-dg2-9: NOTRUN -> [SKIP][70] ([i915#4077]) +6 other tests skip
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@gem_mmap_gtt@big-copy-xy.html
* igt@gem_mmap_gtt@hang-user:
- shard-mtlp: NOTRUN -> [SKIP][71] ([i915#4077]) +3 other tests skip
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@gem_mmap_gtt@hang-user.html
* igt@gem_mmap_gtt@ptrace:
- shard-dg2: NOTRUN -> [SKIP][72] ([i915#4077]) +4 other tests skip
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-4/igt@gem_mmap_gtt@ptrace.html
* igt@gem_mmap_wc@coherency:
- shard-dg2: NOTRUN -> [SKIP][73] ([i915#4083]) +4 other tests skip
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@gem_mmap_wc@coherency.html
* igt@gem_mmap_wc@read-write-distinct:
- shard-dg2-9: NOTRUN -> [SKIP][74] ([i915#4083]) +2 other tests skip
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@gem_mmap_wc@read-write-distinct.html
* igt@gem_mmap_wc@set-cache-level:
- shard-mtlp: NOTRUN -> [SKIP][75] ([i915#4083]) +1 other test skip
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@gem_mmap_wc@set-cache-level.html
* igt@gem_pread@exhaustion:
- shard-tglu-1: NOTRUN -> [WARN][76] ([i915#2658])
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@gem_pread@exhaustion.html
* igt@gem_pwrite@basic-random:
- shard-dg2: NOTRUN -> [SKIP][77] ([i915#3282]) +5 other tests skip
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-7/igt@gem_pwrite@basic-random.html
- shard-rkl: NOTRUN -> [SKIP][78] ([i915#3282]) +10 other tests skip
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@gem_pwrite@basic-random.html
- shard-dg1: NOTRUN -> [SKIP][79] ([i915#3282]) +2 other tests skip
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@gem_pwrite@basic-random.html
* igt@gem_pxp@create-valid-protected-context:
- shard-rkl: [PASS][80] -> [TIMEOUT][81] ([i915#12964])
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-rkl-8/igt@gem_pxp@create-valid-protected-context.html
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-1/igt@gem_pxp@create-valid-protected-context.html
* igt@gem_pxp@dmabuf-shared-protected-dst-is-context-refcounted:
- shard-rkl: NOTRUN -> [TIMEOUT][82] ([i915#12964])
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-6/igt@gem_pxp@dmabuf-shared-protected-dst-is-context-refcounted.html
* igt@gem_pxp@hw-rejects-pxp-buffer:
- shard-tglu: NOTRUN -> [SKIP][83] ([i915#13398])
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@gem_pxp@hw-rejects-pxp-buffer.html
* igt@gem_pxp@protected-raw-src-copy-not-readible:
- shard-rkl: NOTRUN -> [TIMEOUT][84] ([i915#12917] / [i915#12964]) +3 other tests timeout
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-4/igt@gem_pxp@protected-raw-src-copy-not-readible.html
* igt@gem_pxp@reject-modify-context-protection-off-1:
- shard-dg2: NOTRUN -> [SKIP][85] ([i915#4270]) +1 other test skip
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@gem_pxp@reject-modify-context-protection-off-1.html
* igt@gem_pxp@verify-pxp-execution-after-suspend-resume:
- shard-dg2-9: NOTRUN -> [SKIP][86] ([i915#4270]) +1 other test skip
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@gem_pxp@verify-pxp-execution-after-suspend-resume.html
* igt@gem_pxp@verify-pxp-stale-buf-execution:
- shard-rkl: [PASS][87] -> [TIMEOUT][88] ([i915#12917] / [i915#12964])
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-rkl-8/igt@gem_pxp@verify-pxp-stale-buf-execution.html
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-4/igt@gem_pxp@verify-pxp-stale-buf-execution.html
* igt@gem_render_copy@y-tiled-to-vebox-linear:
- shard-dg2: NOTRUN -> [SKIP][89] ([i915#5190] / [i915#8428]) +4 other tests skip
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@gem_render_copy@y-tiled-to-vebox-linear.html
* igt@gem_render_copy@yf-tiled-ccs-to-linear:
- shard-mtlp: NOTRUN -> [SKIP][90] ([i915#8428])
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@gem_render_copy@yf-tiled-ccs-to-linear.html
- shard-dg2-9: NOTRUN -> [SKIP][91] ([i915#5190] / [i915#8428])
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@gem_render_copy@yf-tiled-ccs-to-linear.html
* igt@gem_softpin@evict-prime@vcs0:
- shard-rkl: NOTRUN -> [DMESG-WARN][92] ([i915#12964]) +18 other tests dmesg-warn
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-7/igt@gem_softpin@evict-prime@vcs0.html
* igt@gem_softpin@evict-snoop-interruptible:
- shard-dg2: NOTRUN -> [SKIP][93] ([i915#4885])
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-10/igt@gem_softpin@evict-snoop-interruptible.html
* igt@gem_tiled_partial_pwrite_pread@writes:
- shard-dg1: NOTRUN -> [SKIP][94] ([i915#4077]) +1 other test skip
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@gem_tiled_partial_pwrite_pread@writes.html
* igt@gem_tiled_swapping@non-threaded:
- shard-tglu: [PASS][95] -> [FAIL][96] ([i915#12941])
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-tglu-7/igt@gem_tiled_swapping@non-threaded.html
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-7/igt@gem_tiled_swapping@non-threaded.html
* igt@gem_userptr_blits@create-destroy-unsync:
- shard-rkl: NOTRUN -> [SKIP][97] ([i915#3297]) +1 other test skip
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-4/igt@gem_userptr_blits@create-destroy-unsync.html
- shard-mtlp: NOTRUN -> [SKIP][98] ([i915#3297]) +1 other test skip
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@gem_userptr_blits@create-destroy-unsync.html
* igt@gem_userptr_blits@dmabuf-sync:
- shard-rkl: NOTRUN -> [SKIP][99] ([i915#3297] / [i915#3323])
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-6/igt@gem_userptr_blits@dmabuf-sync.html
* igt@gem_userptr_blits@forbidden-operations:
- shard-dg2: NOTRUN -> [SKIP][100] ([i915#3282] / [i915#3297])
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@gem_userptr_blits@forbidden-operations.html
* igt@gem_userptr_blits@map-fixed-invalidate-busy:
- shard-dg2: NOTRUN -> [SKIP][101] ([i915#3297] / [i915#4880])
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-10/igt@gem_userptr_blits@map-fixed-invalidate-busy.html
* igt@gem_userptr_blits@readonly-unsync:
- shard-dg2-9: NOTRUN -> [SKIP][102] ([i915#3297]) +1 other test skip
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@gem_userptr_blits@readonly-unsync.html
* igt@gem_userptr_blits@sd-probe:
- shard-dg2-9: NOTRUN -> [SKIP][103] ([i915#3297] / [i915#4958])
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@gem_userptr_blits@sd-probe.html
* igt@gem_userptr_blits@unsync-overlap:
- shard-dg2: NOTRUN -> [SKIP][104] ([i915#3297])
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@gem_userptr_blits@unsync-overlap.html
- shard-tglu-1: NOTRUN -> [SKIP][105] ([i915#3297]) +1 other test skip
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@gem_userptr_blits@unsync-overlap.html
* igt@gen9_exec_parse@allowed-all:
- shard-rkl: NOTRUN -> [SKIP][106] ([i915#2527]) +5 other tests skip
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-7/igt@gen9_exec_parse@allowed-all.html
* igt@gen9_exec_parse@bb-oversize:
- shard-dg2-9: NOTRUN -> [SKIP][107] ([i915#2856]) +1 other test skip
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@gen9_exec_parse@bb-oversize.html
* igt@gen9_exec_parse@bb-start-out:
- shard-mtlp: NOTRUN -> [SKIP][108] ([i915#2856])
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@gen9_exec_parse@bb-start-out.html
* igt@gen9_exec_parse@unaligned-jump:
- shard-tglu: NOTRUN -> [SKIP][109] ([i915#2527] / [i915#2856]) +1 other test skip
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-4/igt@gen9_exec_parse@unaligned-jump.html
- shard-dg2: NOTRUN -> [SKIP][110] ([i915#2856]) +3 other tests skip
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-7/igt@gen9_exec_parse@unaligned-jump.html
- shard-dg1: NOTRUN -> [SKIP][111] ([i915#2527])
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@gen9_exec_parse@unaligned-jump.html
* igt@gen9_exec_parse@valid-registers:
- shard-tglu-1: NOTRUN -> [SKIP][112] ([i915#2527] / [i915#2856]) +2 other tests skip
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@gen9_exec_parse@valid-registers.html
* igt@i915_pm_freq_api@freq-reset-multiple:
- shard-rkl: NOTRUN -> [SKIP][113] ([i915#8399])
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@i915_pm_freq_api@freq-reset-multiple.html
- shard-tglu: NOTRUN -> [SKIP][114] ([i915#8399]) +1 other test skip
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-4/igt@i915_pm_freq_api@freq-reset-multiple.html
* igt@i915_pm_freq_api@freq-suspend:
- shard-tglu-1: NOTRUN -> [SKIP][115] ([i915#8399])
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@i915_pm_freq_api@freq-suspend.html
* igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0:
- shard-dg1: [PASS][116] -> [FAIL][117] ([i915#3591]) +1 other test fail
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-16/igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0.html
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-17/igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0.html
* igt@i915_pm_rpm@gem-execbuf-stress-pc8:
- shard-dg2: NOTRUN -> [SKIP][118] +6 other tests skip
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-4/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html
* igt@i915_pm_rps@reset:
- shard-mtlp: NOTRUN -> [FAIL][119] ([i915#8346])
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@i915_pm_rps@reset.html
* igt@i915_pm_rps@thresholds:
- shard-dg2: NOTRUN -> [SKIP][120] ([i915#11681])
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@i915_pm_rps@thresholds.html
* igt@i915_query@query-topology-coherent-slice-mask:
- shard-dg2: NOTRUN -> [SKIP][121] ([i915#6188])
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@i915_query@query-topology-coherent-slice-mask.html
* igt@i915_query@test-query-geometry-subslices:
- shard-rkl: NOTRUN -> [SKIP][122] ([i915#5723])
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-1/igt@i915_query@test-query-geometry-subslices.html
* igt@i915_suspend@basic-s3-without-i915:
- shard-dg1: [PASS][123] -> [DMESG-WARN][124] ([i915#4391] / [i915#4423])
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-12/igt@i915_suspend@basic-s3-without-i915.html
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-14/igt@i915_suspend@basic-s3-without-i915.html
* igt@i915_suspend@fence-restore-untiled:
- shard-rkl: [PASS][125] -> [INCOMPLETE][126] ([i915#4817])
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-rkl-1/igt@i915_suspend@fence-restore-untiled.html
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-3/igt@i915_suspend@fence-restore-untiled.html
* igt@intel_hwmon@hwmon-read:
- shard-tglu-1: NOTRUN -> [SKIP][127] ([i915#7707])
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@intel_hwmon@hwmon-read.html
* igt@intel_hwmon@hwmon-write:
- shard-rkl: NOTRUN -> [SKIP][128] ([i915#7707])
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-4/igt@intel_hwmon@hwmon-write.html
- shard-mtlp: NOTRUN -> [SKIP][129] ([i915#7707])
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@intel_hwmon@hwmon-write.html
* igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy:
- shard-dg2: NOTRUN -> [SKIP][130] ([i915#4212])
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-7/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html
- shard-dg1: NOTRUN -> [SKIP][131] ([i915#4212])
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- shard-dg2-9: NOTRUN -> [SKIP][132] ([i915#5190]) +1 other test skip
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_addfb_basic@invalid-smem-bo-on-discrete:
- shard-tglu: NOTRUN -> [SKIP][133] ([i915#12454] / [i915#12712])
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html
* igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-a-hdmi-a-1-y-rc-ccs-cc:
- shard-rkl: NOTRUN -> [SKIP][134] ([i915#8709]) +1 other test skip
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-4/igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-a-hdmi-a-1-y-rc-ccs-cc.html
* igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-b-dp-3-4-rc-ccs-cc:
- shard-dg2: NOTRUN -> [SKIP][135] ([i915#8709]) +7 other tests skip
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-11/igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-b-dp-3-4-rc-ccs-cc.html
* igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-c-hdmi-a-1-y-rc-ccs-cc:
- shard-tglu-1: NOTRUN -> [SKIP][136] ([i915#8709]) +3 other tests skip
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-c-hdmi-a-1-y-rc-ccs-cc.html
* igt@kms_async_flips@invalid-async-flip:
- shard-dg2: NOTRUN -> [SKIP][137] ([i915#12967] / [i915#6228])
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@kms_async_flips@invalid-async-flip.html
* igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels:
- shard-tglu-1: NOTRUN -> [SKIP][138] ([i915#1769] / [i915#3555])
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html
* igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1:
- shard-dg2: [PASS][139] -> [FAIL][140] ([i915#5956]) +1 other test fail
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-8/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-8/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
* igt@kms_big_fb@4-tiled-32bpp-rotate-0:
- shard-rkl: NOTRUN -> [SKIP][141] ([i915#5286]) +7 other tests skip
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-6/igt@kms_big_fb@4-tiled-32bpp-rotate-0.html
* igt@kms_big_fb@4-tiled-64bpp-rotate-180:
- shard-tglu-1: NOTRUN -> [SKIP][142] ([i915#5286]) +4 other tests skip
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_big_fb@4-tiled-64bpp-rotate-180.html
* igt@kms_big_fb@4-tiled-8bpp-rotate-180:
- shard-tglu: NOTRUN -> [SKIP][143] ([i915#5286]) +2 other tests skip
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@kms_big_fb@4-tiled-8bpp-rotate-180.html
* igt@kms_big_fb@4-tiled-8bpp-rotate-90:
- shard-dg2-9: NOTRUN -> [SKIP][144] +4 other tests skip
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html
* igt@kms_big_fb@4-tiled-addfb-size-overflow:
- shard-dg1: NOTRUN -> [SKIP][145] ([i915#5286])
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@kms_big_fb@4-tiled-addfb-size-overflow.html
* igt@kms_big_fb@linear-64bpp-rotate-90:
- shard-rkl: NOTRUN -> [SKIP][146] ([i915#3638]) +2 other tests skip
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-1/igt@kms_big_fb@linear-64bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-32bpp-rotate-270:
- shard-dg2-9: NOTRUN -> [SKIP][147] ([i915#4538] / [i915#5190]) +5 other tests skip
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_big_fb@y-tiled-32bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-addfb-size-overflow:
- shard-mtlp: NOTRUN -> [SKIP][148] ([i915#6187])
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-1/igt@kms_big_fb@y-tiled-addfb-size-overflow.html
* igt@kms_big_fb@yf-tiled-16bpp-rotate-0:
- shard-dg2: NOTRUN -> [SKIP][149] ([i915#4538] / [i915#5190]) +4 other tests skip
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-10/igt@kms_big_fb@yf-tiled-16bpp-rotate-0.html
* igt@kms_big_fb@yf-tiled-addfb:
- shard-dg2: NOTRUN -> [SKIP][150] ([i915#5190]) +1 other test skip
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@kms_big_fb@yf-tiled-addfb.html
* igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-4:
- shard-dg1: NOTRUN -> [SKIP][151] ([i915#6095]) +141 other tests skip
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-19/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-4.html
* igt@kms_ccs@ccs-on-another-bo-yf-tiled-ccs@pipe-b-hdmi-a-2:
- shard-dg2-9: NOTRUN -> [SKIP][152] ([i915#10307] / [i915#6095]) +19 other tests skip
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_ccs@ccs-on-another-bo-yf-tiled-ccs@pipe-b-hdmi-a-2.html
* igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs:
- shard-dg2: NOTRUN -> [SKIP][153] ([i915#12313]) +1 other test skip
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-7/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html
- shard-rkl: NOTRUN -> [SKIP][154] ([i915#12313]) +3 other tests skip
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html
- shard-dg1: NOTRUN -> [SKIP][155] ([i915#12313])
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html
- shard-tglu: NOTRUN -> [SKIP][156] ([i915#12313])
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-4/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc:
- shard-tglu: NOTRUN -> [SKIP][157] ([i915#6095]) +49 other tests skip
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-4/igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs:
- shard-dg2-9: NOTRUN -> [SKIP][158] ([i915#12313])
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][159] ([i915#10307] / [i915#10434] / [i915#6095])
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-4/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-1.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc@pipe-d-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][160] ([i915#6095]) +19 other tests skip
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc@pipe-d-edp-1.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs:
- shard-dg2: NOTRUN -> [SKIP][161] ([i915#6095]) +20 other tests skip
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-7/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs:
- shard-tglu-1: NOTRUN -> [SKIP][162] ([i915#12313])
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][163] ([i915#10307] / [i915#6095]) +124 other tests skip
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3.html
* igt@kms_ccs@missing-ccs-buffer-yf-tiled-ccs@pipe-b-hdmi-a-1:
- shard-tglu-1: NOTRUN -> [SKIP][164] ([i915#6095]) +54 other tests skip
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_ccs@missing-ccs-buffer-yf-tiled-ccs@pipe-b-hdmi-a-1.html
* igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs:
- shard-mtlp: NOTRUN -> [SKIP][165] ([i915#12313])
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-1/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][166] ([i915#6095]) +87 other tests skip
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html
* igt@kms_cdclk@mode-transition:
- shard-rkl: NOTRUN -> [SKIP][167] ([i915#3742]) +1 other test skip
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-1/igt@kms_cdclk@mode-transition.html
* igt@kms_cdclk@mode-transition-all-outputs:
- shard-mtlp: NOTRUN -> [SKIP][168] ([i915#13784])
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@kms_cdclk@mode-transition-all-outputs.html
- shard-dg2-9: NOTRUN -> [SKIP][169] ([i915#13784])
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_cdclk@mode-transition-all-outputs.html
* igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][170] ([i915#13781]) +3 other tests skip
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-5/igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-3.html
* igt@kms_chamelium_frames@dp-frame-dump:
- shard-rkl: NOTRUN -> [SKIP][171] ([i915#11151] / [i915#7828]) +11 other tests skip
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-1/igt@kms_chamelium_frames@dp-frame-dump.html
* igt@kms_chamelium_frames@hdmi-crc-fast:
- shard-mtlp: NOTRUN -> [SKIP][172] ([i915#11151] / [i915#7828]) +3 other tests skip
[172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-1/igt@kms_chamelium_frames@hdmi-crc-fast.html
* igt@kms_chamelium_frames@hdmi-crc-nonplanar-formats:
- shard-dg2: NOTRUN -> [SKIP][173] ([i915#11151] / [i915#7828]) +4 other tests skip
[173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-10/igt@kms_chamelium_frames@hdmi-crc-nonplanar-formats.html
* igt@kms_chamelium_hpd@dp-hpd-enable-disable-mode:
- shard-tglu-1: NOTRUN -> [SKIP][174] ([i915#11151] / [i915#7828]) +6 other tests skip
[174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_chamelium_hpd@dp-hpd-enable-disable-mode.html
* igt@kms_chamelium_hpd@dp-hpd-storm:
- shard-dg2-9: NOTRUN -> [SKIP][175] ([i915#11151] / [i915#7828]) +2 other tests skip
[175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_chamelium_hpd@dp-hpd-storm.html
* igt@kms_chamelium_hpd@hdmi-hpd-storm-disable:
- shard-tglu: NOTRUN -> [SKIP][176] ([i915#11151] / [i915#7828]) +3 other tests skip
[176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@kms_chamelium_hpd@hdmi-hpd-storm-disable.html
* igt@kms_content_protection@atomic:
- shard-rkl: NOTRUN -> [SKIP][177] ([i915#7118] / [i915#9424])
[177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-1/igt@kms_content_protection@atomic.html
* igt@kms_content_protection@atomic-dpms:
- shard-dg2: NOTRUN -> [SKIP][178] ([i915#7118] / [i915#9424])
[178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@kms_content_protection@atomic-dpms.html
- shard-tglu-1: NOTRUN -> [SKIP][179] ([i915#6944] / [i915#7116] / [i915#7118] / [i915#9424]) +1 other test skip
[179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_content_protection@atomic-dpms.html
* igt@kms_content_protection@dp-mst-type-1:
- shard-dg2: NOTRUN -> [SKIP][180] ([i915#3299])
[180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-7/igt@kms_content_protection@dp-mst-type-1.html
- shard-rkl: NOTRUN -> [SKIP][181] ([i915#3116])
[181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@kms_content_protection@dp-mst-type-1.html
- shard-dg1: NOTRUN -> [SKIP][182] ([i915#3299])
[182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@kms_content_protection@dp-mst-type-1.html
- shard-tglu: NOTRUN -> [SKIP][183] ([i915#3116] / [i915#3299]) +1 other test skip
[183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-4/igt@kms_content_protection@dp-mst-type-1.html
* igt@kms_content_protection@lic-type-0:
- shard-tglu-1: NOTRUN -> [SKIP][184] ([i915#6944] / [i915#9424])
[184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_content_protection@lic-type-0.html
* igt@kms_content_protection@lic-type-0@pipe-a-dp-4:
- shard-dg2: NOTRUN -> [FAIL][185] ([i915#7173]) +2 other tests fail
[185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-10/igt@kms_content_protection@lic-type-0@pipe-a-dp-4.html
* igt@kms_content_protection@lic-type-1:
- shard-rkl: NOTRUN -> [SKIP][186] ([i915#9424])
[186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-7/igt@kms_content_protection@lic-type-1.html
* igt@kms_cursor_crc@cursor-onscreen-512x512:
- shard-tglu-1: NOTRUN -> [SKIP][187] ([i915#13049]) +1 other test skip
[187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_cursor_crc@cursor-onscreen-512x512.html
* igt@kms_cursor_crc@cursor-onscreen-64x21:
- shard-rkl: NOTRUN -> [FAIL][188] ([i915#13566]) +1 other test fail
[188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@kms_cursor_crc@cursor-onscreen-64x21.html
* igt@kms_cursor_crc@cursor-random-256x85@pipe-a-hdmi-a-1:
- shard-tglu-1: NOTRUN -> [FAIL][189] ([i915#13566]) +1 other test fail
[189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_cursor_crc@cursor-random-256x85@pipe-a-hdmi-a-1.html
* igt@kms_cursor_crc@cursor-random-512x512:
- shard-tglu: NOTRUN -> [SKIP][190] ([i915#13049])
[190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@kms_cursor_crc@cursor-random-512x512.html
* igt@kms_cursor_crc@cursor-rapid-movement-512x170:
- shard-rkl: NOTRUN -> [SKIP][191] ([i915#13049])
[191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-7/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html
* igt@kms_cursor_crc@cursor-sliding-32x10:
- shard-mtlp: NOTRUN -> [SKIP][192] ([i915#3555] / [i915#8814])
[192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-1/igt@kms_cursor_crc@cursor-sliding-32x10.html
* igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy:
- shard-rkl: NOTRUN -> [SKIP][193] +29 other tests skip
[193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-1/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- shard-mtlp: NOTRUN -> [SKIP][194] ([i915#4213])
[194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size:
- shard-rkl: NOTRUN -> [SKIP][195] ([i915#4103]) +2 other tests skip
[195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html
* igt@kms_cursor_legacy@cursora-vs-flipa-atomic-transitions:
- shard-rkl: [PASS][196] -> [DMESG-WARN][197] ([i915#12964]) +6 other tests dmesg-warn
[196]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-rkl-3/igt@kms_cursor_legacy@cursora-vs-flipa-atomic-transitions.html
[197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-7/igt@kms_cursor_legacy@cursora-vs-flipa-atomic-transitions.html
* igt@kms_cursor_legacy@cursora-vs-flipb-toggle:
- shard-dg2-9: NOTRUN -> [SKIP][198] ([i915#13046] / [i915#5354]) +2 other tests skip
[198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_cursor_legacy@cursora-vs-flipb-toggle.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size:
- shard-dg2: NOTRUN -> [SKIP][199] ([i915#13046] / [i915#5354]) +1 other test skip
[199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-rkl: NOTRUN -> [FAIL][200] ([i915#2346])
[200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
- shard-dg2: NOTRUN -> [SKIP][201] ([i915#4103] / [i915#4213])
[201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-4/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
* igt@kms_display_modes@extended-mode-basic:
- shard-dg2: NOTRUN -> [SKIP][202] ([i915#13691])
[202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@kms_display_modes@extended-mode-basic.html
- shard-tglu-1: NOTRUN -> [SKIP][203] ([i915#13691])
[203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_display_modes@extended-mode-basic.html
* igt@kms_dp_aux_dev:
- shard-tglu-1: NOTRUN -> [SKIP][204] ([i915#1257])
[204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_dp_aux_dev.html
* igt@kms_dp_link_training@non-uhbr-sst:
- shard-mtlp: NOTRUN -> [SKIP][205] ([i915#13749])
[205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@kms_dp_link_training@non-uhbr-sst.html
- shard-dg2-9: NOTRUN -> [SKIP][206] ([i915#13749])
[206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_dp_link_training@non-uhbr-sst.html
- shard-rkl: NOTRUN -> [SKIP][207] ([i915#13749])
[207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-4/igt@kms_dp_link_training@non-uhbr-sst.html
* igt@kms_dp_link_training@uhbr-mst:
- shard-dg2-9: NOTRUN -> [SKIP][208] ([i915#13748])
[208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_dp_link_training@uhbr-mst.html
* igt@kms_dp_linktrain_fallback@dp-fallback:
- shard-tglu: NOTRUN -> [SKIP][209] ([i915#13707])
[209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@kms_dp_linktrain_fallback@dp-fallback.html
* igt@kms_dsc@dsc-fractional-bpp:
- shard-tglu-1: NOTRUN -> [SKIP][210] ([i915#3840])
[210]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_dsc@dsc-fractional-bpp.html
* igt@kms_dsc@dsc-fractional-bpp-with-bpc:
- shard-dg2-9: NOTRUN -> [SKIP][211] ([i915#3840])
[211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html
* igt@kms_dsc@dsc-with-bpc-formats:
- shard-dg2: NOTRUN -> [SKIP][212] ([i915#3555] / [i915#3840])
[212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-7/igt@kms_dsc@dsc-with-bpc-formats.html
- shard-rkl: NOTRUN -> [SKIP][213] ([i915#3555] / [i915#3840]) +1 other test skip
[213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@kms_dsc@dsc-with-bpc-formats.html
- shard-dg1: NOTRUN -> [SKIP][214] ([i915#3555] / [i915#3840])
[214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@kms_dsc@dsc-with-bpc-formats.html
- shard-tglu: NOTRUN -> [SKIP][215] ([i915#3555] / [i915#3840])
[215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-4/igt@kms_dsc@dsc-with-bpc-formats.html
* igt@kms_dsc@dsc-with-formats:
- shard-mtlp: NOTRUN -> [SKIP][216] ([i915#3555] / [i915#3840])
[216]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-1/igt@kms_dsc@dsc-with-formats.html
* igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests:
- shard-mtlp: NOTRUN -> [SKIP][217] ([i915#13798])
[217]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests.html
- shard-dg2-9: NOTRUN -> [SKIP][218] ([i915#13798])
[218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests.html
* igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area:
- shard-dg2: NOTRUN -> [SKIP][219] ([i915#13798])
[219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area.html
- shard-tglu-1: NOTRUN -> [SKIP][220] ([i915#2575])
[220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area.html
* igt@kms_fbcon_fbt@psr-suspend:
- shard-tglu-1: NOTRUN -> [SKIP][221] ([i915#3469])
[221]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_fbcon_fbt@psr-suspend.html
- shard-dg2: NOTRUN -> [SKIP][222] ([i915#3469])
[222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@kms_fbcon_fbt@psr-suspend.html
* igt@kms_feature_discovery@chamelium:
- shard-dg2: NOTRUN -> [SKIP][223] ([i915#4854])
[223]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-10/igt@kms_feature_discovery@chamelium.html
- shard-tglu-1: NOTRUN -> [SKIP][224] ([i915#2065] / [i915#4854])
[224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_feature_discovery@chamelium.html
* igt@kms_feature_discovery@display-3x:
- shard-tglu: NOTRUN -> [SKIP][225] ([i915#1839])
[225]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@kms_feature_discovery@display-3x.html
* igt@kms_feature_discovery@psr1:
- shard-tglu: NOTRUN -> [SKIP][226] ([i915#658])
[226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@kms_feature_discovery@psr1.html
* igt@kms_feature_discovery@psr2:
- shard-rkl: NOTRUN -> [SKIP][227] ([i915#658])
[227]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-6/igt@kms_feature_discovery@psr2.html
* igt@kms_fence_pin_leak:
- shard-dg2: NOTRUN -> [SKIP][228] ([i915#4881])
[228]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@kms_fence_pin_leak.html
* igt@kms_flip@2x-flip-vs-blocking-wf-vblank:
- shard-dg2-9: NOTRUN -> [SKIP][229] ([i915#9934]) +3 other tests skip
[229]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_flip@2x-flip-vs-blocking-wf-vblank.html
* igt@kms_flip@2x-flip-vs-panning-vs-hang:
- shard-rkl: NOTRUN -> [SKIP][230] ([i915#9934]) +10 other tests skip
[230]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-4/igt@kms_flip@2x-flip-vs-panning-vs-hang.html
- shard-mtlp: NOTRUN -> [SKIP][231] ([i915#3637] / [i915#9934])
[231]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@kms_flip@2x-flip-vs-panning-vs-hang.html
* igt@kms_flip@2x-flip-vs-suspend@ab-vga1-hdmi-a1:
- shard-snb: [PASS][232] -> [TIMEOUT][233] ([i915#14033]) +1 other test timeout
[232]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-snb7/igt@kms_flip@2x-flip-vs-suspend@ab-vga1-hdmi-a1.html
[233]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-snb6/igt@kms_flip@2x-flip-vs-suspend@ab-vga1-hdmi-a1.html
* igt@kms_flip@2x-nonexisting-fb-interruptible:
- shard-dg2: NOTRUN -> [SKIP][234] ([i915#9934]) +7 other tests skip
[234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-7/igt@kms_flip@2x-nonexisting-fb-interruptible.html
- shard-dg1: NOTRUN -> [SKIP][235] ([i915#9934]) +2 other tests skip
[235]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@kms_flip@2x-nonexisting-fb-interruptible.html
* igt@kms_flip@2x-plain-flip-interruptible:
- shard-tglu: NOTRUN -> [SKIP][236] ([i915#3637] / [i915#9934]) +4 other tests skip
[236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@kms_flip@2x-plain-flip-interruptible.html
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset:
- shard-tglu-1: NOTRUN -> [SKIP][237] ([i915#3637] / [i915#9934]) +5 other tests skip
[237]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html
* igt@kms_flip@blocking-absolute-wf_vblank:
- shard-dg1: [PASS][238] -> [DMESG-WARN][239] ([i915#4423])
[238]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-16/igt@kms_flip@blocking-absolute-wf_vblank.html
[239]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-16/igt@kms_flip@blocking-absolute-wf_vblank.html
* igt@kms_flip@flip-vs-suspend:
- shard-dg2: [PASS][240] -> [INCOMPLETE][241] ([i915#12745] / [i915#4839] / [i915#6113])
[240]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-10/igt@kms_flip@flip-vs-suspend.html
[241]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-5/igt@kms_flip@flip-vs-suspend.html
* igt@kms_flip@flip-vs-suspend@b-hdmi-a3:
- shard-dg2: NOTRUN -> [INCOMPLETE][242] ([i915#6113])
[242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-5/igt@kms_flip@flip-vs-suspend@b-hdmi-a3.html
* igt@kms_flip@plain-flip-fb-recreate@a-hdmi-a1:
- shard-rkl: NOTRUN -> [FAIL][243] ([i915#13734]) +1 other test fail
[243]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-4/igt@kms_flip@plain-flip-fb-recreate@a-hdmi-a1.html
* igt@kms_flip@wf_vblank-ts-check:
- shard-dg2: [PASS][244] -> [FAIL][245] ([i915#10826] / [i915#13734])
[244]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-1/igt@kms_flip@wf_vblank-ts-check.html
[245]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-10/igt@kms_flip@wf_vblank-ts-check.html
* igt@kms_flip@wf_vblank-ts-check@a-dp4:
- shard-dg2: NOTRUN -> [FAIL][246] ([i915#10826])
[246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-10/igt@kms_flip@wf_vblank-ts-check@a-dp4.html
* igt@kms_flip@wf_vblank-ts-check@c-dp4:
- shard-dg2: NOTRUN -> [FAIL][247] ([i915#13734]) +1 other test fail
[247]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-10/igt@kms_flip@wf_vblank-ts-check@c-dp4.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling:
- shard-rkl: NOTRUN -> [SKIP][248] ([i915#2672] / [i915#3555]) +6 other tests skip
[248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-valid-mode:
- shard-rkl: NOTRUN -> [SKIP][249] ([i915#2672]) +6 other tests skip
[249]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling:
- shard-mtlp: NOTRUN -> [SKIP][250] ([i915#2672] / [i915#3555] / [i915#8813]) +1 other test skip
[250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling.html
- shard-dg2-9: NOTRUN -> [SKIP][251] ([i915#2672] / [i915#3555]) +1 other test skip
[251]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-default-mode:
- shard-mtlp: NOTRUN -> [SKIP][252] ([i915#2672] / [i915#8813]) +1 other test skip
[252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-valid-mode:
- shard-dg2-9: NOTRUN -> [SKIP][253] ([i915#2672]) +1 other test skip
[253]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling:
- shard-dg2: NOTRUN -> [SKIP][254] ([i915#2672] / [i915#3555])
[254]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling:
- shard-dg2: NOTRUN -> [SKIP][255] ([i915#2672] / [i915#3555] / [i915#5190]) +1 other test skip
[255]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-4/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling@pipe-a-valid-mode:
- shard-dg2: NOTRUN -> [SKIP][256] ([i915#2672]) +2 other tests skip
[256]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-10/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling:
- shard-tglu-1: NOTRUN -> [SKIP][257] ([i915#2672] / [i915#3555]) +1 other test skip
[257]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling@pipe-a-valid-mode:
- shard-tglu-1: NOTRUN -> [SKIP][258] ([i915#2587] / [i915#2672]) +1 other test skip
[258]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling:
- shard-mtlp: NOTRUN -> [SKIP][259] ([i915#3555] / [i915#8813])
[259]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode:
- shard-mtlp: NOTRUN -> [SKIP][260] ([i915#8810] / [i915#8813])
[260]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling:
- shard-tglu: NOTRUN -> [SKIP][261] ([i915#2672] / [i915#3555])
[261]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling@pipe-a-valid-mode:
- shard-tglu: NOTRUN -> [SKIP][262] ([i915#2587] / [i915#2672])
[262]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling@pipe-a-valid-mode.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render:
- shard-dg2: [PASS][263] -> [FAIL][264] ([i915#6880])
[263]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-8/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render.html
[264]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-8/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc:
- shard-dg2: NOTRUN -> [SKIP][265] ([i915#8708]) +11 other tests skip
[265]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-10/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-gtt:
- shard-mtlp: NOTRUN -> [SKIP][266] ([i915#8708]) +1 other test skip
[266]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbc-2p-shrfb-fliptrack-mmap-gtt:
- shard-dg2-9: NOTRUN -> [SKIP][267] ([i915#8708]) +6 other tests skip
[267]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_frontbuffer_tracking@fbc-2p-shrfb-fliptrack-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-wc:
- shard-dg1: NOTRUN -> [SKIP][268] ([i915#8708])
[268]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-move:
- shard-dg2-9: NOTRUN -> [SKIP][269] ([i915#5354]) +16 other tests skip
[269]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-move.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-onoff:
- shard-dg1: NOTRUN -> [SKIP][270] +6 other tests skip
[270]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-cpu:
- shard-dg2: NOTRUN -> [SKIP][271] ([i915#3458]) +9 other tests skip
[271]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-10/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@fbcpsr-shrfb-scaledprimary:
- shard-dg2-9: NOTRUN -> [SKIP][272] ([i915#3458]) +7 other tests skip
[272]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_frontbuffer_tracking@fbcpsr-shrfb-scaledprimary.html
* igt@kms_frontbuffer_tracking@fbcpsr-suspend:
- shard-dg2: NOTRUN -> [SKIP][273] ([i915#10433] / [i915#3458]) +2 other tests skip
[273]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html
* igt@kms_frontbuffer_tracking@fbcpsr-tiling-y:
- shard-dg2: NOTRUN -> [SKIP][274] ([i915#10055])
[274]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-msflip-blt:
- shard-dg1: NOTRUN -> [SKIP][275] ([i915#3458]) +1 other test skip
[275]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt:
- shard-rkl: NOTRUN -> [SKIP][276] ([i915#3023]) +30 other tests skip
[276]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc:
- shard-rkl: NOTRUN -> [SKIP][277] ([i915#1825]) +52 other tests skip
[277]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-pgflip-blt:
- shard-dg2: NOTRUN -> [SKIP][278] ([i915#5354]) +25 other tests skip
[278]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render:
- shard-mtlp: NOTRUN -> [SKIP][279] ([i915#1825]) +10 other tests skip
[279]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc:
- shard-tglu-1: NOTRUN -> [SKIP][280] +61 other tests skip
[280]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc.html
* igt@kms_getfb@getfb-reject-ccs:
- shard-dg2: NOTRUN -> [SKIP][281] ([i915#6118])
[281]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-4/igt@kms_getfb@getfb-reject-ccs.html
* igt@kms_hdmi_inject@inject-audio:
- shard-tglu-1: NOTRUN -> [SKIP][282] ([i915#13030])
[282]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_hdmi_inject@inject-audio.html
* igt@kms_hdr@brightness-with-hdr:
- shard-dg2: NOTRUN -> [SKIP][283] ([i915#12713])
[283]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-7/igt@kms_hdr@brightness-with-hdr.html
- shard-rkl: NOTRUN -> [SKIP][284] ([i915#12713])
[284]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@kms_hdr@brightness-with-hdr.html
- shard-dg1: NOTRUN -> [SKIP][285] ([i915#1187] / [i915#12713])
[285]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@kms_hdr@brightness-with-hdr.html
- shard-tglu: NOTRUN -> [SKIP][286] ([i915#12713])
[286]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-4/igt@kms_hdr@brightness-with-hdr.html
* igt@kms_hdr@invalid-hdr:
- shard-dg2-9: NOTRUN -> [SKIP][287] ([i915#3555] / [i915#8228])
[287]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_hdr@invalid-hdr.html
* igt@kms_hdr@static-toggle:
- shard-dg2: [PASS][288] -> [SKIP][289] ([i915#3555] / [i915#8228])
[288]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-10/igt@kms_hdr@static-toggle.html
[289]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-5/igt@kms_hdr@static-toggle.html
- shard-rkl: NOTRUN -> [SKIP][290] ([i915#3555] / [i915#8228]) +1 other test skip
[290]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-1/igt@kms_hdr@static-toggle.html
* igt@kms_joiner@basic-big-joiner:
- shard-tglu: NOTRUN -> [SKIP][291] ([i915#10656])
[291]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@kms_joiner@basic-big-joiner.html
* igt@kms_joiner@basic-force-big-joiner:
- shard-dg2: [PASS][292] -> [SKIP][293] ([i915#12388])
[292]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-10/igt@kms_joiner@basic-force-big-joiner.html
[293]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-5/igt@kms_joiner@basic-force-big-joiner.html
- shard-rkl: NOTRUN -> [SKIP][294] ([i915#12388])
[294]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-1/igt@kms_joiner@basic-force-big-joiner.html
* igt@kms_joiner@basic-ultra-joiner:
- shard-dg2: NOTRUN -> [SKIP][295] ([i915#12339])
[295]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-4/igt@kms_joiner@basic-ultra-joiner.html
- shard-rkl: NOTRUN -> [SKIP][296] ([i915#12339]) +1 other test skip
[296]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@kms_joiner@basic-ultra-joiner.html
* igt@kms_joiner@invalid-modeset-big-joiner:
- shard-rkl: NOTRUN -> [SKIP][297] ([i915#10656])
[297]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-7/igt@kms_joiner@invalid-modeset-big-joiner.html
* igt@kms_joiner@invalid-modeset-force-ultra-joiner:
- shard-rkl: NOTRUN -> [SKIP][298] ([i915#12394])
[298]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
* igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
- shard-rkl: NOTRUN -> [SKIP][299] ([i915#13522])
[299]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-4/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
- shard-mtlp: NOTRUN -> [SKIP][300] ([i915#13522])
[300]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
- shard-dg2-9: NOTRUN -> [SKIP][301] ([i915#13522])
[301]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
* igt@kms_plane_multiple@2x-tiling-4:
- shard-rkl: NOTRUN -> [SKIP][302] ([i915#13958]) +1 other test skip
[302]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-7/igt@kms_plane_multiple@2x-tiling-4.html
* igt@kms_plane_multiple@tiling-y:
- shard-mtlp: NOTRUN -> [SKIP][303] ([i915#3555] / [i915#8806])
[303]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@kms_plane_multiple@tiling-y.html
- shard-dg2-9: NOTRUN -> [SKIP][304] ([i915#8806])
[304]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_plane_multiple@tiling-y.html
* igt@kms_plane_multiple@tiling-yf:
- shard-rkl: NOTRUN -> [SKIP][305] ([i915#3555]) +9 other tests skip
[305]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-5/igt@kms_plane_multiple@tiling-yf.html
* igt@kms_plane_scaling@2x-scaler-multi-pipe:
- shard-mtlp: NOTRUN -> [SKIP][306] ([i915#9809]) +2 other tests skip
[306]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-1/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
* igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation@pipe-c:
- shard-rkl: NOTRUN -> [SKIP][307] ([i915#12247]) +12 other tests skip
[307]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation@pipe-c.html
* igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation@pipe-d:
- shard-tglu-1: NOTRUN -> [SKIP][308] ([i915#12247]) +13 other tests skip
[308]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation@pipe-d.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25:
- shard-dg2: NOTRUN -> [SKIP][309] ([i915#12247] / [i915#6953] / [i915#9423])
[309]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-10/igt@kms_plane_scaling@planes-downscale-factor-0-25.html
- shard-tglu-1: NOTRUN -> [SKIP][310] ([i915#12247] / [i915#6953])
[310]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_plane_scaling@planes-downscale-factor-0-25.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d:
- shard-dg2: NOTRUN -> [SKIP][311] ([i915#12247]) +3 other tests skip
[311]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-10/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d.html
* igt@kms_pm_backlight@bad-brightness:
- shard-rkl: NOTRUN -> [SKIP][312] ([i915#5354]) +1 other test skip
[312]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@kms_pm_backlight@bad-brightness.html
* igt@kms_pm_dc@dc3co-vpb-simulation:
- shard-dg2-9: NOTRUN -> [SKIP][313] ([i915#9685])
[313]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_pm_dc@dc3co-vpb-simulation.html
- shard-rkl: NOTRUN -> [SKIP][314] ([i915#9685])
[314]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-4/igt@kms_pm_dc@dc3co-vpb-simulation.html
* igt@kms_pm_dc@dc6-dpms:
- shard-rkl: NOTRUN -> [FAIL][315] ([i915#9295])
[315]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-7/igt@kms_pm_dc@dc6-dpms.html
* igt@kms_pm_dc@dc9-dpms:
- shard-tglu-1: NOTRUN -> [SKIP][316] ([i915#4281])
[316]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_pm_dc@dc9-dpms.html
* igt@kms_pm_lpsp@screens-disabled:
- shard-tglu: NOTRUN -> [SKIP][317] ([i915#8430])
[317]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@kms_pm_lpsp@screens-disabled.html
* igt@kms_pm_rpm@dpms-mode-unset-lpsp:
- shard-dg2: [PASS][318] -> [SKIP][319] ([i915#9519])
[318]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-4/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
[319]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-1/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
* igt@kms_pm_rpm@modeset-non-lpsp:
- shard-rkl: NOTRUN -> [SKIP][320] ([i915#9519]) +1 other test skip
[320]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-4/igt@kms_pm_rpm@modeset-non-lpsp.html
* igt@kms_prime@basic-crc-hybrid:
- shard-dg2: NOTRUN -> [SKIP][321] ([i915#6524] / [i915#6805])
[321]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-10/igt@kms_prime@basic-crc-hybrid.html
- shard-tglu-1: NOTRUN -> [SKIP][322] ([i915#6524])
[322]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_prime@basic-crc-hybrid.html
* igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-fully-sf:
- shard-mtlp: NOTRUN -> [SKIP][323] ([i915#12316])
[323]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-1/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@fbc-pr-plane-move-sf-dmg-area:
- shard-tglu: NOTRUN -> [SKIP][324] ([i915#11520]) +3 other tests skip
[324]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@kms_psr2_sf@fbc-pr-plane-move-sf-dmg-area.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf:
- shard-dg2-9: NOTRUN -> [SKIP][325] ([i915#11520]) +2 other tests skip
[325]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf@pipe-b-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][326] ([i915#9808]) +2 other tests skip
[326]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf@pipe-b-edp-1.html
* igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf:
- shard-rkl: NOTRUN -> [SKIP][327] ([i915#11520]) +11 other tests skip
[327]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-1/igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf.html
* igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area:
- shard-dg2: NOTRUN -> [SKIP][328] ([i915#11520]) +6 other tests skip
[328]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-4/igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area.html
* igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb:
- shard-tglu-1: NOTRUN -> [SKIP][329] ([i915#11520]) +6 other tests skip
[329]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html
* igt@kms_psr2_su@frontbuffer-xrgb8888:
- shard-rkl: NOTRUN -> [SKIP][330] ([i915#9683]) +1 other test skip
[330]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-6/igt@kms_psr2_su@frontbuffer-xrgb8888.html
* igt@kms_psr2_su@page_flip-nv12:
- shard-mtlp: NOTRUN -> [SKIP][331] ([i915#4348]) +1 other test skip
[331]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@kms_psr2_su@page_flip-nv12.html
- shard-dg2-9: NOTRUN -> [SKIP][332] ([i915#9683])
[332]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_psr2_su@page_flip-nv12.html
* igt@kms_psr2_su@page_flip-xrgb8888:
- shard-tglu: NOTRUN -> [SKIP][333] ([i915#9683])
[333]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@kms_psr2_su@page_flip-xrgb8888.html
* igt@kms_psr@fbc-pr-primary-mmap-gtt:
- shard-dg2-9: NOTRUN -> [SKIP][334] ([i915#1072] / [i915#9732]) +9 other tests skip
[334]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_psr@fbc-pr-primary-mmap-gtt.html
* igt@kms_psr@fbc-pr-sprite-plane-onoff:
- shard-tglu-1: NOTRUN -> [SKIP][335] ([i915#9732]) +13 other tests skip
[335]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_psr@fbc-pr-sprite-plane-onoff.html
* igt@kms_psr@fbc-psr-primary-page-flip:
- shard-dg2: NOTRUN -> [SKIP][336] ([i915#1072] / [i915#9732]) +15 other tests skip
[336]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-4/igt@kms_psr@fbc-psr-primary-page-flip.html
* igt@kms_psr@fbc-psr-sprite-blt:
- shard-dg1: NOTRUN -> [SKIP][337] ([i915#1072] / [i915#9732]) +2 other tests skip
[337]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@kms_psr@fbc-psr-sprite-blt.html
* igt@kms_psr@fbc-psr2-dpms:
- shard-mtlp: NOTRUN -> [SKIP][338] ([i915#9688]) +6 other tests skip
[338]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-1/igt@kms_psr@fbc-psr2-dpms.html
* igt@kms_psr@pr-sprite-plane-move:
- shard-tglu: NOTRUN -> [SKIP][339] ([i915#9732]) +12 other tests skip
[339]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@kms_psr@pr-sprite-plane-move.html
* igt@kms_psr@psr2-primary-mmap-gtt@edp-1:
- shard-mtlp: NOTRUN -> [SKIP][340] ([i915#4077] / [i915#9688]) +3 other tests skip
[340]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-1/igt@kms_psr@psr2-primary-mmap-gtt@edp-1.html
* igt@kms_psr@psr2-sprite-mmap-cpu:
- shard-rkl: NOTRUN -> [SKIP][341] ([i915#1072] / [i915#9732]) +25 other tests skip
[341]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-7/igt@kms_psr@psr2-sprite-mmap-cpu.html
* igt@kms_rotation_crc@primary-rotation-90:
- shard-dg2: NOTRUN -> [SKIP][342] ([i915#12755])
[342]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-7/igt@kms_rotation_crc@primary-rotation-90.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
- shard-rkl: NOTRUN -> [SKIP][343] ([i915#5289]) +1 other test skip
[343]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-4/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
- shard-mtlp: NOTRUN -> [SKIP][344] ([i915#5289])
[344]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
* igt@kms_scaling_modes@scaling-mode-none:
- shard-dg2: NOTRUN -> [SKIP][345] ([i915#3555]) +2 other tests skip
[345]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-6/igt@kms_scaling_modes@scaling-mode-none.html
- shard-tglu-1: NOTRUN -> [SKIP][346] ([i915#3555]) +3 other tests skip
[346]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@kms_scaling_modes@scaling-mode-none.html
* igt@kms_selftest@drm_framebuffer:
- shard-rkl: NOTRUN -> [ABORT][347] ([i915#13179]) +1 other test abort
[347]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@kms_selftest@drm_framebuffer.html
* igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_free:
- shard-dg2: NOTRUN -> [ABORT][348] ([i915#13179]) +1 other test abort
[348]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-4/igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_free.html
* igt@kms_vblank@query-busy-hang@pipe-a-hdmi-a-1:
- shard-snb: [PASS][349] -> [INCOMPLETE][350] ([i915#12276]) +1 other test incomplete
[349]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-snb4/igt@kms_vblank@query-busy-hang@pipe-a-hdmi-a-1.html
[350]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-snb2/igt@kms_vblank@query-busy-hang@pipe-a-hdmi-a-1.html
* igt@kms_vrr@flip-basic:
- shard-mtlp: NOTRUN -> [SKIP][351] ([i915#3555] / [i915#8808])
[351]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@kms_vrr@flip-basic.html
- shard-dg2-9: NOTRUN -> [SKIP][352] ([i915#3555]) +2 other tests skip
[352]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_vrr@flip-basic.html
* igt@kms_vrr@flip-basic-fastset:
- shard-tglu: NOTRUN -> [SKIP][353] ([i915#9906])
[353]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@kms_vrr@flip-basic-fastset.html
* igt@kms_vrr@max-min:
- shard-dg2-9: NOTRUN -> [SKIP][354] ([i915#9906])
[354]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@kms_vrr@max-min.html
* igt@kms_vrr@negative-basic:
- shard-rkl: NOTRUN -> [SKIP][355] ([i915#3555] / [i915#9906])
[355]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-5/igt@kms_vrr@negative-basic.html
* igt@kms_vrr@seamless-rr-switch-drrs:
- shard-rkl: NOTRUN -> [SKIP][356] ([i915#9906])
[356]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-6/igt@kms_vrr@seamless-rr-switch-drrs.html
* igt@kms_writeback@writeback-check-output-xrgb2101010:
- shard-rkl: NOTRUN -> [SKIP][357] ([i915#2437] / [i915#9412])
[357]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-7/igt@kms_writeback@writeback-check-output-xrgb2101010.html
* igt@kms_writeback@writeback-invalid-parameters:
- shard-tglu: NOTRUN -> [SKIP][358] ([i915#2437])
[358]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@kms_writeback@writeback-invalid-parameters.html
* igt@perf@non-zero-reason:
- shard-dg2-9: NOTRUN -> [FAIL][359] ([i915#9100]) +1 other test fail
[359]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@perf@non-zero-reason.html
* igt@perf@unprivileged-single-ctx-counters:
- shard-rkl: NOTRUN -> [SKIP][360] ([i915#2433])
[360]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-4/igt@perf@unprivileged-single-ctx-counters.html
- shard-mtlp: NOTRUN -> [SKIP][361] +5 other tests skip
[361]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@perf@unprivileged-single-ctx-counters.html
* igt@perf_pmu@busy-accuracy-98@vcs0:
- shard-tglu: [PASS][362] -> [FAIL][363] ([i915#4349])
[362]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-tglu-3/igt@perf_pmu@busy-accuracy-98@vcs0.html
[363]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-10/igt@perf_pmu@busy-accuracy-98@vcs0.html
* igt@perf_pmu@rc6@other-idle-gt0:
- shard-dg2: NOTRUN -> [SKIP][364] ([i915#8516])
[364]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-10/igt@perf_pmu@rc6@other-idle-gt0.html
- shard-tglu-1: NOTRUN -> [SKIP][365] ([i915#8516])
[365]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-1/igt@perf_pmu@rc6@other-idle-gt0.html
* igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem:
- shard-dg2-9: NOTRUN -> [INCOMPLETE][366] ([i915#5493]) +1 other test incomplete
[366]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html
* igt@prime_vgem@basic-fence-flip:
- shard-dg2-9: NOTRUN -> [SKIP][367] ([i915#3708]) +1 other test skip
[367]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@prime_vgem@basic-fence-flip.html
* igt@prime_vgem@basic-write:
- shard-dg2: NOTRUN -> [SKIP][368] ([i915#3291] / [i915#3708])
[368]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-10/igt@prime_vgem@basic-write.html
* igt@prime_vgem@coherency-gtt:
- shard-rkl: NOTRUN -> [SKIP][369] ([i915#3708]) +1 other test skip
[369]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-1/igt@prime_vgem@coherency-gtt.html
* igt@prime_vgem@fence-write-hang:
- shard-tglu: NOTRUN -> [SKIP][370] +49 other tests skip
[370]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@prime_vgem@fence-write-hang.html
* igt@sriov_basic@bind-unbind-vf@vf-4:
- shard-tglu: NOTRUN -> [FAIL][371] ([i915#12910]) +18 other tests fail
[371]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-8/igt@sriov_basic@bind-unbind-vf@vf-4.html
* igt@sriov_basic@enable-vfs-autoprobe-on:
- shard-rkl: NOTRUN -> [SKIP][372] ([i915#9917])
[372]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-7/igt@sriov_basic@enable-vfs-autoprobe-on.html
* igt@tools_test@sysfs_l3_parity:
- shard-dg2-9: NOTRUN -> [SKIP][373] ([i915#4818])
[373]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-9/igt@tools_test@sysfs_l3_parity.html
#### Possible fixes ####
* igt@device_reset@unbind-reset-rebind:
- shard-dg2: [ABORT][374] ([i915#5507]) -> [PASS][375]
[374]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-5/igt@device_reset@unbind-reset-rebind.html
[375]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-4/igt@device_reset@unbind-reset-rebind.html
- shard-rkl: [ABORT][376] ([i915#5507]) -> [PASS][377]
[376]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-rkl-6/igt@device_reset@unbind-reset-rebind.html
[377]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@device_reset@unbind-reset-rebind.html
* igt@gem_caching@writes:
- shard-rkl: [DMESG-WARN][378] ([i915#12917] / [i915#12964]) -> [PASS][379]
[378]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-rkl-3/igt@gem_caching@writes.html
[379]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@gem_caching@writes.html
* igt@gem_eio@in-flight-immediate:
- shard-mtlp: [ABORT][380] ([i915#13193] / [i915#13723]) -> [PASS][381]
[380]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-mtlp-7/igt@gem_eio@in-flight-immediate.html
[381]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-1/igt@gem_eio@in-flight-immediate.html
* igt@gem_exec_schedule@preemptive-hang:
- shard-rkl: [DMESG-WARN][382] ([i915#12964]) -> [PASS][383] +10 other tests pass
[382]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-rkl-3/igt@gem_exec_schedule@preemptive-hang.html
[383]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@gem_exec_schedule@preemptive-hang.html
* igt@gem_exec_suspend@basic-s4-devices:
- shard-mtlp: [ABORT][384] ([i915#13193] / [i915#13723] / [i915#7975]) -> [PASS][385] +1 other test pass
[384]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-mtlp-7/igt@gem_exec_suspend@basic-s4-devices.html
[385]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@gem_exec_suspend@basic-s4-devices.html
* igt@gem_pxp@fail-invalid-protected-context:
- shard-rkl: [TIMEOUT][386] ([i915#12964]) -> [PASS][387]
[386]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-rkl-3/igt@gem_pxp@fail-invalid-protected-context.html
[387]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@gem_pxp@fail-invalid-protected-context.html
* igt@gem_pxp@reject-modify-context-protection-off-1:
- shard-rkl: [TIMEOUT][388] ([i915#12917] / [i915#12964]) -> [PASS][389]
[388]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-rkl-5/igt@gem_pxp@reject-modify-context-protection-off-1.html
[389]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@gem_pxp@reject-modify-context-protection-off-1.html
* igt@i915_pm_rc6_residency@rc6-idle@gt0-rcs0:
- shard-dg1: [FAIL][390] ([i915#3591]) -> [PASS][391]
[390]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-16/igt@i915_pm_rc6_residency@rc6-idle@gt0-rcs0.html
[391]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-17/igt@i915_pm_rc6_residency@rc6-idle@gt0-rcs0.html
* igt@i915_selftest@live@workarounds:
- shard-mtlp: [DMESG-FAIL][392] ([i915#12061]) -> [PASS][393] +1 other test pass
[392]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-mtlp-5/igt@i915_selftest@live@workarounds.html
[393]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-8/igt@i915_selftest@live@workarounds.html
* igt@i915_suspend@basic-s2idle-without-i915:
- shard-dg1: [DMESG-WARN][394] ([i915#4391] / [i915#4423]) -> [PASS][395]
[394]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-16/igt@i915_suspend@basic-s2idle-without-i915.html
[395]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-16/igt@i915_suspend@basic-s2idle-without-i915.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180:
- shard-mtlp: [FAIL][396] ([i915#5138]) -> [PASS][397]
[396]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-mtlp-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180.html
[397]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-5/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180.html
* igt@kms_color@deep-color:
- shard-dg2: [SKIP][398] ([i915#3555]) -> [PASS][399]
[398]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-5/igt@kms_color@deep-color.html
[399]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-11/igt@kms_color@deep-color.html
* igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-2:
- shard-rkl: [FAIL][400] ([i915#13566]) -> [PASS][401] +1 other test pass
[400]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-rkl-5/igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-2.html
[401]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-2.html
* igt@kms_flip@flip-vs-suspend-interruptible:
- shard-rkl: [INCOMPLETE][402] ([i915#6113]) -> [PASS][403]
[402]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-rkl-3/igt@kms_flip@flip-vs-suspend-interruptible.html
[403]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-6/igt@kms_flip@flip-vs-suspend-interruptible.html
* igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a2:
- shard-rkl: [INCOMPLETE][404] -> [PASS][405]
[404]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-rkl-3/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a2.html
[405]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-6/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a2.html
* igt@kms_flip@plain-flip-fb-recreate@a-edp1:
- shard-mtlp: [FAIL][406] ([i915#13734]) -> [PASS][407] +2 other tests pass
[406]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-mtlp-6/igt@kms_flip@plain-flip-fb-recreate@a-edp1.html
[407]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-3/igt@kms_flip@plain-flip-fb-recreate@a-edp1.html
* igt@kms_flip@wf_vblank-ts-check@a-vga1:
- shard-snb: [FAIL][408] ([i915#13734]) -> [PASS][409] +1 other test pass
[408]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-snb6/igt@kms_flip@wf_vblank-ts-check@a-vga1.html
[409]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-snb5/igt@kms_flip@wf_vblank-ts-check@a-vga1.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc:
- shard-snb: [SKIP][410] -> [PASS][411]
[410]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-snb5/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc.html
[411]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-snb6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_hdr@invalid-metadata-sizes:
- shard-dg2: [SKIP][412] ([i915#3555] / [i915#8228]) -> [PASS][413] +1 other test pass
[412]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-5/igt@kms_hdr@invalid-metadata-sizes.html
[413]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-11/igt@kms_hdr@invalid-metadata-sizes.html
* igt@kms_pm_rpm@i2c:
- shard-dg1: [DMESG-WARN][414] ([i915#4423]) -> [PASS][415]
[414]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-14/igt@kms_pm_rpm@i2c.html
[415]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@kms_pm_rpm@i2c.html
* igt@kms_pm_rpm@modeset-lpsp-stress-no-wait:
- shard-rkl: [SKIP][416] ([i915#9519]) -> [PASS][417]
[416]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-rkl-8/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html
[417]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-4/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html
* igt@kms_vrr@negative-basic:
- shard-dg2: [SKIP][418] ([i915#3555] / [i915#9906]) -> [PASS][419]
[418]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-1/igt@kms_vrr@negative-basic.html
[419]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-10/igt@kms_vrr@negative-basic.html
* igt@perf@blocking@0-rcs0:
- shard-tglu: [FAIL][420] ([i915#10538]) -> [PASS][421] +1 other test pass
[420]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-tglu-7/igt@perf@blocking@0-rcs0.html
[421]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-7/igt@perf@blocking@0-rcs0.html
* igt@perf_pmu@busy-accuracy-98@rcs0:
- shard-tglu: [FAIL][422] ([i915#4349]) -> [PASS][423]
[422]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-tglu-3/igt@perf_pmu@busy-accuracy-98@rcs0.html
[423]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-10/igt@perf_pmu@busy-accuracy-98@rcs0.html
- shard-rkl: [FAIL][424] ([i915#4349]) -> [PASS][425] +1 other test pass
[424]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-rkl-3/igt@perf_pmu@busy-accuracy-98@rcs0.html
[425]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-7/igt@perf_pmu@busy-accuracy-98@rcs0.html
* igt@perf_pmu@module-unload:
- shard-dg2: [INCOMPLETE][426] ([i915#13520]) -> [PASS][427]
[426]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-11/igt@perf_pmu@module-unload.html
[427]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-7/igt@perf_pmu@module-unload.html
- shard-dg1: [ABORT][428] -> [PASS][429]
[428]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-14/igt@perf_pmu@module-unload.html
[429]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@perf_pmu@module-unload.html
- shard-tglu: [INCOMPLETE][430] ([i915#13520]) -> [PASS][431]
[430]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-tglu-9/igt@perf_pmu@module-unload.html
[431]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-tglu-4/igt@perf_pmu@module-unload.html
#### Warnings ####
* igt@device_reset@unbind-reset-rebind:
- shard-dg1: [ABORT][432] ([i915#11814] / [i915#11815]) -> [INCOMPLETE][433] ([i915#11814])
[432]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-12/igt@device_reset@unbind-reset-rebind.html
[433]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-14/igt@device_reset@unbind-reset-rebind.html
* igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-rc-ccs-cc:
- shard-dg1: [SKIP][434] ([i915#4423] / [i915#6095]) -> [SKIP][435] ([i915#6095])
[434]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-18/igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-rc-ccs-cc.html
[435]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-rc-ccs-cc.html
* igt@kms_content_protection@atomic:
- shard-dg2: [FAIL][436] ([i915#7173]) -> [SKIP][437] ([i915#7118] / [i915#9424])
[436]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-10/igt@kms_content_protection@atomic.html
[437]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-5/igt@kms_content_protection@atomic.html
* igt@kms_content_protection@legacy:
- shard-dg2: [SKIP][438] ([i915#7118] / [i915#9424]) -> [FAIL][439] ([i915#7173])
[438]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-2/igt@kms_content_protection@legacy.html
[439]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-11/igt@kms_content_protection@legacy.html
* igt@kms_content_protection@mei-interface:
- shard-dg1: [SKIP][440] ([i915#9424]) -> [SKIP][441] ([i915#9433])
[440]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-19/igt@kms_content_protection@mei-interface.html
[441]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-12/igt@kms_content_protection@mei-interface.html
* igt@kms_content_protection@type1:
- shard-dg2: [SKIP][442] ([i915#7118] / [i915#7162] / [i915#9424]) -> [SKIP][443] ([i915#7118] / [i915#9424])
[442]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-11/igt@kms_content_protection@type1.html
[443]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-7/igt@kms_content_protection@type1.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling:
- shard-dg1: [SKIP][444] ([i915#2672] / [i915#3555]) -> [SKIP][445] ([i915#2672] / [i915#3555] / [i915#4423])
[444]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-16/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html
[445]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-16/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode:
- shard-dg1: [SKIP][446] ([i915#2587] / [i915#2672]) -> [SKIP][447] ([i915#2587] / [i915#2672] / [i915#4423])
[446]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-16/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html
[447]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-16/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-pwrite:
- shard-dg1: [SKIP][448] ([i915#4423]) -> [SKIP][449]
[448]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-13/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-pwrite.html
[449]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-18/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbcpsr-slowdraw:
- shard-dg1: [SKIP][450] ([i915#3458]) -> [SKIP][451] ([i915#3458] / [i915#4423])
[450]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-slowdraw.html
[451]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-slowdraw.html
* igt@kms_frontbuffer_tracking@fbcpsr-tiling-4:
- shard-dg2: [SKIP][452] ([i915#3458]) -> [SKIP][453] ([i915#10433] / [i915#3458]) +1 other test skip
[452]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-5/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html
[453]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move:
- shard-dg2: [SKIP][454] ([i915#10433] / [i915#3458]) -> [SKIP][455] ([i915#3458]) +4 other tests skip
[454]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move.html
[455]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg2-1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move.html
* igt@kms_hdr@brightness-with-hdr:
- shard-mtlp: [SKIP][456] ([i915#12713]) -> [SKIP][457] ([i915#1187] / [i915#12713])
[456]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-mtlp-6/igt@kms_hdr@brightness-with-hdr.html
[457]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-mtlp-1/igt@kms_hdr@brightness-with-hdr.html
* igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
- shard-rkl: [SKIP][458] ([i915#1839] / [i915#4816]) -> [SKIP][459] ([i915#4070] / [i915#4816])
[458]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-rkl-8/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
[459]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-1/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
* igt@kms_pm_backlight@fade-with-dpms:
- shard-dg1: [SKIP][460] ([i915#4423] / [i915#5354]) -> [SKIP][461] ([i915#5354])
[460]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-18/igt@kms_pm_backlight@fade-with-dpms.html
[461]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-13/igt@kms_pm_backlight@fade-with-dpms.html
* igt@kms_pm_dc@dc9-dpms:
- shard-rkl: [SKIP][462] ([i915#4281]) -> [SKIP][463] ([i915#3361])
[462]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-rkl-5/igt@kms_pm_dc@dc9-dpms.html
[463]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-8/igt@kms_pm_dc@dc9-dpms.html
* igt@kms_pm_lpsp@kms-lpsp:
- shard-rkl: [SKIP][464] ([i915#3828]) -> [SKIP][465] ([i915#9340])
[464]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-rkl-7/igt@kms_pm_lpsp@kms-lpsp.html
[465]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-3/igt@kms_pm_lpsp@kms-lpsp.html
* igt@kms_pm_rpm@dpms-mode-unset-lpsp:
- shard-rkl: [SKIP][466] ([i915#9519]) -> [SKIP][467] ([i915#12916])
[466]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-rkl-8/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
[467]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-rkl-4/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
* igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf:
- shard-dg1: [SKIP][468] ([i915#11520]) -> [SKIP][469] ([i915#11520] / [i915#4423])
[468]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-16/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf.html
[469]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-16/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf.html
* igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf:
- shard-dg1: [SKIP][470] ([i915#11520] / [i915#4423]) -> [SKIP][471] ([i915#11520])
[470]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-14/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf.html
[471]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-16/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf.html
* igt@kms_psr@fbc-psr2-sprite-render:
- shard-dg1: [SKIP][472] ([i915#1072] / [i915#4423] / [i915#9732]) -> [SKIP][473] ([i915#1072] / [i915#9732])
[472]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16397/shard-dg1-13/igt@kms_psr@fbc-psr2-sprite-render.html
[473]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/shard-dg1-18/igt@kms_psr@fbc-psr2-sprite-render.html
[i915#10055]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10055
[i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
[i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433
[i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
[i915#10538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10538
[i915#10656]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10656
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#10826]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10826
[i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
[i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
[i915#11527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11527
[i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
[i915#11814]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11814
[i915#11815]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11815
[i915#1187]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1187
[i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
[i915#12193]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12193
[i915#12247]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12247
[i915#12276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12276
[i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
[i915#12316]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12316
[i915#12339]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12339
[i915#12388]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12388
[i915#12392]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12392
[i915#12394]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12394
[i915#12454]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12454
[i915#12543]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12543
[i915#1257]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1257
[i915#12712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12712
[i915#12713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12713
[i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745
[i915#12755]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12755
[i915#12910]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12910
[i915#12916]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12916
[i915#12917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12917
[i915#12941]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12941
[i915#12964]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12964
[i915#12967]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12967
[i915#13008]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13008
[i915#13030]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13030
[i915#13046]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13046
[i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049
[i915#13179]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13179
[i915#13193]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13193
[i915#13398]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13398
[i915#13520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13520
[i915#13522]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13522
[i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566
[i915#13691]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13691
[i915#13707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13707
[i915#13723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13723
[i915#13734]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13734
[i915#13748]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13748
[i915#13749]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13749
[i915#13781]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13781
[i915#13784]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13784
[i915#13798]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13798
[i915#13958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13958
[i915#14033]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14033
[i915#14044]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14044
[i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
[i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839
[i915#2065]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2065
[i915#2346]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2346
[i915#2433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2433
[i915#2437]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
[i915#2575]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2575
[i915#2587]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2587
[i915#2658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2658
[i915#2672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2672
[i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280
[i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
[i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
[i915#3116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3116
[i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291
[i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299
[i915#3323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3323
[i915#3361]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3361
[i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458
[i915#3469]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3469
[i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539
[i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
[i915#3591]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3591
[i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
[i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638
[i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
[i915#3742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3742
[i915#3828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3828
[i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
[i915#4070]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4070
[i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
[i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
[i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
[i915#4281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4281
[i915#4348]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4348
[i915#4349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4349
[i915#4391]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4391
[i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
[i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525
[i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
[i915#4565]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4565
[i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#4771]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4771
[i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812
[i915#4816]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4816
[i915#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817
[i915#4818]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4818
[i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839
[i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852
[i915#4854]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4854
[i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860
[i915#4873]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4873
[i915#4880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4880
[i915#4881]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4881
[i915#4885]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4885
[i915#4958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4958
[i915#5138]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5138
[i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
[i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
[i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289
[i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
[i915#5493]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5493
[i915#5507]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5507
[i915#5723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5723
[i915#5784]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5784
[i915#5956]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5956
[i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
[i915#6113]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6113
[i915#6118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6118
[i915#6187]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6187
[i915#6188]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6188
[i915#6228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6228
[i915#6230]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6230
[i915#6334]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6334
[i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
[i915#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658
[i915#6805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6805
[i915#6880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6880
[i915#6944]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6944
[i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
[i915#7116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7116
[i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118
[i915#7162]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7162
[i915#7173]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7173
[i915#7276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7276
[i915#7582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7582
[i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697
[i915#7707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7707
[i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
[i915#7975]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7975
[i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
[i915#8346]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8346
[i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399
[i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411
[i915#8414]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8414
[i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428
[i915#8430]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8430
[i915#8516]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8516
[i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
[i915#8709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8709
[i915#8806]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8806
[i915#8808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8808
[i915#8810]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8810
[i915#8813]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8813
[i915#8814]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8814
[i915#9100]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9100
[i915#9295]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9295
[i915#9318]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9318
[i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
[i915#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340
[i915#9412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9412
[i915#9423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9423
[i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424
[i915#9433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9433
[i915#9519]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9519
[i915#9561]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9561
[i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683
[i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685
[i915#9688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9688
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
[i915#9808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9808
[i915#9809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9809
[i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
[i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917
[i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934
Build changes
-------------
* Linux: CI_DRM_16397 -> Patchwork_147544v1
CI-20190529: 20190529
CI_DRM_16397: 457049ad31ee5b64dd86230518144d366c32bc04 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8313: 8313
Patchwork_147544v1: 457049ad31ee5b64dd86230518144d366c32bc04 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v1/index.html
[-- Attachment #2: Type: text/html, Size: 157908 bytes --]
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 07/19] drm/gem: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
2025-04-10 16:32 ` [PATCH 07/19] drm/gem: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() Ville Syrjala
2025-04-10 19:39 ` Laurent Pinchart
@ 2025-04-10 22:58 ` kernel test robot
2025-04-11 19:31 ` [PATCH v2 " Ville Syrjala
2 siblings, 0 replies; 53+ messages in thread
From: kernel test robot @ 2025-04-10 22:58 UTC (permalink / raw)
To: Ville Syrjala, dri-devel
Cc: llvm, oe-kbuild-all, intel-gfx, intel-xe, Dave Airlie,
Gerd Hoffmann, Sandy Huang, Heiko Stübner, Andy Yan,
Oleksandr Andrushchenko, virtualization, spice-devel
Hi Ville,
kernel test robot noticed the following build warnings:
[auto build test WARNING on linus/master]
[also build test WARNING on v6.15-rc1 next-20250410]
[cannot apply to drm-exynos/exynos-drm-next tegra/for-next rmk-arm/drm-armada-devel rmk-arm/drm-armada-fixes]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Ville-Syrjala/drm-Pass-pixel_format-modifier-to-get_format_info/20250411-005845
base: linus/master
patch link: https://lore.kernel.org/r/20250410163218.15130-8-ville.syrjala%40linux.intel.com
patch subject: [PATCH 07/19] drm/gem: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
config: hexagon-randconfig-001-20250411 (https://download.01.org/0day-ci/archive/20250411/202504110656.rvb8s8fd-lkp@intel.com/config)
compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project f819f46284f2a79790038e1f6649172789734ae8)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250411/202504110656.rvb8s8fd-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202504110656.rvb8s8fd-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/gpu/drm/drm_gem_framebuffer_helper.c:158: warning: Function parameter or struct member 'info' not described in 'drm_gem_fb_init_with_funcs'
>> drivers/gpu/drm/drm_gem_framebuffer_helper.c:233: warning: Function parameter or struct member 'info' not described in 'drm_gem_fb_create_with_funcs'
drivers/gpu/drm/drm_gem_framebuffer_helper.c:282: warning: Function parameter or struct member 'info' not described in 'drm_gem_fb_create'
drivers/gpu/drm/drm_gem_framebuffer_helper.c:321: warning: Function parameter or struct member 'info' not described in 'drm_gem_fb_create_with_dirty'
vim +158 drivers/gpu/drm/drm_gem_framebuffer_helper.c
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 129
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 130 /**
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 131 * drm_gem_fb_init_with_funcs() - Helper function for implementing
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 132 * &drm_mode_config_funcs.fb_create
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 133 * callback in cases when the driver
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 134 * allocates a subclass of
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 135 * struct drm_framebuffer
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 136 * @dev: DRM device
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 137 * @fb: framebuffer object
2e187b2099034a Noralf Trønnes 2017-09-22 138 * @file: DRM file that holds the GEM handle(s) backing the framebuffer
2e187b2099034a Noralf Trønnes 2017-09-22 139 * @mode_cmd: Metadata from the userspace framebuffer creation request
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 140 * @funcs: vtable to be used for the new framebuffer object
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 141 *
dbd62e16fd53d3 Noralf Trønnes 2019-01-15 142 * This function can be used to set &drm_framebuffer_funcs for drivers that need
dbd62e16fd53d3 Noralf Trønnes 2019-01-15 143 * custom framebuffer callbacks. Use drm_gem_fb_create() if you don't need to
dbd62e16fd53d3 Noralf Trønnes 2019-01-15 144 * change &drm_framebuffer_funcs. The function does buffer size validation.
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 145 * The buffer size validation is for a general case, though, so users should
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 146 * pay attention to the checks being appropriate for them or, at least,
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 147 * non-conflicting.
2e187b2099034a Noralf Trønnes 2017-09-22 148 *
2e187b2099034a Noralf Trønnes 2017-09-22 149 * Returns:
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 150 * Zero or a negative error code.
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 151 */
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 152 int drm_gem_fb_init_with_funcs(struct drm_device *dev,
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 153 struct drm_framebuffer *fb,
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 154 struct drm_file *file,
18613f4711126b Ville Syrjälä 2025-04-10 155 const struct drm_format_info *info,
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 156 const struct drm_mode_fb_cmd2 *mode_cmd,
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 157 const struct drm_framebuffer_funcs *funcs)
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 @158 {
279cc2e9543eb3 Thomas Zimmermann 2021-07-30 159 struct drm_gem_object *objs[DRM_FORMAT_MAX_PLANES];
279cc2e9543eb3 Thomas Zimmermann 2021-07-30 160 unsigned int i;
279cc2e9543eb3 Thomas Zimmermann 2021-07-30 161 int ret;
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 162
c91acda3a380bc Maíra Canal 2023-04-12 163 if (drm_drv_uses_atomic_modeset(dev) &&
c91acda3a380bc Maíra Canal 2023-04-12 164 !drm_any_plane_has_format(dev, mode_cmd->pixel_format,
c91acda3a380bc Maíra Canal 2023-04-12 165 mode_cmd->modifier[0])) {
a8b0a7fd535fae Geert Uytterhoeven 2023-07-28 166 drm_dbg_kms(dev, "Unsupported pixel format %p4cc / modifier 0x%llx\n",
c91acda3a380bc Maíra Canal 2023-04-12 167 &mode_cmd->pixel_format, mode_cmd->modifier[0]);
c91acda3a380bc Maíra Canal 2023-04-12 168 return -EINVAL;
c91acda3a380bc Maíra Canal 2023-04-12 169 }
c91acda3a380bc Maíra Canal 2023-04-12 170
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 171 for (i = 0; i < info->num_planes; i++) {
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 172 unsigned int width = mode_cmd->width / (i ? info->hsub : 1);
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 173 unsigned int height = mode_cmd->height / (i ? info->vsub : 1);
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 174 unsigned int min_size;
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 175
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 176 objs[i] = drm_gem_object_lookup(file, mode_cmd->handles[i]);
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 177 if (!objs[i]) {
24f03be4aa7922 Jani Nikula 2019-12-10 178 drm_dbg_kms(dev, "Failed to lookup GEM object\n");
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 179 ret = -ENOENT;
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 180 goto err_gem_object_put;
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 181 }
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 182
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 183 min_size = (height - 1) * mode_cmd->pitches[i]
042bf753842ddb Alexandru Gheorghe 2018-11-01 184 + drm_format_info_min_pitch(info, i, width)
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 185 + mode_cmd->offsets[i];
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 186
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 187 if (objs[i]->size < min_size) {
f7f525030854b1 Simon Ser 2021-05-03 188 drm_dbg_kms(dev,
f7f525030854b1 Simon Ser 2021-05-03 189 "GEM object size (%zu) smaller than minimum size (%u) for plane %d\n",
f7f525030854b1 Simon Ser 2021-05-03 190 objs[i]->size, min_size, i);
be6ee102341bc4 Emil Velikov 2020-05-15 191 drm_gem_object_put(objs[i]);
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 192 ret = -EINVAL;
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 193 goto err_gem_object_put;
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 194 }
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 195 }
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 196
18613f4711126b Ville Syrjälä 2025-04-10 197 ret = drm_gem_fb_init(dev, fb, info, mode_cmd, objs, i, funcs);
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 198 if (ret)
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 199 goto err_gem_object_put;
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 200
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 201 return 0;
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 202
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 203 err_gem_object_put:
279cc2e9543eb3 Thomas Zimmermann 2021-07-30 204 while (i > 0) {
279cc2e9543eb3 Thomas Zimmermann 2021-07-30 205 --i;
be6ee102341bc4 Emil Velikov 2020-05-15 206 drm_gem_object_put(objs[i]);
279cc2e9543eb3 Thomas Zimmermann 2021-07-30 207 }
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 208 return ret;
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 209 }
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 210 EXPORT_SYMBOL_GPL(drm_gem_fb_init_with_funcs);
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 211
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 212 /**
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 213 * drm_gem_fb_create_with_funcs() - Helper function for the
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 214 * &drm_mode_config_funcs.fb_create
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 215 * callback
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 216 * @dev: DRM device
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 217 * @file: DRM file that holds the GEM handle(s) backing the framebuffer
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 218 * @mode_cmd: Metadata from the userspace framebuffer creation request
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 219 * @funcs: vtable to be used for the new framebuffer object
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 220 *
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 221 * This function can be used to set &drm_framebuffer_funcs for drivers that need
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 222 * custom framebuffer callbacks. Use drm_gem_fb_create() if you don't need to
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 223 * change &drm_framebuffer_funcs. The function does buffer size validation.
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 224 *
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 225 * Returns:
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 226 * Pointer to a &drm_framebuffer on success or an error pointer on failure.
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 227 */
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 228 struct drm_framebuffer *
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 229 drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
18613f4711126b Ville Syrjälä 2025-04-10 230 const struct drm_format_info *info,
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 231 const struct drm_mode_fb_cmd2 *mode_cmd,
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 232 const struct drm_framebuffer_funcs *funcs)
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 @233 {
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 234 struct drm_framebuffer *fb;
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 235 int ret;
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 236
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 237 fb = kzalloc(sizeof(*fb), GFP_KERNEL);
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 238 if (!fb)
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 239 return ERR_PTR(-ENOMEM);
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 240
18613f4711126b Ville Syrjälä 2025-04-10 241 ret = drm_gem_fb_init_with_funcs(dev, fb, file, info, mode_cmd, funcs);
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 242 if (ret) {
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 243 kfree(fb);
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 244 return ERR_PTR(ret);
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 245 }
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 246
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 247 return fb;
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11 248 }
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 249 EXPORT_SYMBOL_GPL(drm_gem_fb_create_with_funcs);
4c3dbb2c312c9f Noralf Trønnes 2017-08-13 250
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 04/19] drm: Pass the format info to .fb_create()
2025-04-10 16:32 ` [PATCH 04/19] drm: Pass the format info to .fb_create() Ville Syrjala
2025-04-10 19:37 ` Laurent Pinchart
2025-04-10 21:26 ` kernel test robot
@ 2025-04-11 6:36 ` Geert Uytterhoeven
2025-04-11 19:29 ` [PATCH v2 " Ville Syrjala
3 siblings, 0 replies; 53+ messages in thread
From: Geert Uytterhoeven @ 2025-04-11 6:36 UTC (permalink / raw)
To: Ville Syrjala
Cc: dri-devel, intel-gfx, intel-xe, Alex Deucher, Liviu Dudau,
Maxime Ripard, Russell King, Inki Dae, Seung-Woo Kim,
Kyungmin Park, Patrik Jakobsson, Chun-Kuang Hu, Philipp Zabel,
Rob Clark, Abhinav Kumar, Dmitry Baryshkov, Sean Paul,
Marijn Suijten, Marek Vasut, Stefan Agner, Lyude Paul,
Danilo Krummrich, Tomi Valkeinen, Dave Airlie, Gerd Hoffmann,
Laurent Pinchart, Kieran Bingham, Biju Das, Geert Uytterhoeven,
Sandy Huang, Heiko Stübner, Andy Yan, Thierry Reding,
Mikko Perttunen, Dave Stevenson, Maíra Canal,
Raspberry Pi Kernel Maintenance, Dmitry Osipenko, Gurchetan Singh,
Chia-I Wu, Zack Rusin, Broadcom internal kernel review list,
Oleksandr Andrushchenko, amd-gfx, linux-arm-msm, freedreno,
nouveau, virtualization
On Thu, 10 Apr 2025 at 18:33, Ville Syrjala
<ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Pass long the format information from the top to .fb_create()
s/long/along/
> so that we can avoid redundant (and somewhat expensive) lookups
> in the drivers.
[...]
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c | 3 ++-
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 01/19] drm: Pass pixel_format+modifier to .get_format_info()
2025-04-10 19:27 ` Laurent Pinchart
@ 2025-04-11 6:47 ` Ville Syrjälä
0 siblings, 0 replies; 53+ messages in thread
From: Ville Syrjälä @ 2025-04-11 6:47 UTC (permalink / raw)
To: Laurent Pinchart
Cc: dri-devel, intel-gfx, intel-xe, Harry Wentland, Leo Li,
Rodrigo Siqueira, Alex Deucher, amd-gfx
On Thu, Apr 10, 2025 at 10:27:45PM +0300, Laurent Pinchart wrote:
> Hi Ville,
>
> Thank you for the patch.
>
> On Thu, Apr 10, 2025 at 07:32:00PM +0300, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Decouple .get_format_info() from struct drm_mode_fb_cmd2 and just
> > pass the pixel format+modifier combo in by hand.
> >
> > We may want to use .get_format_info() outside of the normal
> > addfb paths where we won't have a struct drm_mode_fb_cmd2, and
> > creating a temporary one just for this seems silly.
> >
> > Cc: Harry Wentland <harry.wentland@amd.com>
> > Cc: Leo Li <sunpeng.li@amd.com>
> > Cc: Rodrigo Siqueira <siqueira@igalia.com>
> > Cc: Alex Deucher <alexander.deucher@amd.com>
> > Cc: amd-gfx@lists.freedesktop.org
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 4 ++--
> > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h | 2 +-
> > drivers/gpu/drm/drm_fourcc.c | 3 ++-
> > drivers/gpu/drm/i915/display/intel_fb.c | 9 +++++----
> > drivers/gpu/drm/i915/display/intel_fb.h | 2 +-
> > include/drm/drm_mode_config.h | 2 +-
> > 6 files changed, 12 insertions(+), 10 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> > index 3e0f45f1711c..69d715b6abd3 100644
> > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> > @@ -92,9 +92,9 @@ enum dm_micro_swizzle {
> > MICRO_SWIZZLE_R = 3
> > };
> >
> > -const struct drm_format_info *amdgpu_dm_plane_get_format_info(const struct drm_mode_fb_cmd2 *cmd)
> > +const struct drm_format_info *amdgpu_dm_plane_get_format_info(u32 pixel_format, u64 modifier)
> > {
> > - return amdgpu_lookup_format_info(cmd->pixel_format, cmd->modifier[0]);
> > + return amdgpu_lookup_format_info(pixel_format, modifier);
> > }
> >
> > void amdgpu_dm_plane_fill_blending_from_plane_state(const struct drm_plane_state *plane_state,
> > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
> > index 615d2ab2b803..ea2619b507db 100644
> > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
> > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
> > @@ -58,7 +58,7 @@ int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm,
> > unsigned long possible_crtcs,
> > const struct dc_plane_cap *plane_cap);
> >
> > -const struct drm_format_info *amdgpu_dm_plane_get_format_info(const struct drm_mode_fb_cmd2 *cmd);
> > +const struct drm_format_info *amdgpu_dm_plane_get_format_info(u32 pixel_format, u64 modifier);
> >
> > void amdgpu_dm_plane_fill_blending_from_plane_state(const struct drm_plane_state *plane_state,
> > bool *per_pixel_alpha, bool *pre_multiplied_alpha,
> > diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c
> > index 3a94ca211f9c..f79fff8209fd 100644
> > --- a/drivers/gpu/drm/drm_fourcc.c
> > +++ b/drivers/gpu/drm/drm_fourcc.c
> > @@ -395,7 +395,8 @@ drm_get_format_info(struct drm_device *dev,
> > const struct drm_format_info *info = NULL;
> >
> > if (dev->mode_config.funcs->get_format_info)
> > - info = dev->mode_config.funcs->get_format_info(mode_cmd);
> > + info = dev->mode_config.funcs->get_format_info(mode_cmd->pixel_format,
> > + mode_cmd->modifier[0]);
> >
> > if (!info)
> > info = drm_format_info(mode_cmd->pixel_format);
> > diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
> > index 2b0e0f220442..b83c42fe3233 100644
> > --- a/drivers/gpu/drm/i915/display/intel_fb.c
> > +++ b/drivers/gpu/drm/i915/display/intel_fb.c
> > @@ -421,21 +421,22 @@ unsigned int intel_fb_modifier_to_tiling(u64 fb_modifier)
> >
> > /**
> > * intel_fb_get_format_info: Get a modifier specific format information
> > - * @cmd: FB add command structure
> > + * @pixel_format: pixel format
> > + * @modifier: modifier
> > *
> > * Returns:
> > * Returns the format information for @cmd->pixel_format specific to @cmd->modifier[0],
> > * or %NULL if the modifier doesn't override the format.
>
> This needs to be updated too.
>
> > */
> > const struct drm_format_info *
> > -intel_fb_get_format_info(const struct drm_mode_fb_cmd2 *cmd)
> > +intel_fb_get_format_info(u32 pixel_format, u64 modifier)
> > {
> > - const struct intel_modifier_desc *md = lookup_modifier_or_null(cmd->modifier[0]);
> > + const struct intel_modifier_desc *md = lookup_modifier_or_null(modifier);
> >
> > if (!md || !md->formats)
> > return NULL;
> >
> > - return lookup_format_info(md->formats, md->format_count, cmd->pixel_format);
> > + return lookup_format_info(md->formats, md->format_count, pixel_format);
> > }
> >
> > static bool plane_caps_contain_any(u8 caps, u8 mask)
> > diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
> > index bdd76b372957..7d1267fbeee2 100644
> > --- a/drivers/gpu/drm/i915/display/intel_fb.h
> > +++ b/drivers/gpu/drm/i915/display/intel_fb.h
> > @@ -47,7 +47,7 @@ u64 *intel_fb_plane_get_modifiers(struct intel_display *display,
> > bool intel_fb_plane_supports_modifier(struct intel_plane *plane, u64 modifier);
> >
> > const struct drm_format_info *
> > -intel_fb_get_format_info(const struct drm_mode_fb_cmd2 *cmd);
> > +intel_fb_get_format_info(u32 pixel_format, u64 modifier);
> >
> > bool
> > intel_format_info_is_yuv_semiplanar(const struct drm_format_info *info,
> > diff --git a/include/drm/drm_mode_config.h b/include/drm/drm_mode_config.h
> > index 4b8f0370b79b..6fca0362bc31 100644
> > --- a/include/drm/drm_mode_config.h
> > +++ b/include/drm/drm_mode_config.h
> > @@ -95,7 +95,7 @@ struct drm_mode_config_funcs {
> > * The format information specific to the given fb metadata, or
> > * NULL if none is found.
>
> And here too. The full documentation block states
>
> /**
> * @get_format_info:
> *
> * Allows a driver to return custom format information for special
> * fb layouts (eg. ones with auxiliary compression control planes).
> *
> * RETURNS:
> *
> * The format information specific to the given fb metadata, or
> * NULL if none is found.
> */
>
> Updating the RETURNS section is easy, but the text before that is
> problematic. If the intent was to support formats with auxialiary
> compression control planes, this won't be possible anymore if we pass
> cmd->modifier[0] only. Is that an issue, or was this a foreseen use case
> that never materialized ? If we don't need to support this anymore then
> the code change is fine, and the documentation should be updated
> accordingly.
There is actually only one modifier despite having an array of
modifiers in the uapi struct. framebuffer_check() will enforce
modifier[N]==modifier[0] for all N.
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 03/19] drm: Look up the format info earlier
2025-04-10 19:33 ` Laurent Pinchart
@ 2025-04-11 7:01 ` Ville Syrjälä
0 siblings, 0 replies; 53+ messages in thread
From: Ville Syrjälä @ 2025-04-11 7:01 UTC (permalink / raw)
To: Laurent Pinchart; +Cc: dri-devel, intel-gfx, intel-xe
On Thu, Apr 10, 2025 at 10:33:02PM +0300, Laurent Pinchart wrote:
> Hi Ville,
>
> Thank you for the patch.
>
> On Thu, Apr 10, 2025 at 07:32:02PM +0300, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Looks up the format info in already drm_internal_framebuffer_create()
> > so that we can later pass it along to .fb_create(). Currently various
> > drivers are doing additional lookups in their .fb_create()
> > implementations, and these lookups are rather expensive now (given
> > how many different pixel formats we have).
>
> That's a separate issue, but would it be worth using a data structure
> that supports more efficient lookup ?
I think the obvious solution would be to to just sort the array
and use a binary search. Ideally we'd get the compiler to do that
for us at build time and then get rid of the unsorted array entirely,
but sadly we can't do that in C. The alternative of keeping the array
sorted by hand sounds very annoying (at least without having a way
to validate that it is correctly sorted at build time).
>
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
>
> > ---
> > drivers/gpu/drm/drm_framebuffer.c | 25 +++++++++++++------------
> > 1 file changed, 13 insertions(+), 12 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c
> > index 18a0267e374e..ae09ef6977b2 100644
> > --- a/drivers/gpu/drm/drm_framebuffer.c
> > +++ b/drivers/gpu/drm/drm_framebuffer.c
> > @@ -153,18 +153,11 @@ int drm_mode_addfb_ioctl(struct drm_device *dev,
> > }
> >
> > static int framebuffer_check(struct drm_device *dev,
> > + const struct drm_format_info *info,
> > const struct drm_mode_fb_cmd2 *r)
> > {
> > - const struct drm_format_info *info;
> > int i;
> >
> > - /* check if the format is supported at all */
> > - if (!__drm_format_info(r->pixel_format)) {
> > - drm_dbg_kms(dev, "bad framebuffer format %p4cc\n",
> > - &r->pixel_format);
> > - return -EINVAL;
> > - }
> > -
> > if (r->width == 0) {
> > drm_dbg_kms(dev, "bad framebuffer width %u\n", r->width);
> > return -EINVAL;
> > @@ -175,9 +168,6 @@ static int framebuffer_check(struct drm_device *dev,
> > return -EINVAL;
> > }
> >
> > - /* now let the driver pick its own format info */
> > - info = drm_get_format_info(dev, r->pixel_format, r->modifier[0]);
> > -
> > for (i = 0; i < info->num_planes; i++) {
> > unsigned int width = drm_format_info_plane_width(info, r->width, i);
> > unsigned int height = drm_format_info_plane_height(info, r->height, i);
> > @@ -272,6 +262,7 @@ drm_internal_framebuffer_create(struct drm_device *dev,
> > struct drm_file *file_priv)
> > {
> > struct drm_mode_config *config = &dev->mode_config;
> > + const struct drm_format_info *info;
> > struct drm_framebuffer *fb;
> > int ret;
> >
> > @@ -297,7 +288,17 @@ drm_internal_framebuffer_create(struct drm_device *dev,
> > return ERR_PTR(-EINVAL);
> > }
> >
> > - ret = framebuffer_check(dev, r);
> > + /* check if the format is supported at all */
> > + if (!__drm_format_info(r->pixel_format)) {
> > + drm_dbg_kms(dev, "bad framebuffer format %p4cc\n",
> > + &r->pixel_format);
> > + return ERR_PTR(-EINVAL);
> > + }
> > +
> > + /* now let the driver pick its own format info */
> > + info = drm_get_format_info(dev, r->pixel_format, r->modifier[0]);
> > +
> > + ret = framebuffer_check(dev, info, r);
> > if (ret)
> > return ERR_PTR(ret);
> >
>
> --
> Regards,
>
> Laurent Pinchart
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 03/19] drm: Look up the format info earlier
2025-04-10 16:32 ` [PATCH 03/19] drm: Look up the format info earlier Ville Syrjala
2025-04-10 19:33 ` Laurent Pinchart
@ 2025-04-11 7:18 ` Thomas Zimmermann
2025-04-11 19:27 ` [PATCH v2 " Ville Syrjala
2 siblings, 0 replies; 53+ messages in thread
From: Thomas Zimmermann @ 2025-04-11 7:18 UTC (permalink / raw)
To: Ville Syrjala, dri-devel; +Cc: intel-gfx, intel-xe
Hi
Am 10.04.25 um 18:32 schrieb Ville Syrjala:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Looks up the format info in already drm_internal_framebuffer_create()
> so that we can later pass it along to .fb_create(). Currently various
The first sentence seems off.
> drivers are doing additional lookups in their .fb_create()
> implementations, and these lookups are rather expensive now (given
> how many different pixel formats we have).
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/drm_framebuffer.c | 25 +++++++++++++------------
> 1 file changed, 13 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c
> index 18a0267e374e..ae09ef6977b2 100644
> --- a/drivers/gpu/drm/drm_framebuffer.c
> +++ b/drivers/gpu/drm/drm_framebuffer.c
> @@ -153,18 +153,11 @@ int drm_mode_addfb_ioctl(struct drm_device *dev,
> }
>
> static int framebuffer_check(struct drm_device *dev,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *r)
> {
> - const struct drm_format_info *info;
> int i;
>
> - /* check if the format is supported at all */
> - if (!__drm_format_info(r->pixel_format)) {
> - drm_dbg_kms(dev, "bad framebuffer format %p4cc\n",
> - &r->pixel_format);
> - return -EINVAL;
> - }
> -
> if (r->width == 0) {
> drm_dbg_kms(dev, "bad framebuffer width %u\n", r->width);
> return -EINVAL;
> @@ -175,9 +168,6 @@ static int framebuffer_check(struct drm_device *dev,
> return -EINVAL;
> }
>
> - /* now let the driver pick its own format info */
> - info = drm_get_format_info(dev, r->pixel_format, r->modifier[0]);
> -
> for (i = 0; i < info->num_planes; i++) {
> unsigned int width = drm_format_info_plane_width(info, r->width, i);
> unsigned int height = drm_format_info_plane_height(info, r->height, i);
> @@ -272,6 +262,7 @@ drm_internal_framebuffer_create(struct drm_device *dev,
> struct drm_file *file_priv)
> {
> struct drm_mode_config *config = &dev->mode_config;
> + const struct drm_format_info *info;
> struct drm_framebuffer *fb;
> int ret;
>
> @@ -297,7 +288,17 @@ drm_internal_framebuffer_create(struct drm_device *dev,
> return ERR_PTR(-EINVAL);
> }
>
> - ret = framebuffer_check(dev, r);
> + /* check if the format is supported at all */
> + if (!__drm_format_info(r->pixel_format)) {
> + drm_dbg_kms(dev, "bad framebuffer format %p4cc\n",
> + &r->pixel_format);
> + return ERR_PTR(-EINVAL);
> + }
> +
> + /* now let the driver pick its own format info */
> + info = drm_get_format_info(dev, r->pixel_format, r->modifier[0]);
> +
> + ret = framebuffer_check(dev, info, r);
> if (ret)
> return ERR_PTR(ret);
>
--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 02/19] drm: Pass pixel_format+modifier directly to drm_get_format_info()
2025-04-10 16:32 ` [PATCH 02/19] drm: Pass pixel_format+modifier directly to drm_get_format_info() Ville Syrjala
2025-04-10 19:31 ` Laurent Pinchart
2025-04-10 19:43 ` kernel test robot
@ 2025-04-11 7:23 ` Thomas Zimmermann
2025-04-11 19:27 ` [PATCH v2 " Ville Syrjala
3 siblings, 0 replies; 53+ messages in thread
From: Thomas Zimmermann @ 2025-04-11 7:23 UTC (permalink / raw)
To: Ville Syrjala, dri-devel
Cc: intel-gfx, intel-xe, Liviu Dudau, Russell King, Inki Dae,
Seung-Woo Kim, Kyungmin Park, Patrik Jakobsson, Chun-Kuang Hu,
Philipp Zabel, Rob Clark, Abhinav Kumar, Dmitry Baryshkov,
Sean Paul, Marijn Suijten, Marek Vasut, Stefan Agner, Lyude Paul,
Danilo Krummrich, Tomi Valkeinen, Alex Deucher, Sandy Huang,
Heiko Stübner, Andy Yan, Thierry Reding, Mikko Perttunen,
linux-arm-msm, freedreno, nouveau, amd-gfx, linux-tegra
Hi
Am 10.04.25 um 18:32 schrieb Ville Syrjala:
[...]
> include/drm/drm_fourcc.h | 2 +-
AFAICT you can also remove the forward declaration of struct
drm_mode_fb_cmd2 from this header.
Best regards
Thomas
> 17 files changed, 46 insertions(+), 24 deletions(-)
>
> diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
> index e083021e9e99..558e44a7e627 100644
> --- a/drivers/gpu/drm/arm/malidp_drv.c
> +++ b/drivers/gpu/drm/arm/malidp_drv.c
> @@ -325,7 +325,8 @@ malidp_verify_afbc_framebuffer_size(struct drm_device *dev,
> return false;
> }
>
> - info = drm_get_format_info(dev, mode_cmd);
> + info = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
>
> n_superblocks = (mode_cmd->width / afbc_superblock_width) *
> (mode_cmd->height / afbc_superblock_height);
> diff --git a/drivers/gpu/drm/armada/armada_fb.c b/drivers/gpu/drm/armada/armada_fb.c
> index cf2e88218dc0..85fc2cb50544 100644
> --- a/drivers/gpu/drm/armada/armada_fb.c
> +++ b/drivers/gpu/drm/armada/armada_fb.c
> @@ -86,7 +86,9 @@ struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev,
> struct drm_framebuffer *armada_fb_create(struct drm_device *dev,
> struct drm_file *dfile, const struct drm_mode_fb_cmd2 *mode)
> {
> - const struct drm_format_info *info = drm_get_format_info(dev, mode);
> + const struct drm_format_info *info = drm_get_format_info(dev,
> + mode->pixel_format,
> + mode->modifier[0]);
> struct armada_gem_object *obj;
> struct armada_framebuffer *dfb;
> int ret;
> diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c
> index f79fff8209fd..3c6998b74a4f 100644
> --- a/drivers/gpu/drm/drm_fourcc.c
> +++ b/drivers/gpu/drm/drm_fourcc.c
> @@ -390,16 +390,16 @@ EXPORT_SYMBOL(drm_format_info);
> */
> const struct drm_format_info *
> drm_get_format_info(struct drm_device *dev,
> - const struct drm_mode_fb_cmd2 *mode_cmd)
> + u32 pixel_format, u64 modifier)
> {
> const struct drm_format_info *info = NULL;
>
> if (dev->mode_config.funcs->get_format_info)
> - info = dev->mode_config.funcs->get_format_info(mode_cmd->pixel_format,
> - mode_cmd->modifier[0]);
> + info = dev->mode_config.funcs->get_format_info(pixel_format,
> + modifier);
>
> if (!info)
> - info = drm_format_info(mode_cmd->pixel_format);
> + info = drm_format_info(pixel_format);
>
> return info;
> }
> diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c
> index b781601946db..18a0267e374e 100644
> --- a/drivers/gpu/drm/drm_framebuffer.c
> +++ b/drivers/gpu/drm/drm_framebuffer.c
> @@ -176,7 +176,7 @@ static int framebuffer_check(struct drm_device *dev,
> }
>
> /* now let the driver pick its own format info */
> - info = drm_get_format_info(dev, r);
> + info = drm_get_format_info(dev, r->pixel_format, r->modifier[0]);
>
> for (i = 0; i < info->num_planes; i++) {
> unsigned int width = drm_format_info_plane_width(info, r->width, i);
> diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> index 6f72e7a0f427..8f1213ea0e16 100644
> --- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> +++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> @@ -159,7 +159,8 @@ int drm_gem_fb_init_with_funcs(struct drm_device *dev,
> unsigned int i;
> int ret;
>
> - info = drm_get_format_info(dev, mode_cmd);
> + info = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> if (!info) {
> drm_dbg_kms(dev, "Failed to get FB format info\n");
> return -EINVAL;
> @@ -501,7 +502,8 @@ static __u32 drm_gem_afbc_get_bpp(struct drm_device *dev,
> {
> const struct drm_format_info *info;
>
> - info = drm_get_format_info(dev, mode_cmd);
> + info = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
>
> switch (info->format) {
> case DRM_FORMAT_YUV420_8BIT:
> @@ -599,7 +601,8 @@ int drm_gem_fb_afbc_init(struct drm_device *dev,
> int ret;
>
> objs = afbc_fb->base.obj;
> - info = drm_get_format_info(dev, mode_cmd);
> + info = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> if (!info)
> return -EINVAL;
>
> diff --git a/drivers/gpu/drm/drm_modeset_helper.c b/drivers/gpu/drm/drm_modeset_helper.c
> index 5565464c1734..dff14af68832 100644
> --- a/drivers/gpu/drm/drm_modeset_helper.c
> +++ b/drivers/gpu/drm/drm_modeset_helper.c
> @@ -84,7 +84,8 @@ void drm_helper_mode_fill_fb_struct(struct drm_device *dev,
> int i;
>
> fb->dev = dev;
> - fb->format = drm_get_format_info(dev, mode_cmd);
> + fb->format = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> fb->width = mode_cmd->width;
> fb->height = mode_cmd->height;
> for (i = 0; i < 4; i++) {
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fb.c b/drivers/gpu/drm/exynos/exynos_drm_fb.c
> index fc1c5608db96..bcf7b534d1f7 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_fb.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_fb.c
> @@ -96,7 +96,9 @@ static struct drm_framebuffer *
> exynos_user_fb_create(struct drm_device *dev, struct drm_file *file_priv,
> const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> - const struct drm_format_info *info = drm_get_format_info(dev, mode_cmd);
> + const struct drm_format_info *info = drm_get_format_info(dev,
> + mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> struct exynos_drm_gem *exynos_gem[MAX_FB_BUFFER];
> struct drm_framebuffer *fb;
> int i;
> diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
> index 1a374702b696..c82e623a2071 100644
> --- a/drivers/gpu/drm/gma500/framebuffer.c
> +++ b/drivers/gpu/drm/gma500/framebuffer.c
> @@ -39,7 +39,8 @@ static int psb_framebuffer_init(struct drm_device *dev,
> * Reject unknown formats, YUV formats, and formats with more than
> * 4 bytes per pixel.
> */
> - info = drm_get_format_info(dev, mode_cmd);
> + info = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> if (!info || !info->depth || info->cpp[0] > 4)
> return -EINVAL;
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> index 74158b9d6503..64521577b05f 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> @@ -45,7 +45,9 @@ mtk_drm_mode_fb_create(struct drm_device *dev,
> struct drm_file *file,
> const struct drm_mode_fb_cmd2 *cmd)
> {
> - const struct drm_format_info *info = drm_get_format_info(dev, cmd);
> + const struct drm_format_info *info = drm_get_format_info(dev,
> + cmd->pixel_format,
> + cmd->modifier[0]);
>
> if (info->num_planes != 1)
> return ERR_PTR(-EINVAL);
> diff --git a/drivers/gpu/drm/msm/msm_fb.c b/drivers/gpu/drm/msm/msm_fb.c
> index 09268e416843..df2f85c44d55 100644
> --- a/drivers/gpu/drm/msm/msm_fb.c
> +++ b/drivers/gpu/drm/msm/msm_fb.c
> @@ -137,7 +137,8 @@ struct drm_framebuffer *msm_framebuffer_create(struct drm_device *dev,
> struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> const struct drm_format_info *info = drm_get_format_info(dev,
> - mode_cmd);
> + mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> struct drm_gem_object *bos[4] = {0};
> struct drm_framebuffer *fb;
> int ret, i, n = info->num_planes;
> @@ -168,7 +169,8 @@ static struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev,
> const struct drm_mode_fb_cmd2 *mode_cmd, struct drm_gem_object **bos)
> {
> const struct drm_format_info *info = drm_get_format_info(dev,
> - mode_cmd);
> + mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> struct msm_drm_private *priv = dev->dev_private;
> struct msm_kms *kms = priv->kms;
> struct msm_framebuffer *msm_fb = NULL;
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> index c183b1112bc4..09329af9b01e 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> @@ -95,7 +95,8 @@ mxsfb_fb_create(struct drm_device *dev, struct drm_file *file_priv,
> {
> const struct drm_format_info *info;
>
> - info = drm_get_format_info(dev, mode_cmd);
> + info = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> if (!info)
> return ERR_PTR(-EINVAL);
>
> diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
> index add006fc8d81..a54c3f132c5c 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_display.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_display.c
> @@ -295,7 +295,8 @@ nouveau_framebuffer_new(struct drm_device *dev,
> kind = nvbo->kind;
> }
>
> - info = drm_get_format_info(dev, mode_cmd);
> + info = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
>
> for (i = 0; i < info->num_planes; i++) {
> height = drm_format_info_plane_height(info,
> diff --git a/drivers/gpu/drm/omapdrm/omap_fb.c b/drivers/gpu/drm/omapdrm/omap_fb.c
> index 449d521c78fe..e18878068c57 100644
> --- a/drivers/gpu/drm/omapdrm/omap_fb.c
> +++ b/drivers/gpu/drm/omapdrm/omap_fb.c
> @@ -338,7 +338,8 @@ struct drm_framebuffer *omap_framebuffer_create(struct drm_device *dev,
> struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd)
> {
> const struct drm_format_info *info = drm_get_format_info(dev,
> - mode_cmd);
> + mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> unsigned int num_planes = info->num_planes;
> struct drm_gem_object *bos[4];
> struct drm_framebuffer *fb;
> @@ -378,7 +379,8 @@ struct drm_framebuffer *omap_framebuffer_init(struct drm_device *dev,
> dev, mode_cmd, mode_cmd->width, mode_cmd->height,
> (char *)&mode_cmd->pixel_format);
>
> - format = drm_get_format_info(dev, mode_cmd);
> + format = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
>
> for (i = 0; i < ARRAY_SIZE(formats); i++) {
> if (formats[i] == mode_cmd->pixel_format)
> diff --git a/drivers/gpu/drm/radeon/radeon_fbdev.c b/drivers/gpu/drm/radeon/radeon_fbdev.c
> index d4a58bd679db..e3a481bbee7b 100644
> --- a/drivers/gpu/drm/radeon/radeon_fbdev.c
> +++ b/drivers/gpu/drm/radeon/radeon_fbdev.c
> @@ -67,7 +67,8 @@ static int radeon_fbdev_create_pinned_object(struct drm_fb_helper *fb_helper,
> int height = mode_cmd->height;
> u32 cpp;
>
> - info = drm_get_format_info(rdev_to_drm(rdev), mode_cmd);
> + info = drm_get_format_info(rdev_to_drm(rdev), mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> cpp = info->cpp[0];
>
> /* need to align pitch with crtc limits */
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
> index dcc1f07632c3..bf25286c7665 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
> @@ -36,7 +36,8 @@ rockchip_fb_create(struct drm_device *dev, struct drm_file *file,
> const struct drm_format_info *info;
> int ret;
>
> - info = drm_get_format_info(dev, mode_cmd);
> + info = drm_get_format_info(dev, mode_cmd->pixel_format,
> + mode_cmd->modifier[0]);
> if (!info)
> return ERR_PTR(-ENOMEM);
>
> diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
> index 46170753699d..634c6346d947 100644
> --- a/drivers/gpu/drm/tegra/fb.c
> +++ b/drivers/gpu/drm/tegra/fb.c
> @@ -134,7 +134,9 @@ struct drm_framebuffer *tegra_fb_create(struct drm_device *drm,
> struct drm_file *file,
> const struct drm_mode_fb_cmd2 *cmd)
> {
> - const struct drm_format_info *info = drm_get_format_info(drm, cmd);
> + const struct drm_format_info *info = drm_get_format_info(drm,
> + cmd->pixel_format,
> + cmd->modifier[0]);
> struct tegra_bo *planes[4];
> struct drm_gem_object *gem;
> struct drm_framebuffer *fb;
> diff --git a/include/drm/drm_fourcc.h b/include/drm/drm_fourcc.h
> index c3f4405d6662..6fc08d884b80 100644
> --- a/include/drm/drm_fourcc.h
> +++ b/include/drm/drm_fourcc.h
> @@ -309,7 +309,7 @@ const struct drm_format_info *__drm_format_info(u32 format);
> const struct drm_format_info *drm_format_info(u32 format);
> const struct drm_format_info *
> drm_get_format_info(struct drm_device *dev,
> - const struct drm_mode_fb_cmd2 *mode_cmd);
> + u32 pixel_format, u64 modifier);
> uint32_t drm_mode_legacy_fb_format(uint32_t bpp, uint32_t depth);
> uint32_t drm_driver_legacy_fb_format(struct drm_device *dev,
> uint32_t bpp, uint32_t depth);
--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (22 preceding siblings ...)
2025-04-10 22:45 ` ✗ i915.CI.Full: failure " Patchwork
@ 2025-04-11 7:30 ` Thomas Zimmermann
2025-04-11 20:06 ` ✗ Fi.CI.CHECKPATCH: warning for drm: Eliminate redundant drm_format_info lookups (rev6) Patchwork
` (4 subsequent siblings)
28 siblings, 0 replies; 53+ messages in thread
From: Thomas Zimmermann @ 2025-04-11 7:30 UTC (permalink / raw)
To: Ville Syrjala, dri-devel; +Cc: intel-gfx, intel-xe
Hi,
a really nice cleanup. With the various comments fixed, you can add
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
to the series.
Best regards
Thomas
Am 10.04.25 um 18:31 schrieb Ville Syrjala:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> I noticed a bunch of redundant (and rather expensive) drm_format_info
> lookups in some traces recently. This series is an attempt to eliminate
> them.
>
> Ville Syrjälä (19):
> drm: Pass pixel_format+modifier to .get_format_info()
> drm: Pass pixel_format+modifier directly to drm_get_format_info()
> drm: Look up the format info earlier
> drm: Pass the format info to .fb_create()
> drm: Allow the caller to pass in the format info to
> drm_helper_mode_fill_fb_struct()
> drm/malidp: Pass along the format info from .fb_create()
> malidp_verify_afbc_framebuffer_size()
> drm/gem: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/gem/afbc: Eliminate redundant drm_get_format_info()
> drm/amdgpu: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/armada: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/exynos: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/gma500: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/i915: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/komeda: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/msm: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/tegra: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/virtio: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/vmwgfx: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm: Make passing of format info to drm_helper_mode_fill_fb_struct()
> mandatory
>
> drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 6 ++-
> drivers/gpu/drm/amd/amdgpu/amdgpu_display.h | 1 +
> .../amd/display/amdgpu_dm/amdgpu_dm_plane.c | 4 +-
> .../amd/display/amdgpu_dm/amdgpu_dm_plane.h | 2 +-
> .../arm/display/komeda/komeda_framebuffer.c | 3 +-
> .../arm/display/komeda/komeda_framebuffer.h | 1 +
> drivers/gpu/drm/arm/malidp_drv.c | 12 +++---
> drivers/gpu/drm/armada/armada_fb.c | 12 +++---
> drivers/gpu/drm/armada/armada_fb.h | 4 +-
> drivers/gpu/drm/armada/armada_fbdev.c | 5 ++-
> drivers/gpu/drm/drm_fourcc.c | 7 ++--
> drivers/gpu/drm/drm_framebuffer.c | 27 ++++++-------
> drivers/gpu/drm/drm_gem_framebuffer_helper.c | 38 ++++++++-----------
> drivers/gpu/drm/drm_modeset_helper.c | 4 +-
> drivers/gpu/drm/exynos/exynos_drm_fb.c | 7 ++--
> drivers/gpu/drm/exynos/exynos_drm_fb.h | 1 +
> drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 5 ++-
> drivers/gpu/drm/gma500/fbdev.c | 5 ++-
> drivers/gpu/drm/gma500/framebuffer.c | 14 ++++---
> drivers/gpu/drm/gma500/psb_drv.h | 1 +
> drivers/gpu/drm/i915/display/intel_fb.c | 18 +++++----
> drivers/gpu/drm/i915/display/intel_fb.h | 5 ++-
> drivers/gpu/drm/i915/display/intel_fbdev_fb.c | 6 ++-
> .../drm/i915/display/intel_plane_initial.c | 3 +-
> drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 5 ++-
> drivers/gpu/drm/mediatek/mtk_drm_drv.c | 5 +--
> drivers/gpu/drm/msm/msm_drv.h | 3 +-
> drivers/gpu/drm/msm/msm_fb.c | 18 +++++----
> drivers/gpu/drm/mxsfb/mxsfb_drv.c | 9 +----
> drivers/gpu/drm/nouveau/nouveau_display.c | 6 ++-
> drivers/gpu/drm/nouveau/nouveau_display.h | 1 +
> drivers/gpu/drm/omapdrm/omap_fb.c | 10 ++---
> drivers/gpu/drm/omapdrm/omap_fb.h | 3 +-
> drivers/gpu/drm/qxl/qxl_display.c | 3 +-
> drivers/gpu/drm/radeon/radeon_display.c | 3 +-
> drivers/gpu/drm/radeon/radeon_fbdev.c | 3 +-
> drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c | 3 +-
> drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c | 3 +-
> .../gpu/drm/renesas/shmobile/shmob_drm_kms.c | 3 +-
> drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 11 ++----
> drivers/gpu/drm/tegra/drm.h | 2 +
> drivers/gpu/drm/tegra/fb.c | 7 ++--
> drivers/gpu/drm/tegra/fbdev.c | 4 +-
> drivers/gpu/drm/tests/drm_framebuffer_test.c | 1 +
> drivers/gpu/drm/vc4/vc4_kms.c | 3 +-
> drivers/gpu/drm/virtio/virtgpu_display.c | 6 ++-
> drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 15 +++++---
> drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 1 +
> drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 6 ++-
> drivers/gpu/drm/xe/display/xe_plane_initial.c | 2 +-
> drivers/gpu/drm/xen/xen_drm_front_kms.c | 3 +-
> drivers/gpu/drm/xlnx/zynqmp_kms.c | 3 +-
> include/drm/drm_fourcc.h | 2 +-
> include/drm/drm_gem_framebuffer_helper.h | 6 +++
> include/drm/drm_mode_config.h | 3 +-
> include/drm/drm_modeset_helper.h | 2 +
> 56 files changed, 207 insertions(+), 139 deletions(-)
>
--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)
^ permalink raw reply [flat|nested] 53+ messages in thread
* [PATCH v2 01/19] drm: Pass pixel_format+modifier to .get_format_info()
2025-04-10 16:32 ` [PATCH 01/19] drm: Pass pixel_format+modifier to .get_format_info() Ville Syrjala
2025-04-10 19:27 ` Laurent Pinchart
@ 2025-04-11 19:19 ` Ville Syrjala
1 sibling, 0 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-11 19:19 UTC (permalink / raw)
To: dri-devel
Cc: intel-gfx, intel-xe, Harry Wentland, Leo Li, Rodrigo Siqueira,
Alex Deucher, amd-gfx, Laurent Pinchart, Thomas Zimmermann
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Decouple .get_format_info() from struct drm_mode_fb_cmd2 and just
pass the pixel format+modifier combo in by hand.
We may want to use .get_format_info() outside of the normal
addfb paths where we won't have a struct drm_mode_fb_cmd2, and
creating a temporary one just for this seems silly.
v2: Fix intel_fb_get_format_info() docs (Laurent)
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Leo Li <sunpeng.li@amd.com>
Cc: Rodrigo Siqueira <siqueira@igalia.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: amd-gfx@lists.freedesktop.org
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 4 ++--
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h | 2 +-
drivers/gpu/drm/drm_fourcc.c | 3 ++-
drivers/gpu/drm/i915/display/intel_fb.c | 11 ++++++-----
drivers/gpu/drm/i915/display/intel_fb.h | 2 +-
include/drm/drm_mode_config.h | 2 +-
6 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
index 3e0f45f1711c..69d715b6abd3 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
@@ -92,9 +92,9 @@ enum dm_micro_swizzle {
MICRO_SWIZZLE_R = 3
};
-const struct drm_format_info *amdgpu_dm_plane_get_format_info(const struct drm_mode_fb_cmd2 *cmd)
+const struct drm_format_info *amdgpu_dm_plane_get_format_info(u32 pixel_format, u64 modifier)
{
- return amdgpu_lookup_format_info(cmd->pixel_format, cmd->modifier[0]);
+ return amdgpu_lookup_format_info(pixel_format, modifier);
}
void amdgpu_dm_plane_fill_blending_from_plane_state(const struct drm_plane_state *plane_state,
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
index 615d2ab2b803..ea2619b507db 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
@@ -58,7 +58,7 @@ int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm,
unsigned long possible_crtcs,
const struct dc_plane_cap *plane_cap);
-const struct drm_format_info *amdgpu_dm_plane_get_format_info(const struct drm_mode_fb_cmd2 *cmd);
+const struct drm_format_info *amdgpu_dm_plane_get_format_info(u32 pixel_format, u64 modifier);
void amdgpu_dm_plane_fill_blending_from_plane_state(const struct drm_plane_state *plane_state,
bool *per_pixel_alpha, bool *pre_multiplied_alpha,
diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c
index 3a94ca211f9c..f79fff8209fd 100644
--- a/drivers/gpu/drm/drm_fourcc.c
+++ b/drivers/gpu/drm/drm_fourcc.c
@@ -395,7 +395,8 @@ drm_get_format_info(struct drm_device *dev,
const struct drm_format_info *info = NULL;
if (dev->mode_config.funcs->get_format_info)
- info = dev->mode_config.funcs->get_format_info(mode_cmd);
+ info = dev->mode_config.funcs->get_format_info(mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
if (!info)
info = drm_format_info(mode_cmd->pixel_format);
diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index 2b0e0f220442..34a29488311f 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -421,21 +421,22 @@ unsigned int intel_fb_modifier_to_tiling(u64 fb_modifier)
/**
* intel_fb_get_format_info: Get a modifier specific format information
- * @cmd: FB add command structure
+ * @pixel_format: pixel format
+ * @modifier: modifier
*
* Returns:
- * Returns the format information for @cmd->pixel_format specific to @cmd->modifier[0],
+ * Returns the format information for @pixel_format specific to @modifier,
* or %NULL if the modifier doesn't override the format.
*/
const struct drm_format_info *
-intel_fb_get_format_info(const struct drm_mode_fb_cmd2 *cmd)
+intel_fb_get_format_info(u32 pixel_format, u64 modifier)
{
- const struct intel_modifier_desc *md = lookup_modifier_or_null(cmd->modifier[0]);
+ const struct intel_modifier_desc *md = lookup_modifier_or_null(modifier);
if (!md || !md->formats)
return NULL;
- return lookup_format_info(md->formats, md->format_count, cmd->pixel_format);
+ return lookup_format_info(md->formats, md->format_count, pixel_format);
}
static bool plane_caps_contain_any(u8 caps, u8 mask)
diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
index bdd76b372957..7d1267fbeee2 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.h
+++ b/drivers/gpu/drm/i915/display/intel_fb.h
@@ -47,7 +47,7 @@ u64 *intel_fb_plane_get_modifiers(struct intel_display *display,
bool intel_fb_plane_supports_modifier(struct intel_plane *plane, u64 modifier);
const struct drm_format_info *
-intel_fb_get_format_info(const struct drm_mode_fb_cmd2 *cmd);
+intel_fb_get_format_info(u32 pixel_format, u64 modifier);
bool
intel_format_info_is_yuv_semiplanar(const struct drm_format_info *info,
diff --git a/include/drm/drm_mode_config.h b/include/drm/drm_mode_config.h
index 4b8f0370b79b..6fca0362bc31 100644
--- a/include/drm/drm_mode_config.h
+++ b/include/drm/drm_mode_config.h
@@ -95,7 +95,7 @@ struct drm_mode_config_funcs {
* The format information specific to the given fb metadata, or
* NULL if none is found.
*/
- const struct drm_format_info *(*get_format_info)(const struct drm_mode_fb_cmd2 *mode_cmd);
+ const struct drm_format_info *(*get_format_info)(u32 pixel_format, u64 modifier);
/**
* @mode_valid:
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH v2 02/19] drm: Pass pixel_format+modifier directly to drm_get_format_info()
2025-04-10 16:32 ` [PATCH 02/19] drm: Pass pixel_format+modifier directly to drm_get_format_info() Ville Syrjala
` (2 preceding siblings ...)
2025-04-11 7:23 ` Thomas Zimmermann
@ 2025-04-11 19:27 ` Ville Syrjala
3 siblings, 0 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-11 19:27 UTC (permalink / raw)
To: dri-devel
Cc: intel-gfx, intel-xe, Liviu Dudau, Russell King, Inki Dae,
Seung-Woo Kim, Kyungmin Park, Patrik Jakobsson, Chun-Kuang Hu,
Philipp Zabel, Rob Clark, Abhinav Kumar, Dmitry Baryshkov,
Sean Paul, Marijn Suijten, Marek Vasut, Stefan Agner, Lyude Paul,
Danilo Krummrich, Tomi Valkeinen, Alex Deucher, Sandy Huang,
Heiko Stübner, Andy Yan, Thierry Reding, Mikko Perttunen,
linux-arm-msm, freedreno, nouveau, amd-gfx, linux-tegra,
Thomas Zimmermann, Laurent Pinchart
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Decouple drm_get_format_info() from struct drm_mode_fb_cmd2 and just
pass the pixel format+modifier combo in by hand.
We may want to use drm_get_format_info() outside of the normal
addfb paths where we won't have a struct drm_mode_fb_cmd2, and
creating a temporary one just for this seems silly.
Done with cocci:
@@
identifier dev, mode_cmd;
@@
struct drm_format_info *
drm_get_format_info(struct drm_device *dev,
- const struct drm_mode_fb_cmd2 *mode_cmd
+ u32 pixel_format, u64 modifier
)
{
<...
(
- mode_cmd->pixel_format
+ pixel_format
|
- mode_cmd->modifier[0]
+ modifier
)
...>
}
@@
identifier dev, mode_cmd;
@@
struct drm_format_info *
drm_get_format_info(struct drm_device *dev,
- const struct drm_mode_fb_cmd2 *mode_cmd
+ u32 pixel_format, u64 modifier
);
@@
expression dev, mode_cmd;
@@
- drm_get_format_info(dev, mode_cmd)
+ drm_get_format_info(dev, mode_cmd->pixel_format, mode_cmd->modifier[0])
v2: Fix kernel docs (Laurent)
Drop drm_mode_fb_cmd2 forward declaration (Thomas)
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Cc: Chun-Kuang Hu <chunkuang.hu@kernel.org>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
Cc: Dmitry Baryshkov <lumag@kernel.org>
Cc: Sean Paul <sean@poorly.run>
Cc: Marijn Suijten <marijn.suijten@somainline.org>
Cc: Marek Vasut <marex@denx.de>
Cc: Stefan Agner <stefan@agner.ch>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Danilo Krummrich <dakr@kernel.org>
Cc: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Sandy Huang <hjc@rock-chips.com>
Cc: "Heiko Stübner" <heiko@sntech.de>
Cc: Andy Yan <andy.yan@rock-chips.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Mikko Perttunen <mperttunen@nvidia.com>
Cc: linux-arm-msm@vger.kernel.org
Cc: freedreno@lists.freedesktop.org
Cc: nouveau@lists.freedesktop.org
Cc: amd-gfx@lists.freedesktop.org
Cc: linux-tegra@vger.kernel.org
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/arm/malidp_drv.c | 3 ++-
drivers/gpu/drm/armada/armada_fb.c | 4 +++-
drivers/gpu/drm/drm_fourcc.c | 11 ++++++-----
drivers/gpu/drm/drm_framebuffer.c | 2 +-
drivers/gpu/drm/drm_gem_framebuffer_helper.c | 9 ++++++---
drivers/gpu/drm/drm_modeset_helper.c | 3 ++-
drivers/gpu/drm/exynos/exynos_drm_fb.c | 4 +++-
drivers/gpu/drm/gma500/framebuffer.c | 3 ++-
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 4 +++-
drivers/gpu/drm/msm/msm_fb.c | 6 ++++--
drivers/gpu/drm/mxsfb/mxsfb_drv.c | 3 ++-
drivers/gpu/drm/nouveau/nouveau_display.c | 3 ++-
drivers/gpu/drm/omapdrm/omap_fb.c | 6 ++++--
drivers/gpu/drm/radeon/radeon_fbdev.c | 3 ++-
drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 3 ++-
drivers/gpu/drm/tegra/fb.c | 4 +++-
include/drm/drm_fourcc.h | 3 +--
17 files changed, 48 insertions(+), 26 deletions(-)
diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
index e083021e9e99..558e44a7e627 100644
--- a/drivers/gpu/drm/arm/malidp_drv.c
+++ b/drivers/gpu/drm/arm/malidp_drv.c
@@ -325,7 +325,8 @@ malidp_verify_afbc_framebuffer_size(struct drm_device *dev,
return false;
}
- info = drm_get_format_info(dev, mode_cmd);
+ info = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
n_superblocks = (mode_cmd->width / afbc_superblock_width) *
(mode_cmd->height / afbc_superblock_height);
diff --git a/drivers/gpu/drm/armada/armada_fb.c b/drivers/gpu/drm/armada/armada_fb.c
index cf2e88218dc0..85fc2cb50544 100644
--- a/drivers/gpu/drm/armada/armada_fb.c
+++ b/drivers/gpu/drm/armada/armada_fb.c
@@ -86,7 +86,9 @@ struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev,
struct drm_framebuffer *armada_fb_create(struct drm_device *dev,
struct drm_file *dfile, const struct drm_mode_fb_cmd2 *mode)
{
- const struct drm_format_info *info = drm_get_format_info(dev, mode);
+ const struct drm_format_info *info = drm_get_format_info(dev,
+ mode->pixel_format,
+ mode->modifier[0]);
struct armada_gem_object *obj;
struct armada_framebuffer *dfb;
int ret;
diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c
index f79fff8209fd..720e4b40869d 100644
--- a/drivers/gpu/drm/drm_fourcc.c
+++ b/drivers/gpu/drm/drm_fourcc.c
@@ -382,7 +382,8 @@ EXPORT_SYMBOL(drm_format_info);
/**
* drm_get_format_info - query information for a given framebuffer configuration
* @dev: DRM device
- * @mode_cmd: metadata from the userspace fb creation request
+ * @pixel_format: pixel format (DRM_FORMAT_*)
+ * @modifier: modifier
*
* Returns:
* The instance of struct drm_format_info that describes the pixel format, or
@@ -390,16 +391,16 @@ EXPORT_SYMBOL(drm_format_info);
*/
const struct drm_format_info *
drm_get_format_info(struct drm_device *dev,
- const struct drm_mode_fb_cmd2 *mode_cmd)
+ u32 pixel_format, u64 modifier)
{
const struct drm_format_info *info = NULL;
if (dev->mode_config.funcs->get_format_info)
- info = dev->mode_config.funcs->get_format_info(mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
+ info = dev->mode_config.funcs->get_format_info(pixel_format,
+ modifier);
if (!info)
- info = drm_format_info(mode_cmd->pixel_format);
+ info = drm_format_info(pixel_format);
return info;
}
diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c
index b781601946db..18a0267e374e 100644
--- a/drivers/gpu/drm/drm_framebuffer.c
+++ b/drivers/gpu/drm/drm_framebuffer.c
@@ -176,7 +176,7 @@ static int framebuffer_check(struct drm_device *dev,
}
/* now let the driver pick its own format info */
- info = drm_get_format_info(dev, r);
+ info = drm_get_format_info(dev, r->pixel_format, r->modifier[0]);
for (i = 0; i < info->num_planes; i++) {
unsigned int width = drm_format_info_plane_width(info, r->width, i);
diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
index 6f72e7a0f427..8f1213ea0e16 100644
--- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
+++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
@@ -159,7 +159,8 @@ int drm_gem_fb_init_with_funcs(struct drm_device *dev,
unsigned int i;
int ret;
- info = drm_get_format_info(dev, mode_cmd);
+ info = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
if (!info) {
drm_dbg_kms(dev, "Failed to get FB format info\n");
return -EINVAL;
@@ -501,7 +502,8 @@ static __u32 drm_gem_afbc_get_bpp(struct drm_device *dev,
{
const struct drm_format_info *info;
- info = drm_get_format_info(dev, mode_cmd);
+ info = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
switch (info->format) {
case DRM_FORMAT_YUV420_8BIT:
@@ -599,7 +601,8 @@ int drm_gem_fb_afbc_init(struct drm_device *dev,
int ret;
objs = afbc_fb->base.obj;
- info = drm_get_format_info(dev, mode_cmd);
+ info = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
if (!info)
return -EINVAL;
diff --git a/drivers/gpu/drm/drm_modeset_helper.c b/drivers/gpu/drm/drm_modeset_helper.c
index 5565464c1734..dff14af68832 100644
--- a/drivers/gpu/drm/drm_modeset_helper.c
+++ b/drivers/gpu/drm/drm_modeset_helper.c
@@ -84,7 +84,8 @@ void drm_helper_mode_fill_fb_struct(struct drm_device *dev,
int i;
fb->dev = dev;
- fb->format = drm_get_format_info(dev, mode_cmd);
+ fb->format = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
fb->width = mode_cmd->width;
fb->height = mode_cmd->height;
for (i = 0; i < 4; i++) {
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fb.c b/drivers/gpu/drm/exynos/exynos_drm_fb.c
index fc1c5608db96..bcf7b534d1f7 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fb.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fb.c
@@ -96,7 +96,9 @@ static struct drm_framebuffer *
exynos_user_fb_create(struct drm_device *dev, struct drm_file *file_priv,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
- const struct drm_format_info *info = drm_get_format_info(dev, mode_cmd);
+ const struct drm_format_info *info = drm_get_format_info(dev,
+ mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
struct exynos_drm_gem *exynos_gem[MAX_FB_BUFFER];
struct drm_framebuffer *fb;
int i;
diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
index 1a374702b696..c82e623a2071 100644
--- a/drivers/gpu/drm/gma500/framebuffer.c
+++ b/drivers/gpu/drm/gma500/framebuffer.c
@@ -39,7 +39,8 @@ static int psb_framebuffer_init(struct drm_device *dev,
* Reject unknown formats, YUV formats, and formats with more than
* 4 bytes per pixel.
*/
- info = drm_get_format_info(dev, mode_cmd);
+ info = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
if (!info || !info->depth || info->cpp[0] > 4)
return -EINVAL;
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
index 74158b9d6503..64521577b05f 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -45,7 +45,9 @@ mtk_drm_mode_fb_create(struct drm_device *dev,
struct drm_file *file,
const struct drm_mode_fb_cmd2 *cmd)
{
- const struct drm_format_info *info = drm_get_format_info(dev, cmd);
+ const struct drm_format_info *info = drm_get_format_info(dev,
+ cmd->pixel_format,
+ cmd->modifier[0]);
if (info->num_planes != 1)
return ERR_PTR(-EINVAL);
diff --git a/drivers/gpu/drm/msm/msm_fb.c b/drivers/gpu/drm/msm/msm_fb.c
index 09268e416843..df2f85c44d55 100644
--- a/drivers/gpu/drm/msm/msm_fb.c
+++ b/drivers/gpu/drm/msm/msm_fb.c
@@ -137,7 +137,8 @@ struct drm_framebuffer *msm_framebuffer_create(struct drm_device *dev,
struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd)
{
const struct drm_format_info *info = drm_get_format_info(dev,
- mode_cmd);
+ mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
struct drm_gem_object *bos[4] = {0};
struct drm_framebuffer *fb;
int ret, i, n = info->num_planes;
@@ -168,7 +169,8 @@ static struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev,
const struct drm_mode_fb_cmd2 *mode_cmd, struct drm_gem_object **bos)
{
const struct drm_format_info *info = drm_get_format_info(dev,
- mode_cmd);
+ mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
struct msm_drm_private *priv = dev->dev_private;
struct msm_kms *kms = priv->kms;
struct msm_framebuffer *msm_fb = NULL;
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
index c183b1112bc4..09329af9b01e 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -95,7 +95,8 @@ mxsfb_fb_create(struct drm_device *dev, struct drm_file *file_priv,
{
const struct drm_format_info *info;
- info = drm_get_format_info(dev, mode_cmd);
+ info = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
if (!info)
return ERR_PTR(-EINVAL);
diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
index add006fc8d81..a54c3f132c5c 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
@@ -295,7 +295,8 @@ nouveau_framebuffer_new(struct drm_device *dev,
kind = nvbo->kind;
}
- info = drm_get_format_info(dev, mode_cmd);
+ info = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
for (i = 0; i < info->num_planes; i++) {
height = drm_format_info_plane_height(info,
diff --git a/drivers/gpu/drm/omapdrm/omap_fb.c b/drivers/gpu/drm/omapdrm/omap_fb.c
index 449d521c78fe..e18878068c57 100644
--- a/drivers/gpu/drm/omapdrm/omap_fb.c
+++ b/drivers/gpu/drm/omapdrm/omap_fb.c
@@ -338,7 +338,8 @@ struct drm_framebuffer *omap_framebuffer_create(struct drm_device *dev,
struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd)
{
const struct drm_format_info *info = drm_get_format_info(dev,
- mode_cmd);
+ mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
unsigned int num_planes = info->num_planes;
struct drm_gem_object *bos[4];
struct drm_framebuffer *fb;
@@ -378,7 +379,8 @@ struct drm_framebuffer *omap_framebuffer_init(struct drm_device *dev,
dev, mode_cmd, mode_cmd->width, mode_cmd->height,
(char *)&mode_cmd->pixel_format);
- format = drm_get_format_info(dev, mode_cmd);
+ format = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
for (i = 0; i < ARRAY_SIZE(formats); i++) {
if (formats[i] == mode_cmd->pixel_format)
diff --git a/drivers/gpu/drm/radeon/radeon_fbdev.c b/drivers/gpu/drm/radeon/radeon_fbdev.c
index d4a58bd679db..e3a481bbee7b 100644
--- a/drivers/gpu/drm/radeon/radeon_fbdev.c
+++ b/drivers/gpu/drm/radeon/radeon_fbdev.c
@@ -67,7 +67,8 @@ static int radeon_fbdev_create_pinned_object(struct drm_fb_helper *fb_helper,
int height = mode_cmd->height;
u32 cpp;
- info = drm_get_format_info(rdev_to_drm(rdev), mode_cmd);
+ info = drm_get_format_info(rdev_to_drm(rdev), mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
cpp = info->cpp[0];
/* need to align pitch with crtc limits */
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
index dcc1f07632c3..bf25286c7665 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
@@ -36,7 +36,8 @@ rockchip_fb_create(struct drm_device *dev, struct drm_file *file,
const struct drm_format_info *info;
int ret;
- info = drm_get_format_info(dev, mode_cmd);
+ info = drm_get_format_info(dev, mode_cmd->pixel_format,
+ mode_cmd->modifier[0]);
if (!info)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index 46170753699d..634c6346d947 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -134,7 +134,9 @@ struct drm_framebuffer *tegra_fb_create(struct drm_device *drm,
struct drm_file *file,
const struct drm_mode_fb_cmd2 *cmd)
{
- const struct drm_format_info *info = drm_get_format_info(drm, cmd);
+ const struct drm_format_info *info = drm_get_format_info(drm,
+ cmd->pixel_format,
+ cmd->modifier[0]);
struct tegra_bo *planes[4];
struct drm_gem_object *gem;
struct drm_framebuffer *fb;
diff --git a/include/drm/drm_fourcc.h b/include/drm/drm_fourcc.h
index c3f4405d6662..471784426857 100644
--- a/include/drm/drm_fourcc.h
+++ b/include/drm/drm_fourcc.h
@@ -54,7 +54,6 @@
#endif
struct drm_device;
-struct drm_mode_fb_cmd2;
/**
* struct drm_format_info - information about a DRM format
@@ -309,7 +308,7 @@ const struct drm_format_info *__drm_format_info(u32 format);
const struct drm_format_info *drm_format_info(u32 format);
const struct drm_format_info *
drm_get_format_info(struct drm_device *dev,
- const struct drm_mode_fb_cmd2 *mode_cmd);
+ u32 pixel_format, u64 modifier);
uint32_t drm_mode_legacy_fb_format(uint32_t bpp, uint32_t depth);
uint32_t drm_driver_legacy_fb_format(struct drm_device *dev,
uint32_t bpp, uint32_t depth);
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH v2 03/19] drm: Look up the format info earlier
2025-04-10 16:32 ` [PATCH 03/19] drm: Look up the format info earlier Ville Syrjala
2025-04-10 19:33 ` Laurent Pinchart
2025-04-11 7:18 ` Thomas Zimmermann
@ 2025-04-11 19:27 ` Ville Syrjala
2 siblings, 0 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-11 19:27 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx, intel-xe, Thomas Zimmermann, Laurent Pinchart
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Look up the format info already in drm_internal_framebuffer_create()
so that we can later pass it along to .fb_create(). Currently various
drivers are doing additional lookups in their .fb_create()
implementations, and these lookups are rather expensive now (given
how many different pixel formats we have).
v2: Fix commit msg (Thomas)
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/drm_framebuffer.c | 25 +++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c
index 18a0267e374e..ae09ef6977b2 100644
--- a/drivers/gpu/drm/drm_framebuffer.c
+++ b/drivers/gpu/drm/drm_framebuffer.c
@@ -153,18 +153,11 @@ int drm_mode_addfb_ioctl(struct drm_device *dev,
}
static int framebuffer_check(struct drm_device *dev,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *r)
{
- const struct drm_format_info *info;
int i;
- /* check if the format is supported at all */
- if (!__drm_format_info(r->pixel_format)) {
- drm_dbg_kms(dev, "bad framebuffer format %p4cc\n",
- &r->pixel_format);
- return -EINVAL;
- }
-
if (r->width == 0) {
drm_dbg_kms(dev, "bad framebuffer width %u\n", r->width);
return -EINVAL;
@@ -175,9 +168,6 @@ static int framebuffer_check(struct drm_device *dev,
return -EINVAL;
}
- /* now let the driver pick its own format info */
- info = drm_get_format_info(dev, r->pixel_format, r->modifier[0]);
-
for (i = 0; i < info->num_planes; i++) {
unsigned int width = drm_format_info_plane_width(info, r->width, i);
unsigned int height = drm_format_info_plane_height(info, r->height, i);
@@ -272,6 +262,7 @@ drm_internal_framebuffer_create(struct drm_device *dev,
struct drm_file *file_priv)
{
struct drm_mode_config *config = &dev->mode_config;
+ const struct drm_format_info *info;
struct drm_framebuffer *fb;
int ret;
@@ -297,7 +288,17 @@ drm_internal_framebuffer_create(struct drm_device *dev,
return ERR_PTR(-EINVAL);
}
- ret = framebuffer_check(dev, r);
+ /* check if the format is supported at all */
+ if (!__drm_format_info(r->pixel_format)) {
+ drm_dbg_kms(dev, "bad framebuffer format %p4cc\n",
+ &r->pixel_format);
+ return ERR_PTR(-EINVAL);
+ }
+
+ /* now let the driver pick its own format info */
+ info = drm_get_format_info(dev, r->pixel_format, r->modifier[0]);
+
+ ret = framebuffer_check(dev, info, r);
if (ret)
return ERR_PTR(ret);
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH v2 04/19] drm: Pass the format info to .fb_create()
2025-04-10 16:32 ` [PATCH 04/19] drm: Pass the format info to .fb_create() Ville Syrjala
` (2 preceding siblings ...)
2025-04-11 6:36 ` Geert Uytterhoeven
@ 2025-04-11 19:29 ` Ville Syrjala
3 siblings, 0 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-11 19:29 UTC (permalink / raw)
To: dri-devel
Cc: intel-gfx, intel-xe, Alex Deucher, Liviu Dudau, Maxime Ripard,
Russell King, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Patrik Jakobsson, Chun-Kuang Hu, Philipp Zabel, Rob Clark,
Abhinav Kumar, Dmitry Baryshkov, Sean Paul, Marijn Suijten,
Marek Vasut, Stefan Agner, Lyude Paul, Danilo Krummrich,
Tomi Valkeinen, Dave Airlie, Gerd Hoffmann, Kieran Bingham,
Biju Das, Sandy Huang, Heiko Stübner, Andy Yan,
Thierry Reding, Mikko Perttunen, Dave Stevenson, Maíra Canal,
Raspberry Pi Kernel Maintenance, Dmitry Osipenko, Gurchetan Singh,
Chia-I Wu, Zack Rusin, Broadcom internal kernel review list,
Oleksandr Andrushchenko, amd-gfx, linux-arm-msm, freedreno,
nouveau, virtualization, spice-devel, linux-renesas-soc,
linux-tegra, Laurent, "Pinchart <la"
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Pass along the format information from the top to .fb_create()
so that we can avoid redundant (and somewhat expensive) lookups
in the drivers.
Done with cocci (with some manual fixups):
@@
identifier func =~ ".*create.*";
identifier dev, file, mode_cmd;
@@
struct drm_framebuffer *func(
struct drm_device *dev,
struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
...
(
- const struct drm_format_info *info = drm_get_format_info(...);
|
- const struct drm_format_info *info;
...
- info = drm_get_format_info(...);
)
<...
- if (!info)
- return ...;
...>
}
@@
identifier func =~ ".*create.*";
identifier dev, file, mode_cmd;
@@
struct drm_framebuffer *func(
struct drm_device *dev,
struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
...
}
@find@
identifier fb_create_func =~ ".*create.*";
identifier dev, file, mode_cmd;
@@
struct drm_framebuffer *fb_create_func(
struct drm_device *dev,
struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd);
@@
identifier find.fb_create_func;
expression dev, file, mode_cmd;
@@
fb_create_func(dev, file
+ ,info
,mode_cmd)
@@
expression dev, file, mode_cmd;
@@
drm_gem_fb_create(dev, file
+ ,info
,mode_cmd)
@@
expression dev, file, mode_cmd;
@@
drm_gem_fb_create_with_dirty(dev, file
+ ,info
,mode_cmd)
@@
expression dev, file_priv, mode_cmd;
identifier info, fb;
@@
info = drm_get_format_info(...);
...
fb = dev->mode_config.funcs->fb_create(dev, file_priv
+ ,info
,mode_cmd);
@@
identifier dev, file_priv, mode_cmd;
@@
struct drm_mode_config_funcs {
...
struct drm_framebuffer *(*fb_create)(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd);
...
};
v2: Fix kernel docs (Laurent)
Fix commit msg (Geert)
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Cc: Chun-Kuang Hu <chunkuang.hu@kernel.org>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
Cc: Dmitry Baryshkov <lumag@kernel.org>
Cc: Sean Paul <sean@poorly.run>
Cc: Marijn Suijten <marijn.suijten@somainline.org>
Cc: Marek Vasut <marex@denx.de>
Cc: Stefan Agner <stefan@agner.ch>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Danilo Krummrich <dakr@kernel.org>
Cc: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Cc: Biju Das <biju.das.jz@bp.renesas.com>
Cc: Sandy Huang <hjc@rock-chips.com>
Cc: "Heiko Stübner" <heiko@sntech.de>
Cc: Andy Yan <andy.yan@rock-chips.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Mikko Perttunen <mperttunen@nvidia.com>
Cc: Dave Stevenson <dave.stevenson@raspberrypi.com>
Cc: "Maíra Canal" <mcanal@igalia.com>
Cc: Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
Cc: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Cc: Gurchetan Singh <gurchetansingh@chromium.org>
Cc: Chia-I Wu <olvaffe@gmail.com>
Cc: Zack Rusin <zack.rusin@broadcom.com>
Cc: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Cc: amd-gfx@lists.freedesktop.org
Cc: linux-arm-msm@vger.kernel.org
Cc: freedreno@lists.freedesktop.org
Cc: nouveau@lists.freedesktop.org
Cc: virtualization@lists.linux.dev
Cc: spice-devel@lists.freedesktop.org
Cc: linux-renesas-soc@vger.kernel.org
Cc: linux-tegra@vger.kernel.org
Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_display.h | 1 +
.../gpu/drm/arm/display/komeda/komeda_framebuffer.c | 1 +
.../gpu/drm/arm/display/komeda/komeda_framebuffer.h | 1 +
drivers/gpu/drm/arm/malidp_drv.c | 3 ++-
drivers/gpu/drm/armada/armada_fb.c | 6 ++----
drivers/gpu/drm/armada/armada_fb.h | 3 ++-
drivers/gpu/drm/drm_framebuffer.c | 2 +-
drivers/gpu/drm/drm_gem_framebuffer_helper.c | 4 ++++
drivers/gpu/drm/exynos/exynos_drm_fb.c | 4 +---
drivers/gpu/drm/gma500/framebuffer.c | 1 +
drivers/gpu/drm/i915/display/intel_fb.c | 1 +
drivers/gpu/drm/i915/display/intel_fb.h | 1 +
drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 5 +++--
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 7 ++-----
drivers/gpu/drm/msm/msm_drv.h | 3 ++-
drivers/gpu/drm/msm/msm_fb.c | 6 ++----
drivers/gpu/drm/mxsfb/mxsfb_drv.c | 10 ++--------
drivers/gpu/drm/nouveau/nouveau_display.c | 1 +
drivers/gpu/drm/nouveau/nouveau_display.h | 1 +
drivers/gpu/drm/omapdrm/omap_fb.c | 6 ++----
drivers/gpu/drm/omapdrm/omap_fb.h | 3 ++-
drivers/gpu/drm/qxl/qxl_display.c | 1 +
drivers/gpu/drm/radeon/radeon_display.c | 1 +
drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c | 3 ++-
drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c | 3 ++-
drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c | 3 ++-
drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 7 +------
drivers/gpu/drm/tegra/drm.h | 1 +
drivers/gpu/drm/tegra/fb.c | 4 +---
drivers/gpu/drm/tests/drm_framebuffer_test.c | 1 +
drivers/gpu/drm/vc4/vc4_kms.c | 3 ++-
drivers/gpu/drm/virtio/virtgpu_display.c | 1 +
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 1 +
drivers/gpu/drm/xen/xen_drm_front_kms.c | 1 +
drivers/gpu/drm/xlnx/zynqmp_kms.c | 3 ++-
include/drm/drm_gem_framebuffer_helper.h | 3 +++
include/drm/drm_mode_config.h | 1 +
38 files changed, 59 insertions(+), 49 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
index 35c778426a7c..10c57ded0e3e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
@@ -1297,6 +1297,7 @@ static int amdgpu_display_framebuffer_init(struct drm_device *dev,
struct drm_framebuffer *
amdgpu_display_user_framebuffer_create(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct amdgpu_framebuffer *amdgpu_fb;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.h
index dfa0d642ac16..930c171473b4 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.h
@@ -44,6 +44,7 @@ uint32_t amdgpu_display_supported_domains(struct amdgpu_device *adev,
struct drm_framebuffer *
amdgpu_display_user_framebuffer_create(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd);
const struct drm_format_info *
amdgpu_lookup_format_info(u32 format, uint64_t modifier);
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
index df5da5a44755..29b05482f713 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
@@ -157,6 +157,7 @@ komeda_fb_none_afbc_size_check(struct komeda_dev *mdev, struct komeda_fb *kfb,
struct drm_framebuffer *
komeda_fb_create(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct komeda_dev *mdev = dev->dev_private;
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.h b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.h
index c61ca98a3a63..02b2b8ae482a 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.h
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.h
@@ -37,6 +37,7 @@ struct komeda_fb {
struct drm_framebuffer *
komeda_fb_create(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd);
int komeda_fb_check_src_coords(const struct komeda_fb *kfb,
u32 src_x, u32 src_y, u32 src_w, u32 src_h);
diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
index 558e44a7e627..8b920566f2e8 100644
--- a/drivers/gpu/drm/arm/malidp_drv.c
+++ b/drivers/gpu/drm/arm/malidp_drv.c
@@ -377,6 +377,7 @@ malidp_verify_afbc_framebuffer(struct drm_device *dev, struct drm_file *file,
static struct drm_framebuffer *
malidp_fb_create(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
if (mode_cmd->modifier[0]) {
@@ -384,7 +385,7 @@ malidp_fb_create(struct drm_device *dev, struct drm_file *file,
return ERR_PTR(-EINVAL);
}
- return drm_gem_fb_create(dev, file, mode_cmd);
+ return drm_gem_fb_create(dev, file, info, mode_cmd);
}
static const struct drm_mode_config_funcs malidp_mode_config_funcs = {
diff --git a/drivers/gpu/drm/armada/armada_fb.c b/drivers/gpu/drm/armada/armada_fb.c
index 85fc2cb50544..597720e229c2 100644
--- a/drivers/gpu/drm/armada/armada_fb.c
+++ b/drivers/gpu/drm/armada/armada_fb.c
@@ -84,11 +84,9 @@ struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev,
}
struct drm_framebuffer *armada_fb_create(struct drm_device *dev,
- struct drm_file *dfile, const struct drm_mode_fb_cmd2 *mode)
+ struct drm_file *dfile, const struct drm_format_info *info,
+ const struct drm_mode_fb_cmd2 *mode)
{
- const struct drm_format_info *info = drm_get_format_info(dev,
- mode->pixel_format,
- mode->modifier[0]);
struct armada_gem_object *obj;
struct armada_framebuffer *dfb;
int ret;
diff --git a/drivers/gpu/drm/armada/armada_fb.h b/drivers/gpu/drm/armada/armada_fb.h
index c5bc53d7e0c4..41ba76dd80d6 100644
--- a/drivers/gpu/drm/armada/armada_fb.h
+++ b/drivers/gpu/drm/armada/armada_fb.h
@@ -19,5 +19,6 @@ struct armada_framebuffer {
struct armada_framebuffer *armada_framebuffer_create(struct drm_device *,
const struct drm_mode_fb_cmd2 *, struct armada_gem_object *);
struct drm_framebuffer *armada_fb_create(struct drm_device *dev,
- struct drm_file *dfile, const struct drm_mode_fb_cmd2 *mode);
+ struct drm_file *dfile, const struct drm_format_info *info,
+ const struct drm_mode_fb_cmd2 *mode);
#endif
diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c
index ae09ef6977b2..61a7213f2389 100644
--- a/drivers/gpu/drm/drm_framebuffer.c
+++ b/drivers/gpu/drm/drm_framebuffer.c
@@ -302,7 +302,7 @@ drm_internal_framebuffer_create(struct drm_device *dev,
if (ret)
return ERR_PTR(ret);
- fb = dev->mode_config.funcs->fb_create(dev, file_priv, r);
+ fb = dev->mode_config.funcs->fb_create(dev, file_priv, info, r);
if (IS_ERR(fb)) {
drm_dbg_kms(dev, "could not create framebuffer\n");
return fb;
diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
index 8f1213ea0e16..56ba0c967bd7 100644
--- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
+++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
@@ -263,6 +263,7 @@ static const struct drm_framebuffer_funcs drm_gem_fb_funcs = {
* &drm_mode_config_funcs.fb_create callback
* @dev: DRM device
* @file: DRM file that holds the GEM handle(s) backing the framebuffer
+ * @info: pixel format information
* @mode_cmd: Metadata from the userspace framebuffer creation request
*
* This function creates a new framebuffer object described by
@@ -282,6 +283,7 @@ static const struct drm_framebuffer_funcs drm_gem_fb_funcs = {
*/
struct drm_framebuffer *
drm_gem_fb_create(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
return drm_gem_fb_create_with_funcs(dev, file, mode_cmd,
@@ -300,6 +302,7 @@ static const struct drm_framebuffer_funcs drm_gem_fb_funcs_dirtyfb = {
* &drm_mode_config_funcs.fb_create callback
* @dev: DRM device
* @file: DRM file that holds the GEM handle(s) backing the framebuffer
+ * @info: pixel format information
* @mode_cmd: Metadata from the userspace framebuffer creation request
*
* This function creates a new framebuffer object described by
@@ -320,6 +323,7 @@ static const struct drm_framebuffer_funcs drm_gem_fb_funcs_dirtyfb = {
*/
struct drm_framebuffer *
drm_gem_fb_create_with_dirty(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
return drm_gem_fb_create_with_funcs(dev, file, mode_cmd,
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fb.c b/drivers/gpu/drm/exynos/exynos_drm_fb.c
index bcf7b534d1f7..9ae526825726 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fb.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fb.c
@@ -94,11 +94,9 @@ exynos_drm_framebuffer_init(struct drm_device *dev,
static struct drm_framebuffer *
exynos_user_fb_create(struct drm_device *dev, struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
- const struct drm_format_info *info = drm_get_format_info(dev,
- mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
struct exynos_drm_gem *exynos_gem[MAX_FB_BUFFER];
struct drm_framebuffer *fb;
int i;
diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
index c82e623a2071..a4a18ec2dd56 100644
--- a/drivers/gpu/drm/gma500/framebuffer.c
+++ b/drivers/gpu/drm/gma500/framebuffer.c
@@ -97,6 +97,7 @@ struct drm_framebuffer *psb_framebuffer_create(struct drm_device *dev,
*/
static struct drm_framebuffer *psb_user_framebuffer_create
(struct drm_device *dev, struct drm_file *filp,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *cmd)
{
struct drm_gem_object *obj;
diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index 34a29488311f..0dffe40adb22 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -2323,6 +2323,7 @@ int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
struct drm_framebuffer *
intel_user_framebuffer_create(struct drm_device *dev,
struct drm_file *filp,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *user_mode_cmd)
{
struct drm_framebuffer *fb;
diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
index 7d1267fbeee2..00181c4a67dc 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.h
+++ b/drivers/gpu/drm/i915/display/intel_fb.h
@@ -109,6 +109,7 @@ intel_framebuffer_create(struct drm_gem_object *obj,
struct drm_framebuffer *
intel_user_framebuffer_create(struct drm_device *dev,
struct drm_file *filp,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *user_mode_cmd);
bool intel_fb_modifier_uses_dpt(struct intel_display *display, u64 modifier);
diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
index f851e9ffdb28..9db1ceaed518 100644
--- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
+++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
@@ -901,14 +901,15 @@ static void ingenic_drm_disable_vblank(struct drm_crtc *crtc)
static struct drm_framebuffer *
ingenic_drm_gem_fb_create(struct drm_device *drm, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct ingenic_drm *priv = drm_device_get_priv(drm);
if (priv->soc_info->map_noncoherent)
- return drm_gem_fb_create_with_dirty(drm, file, mode_cmd);
+ return drm_gem_fb_create_with_dirty(drm, file, info, mode_cmd);
- return drm_gem_fb_create(drm, file, mode_cmd);
+ return drm_gem_fb_create(drm, file, info, mode_cmd);
}
static struct drm_gem_object *
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
index 64521577b05f..76fd10afe467 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -43,16 +43,13 @@ static const struct drm_mode_config_helper_funcs mtk_drm_mode_config_helpers = {
static struct drm_framebuffer *
mtk_drm_mode_fb_create(struct drm_device *dev,
struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *cmd)
{
- const struct drm_format_info *info = drm_get_format_info(dev,
- cmd->pixel_format,
- cmd->modifier[0]);
-
if (info->num_planes != 1)
return ERR_PTR(-EINVAL);
- return drm_gem_fb_create(dev, file, cmd);
+ return drm_gem_fb_create(dev, file, info, cmd);
}
static const struct drm_mode_config_funcs mtk_drm_mode_config_funcs = {
diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h
index a65077855201..ba82fa756e57 100644
--- a/drivers/gpu/drm/msm/msm_drv.h
+++ b/drivers/gpu/drm/msm/msm_drv.h
@@ -271,7 +271,8 @@ uint32_t msm_framebuffer_iova(struct drm_framebuffer *fb,
struct drm_gem_object *msm_framebuffer_bo(struct drm_framebuffer *fb, int plane);
const struct msm_format *msm_framebuffer_format(struct drm_framebuffer *fb);
struct drm_framebuffer *msm_framebuffer_create(struct drm_device *dev,
- struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd);
+ struct drm_file *file, const struct drm_format_info *info,
+ const struct drm_mode_fb_cmd2 *mode_cmd);
struct drm_framebuffer * msm_alloc_stolen_fb(struct drm_device *dev,
int w, int h, int p, uint32_t format);
diff --git a/drivers/gpu/drm/msm/msm_fb.c b/drivers/gpu/drm/msm/msm_fb.c
index df2f85c44d55..4aef51cef3d5 100644
--- a/drivers/gpu/drm/msm/msm_fb.c
+++ b/drivers/gpu/drm/msm/msm_fb.c
@@ -134,11 +134,9 @@ const struct msm_format *msm_framebuffer_format(struct drm_framebuffer *fb)
}
struct drm_framebuffer *msm_framebuffer_create(struct drm_device *dev,
- struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd)
+ struct drm_file *file, const struct drm_format_info *info,
+ const struct drm_mode_fb_cmd2 *mode_cmd)
{
- const struct drm_format_info *info = drm_get_format_info(dev,
- mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
struct drm_gem_object *bos[4] = {0};
struct drm_framebuffer *fb;
int ret, i, n = info->num_planes;
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
index 09329af9b01e..0b756da2fec2 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -91,21 +91,15 @@ void mxsfb_disable_axi_clk(struct mxsfb_drm_private *mxsfb)
static struct drm_framebuffer *
mxsfb_fb_create(struct drm_device *dev, struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
- const struct drm_format_info *info;
-
- info = drm_get_format_info(dev, mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
- if (!info)
- return ERR_PTR(-EINVAL);
-
if (mode_cmd->width * info->cpp[0] != mode_cmd->pitches[0]) {
dev_dbg(dev->dev, "Invalid pitch: fb width must match pitch\n");
return ERR_PTR(-EINVAL);
}
- return drm_gem_fb_create(dev, file_priv, mode_cmd);
+ return drm_gem_fb_create(dev, file_priv, info, mode_cmd);
}
static const struct drm_mode_config_funcs mxsfb_mode_config_funcs = {
diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
index a54c3f132c5c..3df388784bd3 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
@@ -333,6 +333,7 @@ nouveau_framebuffer_new(struct drm_device *dev,
struct drm_framebuffer *
nouveau_user_framebuffer_create(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct drm_framebuffer *fb;
diff --git a/drivers/gpu/drm/nouveau/nouveau_display.h b/drivers/gpu/drm/nouveau/nouveau_display.h
index 1f506f8b289c..e45f211501f6 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.h
+++ b/drivers/gpu/drm/nouveau/nouveau_display.h
@@ -67,5 +67,6 @@ nouveau_framebuffer_get_layout(struct drm_framebuffer *fb, uint32_t *tile_mode,
struct drm_framebuffer *
nouveau_user_framebuffer_create(struct drm_device *, struct drm_file *,
+ const struct drm_format_info *,
const struct drm_mode_fb_cmd2 *);
#endif
diff --git a/drivers/gpu/drm/omapdrm/omap_fb.c b/drivers/gpu/drm/omapdrm/omap_fb.c
index e18878068c57..36afcd1c1fd7 100644
--- a/drivers/gpu/drm/omapdrm/omap_fb.c
+++ b/drivers/gpu/drm/omapdrm/omap_fb.c
@@ -335,11 +335,9 @@ void omap_framebuffer_describe(struct drm_framebuffer *fb, struct seq_file *m)
#endif
struct drm_framebuffer *omap_framebuffer_create(struct drm_device *dev,
- struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd)
+ struct drm_file *file, const struct drm_format_info *info,
+ const struct drm_mode_fb_cmd2 *mode_cmd)
{
- const struct drm_format_info *info = drm_get_format_info(dev,
- mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
unsigned int num_planes = info->num_planes;
struct drm_gem_object *bos[4];
struct drm_framebuffer *fb;
diff --git a/drivers/gpu/drm/omapdrm/omap_fb.h b/drivers/gpu/drm/omapdrm/omap_fb.h
index b75f0b5ef1d8..0873f953cf1d 100644
--- a/drivers/gpu/drm/omapdrm/omap_fb.h
+++ b/drivers/gpu/drm/omapdrm/omap_fb.h
@@ -20,7 +20,8 @@ struct omap_overlay_info;
struct seq_file;
struct drm_framebuffer *omap_framebuffer_create(struct drm_device *dev,
- struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd);
+ struct drm_file *file, const struct drm_format_info *info,
+ const struct drm_mode_fb_cmd2 *mode_cmd);
struct drm_framebuffer *omap_framebuffer_init(struct drm_device *dev,
const struct drm_mode_fb_cmd2 *mode_cmd, struct drm_gem_object **bos);
int omap_framebuffer_pin(struct drm_framebuffer *fb);
diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
index 70aff64ced87..f7bc83f2d489 100644
--- a/drivers/gpu/drm/qxl/qxl_display.c
+++ b/drivers/gpu/drm/qxl/qxl_display.c
@@ -1176,6 +1176,7 @@ static int qdev_output_init(struct drm_device *dev, int num_output)
static struct drm_framebuffer *
qxl_user_framebuffer_create(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
return drm_gem_fb_create_with_funcs(dev, file_priv, mode_cmd,
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index 8f5f8abcb1b4..85b714ac9882 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -1314,6 +1314,7 @@ radeon_framebuffer_init(struct drm_device *dev,
static struct drm_framebuffer *
radeon_user_framebuffer_create(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct drm_gem_object *obj;
diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
index 70d8ad065bfa..af22a5d23637 100644
--- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
+++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
@@ -426,6 +426,7 @@ int rcar_du_dumb_create(struct drm_file *file, struct drm_device *dev,
static struct drm_framebuffer *
rcar_du_fb_create(struct drm_device *dev, struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct rcar_du_device *rcdu = to_rcar_du_device(dev);
@@ -490,7 +491,7 @@ rcar_du_fb_create(struct drm_device *dev, struct drm_file *file_priv,
}
}
- return drm_gem_fb_create(dev, file_priv, mode_cmd);
+ return drm_gem_fb_create(dev, file_priv, info, mode_cmd);
}
/* -----------------------------------------------------------------------------
diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
index 55a97691e9b2..87f171145a23 100644
--- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
+++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
@@ -191,6 +191,7 @@ int rzg2l_du_dumb_create(struct drm_file *file, struct drm_device *dev,
static struct drm_framebuffer *
rzg2l_du_fb_create(struct drm_device *dev, struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
const struct rzg2l_du_format_info *format;
@@ -214,7 +215,7 @@ rzg2l_du_fb_create(struct drm_device *dev, struct drm_file *file_priv,
return ERR_PTR(-EINVAL);
}
- return drm_gem_fb_create(dev, file_priv, mode_cmd);
+ return drm_gem_fb_create(dev, file_priv, info, mode_cmd);
}
/* -----------------------------------------------------------------------------
diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c
index 4202ab00fb0c..fd9460da1789 100644
--- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c
+++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c
@@ -117,6 +117,7 @@ const struct shmob_drm_format_info *shmob_drm_format_info(u32 fourcc)
static struct drm_framebuffer *
shmob_drm_fb_create(struct drm_device *dev, struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
const struct shmob_drm_format_info *format;
@@ -144,7 +145,7 @@ shmob_drm_fb_create(struct drm_device *dev, struct drm_file *file_priv,
}
}
- return drm_gem_fb_create(dev, file_priv, mode_cmd);
+ return drm_gem_fb_create(dev, file_priv, info, mode_cmd);
}
static const struct drm_mode_config_funcs shmob_drm_mode_config_funcs = {
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
index bf25286c7665..d46297bec5f8 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
@@ -30,17 +30,12 @@ static const struct drm_mode_config_helper_funcs rockchip_mode_config_helpers =
static struct drm_framebuffer *
rockchip_fb_create(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct drm_afbc_framebuffer *afbc_fb;
- const struct drm_format_info *info;
int ret;
- info = drm_get_format_info(dev, mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
- if (!info)
- return ERR_PTR(-ENOMEM);
-
afbc_fb = kzalloc(sizeof(*afbc_fb), GFP_KERNEL);
if (!afbc_fb)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/tegra/drm.h b/drivers/gpu/drm/tegra/drm.h
index 0b65e69f3a8a..77e520c43f72 100644
--- a/drivers/gpu/drm/tegra/drm.h
+++ b/drivers/gpu/drm/tegra/drm.h
@@ -190,6 +190,7 @@ struct drm_framebuffer *tegra_fb_alloc(struct drm_device *drm,
unsigned int num_planes);
struct drm_framebuffer *tegra_fb_create(struct drm_device *drm,
struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *cmd);
#ifdef CONFIG_DRM_FBDEV_EMULATION
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index 634c6346d947..24907573e758 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -132,11 +132,9 @@ struct drm_framebuffer *tegra_fb_alloc(struct drm_device *drm,
struct drm_framebuffer *tegra_fb_create(struct drm_device *drm,
struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *cmd)
{
- const struct drm_format_info *info = drm_get_format_info(drm,
- cmd->pixel_format,
- cmd->modifier[0]);
struct tegra_bo *planes[4];
struct drm_gem_object *gem;
struct drm_framebuffer *fb;
diff --git a/drivers/gpu/drm/tests/drm_framebuffer_test.c b/drivers/gpu/drm/tests/drm_framebuffer_test.c
index 6ea04cc8f324..9b8e01e8cd91 100644
--- a/drivers/gpu/drm/tests/drm_framebuffer_test.c
+++ b/drivers/gpu/drm/tests/drm_framebuffer_test.c
@@ -363,6 +363,7 @@ struct drm_framebuffer_test_priv {
static struct drm_framebuffer *fb_create_mock(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct drm_framebuffer_test_priv *priv = container_of(dev, typeof(*priv), dev);
diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c
index f5b167417428..8f983edb81ff 100644
--- a/drivers/gpu/drm/vc4/vc4_kms.c
+++ b/drivers/gpu/drm/vc4/vc4_kms.c
@@ -530,6 +530,7 @@ static int vc4_atomic_commit_setup(struct drm_atomic_state *state)
static struct drm_framebuffer *vc4_fb_create(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct vc4_dev *vc4 = to_vc4_dev(dev);
@@ -568,7 +569,7 @@ static struct drm_framebuffer *vc4_fb_create(struct drm_device *dev,
mode_cmd = &mode_cmd_local;
}
- return drm_gem_fb_create(dev, file_priv, mode_cmd);
+ return drm_gem_fb_create(dev, file_priv, info, mode_cmd);
}
/* Our CTM has some peculiar limitations: we can only enable it for one CRTC
diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
index 59a45e74a641..f9a98fbbabd1 100644
--- a/drivers/gpu/drm/virtio/virtgpu_display.c
+++ b/drivers/gpu/drm/virtio/virtgpu_display.c
@@ -293,6 +293,7 @@ static int vgdev_output_init(struct virtio_gpu_device *vgdev, int index)
static struct drm_framebuffer *
virtio_gpu_user_framebuffer_create(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct drm_gem_object *obj = NULL;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
index 05b1c54a070c..2d48a28cda9c 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
@@ -712,6 +712,7 @@ vmw_kms_new_framebuffer(struct vmw_private *dev_priv,
static struct drm_framebuffer *vmw_kms_fb_create(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct vmw_private *dev_priv = vmw_priv(dev);
diff --git a/drivers/gpu/drm/xen/xen_drm_front_kms.c b/drivers/gpu/drm/xen/xen_drm_front_kms.c
index dfa78a49a6d9..a360003bee47 100644
--- a/drivers/gpu/drm/xen/xen_drm_front_kms.c
+++ b/drivers/gpu/drm/xen/xen_drm_front_kms.c
@@ -54,6 +54,7 @@ static const struct drm_framebuffer_funcs fb_funcs = {
static struct drm_framebuffer *
fb_create(struct drm_device *dev, struct drm_file *filp,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct xen_drm_front_drm_info *drm_info = dev->dev_private;
diff --git a/drivers/gpu/drm/xlnx/zynqmp_kms.c b/drivers/gpu/drm/xlnx/zynqmp_kms.c
index b47463473472..2bee0a2275ed 100644
--- a/drivers/gpu/drm/xlnx/zynqmp_kms.c
+++ b/drivers/gpu/drm/xlnx/zynqmp_kms.c
@@ -373,6 +373,7 @@ static int zynqmp_dpsub_dumb_create(struct drm_file *file_priv,
static struct drm_framebuffer *
zynqmp_dpsub_fb_create(struct drm_device *drm, struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct zynqmp_dpsub *dpsub = to_zynqmp_dpsub(drm);
@@ -383,7 +384,7 @@ zynqmp_dpsub_fb_create(struct drm_device *drm, struct drm_file *file_priv,
for (i = 0; i < ARRAY_SIZE(cmd.pitches); ++i)
cmd.pitches[i] = ALIGN(cmd.pitches[i], dpsub->dma_align);
- return drm_gem_fb_create(drm, file_priv, &cmd);
+ return drm_gem_fb_create(drm, file_priv, info, &cmd);
}
static const struct drm_mode_config_funcs zynqmp_dpsub_mode_config_funcs = {
diff --git a/include/drm/drm_gem_framebuffer_helper.h b/include/drm/drm_gem_framebuffer_helper.h
index d302521f3dd4..4fdf9d3d1863 100644
--- a/include/drm/drm_gem_framebuffer_helper.h
+++ b/include/drm/drm_gem_framebuffer_helper.h
@@ -8,6 +8,7 @@ struct drm_afbc_framebuffer;
struct drm_device;
struct drm_fb_helper_surface_size;
struct drm_file;
+struct drm_format_info;
struct drm_framebuffer;
struct drm_framebuffer_funcs;
struct drm_gem_object;
@@ -32,9 +33,11 @@ drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
const struct drm_framebuffer_funcs *funcs);
struct drm_framebuffer *
drm_gem_fb_create(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd);
struct drm_framebuffer *
drm_gem_fb_create_with_dirty(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd);
int drm_gem_fb_vmap(struct drm_framebuffer *fb, struct iosys_map *map,
diff --git a/include/drm/drm_mode_config.h b/include/drm/drm_mode_config.h
index 6fca0362bc31..bea88446fcdc 100644
--- a/include/drm/drm_mode_config.h
+++ b/include/drm/drm_mode_config.h
@@ -82,6 +82,7 @@ struct drm_mode_config_funcs {
*/
struct drm_framebuffer *(*fb_create)(struct drm_device *dev,
struct drm_file *file_priv,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd);
/**
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH v2 07/19] drm/gem: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
2025-04-10 16:32 ` [PATCH 07/19] drm/gem: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() Ville Syrjala
2025-04-10 19:39 ` Laurent Pinchart
2025-04-10 22:58 ` kernel test robot
@ 2025-04-11 19:31 ` Ville Syrjala
2 siblings, 0 replies; 53+ messages in thread
From: Ville Syrjala @ 2025-04-11 19:31 UTC (permalink / raw)
To: dri-devel
Cc: intel-gfx, intel-xe, Dave Airlie, Gerd Hoffmann, Sandy Huang,
Heiko Stübner, Andy Yan, Oleksandr Andrushchenko,
virtualization, spice-devel, Laurent Pinchart, Thomas Zimmermann
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Pass along the format info from .fb_create() to aliminate the
redundant drm_get_format_info() calls from the gem fb code.
v2: Fix kernel docs (Laurent)
Cc: Dave Airlie <airlied@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Sandy Huang <hjc@rock-chips.com>
Cc: "Heiko Stübner" <heiko@sntech.de>
Cc: Andy Yan <andy.yan@rock-chips.com>
Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Cc: virtualization@lists.linux.dev
Cc: spice-devel@lists.freedesktop.org
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/drm_gem_framebuffer_helper.c | 23 +++++++++-----------
drivers/gpu/drm/qxl/qxl_display.c | 2 +-
drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 3 ++-
drivers/gpu/drm/xen/xen_drm_front_kms.c | 2 +-
include/drm/drm_gem_framebuffer_helper.h | 2 ++
5 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
index 2533655b3984..c526abcaa864 100644
--- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
+++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
@@ -67,6 +67,7 @@ EXPORT_SYMBOL_GPL(drm_gem_fb_get_obj);
static int
drm_gem_fb_init(struct drm_device *dev,
struct drm_framebuffer *fb,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
struct drm_gem_object **obj, unsigned int num_planes,
const struct drm_framebuffer_funcs *funcs)
@@ -74,7 +75,7 @@ drm_gem_fb_init(struct drm_device *dev,
unsigned int i;
int ret;
- drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, fb, info, mode_cmd);
for (i = 0; i < num_planes; i++)
fb->obj[i] = obj[i];
@@ -135,6 +136,7 @@ EXPORT_SYMBOL(drm_gem_fb_create_handle);
* @dev: DRM device
* @fb: framebuffer object
* @file: DRM file that holds the GEM handle(s) backing the framebuffer
+ * @info: pixel format information
* @mode_cmd: Metadata from the userspace framebuffer creation request
* @funcs: vtable to be used for the new framebuffer object
*
@@ -151,21 +153,14 @@ EXPORT_SYMBOL(drm_gem_fb_create_handle);
int drm_gem_fb_init_with_funcs(struct drm_device *dev,
struct drm_framebuffer *fb,
struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
const struct drm_framebuffer_funcs *funcs)
{
- const struct drm_format_info *info;
struct drm_gem_object *objs[DRM_FORMAT_MAX_PLANES];
unsigned int i;
int ret;
- info = drm_get_format_info(dev, mode_cmd->pixel_format,
- mode_cmd->modifier[0]);
- if (!info) {
- drm_dbg_kms(dev, "Failed to get FB format info\n");
- return -EINVAL;
- }
-
if (drm_drv_uses_atomic_modeset(dev) &&
!drm_any_plane_has_format(dev, mode_cmd->pixel_format,
mode_cmd->modifier[0])) {
@@ -200,7 +195,7 @@ int drm_gem_fb_init_with_funcs(struct drm_device *dev,
}
}
- ret = drm_gem_fb_init(dev, fb, mode_cmd, objs, i, funcs);
+ ret = drm_gem_fb_init(dev, fb, info, mode_cmd, objs, i, funcs);
if (ret)
goto err_gem_object_put;
@@ -221,6 +216,7 @@ EXPORT_SYMBOL_GPL(drm_gem_fb_init_with_funcs);
* callback
* @dev: DRM device
* @file: DRM file that holds the GEM handle(s) backing the framebuffer
+ * @info: pixel format information
* @mode_cmd: Metadata from the userspace framebuffer creation request
* @funcs: vtable to be used for the new framebuffer object
*
@@ -233,6 +229,7 @@ EXPORT_SYMBOL_GPL(drm_gem_fb_init_with_funcs);
*/
struct drm_framebuffer *
drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
const struct drm_framebuffer_funcs *funcs)
{
@@ -243,7 +240,7 @@ drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
if (!fb)
return ERR_PTR(-ENOMEM);
- ret = drm_gem_fb_init_with_funcs(dev, fb, file, mode_cmd, funcs);
+ ret = drm_gem_fb_init_with_funcs(dev, fb, file, info, mode_cmd, funcs);
if (ret) {
kfree(fb);
return ERR_PTR(ret);
@@ -286,7 +283,7 @@ drm_gem_fb_create(struct drm_device *dev, struct drm_file *file,
const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
- return drm_gem_fb_create_with_funcs(dev, file, mode_cmd,
+ return drm_gem_fb_create_with_funcs(dev, file, info, mode_cmd,
&drm_gem_fb_funcs);
}
EXPORT_SYMBOL_GPL(drm_gem_fb_create);
@@ -326,7 +323,7 @@ drm_gem_fb_create_with_dirty(struct drm_device *dev, struct drm_file *file,
const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
- return drm_gem_fb_create_with_funcs(dev, file, mode_cmd,
+ return drm_gem_fb_create_with_funcs(dev, file, info, mode_cmd,
&drm_gem_fb_funcs_dirtyfb);
}
EXPORT_SYMBOL_GPL(drm_gem_fb_create_with_dirty);
diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
index f7bc83f2d489..ae7e572b1b4a 100644
--- a/drivers/gpu/drm/qxl/qxl_display.c
+++ b/drivers/gpu/drm/qxl/qxl_display.c
@@ -1179,7 +1179,7 @@ qxl_user_framebuffer_create(struct drm_device *dev,
const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
- return drm_gem_fb_create_with_funcs(dev, file_priv, mode_cmd,
+ return drm_gem_fb_create_with_funcs(dev, file_priv, info, mode_cmd,
&qxl_fb_funcs);
}
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
index d46297bec5f8..1211ca0ffa00 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
@@ -40,7 +40,8 @@ rockchip_fb_create(struct drm_device *dev, struct drm_file *file,
if (!afbc_fb)
return ERR_PTR(-ENOMEM);
- ret = drm_gem_fb_init_with_funcs(dev, &afbc_fb->base, file, mode_cmd,
+ ret = drm_gem_fb_init_with_funcs(dev, &afbc_fb->base,
+ file, info, mode_cmd,
&rockchip_drm_fb_funcs);
if (ret) {
kfree(afbc_fb);
diff --git a/drivers/gpu/drm/xen/xen_drm_front_kms.c b/drivers/gpu/drm/xen/xen_drm_front_kms.c
index a360003bee47..806ec66ee7f7 100644
--- a/drivers/gpu/drm/xen/xen_drm_front_kms.c
+++ b/drivers/gpu/drm/xen/xen_drm_front_kms.c
@@ -62,7 +62,7 @@ fb_create(struct drm_device *dev, struct drm_file *filp,
struct drm_gem_object *gem_obj;
int ret;
- fb = drm_gem_fb_create_with_funcs(dev, filp, mode_cmd, &fb_funcs);
+ fb = drm_gem_fb_create_with_funcs(dev, filp, info, mode_cmd, &fb_funcs);
if (IS_ERR(fb))
return fb;
diff --git a/include/drm/drm_gem_framebuffer_helper.h b/include/drm/drm_gem_framebuffer_helper.h
index 4fdf9d3d1863..971d266ab1ba 100644
--- a/include/drm/drm_gem_framebuffer_helper.h
+++ b/include/drm/drm_gem_framebuffer_helper.h
@@ -25,10 +25,12 @@ int drm_gem_fb_create_handle(struct drm_framebuffer *fb, struct drm_file *file,
int drm_gem_fb_init_with_funcs(struct drm_device *dev,
struct drm_framebuffer *fb,
struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
const struct drm_framebuffer_funcs *funcs);
struct drm_framebuffer *
drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd,
const struct drm_framebuffer_funcs *funcs);
struct drm_framebuffer *
--
2.49.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* ✗ Fi.CI.CHECKPATCH: warning for drm: Eliminate redundant drm_format_info lookups (rev6)
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (23 preceding siblings ...)
2025-04-11 7:30 ` [PATCH 00/19] " Thomas Zimmermann
@ 2025-04-11 20:06 ` Patchwork
2025-04-11 20:06 ` ✗ Fi.CI.SPARSE: " Patchwork
` (3 subsequent siblings)
28 siblings, 0 replies; 53+ messages in thread
From: Patchwork @ 2025-04-11 20:06 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
== Series Details ==
Series: drm: Eliminate redundant drm_format_info lookups (rev6)
URL : https://patchwork.freedesktop.org/series/147544/
State : warning
== Summary ==
Error: dim checkpatch failed
abeda0fbd094 drm: Pass pixel_format+modifier to .get_format_info()
b71e5958c8d2 drm: Pass pixel_format+modifier directly to drm_get_format_info()
c4a291094b57 drm: Look up the format info earlier
7f86ef5d89ec drm: Pass the format info to .fb_create()
-:101: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#101:
const struct drm_mode_fb_cmd2 *mode_cmd);
total: 0 errors, 1 warnings, 0 checks, 426 lines checked
2662ad5cb8e1 drm: Allow the caller to pass in the format info to drm_helper_mode_fill_fb_struct()
-:26: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#26:
const struct drm_mode_fb_cmd2 *mode_cmd)
total: 0 errors, 1 warnings, 0 checks, 157 lines checked
e48df0addbfd drm/malidp: Pass along the format info from .fb_create() malidp_verify_afbc_framebuffer_size()
d7b60d3cff03 drm/gem: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
0f3d1c0320c5 drm/gem/afbc: Eliminate redundant drm_get_format_info()
bf093c225033 drm/amdgpu: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
566310f72316 drm/armada: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
11cc7e69b4e1 drm/exynos: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
eccd9d90807b drm/gma500: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
b92708860615 drm/i915: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
c077734d7347 drm/komeda: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
9704549efb46 drm/msm: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
dfc8f4108490 drm/tegra: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
d9765921e1b7 drm/virtio: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
1e6d5d69b8d1 drm/vmwgfx: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
f696f20218bf drm: Make passing of format info to drm_helper_mode_fill_fb_struct() mandatory
^ permalink raw reply [flat|nested] 53+ messages in thread
* ✗ Fi.CI.SPARSE: warning for drm: Eliminate redundant drm_format_info lookups (rev6)
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (24 preceding siblings ...)
2025-04-11 20:06 ` ✗ Fi.CI.CHECKPATCH: warning for drm: Eliminate redundant drm_format_info lookups (rev6) Patchwork
@ 2025-04-11 20:06 ` Patchwork
2025-04-12 3:53 ` ✓ i915.CI.BAT: success " Patchwork
` (2 subsequent siblings)
28 siblings, 0 replies; 53+ messages in thread
From: Patchwork @ 2025-04-11 20:06 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
== Series Details ==
Series: drm: Eliminate redundant drm_format_info lookups (rev6)
URL : https://patchwork.freedesktop.org/series/147544/
State : warning
== Summary ==
Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
^ permalink raw reply [flat|nested] 53+ messages in thread
* ✓ i915.CI.BAT: success for drm: Eliminate redundant drm_format_info lookups (rev6)
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (25 preceding siblings ...)
2025-04-11 20:06 ` ✗ Fi.CI.SPARSE: " Patchwork
@ 2025-04-12 3:53 ` Patchwork
2025-04-12 7:02 ` ✗ i915.CI.Full: failure " Patchwork
2025-07-15 18:21 ` [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Alex Deucher
28 siblings, 0 replies; 53+ messages in thread
From: Patchwork @ 2025-04-12 3:53 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 4082 bytes --]
== Series Details ==
Series: drm: Eliminate redundant drm_format_info lookups (rev6)
URL : https://patchwork.freedesktop.org/series/147544/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_16407 -> Patchwork_147544v6
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/index.html
Participating hosts (41 -> 40)
------------------------------
Missing (1): fi-snb-2520m
Known issues
------------
Here are the changes found in Patchwork_147544v6 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live@workarounds:
- bat-arlh-3: [PASS][1] -> [DMESG-FAIL][2] ([i915#12061]) +1 other test dmesg-fail
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/bat-arlh-3/igt@i915_selftest@live@workarounds.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/bat-arlh-3/igt@i915_selftest@live@workarounds.html
#### Possible fixes ####
* igt@dmabuf@all-tests:
- bat-apl-1: [INCOMPLETE][3] ([i915#12904]) -> [PASS][4] +1 other test pass
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/bat-apl-1/igt@dmabuf@all-tests.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/bat-apl-1/igt@dmabuf@all-tests.html
* igt@i915_selftest@live@sanitycheck:
- fi-kbl-7567u: [DMESG-WARN][5] ([i915#13735]) -> [PASS][6] +81 other tests pass
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/fi-kbl-7567u/igt@i915_selftest@live@sanitycheck.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/fi-kbl-7567u/igt@i915_selftest@live@sanitycheck.html
* igt@i915_selftest@live@workarounds:
- bat-mtlp-6: [DMESG-FAIL][7] ([i915#12061]) -> [PASS][8] +1 other test pass
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/bat-mtlp-6/igt@i915_selftest@live@workarounds.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/bat-mtlp-6/igt@i915_selftest@live@workarounds.html
- bat-mtlp-9: [DMESG-FAIL][9] ([i915#12061]) -> [PASS][10] +1 other test pass
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/bat-mtlp-9/igt@i915_selftest@live@workarounds.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/bat-mtlp-9/igt@i915_selftest@live@workarounds.html
* igt@kms_hdmi_inject@inject-audio:
- bat-arls-6: [FAIL][11] ([i915#13930]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/bat-arls-6/igt@kms_hdmi_inject@inject-audio.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/bat-arls-6/igt@kms_hdmi_inject@inject-audio.html
* igt@kms_pm_rpm@basic-pci-d3-state:
- fi-kbl-7567u: [DMESG-WARN][13] ([i915#13735] / [i915#180]) -> [PASS][14] +53 other tests pass
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/fi-kbl-7567u/igt@kms_pm_rpm@basic-pci-d3-state.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/fi-kbl-7567u/igt@kms_pm_rpm@basic-pci-d3-state.html
[i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
[i915#12904]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12904
[i915#13735]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13735
[i915#13930]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13930
[i915#180]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/180
Build changes
-------------
* Linux: CI_DRM_16407 -> Patchwork_147544v6
CI-20190529: 20190529
CI_DRM_16407: 95956f65403ec2f6784fca383eecbb54431ddebc @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8315: c85ef0df47b498f999b43dad6a5cc509228f953a @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_147544v6: 95956f65403ec2f6784fca383eecbb54431ddebc @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/index.html
[-- Attachment #2: Type: text/html, Size: 5039 bytes --]
^ permalink raw reply [flat|nested] 53+ messages in thread
* ✗ i915.CI.Full: failure for drm: Eliminate redundant drm_format_info lookups (rev6)
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (26 preceding siblings ...)
2025-04-12 3:53 ` ✓ i915.CI.BAT: success " Patchwork
@ 2025-04-12 7:02 ` Patchwork
2025-07-15 18:21 ` [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Alex Deucher
28 siblings, 0 replies; 53+ messages in thread
From: Patchwork @ 2025-04-12 7:02 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 104609 bytes --]
== Series Details ==
Series: drm: Eliminate redundant drm_format_info lookups (rev6)
URL : https://patchwork.freedesktop.org/series/147544/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_16407_full -> Patchwork_147544v6_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_147544v6_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_147544v6_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (11 -> 10)
------------------------------
Missing (1): pig-kbl-iris
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_147544v6_full:
### IGT changes ###
#### Possible regressions ####
* igt@kms_flip@plain-flip-fb-recreate@a-hdmi-a4:
- shard-dg1: NOTRUN -> [FAIL][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg1-16/igt@kms_flip@plain-flip-fb-recreate@a-hdmi-a4.html
Known issues
------------
Here are the changes found in Patchwork_147544v6_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@api_intel_bb@blit-reloc-keep-cache:
- shard-dg2: NOTRUN -> [SKIP][2] ([i915#8411])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@api_intel_bb@blit-reloc-keep-cache.html
* igt@device_reset@cold-reset-bound:
- shard-dg2-9: NOTRUN -> [SKIP][3] ([i915#11078])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@device_reset@cold-reset-bound.html
* igt@device_reset@unbind-cold-reset-rebind:
- shard-rkl: NOTRUN -> [SKIP][4] ([i915#11078])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@device_reset@unbind-cold-reset-rebind.html
- shard-dg2: NOTRUN -> [SKIP][5] ([i915#11078])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@device_reset@unbind-cold-reset-rebind.html
* igt@drm_fdinfo@busy@ccs0:
- shard-dg2: NOTRUN -> [SKIP][6] ([i915#8414]) +9 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@drm_fdinfo@busy@ccs0.html
* igt@gem_bad_reloc@negative-reloc-lut:
- shard-rkl: NOTRUN -> [SKIP][7] ([i915#3281]) +8 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@gem_bad_reloc@negative-reloc-lut.html
- shard-mtlp: NOTRUN -> [SKIP][8] ([i915#3281]) +2 other tests skip
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@gem_bad_reloc@negative-reloc-lut.html
* igt@gem_ccs@suspend-resume:
- shard-tglu: NOTRUN -> [SKIP][9] ([i915#9323])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@gem_ccs@suspend-resume.html
* igt@gem_ccs@suspend-resume@tile4-compressed-compfmt0-lmem0-lmem0:
- shard-dg2: NOTRUN -> [INCOMPLETE][10] ([i915#12392] / [i915#13356])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-3/igt@gem_ccs@suspend-resume@tile4-compressed-compfmt0-lmem0-lmem0.html
* igt@gem_close_race@multigpu-basic-process:
- shard-dg2: NOTRUN -> [SKIP][11] ([i915#7697])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@gem_close_race@multigpu-basic-process.html
- shard-rkl: NOTRUN -> [SKIP][12] ([i915#7697])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-7/igt@gem_close_race@multigpu-basic-process.html
* igt@gem_close_race@multigpu-basic-threads:
- shard-dg2-9: NOTRUN -> [SKIP][13] ([i915#7697])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@gem_close_race@multigpu-basic-threads.html
* igt@gem_compute@compute-square:
- shard-dg2-9: NOTRUN -> [FAIL][14] ([i915#13665])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@gem_compute@compute-square.html
* igt@gem_create@create-ext-cpu-access-big:
- shard-tglu: NOTRUN -> [SKIP][15] ([i915#6335])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@gem_create@create-ext-cpu-access-big.html
* igt@gem_ctx_persistence@heartbeat-hang:
- shard-dg2: NOTRUN -> [SKIP][16] ([i915#8555]) +1 other test skip
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@gem_ctx_persistence@heartbeat-hang.html
* igt@gem_ctx_sseu@mmap-args:
- shard-dg2-9: NOTRUN -> [SKIP][17] ([i915#280])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@gem_ctx_sseu@mmap-args.html
* igt@gem_eio@in-flight-immediate:
- shard-mtlp: NOTRUN -> [ABORT][18] ([i915#13193] / [i915#13723])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@gem_eio@in-flight-immediate.html
* igt@gem_exec_balancer@bonded-pair:
- shard-dg2-9: NOTRUN -> [SKIP][19] ([i915#4771])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@gem_exec_balancer@bonded-pair.html
* igt@gem_exec_balancer@hog:
- shard-dg2-9: NOTRUN -> [SKIP][20] ([i915#4812])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@gem_exec_balancer@hog.html
* igt@gem_exec_balancer@parallel-contexts:
- shard-rkl: NOTRUN -> [SKIP][21] ([i915#4525])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@gem_exec_balancer@parallel-contexts.html
* igt@gem_exec_big@single:
- shard-tglu: NOTRUN -> [ABORT][22] ([i915#11713])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@gem_exec_big@single.html
* igt@gem_exec_capture@capture-recoverable:
- shard-tglu-1: NOTRUN -> [SKIP][23] ([i915#6344])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@gem_exec_capture@capture-recoverable.html
* igt@gem_exec_capture@capture@vecs0-lmem0:
- shard-dg2: NOTRUN -> [FAIL][24] ([i915#11965]) +4 other tests fail
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@gem_exec_capture@capture@vecs0-lmem0.html
* igt@gem_exec_fence@submit:
- shard-mtlp: NOTRUN -> [SKIP][25] ([i915#4812])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@gem_exec_fence@submit.html
* igt@gem_exec_flush@basic-uc-ro-default:
- shard-dg2: NOTRUN -> [SKIP][26] ([i915#3539] / [i915#4852]) +3 other tests skip
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@gem_exec_flush@basic-uc-ro-default.html
* igt@gem_exec_flush@basic-wb-ro-before-default:
- shard-dg2-9: NOTRUN -> [SKIP][27] ([i915#3539] / [i915#4852]) +1 other test skip
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@gem_exec_flush@basic-wb-ro-before-default.html
* igt@gem_exec_params@secure-non-master:
- shard-dg2: NOTRUN -> [SKIP][28] +10 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@gem_exec_params@secure-non-master.html
* igt@gem_exec_reloc@basic-gtt-active:
- shard-dg2-9: NOTRUN -> [SKIP][29] ([i915#3281]) +3 other tests skip
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@gem_exec_reloc@basic-gtt-active.html
* igt@gem_exec_reloc@basic-wc-gtt-active:
- shard-dg2: NOTRUN -> [SKIP][30] ([i915#3281]) +7 other tests skip
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@gem_exec_reloc@basic-wc-gtt-active.html
* igt@gem_exec_schedule@reorder-wide:
- shard-dg2: NOTRUN -> [SKIP][31] ([i915#4537] / [i915#4812]) +1 other test skip
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@gem_exec_schedule@reorder-wide.html
* igt@gem_exec_schedule@semaphore-power:
- shard-mtlp: NOTRUN -> [SKIP][32] ([i915#4537] / [i915#4812])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-8/igt@gem_exec_schedule@semaphore-power.html
* igt@gem_exec_suspend@basic-s4-devices:
- shard-rkl: [PASS][33] -> [ABORT][34] ([i915#7975] / [i915#8213]) +1 other test abort
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-rkl-3/igt@gem_exec_suspend@basic-s4-devices.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-5/igt@gem_exec_suspend@basic-s4-devices.html
* igt@gem_fenced_exec_thrash@no-spare-fences:
- shard-dg2-9: NOTRUN -> [SKIP][35] ([i915#4860])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@gem_fenced_exec_thrash@no-spare-fences.html
* igt@gem_fenced_exec_thrash@no-spare-fences-interruptible:
- shard-dg2: NOTRUN -> [SKIP][36] ([i915#4860])
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@gem_fenced_exec_thrash@no-spare-fences-interruptible.html
* igt@gem_lmem_swapping@parallel-random-verify-ccs:
- shard-tglu: NOTRUN -> [SKIP][37] ([i915#4613])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@gem_lmem_swapping@parallel-random-verify-ccs.html
* igt@gem_lmem_swapping@random:
- shard-tglu-1: NOTRUN -> [SKIP][38] ([i915#4613])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@gem_lmem_swapping@random.html
* igt@gem_lmem_swapping@random-engines:
- shard-rkl: NOTRUN -> [SKIP][39] ([i915#4613]) +2 other tests skip
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@gem_lmem_swapping@random-engines.html
* igt@gem_lmem_swapping@verify-ccs:
- shard-glk: NOTRUN -> [SKIP][40] ([i915#4613])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-glk4/igt@gem_lmem_swapping@verify-ccs.html
* igt@gem_media_fill@media-fill:
- shard-dg2-9: NOTRUN -> [SKIP][41] ([i915#8289])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@gem_media_fill@media-fill.html
* igt@gem_mmap@basic-small-bo:
- shard-mtlp: NOTRUN -> [SKIP][42] ([i915#4083])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@gem_mmap@basic-small-bo.html
* igt@gem_mmap_gtt@basic-small-bo-tiledy:
- shard-dg2-9: NOTRUN -> [SKIP][43] ([i915#4077]) +9 other tests skip
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@gem_mmap_gtt@basic-small-bo-tiledy.html
* igt@gem_mmap_gtt@cpuset-big-copy:
- shard-dg2: NOTRUN -> [SKIP][44] ([i915#4077]) +8 other tests skip
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@gem_mmap_gtt@cpuset-big-copy.html
* igt@gem_mmap_offset@clear-via-pagefault:
- shard-rkl: NOTRUN -> [DMESG-WARN][45] ([i915#12964]) +14 other tests dmesg-warn
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@gem_mmap_offset@clear-via-pagefault.html
* igt@gem_mmap_wc@copy:
- shard-dg2: NOTRUN -> [SKIP][46] ([i915#4083]) +1 other test skip
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@gem_mmap_wc@copy.html
* igt@gem_mmap_wc@write-cpu-read-wc:
- shard-dg2-9: NOTRUN -> [SKIP][47] ([i915#4083]) +5 other tests skip
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@gem_mmap_wc@write-cpu-read-wc.html
* igt@gem_partial_pwrite_pread@writes-after-reads-display:
- shard-mtlp: NOTRUN -> [SKIP][48] ([i915#3282])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@gem_partial_pwrite_pread@writes-after-reads-display.html
* igt@gem_partial_pwrite_pread@writes-after-reads-uncached:
- shard-rkl: NOTRUN -> [SKIP][49] ([i915#3282]) +5 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-7/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html
* igt@gem_pread@snoop:
- shard-dg2-9: NOTRUN -> [SKIP][50] ([i915#3282])
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@gem_pread@snoop.html
* igt@gem_pxp@create-regular-context-1:
- shard-dg2-9: NOTRUN -> [SKIP][51] ([i915#4270]) +2 other tests skip
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@gem_pxp@create-regular-context-1.html
* igt@gem_pxp@hw-rejects-pxp-context:
- shard-tglu: NOTRUN -> [SKIP][52] ([i915#13398])
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@gem_pxp@hw-rejects-pxp-context.html
* igt@gem_pxp@protected-raw-src-copy-not-readible:
- shard-dg2: NOTRUN -> [SKIP][53] ([i915#4270])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@gem_pxp@protected-raw-src-copy-not-readible.html
- shard-rkl: NOTRUN -> [TIMEOUT][54] ([i915#12917] / [i915#12964]) +1 other test timeout
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-7/igt@gem_pxp@protected-raw-src-copy-not-readible.html
* igt@gem_readwrite@read-write:
- shard-dg2: NOTRUN -> [SKIP][55] ([i915#3282]) +2 other tests skip
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@gem_readwrite@read-write.html
* igt@gem_render_copy@mixed-tiled-to-y-tiled-ccs:
- shard-dg2-9: NOTRUN -> [SKIP][56] ([i915#5190] / [i915#8428]) +3 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@gem_render_copy@mixed-tiled-to-y-tiled-ccs.html
* igt@gem_render_copy@y-tiled:
- shard-mtlp: NOTRUN -> [SKIP][57] ([i915#8428]) +1 other test skip
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@gem_render_copy@y-tiled.html
* igt@gem_render_copy@yf-tiled-ccs-to-y-tiled:
- shard-dg2: NOTRUN -> [SKIP][58] ([i915#5190] / [i915#8428]) +2 other tests skip
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@gem_render_copy@yf-tiled-ccs-to-y-tiled.html
* igt@gem_set_tiling_vs_blt@tiled-to-untiled:
- shard-rkl: NOTRUN -> [SKIP][59] ([i915#8411]) +2 other tests skip
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@gem_set_tiling_vs_blt@tiled-to-untiled.html
- shard-mtlp: NOTRUN -> [SKIP][60] ([i915#4079])
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@gem_set_tiling_vs_blt@tiled-to-untiled.html
* igt@gem_softpin@noreloc-s3:
- shard-rkl: [PASS][61] -> [INCOMPLETE][62] ([i915#13809])
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-rkl-7/igt@gem_softpin@noreloc-s3.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-4/igt@gem_softpin@noreloc-s3.html
* igt@gem_tiled_pread_pwrite:
- shard-dg2: NOTRUN -> [SKIP][63] ([i915#4079])
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@gem_tiled_pread_pwrite.html
* igt@gem_tiled_swapping@non-threaded:
- shard-mtlp: NOTRUN -> [SKIP][64] ([i915#4077]) +2 other tests skip
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@gem_tiled_swapping@non-threaded.html
* igt@gem_unfence_active_buffers:
- shard-dg2-9: NOTRUN -> [SKIP][65] ([i915#4879])
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@gem_unfence_active_buffers.html
* igt@gem_userptr_blits@access-control:
- shard-tglu-1: NOTRUN -> [SKIP][66] ([i915#3297])
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@gem_userptr_blits@access-control.html
* igt@gem_userptr_blits@create-destroy-unsync:
- shard-dg2-9: NOTRUN -> [SKIP][67] ([i915#3297]) +1 other test skip
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@gem_userptr_blits@create-destroy-unsync.html
* igt@gem_userptr_blits@dmabuf-sync:
- shard-tglu: NOTRUN -> [SKIP][68] ([i915#3297] / [i915#3323])
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@gem_userptr_blits@dmabuf-sync.html
* igt@gem_userptr_blits@forbidden-operations:
- shard-rkl: NOTRUN -> [SKIP][69] ([i915#3282] / [i915#3297])
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@gem_userptr_blits@forbidden-operations.html
* igt@gem_userptr_blits@map-fixed-invalidate-busy:
- shard-dg2: NOTRUN -> [SKIP][70] ([i915#3297] / [i915#4880]) +1 other test skip
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@gem_userptr_blits@map-fixed-invalidate-busy.html
* igt@gem_userptr_blits@sd-probe:
- shard-dg2: NOTRUN -> [SKIP][71] ([i915#3297] / [i915#4958])
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@gem_userptr_blits@sd-probe.html
* igt@gem_userptr_blits@set-cache-level:
- shard-mtlp: NOTRUN -> [SKIP][72] ([i915#3297])
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@gem_userptr_blits@set-cache-level.html
* igt@gem_userptr_blits@unsync-unmap-after-close:
- shard-dg2: NOTRUN -> [SKIP][73] ([i915#3297])
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@gem_userptr_blits@unsync-unmap-after-close.html
- shard-rkl: NOTRUN -> [SKIP][74] ([i915#3297])
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@gem_userptr_blits@unsync-unmap-after-close.html
* igt@gen7_exec_parse@cmd-crossing-page:
- shard-mtlp: NOTRUN -> [SKIP][75] +4 other tests skip
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@gen7_exec_parse@cmd-crossing-page.html
* igt@gen9_exec_parse@bb-large:
- shard-dg2-9: NOTRUN -> [SKIP][76] ([i915#2856]) +1 other test skip
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@gen9_exec_parse@bb-large.html
* igt@gen9_exec_parse@bb-oversize:
- shard-rkl: NOTRUN -> [SKIP][77] ([i915#2527]) +4 other tests skip
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@gen9_exec_parse@bb-oversize.html
* igt@gen9_exec_parse@unaligned-jump:
- shard-tglu-1: NOTRUN -> [SKIP][78] ([i915#2527] / [i915#2856]) +1 other test skip
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@gen9_exec_parse@unaligned-jump.html
* igt@gen9_exec_parse@valid-registers:
- shard-dg2: NOTRUN -> [SKIP][79] ([i915#2856]) +3 other tests skip
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@gen9_exec_parse@valid-registers.html
* igt@i915_pm_freq_api@freq-basic-api:
- shard-rkl: NOTRUN -> [SKIP][80] ([i915#8399])
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@i915_pm_freq_api@freq-basic-api.html
* igt@i915_pm_freq_api@freq-reset:
- shard-tglu-1: NOTRUN -> [SKIP][81] ([i915#8399])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@i915_pm_freq_api@freq-reset.html
* igt@i915_pm_freq_api@freq-reset-multiple:
- shard-tglu: NOTRUN -> [SKIP][82] ([i915#8399])
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@i915_pm_freq_api@freq-reset-multiple.html
* igt@i915_pm_rc6_residency@media-rc6-accuracy:
- shard-dg2-9: NOTRUN -> [SKIP][83] +4 other tests skip
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@i915_pm_rc6_residency@media-rc6-accuracy.html
* igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0:
- shard-dg1: [PASS][84] -> [FAIL][85] ([i915#3591])
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg1-15/igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0.html
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg1-14/igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0.html
* igt@i915_pm_rps@thresholds-park:
- shard-mtlp: NOTRUN -> [SKIP][86] ([i915#11681])
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@i915_pm_rps@thresholds-park.html
* igt@i915_pm_sseu@full-enable:
- shard-dg2: NOTRUN -> [SKIP][87] ([i915#4387])
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@i915_pm_sseu@full-enable.html
* igt@i915_query@query-topology-coherent-slice-mask:
- shard-dg2-9: NOTRUN -> [SKIP][88] ([i915#6188])
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@i915_query@query-topology-coherent-slice-mask.html
* igt@i915_selftest@live@workarounds:
- shard-mtlp: [PASS][89] -> [DMESG-FAIL][90] ([i915#12061]) +1 other test dmesg-fail
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-mtlp-4/igt@i915_selftest@live@workarounds.html
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-4/igt@i915_selftest@live@workarounds.html
* igt@i915_selftest@mock@memory_region:
- shard-glk: NOTRUN -> [DMESG-WARN][91] ([i915#9311]) +1 other test dmesg-warn
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-glk4/igt@i915_selftest@mock@memory_region.html
* igt@i915_suspend@basic-s3-without-i915:
- shard-dg1: [PASS][92] -> [DMESG-WARN][93] ([i915#4391] / [i915#4423])
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg1-14/igt@i915_suspend@basic-s3-without-i915.html
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg1-13/igt@i915_suspend@basic-s3-without-i915.html
- shard-tglu: NOTRUN -> [INCOMPLETE][94] ([i915#4817] / [i915#7443])
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@i915_suspend@basic-s3-without-i915.html
* igt@intel_hwmon@hwmon-write:
- shard-tglu-1: NOTRUN -> [SKIP][95] ([i915#7707])
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@intel_hwmon@hwmon-write.html
* igt@kms_addfb_basic@basic-y-tiled-legacy:
- shard-dg2: NOTRUN -> [SKIP][96] ([i915#4215] / [i915#5190])
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_addfb_basic@basic-y-tiled-legacy.html
* igt@kms_addfb_basic@framebuffer-vs-set-tiling:
- shard-dg2-9: NOTRUN -> [SKIP][97] ([i915#4212])
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html
* igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-dp-3-4-mc-ccs:
- shard-dg2: NOTRUN -> [SKIP][98] ([i915#8709]) +15 other tests skip
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-dp-3-4-mc-ccs.html
* igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-hdmi-a-1-y-rc-ccs-cc:
- shard-rkl: NOTRUN -> [SKIP][99] ([i915#8709]) +1 other test skip
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-7/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-hdmi-a-1-y-rc-ccs-cc.html
* igt@kms_atomic_transition@plane-all-modeset-transition:
- shard-dg2: [PASS][100] -> [FAIL][101] ([i915#5956])
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg2-11/igt@kms_atomic_transition@plane-all-modeset-transition.html
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-2/igt@kms_atomic_transition@plane-all-modeset-transition.html
* igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels:
- shard-tglu: NOTRUN -> [SKIP][102] ([i915#1769] / [i915#3555])
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html
* igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1:
- shard-tglu: [PASS][103] -> [FAIL][104] ([i915#11808]) +1 other test fail
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-tglu-7/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-4/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
* igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-3:
- shard-dg2: NOTRUN -> [FAIL][105] ([i915#5956])
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-2/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-3.html
* igt@kms_big_fb@4-tiled-64bpp-rotate-180:
- shard-tglu-1: NOTRUN -> [SKIP][106] ([i915#5286]) +2 other tests skip
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_big_fb@4-tiled-64bpp-rotate-180.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip:
- shard-tglu: NOTRUN -> [SKIP][107] ([i915#5286]) +2 other tests skip
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip:
- shard-rkl: NOTRUN -> [SKIP][108] ([i915#5286]) +6 other tests skip
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-7/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
* igt@kms_big_fb@linear-32bpp-rotate-90:
- shard-rkl: NOTRUN -> [SKIP][109] ([i915#3638]) +3 other tests skip
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@kms_big_fb@linear-32bpp-rotate-90.html
* igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- shard-snb: NOTRUN -> [SKIP][110] +3 other tests skip
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-snb2/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_big_fb@y-tiled-64bpp-rotate-0:
- shard-dg2: NOTRUN -> [SKIP][111] ([i915#4538] / [i915#5190]) +7 other tests skip
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_big_fb@y-tiled-64bpp-rotate-0.html
* igt@kms_big_fb@y-tiled-addfb:
- shard-dg2: NOTRUN -> [SKIP][112] ([i915#5190]) +1 other test skip
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_big_fb@y-tiled-addfb.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
- shard-dg2-9: NOTRUN -> [SKIP][113] ([i915#4538] / [i915#5190]) +6 other tests skip
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip:
- shard-rkl: NOTRUN -> [SKIP][114] +20 other tests skip
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-7/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
* igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs:
- shard-rkl: NOTRUN -> [SKIP][115] ([i915#12313]) +2 other tests skip
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-basic-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-3:
- shard-dg1: NOTRUN -> [SKIP][116] ([i915#6095]) +83 other tests skip
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg1-13/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-3.html
* igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs:
- shard-dg2: NOTRUN -> [SKIP][117] ([i915#12313]) +2 other tests skip
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][118] ([i915#6095]) +47 other tests skip
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html
* igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1:
- shard-glk: NOTRUN -> [SKIP][119] +58 other tests skip
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-glk4/igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1.html
* igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-rc-ccs-cc@pipe-d-hdmi-a-2:
- shard-dg2-9: NOTRUN -> [SKIP][120] ([i915#10307] / [i915#6095]) +44 other tests skip
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-rc-ccs-cc@pipe-d-hdmi-a-2.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
- shard-rkl: NOTRUN -> [SKIP][121] ([i915#12805])
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-1:
- shard-tglu: NOTRUN -> [SKIP][122] ([i915#6095]) +29 other tests skip
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-1.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-1:
- shard-tglu-1: NOTRUN -> [SKIP][123] ([i915#6095]) +29 other tests skip
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-1.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-c-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][124] ([i915#6095]) +23 other tests skip
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-1/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-c-hdmi-a-3.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs@pipe-a-hdmi-a-2:
- shard-dg2-9: NOTRUN -> [SKIP][125] ([i915#6095]) +4 other tests skip
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs@pipe-a-hdmi-a-2.html
* igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1:
- shard-glk: NOTRUN -> [INCOMPLETE][126] ([i915#12796]) +1 other test incomplete
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-glk4/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs:
- shard-tglu-1: NOTRUN -> [SKIP][127] ([i915#12313])
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][128] ([i915#6095]) +14 other tests skip
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-edp-1.html
* igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs:
- shard-tglu: NOTRUN -> [SKIP][129] ([i915#12313])
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs-cc@pipe-d-dp-4:
- shard-dg2: NOTRUN -> [SKIP][130] ([i915#10307] / [i915#6095]) +164 other tests skip
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-10/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs-cc@pipe-d-dp-4.html
* igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][131] ([i915#10307] / [i915#10434] / [i915#6095]) +2 other tests skip
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-8/igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-hdmi-a-1.html
* igt@kms_cdclk@mode-transition:
- shard-rkl: NOTRUN -> [SKIP][132] ([i915#3742])
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@kms_cdclk@mode-transition.html
* igt@kms_cdclk@mode-transition-all-outputs:
- shard-dg2: NOTRUN -> [SKIP][133] ([i915#13784])
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_cdclk@mode-transition-all-outputs.html
* igt@kms_cdclk@plane-scaling@pipe-c-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][134] ([i915#13783]) +4 other tests skip
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_cdclk@plane-scaling@pipe-c-hdmi-a-3.html
* igt@kms_chamelium_edid@hdmi-edid-stress-resolution-non-4k:
- shard-dg2: NOTRUN -> [SKIP][135] ([i915#11151] / [i915#7828]) +4 other tests skip
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_chamelium_edid@hdmi-edid-stress-resolution-non-4k.html
* igt@kms_chamelium_frames@dp-crc-single:
- shard-tglu-1: NOTRUN -> [SKIP][136] ([i915#11151] / [i915#7828]) +3 other tests skip
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_chamelium_frames@dp-crc-single.html
* igt@kms_chamelium_frames@dp-frame-dump:
- shard-tglu: NOTRUN -> [SKIP][137] ([i915#11151] / [i915#7828]) +2 other tests skip
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@kms_chamelium_frames@dp-frame-dump.html
* igt@kms_chamelium_frames@hdmi-crc-nonplanar-formats:
- shard-rkl: NOTRUN -> [SKIP][138] ([i915#11151] / [i915#7828]) +6 other tests skip
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@kms_chamelium_frames@hdmi-crc-nonplanar-formats.html
* igt@kms_chamelium_hpd@vga-hpd-enable-disable-mode:
- shard-dg2-9: NOTRUN -> [SKIP][139] ([i915#11151] / [i915#7828]) +8 other tests skip
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_chamelium_hpd@vga-hpd-enable-disable-mode.html
* igt@kms_content_protection@atomic-dpms:
- shard-mtlp: NOTRUN -> [SKIP][140] ([i915#6944] / [i915#9424])
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@kms_content_protection@atomic-dpms.html
* igt@kms_content_protection@atomic@pipe-a-dp-4:
- shard-dg2: NOTRUN -> [FAIL][141] ([i915#7173])
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-10/igt@kms_content_protection@atomic@pipe-a-dp-4.html
* igt@kms_content_protection@dp-mst-type-0:
- shard-rkl: NOTRUN -> [SKIP][142] ([i915#3116])
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@kms_content_protection@dp-mst-type-0.html
* igt@kms_content_protection@dp-mst-type-1:
- shard-tglu-1: NOTRUN -> [SKIP][143] ([i915#3116] / [i915#3299])
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_content_protection@dp-mst-type-1.html
* igt@kms_content_protection@lic-type-0:
- shard-tglu: NOTRUN -> [SKIP][144] ([i915#6944] / [i915#9424])
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@kms_content_protection@lic-type-0.html
* igt@kms_content_protection@srm:
- shard-dg2-9: NOTRUN -> [SKIP][145] ([i915#7118])
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_content_protection@srm.html
* igt@kms_content_protection@uevent:
- shard-dg2-9: NOTRUN -> [SKIP][146] ([i915#7118] / [i915#9424]) +1 other test skip
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_content_protection@uevent.html
* igt@kms_cursor_crc@cursor-offscreen-32x10:
- shard-dg2: NOTRUN -> [SKIP][147] ([i915#3555]) +5 other tests skip
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@kms_cursor_crc@cursor-offscreen-32x10.html
- shard-rkl: NOTRUN -> [SKIP][148] ([i915#3555]) +4 other tests skip
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-7/igt@kms_cursor_crc@cursor-offscreen-32x10.html
* igt@kms_cursor_crc@cursor-offscreen-512x170:
- shard-rkl: NOTRUN -> [SKIP][149] ([i915#13049])
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@kms_cursor_crc@cursor-offscreen-512x170.html
* igt@kms_cursor_crc@cursor-onscreen-512x170:
- shard-tglu: NOTRUN -> [SKIP][150] ([i915#13049])
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@kms_cursor_crc@cursor-onscreen-512x170.html
* igt@kms_cursor_crc@cursor-random-512x170:
- shard-tglu-1: NOTRUN -> [SKIP][151] ([i915#13049]) +1 other test skip
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_cursor_crc@cursor-random-512x170.html
* igt@kms_cursor_crc@cursor-sliding-32x10:
- shard-dg2-9: NOTRUN -> [SKIP][152] ([i915#3555]) +2 other tests skip
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_cursor_crc@cursor-sliding-32x10.html
* igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
- shard-dg2: NOTRUN -> [SKIP][153] ([i915#13046] / [i915#5354]) +2 other tests skip
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- shard-dg2: NOTRUN -> [SKIP][154] ([i915#4103] / [i915#4213]) +1 other test skip
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
- shard-rkl: NOTRUN -> [SKIP][155] ([i915#4103])
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- shard-tglu-1: NOTRUN -> [SKIP][156] ([i915#4103])
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions:
- shard-dg2-9: NOTRUN -> [SKIP][157] ([i915#13046] / [i915#5354]) +1 other test skip
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
- shard-dg2-9: NOTRUN -> [SKIP][158] ([i915#4103] / [i915#4213])
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
* igt@kms_dirtyfb@psr-dirtyfb-ioctl:
- shard-dg2: NOTRUN -> [SKIP][159] ([i915#9833])
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html
- shard-rkl: NOTRUN -> [SKIP][160] ([i915#9723])
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-7/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html
* igt@kms_display_modes@extended-mode-basic:
- shard-dg2-9: NOTRUN -> [SKIP][161] ([i915#13691])
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_display_modes@extended-mode-basic.html
* igt@kms_dither@fb-8bpc-vs-panel-8bpc:
- shard-dg2: [PASS][162] -> [SKIP][163] ([i915#3555]) +1 other test skip
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg2-10/igt@kms_dither@fb-8bpc-vs-panel-8bpc.html
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-1/igt@kms_dither@fb-8bpc-vs-panel-8bpc.html
* igt@kms_dp_linktrain_fallback@dp-fallback:
- shard-rkl: NOTRUN -> [SKIP][164] ([i915#13707])
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@kms_dp_linktrain_fallback@dp-fallback.html
* igt@kms_dp_linktrain_fallback@dsc-fallback:
- shard-dg2-9: NOTRUN -> [SKIP][165] ([i915#13707])
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_dp_linktrain_fallback@dsc-fallback.html
* igt@kms_draw_crc@draw-method-mmap-gtt:
- shard-dg2: NOTRUN -> [SKIP][166] ([i915#8812])
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_draw_crc@draw-method-mmap-gtt.html
* igt@kms_dsc@dsc-basic:
- shard-tglu: NOTRUN -> [SKIP][167] ([i915#3555] / [i915#3840])
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@kms_dsc@dsc-basic.html
* igt@kms_dsc@dsc-with-bpc-formats:
- shard-tglu-1: NOTRUN -> [SKIP][168] ([i915#3555] / [i915#3840])
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_dsc@dsc-with-bpc-formats.html
* igt@kms_dsc@dsc-with-formats:
- shard-dg2-9: NOTRUN -> [SKIP][169] ([i915#3555] / [i915#3840])
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_dsc@dsc-with-formats.html
* igt@kms_dsc@dsc-with-output-formats-with-bpc:
- shard-dg2: NOTRUN -> [SKIP][170] ([i915#3840] / [i915#9053])
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
* igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area:
- shard-dg2: NOTRUN -> [SKIP][171] ([i915#13798])
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area.html
* igt@kms_fbcon_fbt@psr:
- shard-rkl: NOTRUN -> [SKIP][172] ([i915#3955])
[172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@kms_fbcon_fbt@psr.html
* igt@kms_feature_discovery@chamelium:
- shard-tglu-1: NOTRUN -> [SKIP][173] ([i915#2065] / [i915#4854])
[173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_feature_discovery@chamelium.html
* igt@kms_feature_discovery@display-2x:
- shard-rkl: NOTRUN -> [SKIP][174] ([i915#1839])
[174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@kms_feature_discovery@display-2x.html
* igt@kms_flip@2x-flip-vs-modeset:
- shard-dg2: NOTRUN -> [SKIP][175] ([i915#9934]) +4 other tests skip
[175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_flip@2x-flip-vs-modeset.html
* igt@kms_flip@2x-flip-vs-modeset-vs-hang:
- shard-mtlp: NOTRUN -> [SKIP][176] ([i915#3637] / [i915#9934])
[176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@kms_flip@2x-flip-vs-modeset-vs-hang.html
* igt@kms_flip@2x-flip-vs-panning:
- shard-tglu: NOTRUN -> [SKIP][177] ([i915#3637] / [i915#9934]) +1 other test skip
[177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@kms_flip@2x-flip-vs-panning.html
* igt@kms_flip@2x-plain-flip:
- shard-rkl: NOTRUN -> [SKIP][178] ([i915#9934]) +5 other tests skip
[178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@kms_flip@2x-plain-flip.html
* igt@kms_flip@2x-plain-flip-fb-recreate:
- shard-tglu-1: NOTRUN -> [SKIP][179] ([i915#3637] / [i915#9934]) +3 other tests skip
[179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_flip@2x-plain-flip-fb-recreate.html
* igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
- shard-snb: [PASS][180] -> [FAIL][181] ([i915#11832] / [i915#13734]) +1 other test fail
[180]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-snb2/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html
[181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-snb6/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset:
- shard-dg2-9: NOTRUN -> [SKIP][182] ([i915#9934]) +5 other tests skip
[182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html
* igt@kms_flip@bo-too-big-interruptible:
- shard-rkl: [PASS][183] -> [DMESG-WARN][184] ([i915#12964]) +4 other tests dmesg-warn
[183]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-rkl-8/igt@kms_flip@bo-too-big-interruptible.html
[184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-7/igt@kms_flip@bo-too-big-interruptible.html
* igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1:
- shard-mtlp: [PASS][185] -> [FAIL][186] ([i915#13734]) +1 other test fail
[185]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-mtlp-8/igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1.html
[186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-3/igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1.html
* igt@kms_flip@plain-flip-fb-recreate:
- shard-tglu: [PASS][187] -> [FAIL][188] ([i915#11832] / [i915#13734])
[187]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-tglu-8/igt@kms_flip@plain-flip-fb-recreate.html
[188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-4/igt@kms_flip@plain-flip-fb-recreate.html
* igt@kms_flip@plain-flip-fb-recreate@a-vga1:
- shard-snb: [PASS][189] -> [FAIL][190] ([i915#13734]) +3 other tests fail
[189]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-snb7/igt@kms_flip@plain-flip-fb-recreate@a-vga1.html
[190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-snb6/igt@kms_flip@plain-flip-fb-recreate@a-vga1.html
* igt@kms_flip@plain-flip-fb-recreate@b-hdmi-a4:
- shard-dg1: NOTRUN -> [FAIL][191] ([i915#13734]) +1 other test fail
[191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg1-16/igt@kms_flip@plain-flip-fb-recreate@b-hdmi-a4.html
* igt@kms_flip@plain-flip-fb-recreate@c-hdmi-a1:
- shard-tglu: [PASS][192] -> [FAIL][193] ([i915#13734]) +7 other tests fail
[192]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-tglu-8/igt@kms_flip@plain-flip-fb-recreate@c-hdmi-a1.html
[193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-4/igt@kms_flip@plain-flip-fb-recreate@c-hdmi-a1.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling:
- shard-tglu-1: NOTRUN -> [SKIP][194] ([i915#2672] / [i915#3555]) +1 other test skip
[194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-valid-mode:
- shard-tglu-1: NOTRUN -> [SKIP][195] ([i915#2587] / [i915#2672]) +1 other test skip
[195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling:
- shard-dg2-9: NOTRUN -> [SKIP][196] ([i915#2672] / [i915#3555])
[196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-valid-mode:
- shard-dg2-9: NOTRUN -> [SKIP][197] ([i915#2672]) +1 other test skip
[197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling:
- shard-tglu: NOTRUN -> [SKIP][198] ([i915#2672] / [i915#3555])
[198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-valid-mode:
- shard-tglu: NOTRUN -> [SKIP][199] ([i915#2587] / [i915#2672])
[199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling:
- shard-dg2: NOTRUN -> [SKIP][200] ([i915#2672] / [i915#3555])
[200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode:
- shard-dg2: NOTRUN -> [SKIP][201] ([i915#2672])
[201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling:
- shard-mtlp: NOTRUN -> [SKIP][202] ([i915#3555] / [i915#8813])
[202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode:
- shard-mtlp: NOTRUN -> [SKIP][203] ([i915#8810] / [i915#8813])
[203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-valid-mode:
- shard-rkl: NOTRUN -> [SKIP][204] ([i915#2672]) +4 other tests skip
[204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling:
- shard-rkl: NOTRUN -> [SKIP][205] ([i915#2672] / [i915#3555]) +4 other tests skip
[205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
- shard-mtlp: NOTRUN -> [SKIP][206] ([i915#2672] / [i915#3555] / [i915#8813])
[206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode:
- shard-mtlp: NOTRUN -> [SKIP][207] ([i915#2672] / [i915#8813])
[207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling:
- shard-dg2-9: NOTRUN -> [SKIP][208] ([i915#2672] / [i915#3555] / [i915#5190])
[208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc:
- shard-dg2: NOTRUN -> [SKIP][209] ([i915#8708]) +14 other tests skip
[209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-gtt:
- shard-mtlp: NOTRUN -> [SKIP][210] ([i915#8708]) +1 other test skip
[210]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbc-suspend:
- shard-rkl: NOTRUN -> [INCOMPLETE][211] ([i915#10056])
[211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@kms_frontbuffer_tracking@fbc-suspend.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt:
- shard-rkl: NOTRUN -> [SKIP][212] ([i915#1825]) +34 other tests skip
[212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-wc:
- shard-dg2-9: NOTRUN -> [SKIP][213] ([i915#8708]) +11 other tests skip
[213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-fullscreen:
- shard-dg2-9: NOTRUN -> [SKIP][214] ([i915#5354]) +20 other tests skip
[214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-fullscreen.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-pwrite:
- shard-mtlp: NOTRUN -> [SKIP][215] ([i915#1825]) +3 other tests skip
[215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt:
- shard-tglu-1: NOTRUN -> [SKIP][216] +36 other tests skip
[216]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-gtt:
- shard-rkl: NOTRUN -> [SKIP][217] ([i915#3023]) +22 other tests skip
[217]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbcpsr-tiling-4:
- shard-tglu-1: NOTRUN -> [SKIP][218] ([i915#5439])
[218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html
* igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-pwrite:
- shard-dg2-9: NOTRUN -> [SKIP][219] ([i915#3458]) +12 other tests skip
[219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-pgflip-blt:
- shard-dg2: NOTRUN -> [SKIP][220] ([i915#5354]) +17 other tests skip
[220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary:
- shard-dg2: NOTRUN -> [SKIP][221] ([i915#3458]) +10 other tests skip
[221]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary.html
* igt@kms_frontbuffer_tracking@psr-shrfb-scaledprimary:
- shard-tglu: NOTRUN -> [SKIP][222] +25 other tests skip
[222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@kms_frontbuffer_tracking@psr-shrfb-scaledprimary.html
* igt@kms_hdr@bpc-switch:
- shard-dg2: [PASS][223] -> [SKIP][224] ([i915#3555] / [i915#8228])
[223]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg2-10/igt@kms_hdr@bpc-switch.html
[224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-1/igt@kms_hdr@bpc-switch.html
* igt@kms_hdr@static-toggle:
- shard-tglu-1: NOTRUN -> [SKIP][225] ([i915#3555] / [i915#8228])
[225]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_hdr@static-toggle.html
* igt@kms_hdr@static-toggle-suspend:
- shard-dg2-9: NOTRUN -> [SKIP][226] ([i915#3555] / [i915#8228]) +1 other test skip
[226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_hdr@static-toggle-suspend.html
* igt@kms_invalid_mode@overflow-vrefresh:
- shard-dg1: [PASS][227] -> [DMESG-WARN][228] ([i915#4423]) +3 other tests dmesg-warn
[227]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg1-19/igt@kms_invalid_mode@overflow-vrefresh.html
[228]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg1-15/igt@kms_invalid_mode@overflow-vrefresh.html
* igt@kms_joiner@basic-force-big-joiner:
- shard-dg2: NOTRUN -> [SKIP][229] ([i915#12388])
[229]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_joiner@basic-force-big-joiner.html
* igt@kms_joiner@basic-max-non-joiner:
- shard-dg2: NOTRUN -> [SKIP][230] ([i915#13688])
[230]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_joiner@basic-max-non-joiner.html
* igt@kms_joiner@invalid-modeset-force-big-joiner:
- shard-dg2: [PASS][231] -> [SKIP][232] ([i915#12388])
[231]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg2-10/igt@kms_joiner@invalid-modeset-force-big-joiner.html
[232]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-1/igt@kms_joiner@invalid-modeset-force-big-joiner.html
* igt@kms_panel_fitting@legacy:
- shard-dg2: NOTRUN -> [SKIP][233] ([i915#6301])
[233]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@kms_panel_fitting@legacy.html
- shard-rkl: NOTRUN -> [SKIP][234] ([i915#6301])
[234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-7/igt@kms_panel_fitting@legacy.html
* igt@kms_plane_cursor@viewport@pipe-b-hdmi-a-2-size-64:
- shard-rkl: NOTRUN -> [DMESG-WARN][235] ([i915#12917] / [i915#12964]) +2 other tests dmesg-warn
[235]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-1/igt@kms_plane_cursor@viewport@pipe-b-hdmi-a-2-size-64.html
* igt@kms_plane_multiple@2x-tiling-4:
- shard-dg2-9: NOTRUN -> [SKIP][236] ([i915#13958])
[236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_plane_multiple@2x-tiling-4.html
* igt@kms_plane_multiple@2x-tiling-y:
- shard-tglu-1: NOTRUN -> [SKIP][237] ([i915#13958])
[237]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_plane_multiple@2x-tiling-y.html
* igt@kms_plane_multiple@tiling-y:
- shard-dg2: NOTRUN -> [SKIP][238] ([i915#8806])
[238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_plane_multiple@tiling-y.html
* igt@kms_plane_scaling@2x-scaler-multi-pipe:
- shard-dg2: NOTRUN -> [SKIP][239] ([i915#13046] / [i915#5354] / [i915#9423])
[239]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
* igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation:
- shard-tglu: NOTRUN -> [SKIP][240] ([i915#3555]) +1 other test skip
[240]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation.html
* igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b:
- shard-tglu: NOTRUN -> [SKIP][241] ([i915#12247]) +3 other tests skip
[241]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25:
- shard-dg2: NOTRUN -> [SKIP][242] ([i915#12247] / [i915#6953] / [i915#9423]) +1 other test skip
[242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_plane_scaling@planes-downscale-factor-0-25.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling:
- shard-dg2: NOTRUN -> [SKIP][243] ([i915#12247] / [i915#9423])
[243]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-a:
- shard-rkl: NOTRUN -> [SKIP][244] ([i915#12247]) +4 other tests skip
[244]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-7/igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-a.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-d:
- shard-dg2: NOTRUN -> [SKIP][245] ([i915#12247]) +11 other tests skip
[245]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-d.html
* igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25:
- shard-rkl: NOTRUN -> [SKIP][246] ([i915#12247] / [i915#6953])
[246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-7/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25:
- shard-dg2-9: NOTRUN -> [SKIP][247] ([i915#12247] / [i915#6953] / [i915#9423])
[247]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-d:
- shard-dg2-9: NOTRUN -> [SKIP][248] ([i915#12247]) +3 other tests skip
[248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-d.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75:
- shard-mtlp: NOTRUN -> [SKIP][249] ([i915#12247] / [i915#3555] / [i915#6953])
[249]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-c:
- shard-mtlp: NOTRUN -> [SKIP][250] ([i915#12247]) +3 other tests skip
[250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-c.html
* igt@kms_pm_backlight@bad-brightness:
- shard-tglu-1: NOTRUN -> [SKIP][251] ([i915#9812])
[251]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_pm_backlight@bad-brightness.html
* igt@kms_pm_backlight@fade:
- shard-rkl: NOTRUN -> [SKIP][252] ([i915#5354])
[252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@kms_pm_backlight@fade.html
* igt@kms_pm_dc@dc3co-vpb-simulation:
- shard-dg2-9: NOTRUN -> [SKIP][253] ([i915#9685])
[253]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_pm_dc@dc3co-vpb-simulation.html
* igt@kms_pm_dc@dc5-psr:
- shard-rkl: NOTRUN -> [SKIP][254] ([i915#9685])
[254]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@kms_pm_dc@dc5-psr.html
* igt@kms_pm_dc@dc6-psr:
- shard-tglu-1: NOTRUN -> [SKIP][255] ([i915#9685])
[255]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_pm_dc@dc6-psr.html
* igt@kms_pm_dc@dc9-dpms:
- shard-rkl: NOTRUN -> [SKIP][256] ([i915#3361])
[256]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@kms_pm_dc@dc9-dpms.html
* igt@kms_pm_rpm@dpms-lpsp:
- shard-dg2: NOTRUN -> [SKIP][257] ([i915#9519])
[257]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_pm_rpm@dpms-lpsp.html
* igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
- shard-rkl: NOTRUN -> [SKIP][258] ([i915#9519])
[258]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-7/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
* igt@kms_pm_rpm@modeset-lpsp-stress-no-wait:
- shard-dg2: [PASS][259] -> [SKIP][260] ([i915#9519]) +2 other tests skip
[259]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg2-4/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html
[260]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-2/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html
* igt@kms_prime@basic-modeset-hybrid:
- shard-dg2: NOTRUN -> [SKIP][261] ([i915#6524] / [i915#6805]) +1 other test skip
[261]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_prime@basic-modeset-hybrid.html
- shard-rkl: NOTRUN -> [SKIP][262] ([i915#6524])
[262]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@kms_prime@basic-modeset-hybrid.html
* igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf:
- shard-dg2: NOTRUN -> [SKIP][263] ([i915#11520]) +5 other tests skip
[263]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area:
- shard-rkl: NOTRUN -> [SKIP][264] ([i915#11520]) +6 other tests skip
[264]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area.html
- shard-mtlp: NOTRUN -> [SKIP][265] ([i915#12316])
[265]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area.html
* igt@kms_psr2_sf@pr-cursor-plane-update-sf:
- shard-glk: NOTRUN -> [SKIP][266] ([i915#11520]) +1 other test skip
[266]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-glk4/igt@kms_psr2_sf@pr-cursor-plane-update-sf.html
* igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf:
- shard-tglu-1: NOTRUN -> [SKIP][267] ([i915#11520]) +4 other tests skip
[267]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf.html
* igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area:
- shard-tglu: NOTRUN -> [SKIP][268] ([i915#11520])
[268]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-sf:
- shard-dg2-9: NOTRUN -> [SKIP][269] ([i915#11520]) +6 other tests skip
[269]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_su@page_flip-nv12:
- shard-rkl: NOTRUN -> [SKIP][270] ([i915#9683]) +1 other test skip
[270]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@kms_psr2_su@page_flip-nv12.html
* igt@kms_psr2_su@page_flip-xrgb8888:
- shard-dg2: NOTRUN -> [SKIP][271] ([i915#9683]) +1 other test skip
[271]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_psr2_su@page_flip-xrgb8888.html
* igt@kms_psr@fbc-pr-sprite-blt:
- shard-dg2-9: NOTRUN -> [SKIP][272] ([i915#1072] / [i915#9732]) +15 other tests skip
[272]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_psr@fbc-pr-sprite-blt.html
* igt@kms_psr@fbc-psr-cursor-blt@edp-1:
- shard-mtlp: NOTRUN -> [SKIP][273] ([i915#9688]) +3 other tests skip
[273]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@kms_psr@fbc-psr-cursor-blt@edp-1.html
* igt@kms_psr@fbc-psr-cursor-plane-move:
- shard-dg2: NOTRUN -> [SKIP][274] ([i915#1072] / [i915#9732]) +14 other tests skip
[274]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_psr@fbc-psr-cursor-plane-move.html
* igt@kms_psr@fbc-psr2-sprite-render:
- shard-rkl: NOTRUN -> [SKIP][275] ([i915#1072] / [i915#9732]) +20 other tests skip
[275]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@kms_psr@fbc-psr2-sprite-render.html
* igt@kms_psr@psr-sprite-blt:
- shard-tglu: NOTRUN -> [SKIP][276] ([i915#9732]) +8 other tests skip
[276]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@kms_psr@psr-sprite-blt.html
* igt@kms_psr@psr2-cursor-plane-move:
- shard-tglu-1: NOTRUN -> [SKIP][277] ([i915#9732]) +10 other tests skip
[277]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_psr@psr2-cursor-plane-move.html
* igt@kms_rotation_crc@primary-rotation-90:
- shard-dg2-9: NOTRUN -> [SKIP][278] ([i915#12755]) +1 other test skip
[278]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_rotation_crc@primary-rotation-90.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-0:
- shard-dg2-9: NOTRUN -> [SKIP][279] ([i915#5190]) +1 other test skip
[279]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-90:
- shard-dg2: NOTRUN -> [SKIP][280] ([i915#12755] / [i915#5190])
[280]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@kms_rotation_crc@primary-y-tiled-reflect-x-90.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
- shard-rkl: NOTRUN -> [SKIP][281] ([i915#5289])
[281]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-7/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
* igt@kms_rotation_crc@sprite-rotation-270:
- shard-dg2: NOTRUN -> [SKIP][282] ([i915#12755])
[282]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@kms_rotation_crc@sprite-rotation-270.html
* igt@kms_selftest@drm_framebuffer:
- shard-rkl: NOTRUN -> [ABORT][283] ([i915#13179]) +1 other test abort
[283]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@kms_selftest@drm_framebuffer.html
- shard-mtlp: NOTRUN -> [ABORT][284] ([i915#13179]) +1 other test abort
[284]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@kms_selftest@drm_framebuffer.html
* igt@kms_setmode@basic:
- shard-tglu: [PASS][285] -> [FAIL][286] ([i915#5465]) +2 other tests fail
[285]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-tglu-3/igt@kms_setmode@basic.html
[286]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-2/igt@kms_setmode@basic.html
* igt@kms_setmode@basic@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [FAIL][287] ([i915#5465]) +2 other tests fail
[287]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@kms_setmode@basic@pipe-b-hdmi-a-2.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-dg2-9: NOTRUN -> [SKIP][288] ([i915#8623])
[288]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
* igt@kms_vrr@flip-basic-fastset:
- shard-rkl: NOTRUN -> [SKIP][289] ([i915#9906]) +1 other test skip
[289]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@kms_vrr@flip-basic-fastset.html
* igt@kms_vrr@max-min:
- shard-tglu-1: NOTRUN -> [SKIP][290] ([i915#9906]) +1 other test skip
[290]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_vrr@max-min.html
* igt@kms_vrr@negative-basic:
- shard-tglu-1: NOTRUN -> [SKIP][291] ([i915#3555] / [i915#9906])
[291]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-1/igt@kms_vrr@negative-basic.html
- shard-mtlp: [PASS][292] -> [FAIL][293] ([i915#10393]) +1 other test fail
[292]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-mtlp-7/igt@kms_vrr@negative-basic.html
[293]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@kms_vrr@negative-basic.html
* igt@kms_writeback@writeback-check-output:
- shard-tglu: NOTRUN -> [SKIP][294] ([i915#2437])
[294]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@kms_writeback@writeback-check-output.html
* igt@kms_writeback@writeback-pixel-formats:
- shard-dg2-9: NOTRUN -> [SKIP][295] ([i915#2437] / [i915#9412])
[295]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@kms_writeback@writeback-pixel-formats.html
* igt@perf_pmu@busy-double-start@vecs0:
- shard-mtlp: [PASS][296] -> [FAIL][297] ([i915#4349])
[296]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-mtlp-5/igt@perf_pmu@busy-double-start@vecs0.html
[297]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-8/igt@perf_pmu@busy-double-start@vecs0.html
* igt@perf_pmu@busy-idle@vcs0:
- shard-dg2: NOTRUN -> [FAIL][298] ([i915#4349]) +5 other tests fail
[298]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@perf_pmu@busy-idle@vcs0.html
* igt@perf_pmu@invalid-init:
- shard-rkl: NOTRUN -> [FAIL][299] ([i915#13663])
[299]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@perf_pmu@invalid-init.html
* igt@perf_pmu@rc6@other-idle-gt0:
- shard-dg2-9: NOTRUN -> [SKIP][300] ([i915#8516])
[300]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@perf_pmu@rc6@other-idle-gt0.html
* igt@prime_vgem@basic-read:
- shard-dg2-9: NOTRUN -> [SKIP][301] ([i915#3291] / [i915#3708])
[301]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-9/igt@prime_vgem@basic-read.html
* igt@prime_vgem@fence-read-hang:
- shard-rkl: NOTRUN -> [SKIP][302] ([i915#3708])
[302]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-3/igt@prime_vgem@fence-read-hang.html
* igt@sriov_basic@bind-unbind-vf:
- shard-rkl: NOTRUN -> [SKIP][303] ([i915#9917])
[303]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@sriov_basic@bind-unbind-vf.html
* igt@sriov_basic@bind-unbind-vf@vf-5:
- shard-mtlp: NOTRUN -> [FAIL][304] ([i915#12910]) +9 other tests fail
[304]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@sriov_basic@bind-unbind-vf@vf-5.html
* igt@sriov_basic@enable-vfs-bind-unbind-each@numvfs-random:
- shard-tglu: NOTRUN -> [FAIL][305] ([i915#12910]) +8 other tests fail
[305]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-3/igt@sriov_basic@enable-vfs-bind-unbind-each@numvfs-random.html
* igt@tools_test@sysfs_l3_parity:
- shard-dg2: NOTRUN -> [SKIP][306] ([i915#4818])
[306]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-5/igt@tools_test@sysfs_l3_parity.html
#### Possible fixes ####
* igt@gem_ccs@suspend-resume@tile4-compressed-compfmt0-smem-lmem0:
- shard-dg2: [INCOMPLETE][307] ([i915#12392] / [i915#13356]) -> [PASS][308]
[307]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg2-3/igt@gem_ccs@suspend-resume@tile4-compressed-compfmt0-smem-lmem0.html
[308]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-3/igt@gem_ccs@suspend-resume@tile4-compressed-compfmt0-smem-lmem0.html
* igt@gem_ctx_isolation@nonpriv-switch:
- shard-mtlp: [INCOMPLETE][309] -> [PASS][310] +1 other test pass
[309]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-mtlp-7/igt@gem_ctx_isolation@nonpriv-switch.html
[310]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-7/igt@gem_ctx_isolation@nonpriv-switch.html
* igt@gem_eio@reset-stress:
- shard-dg1: [FAIL][311] ([i915#12543] / [i915#5784]) -> [PASS][312]
[311]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg1-13/igt@gem_eio@reset-stress.html
[312]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg1-16/igt@gem_eio@reset-stress.html
- shard-mtlp: [ABORT][313] ([i915#13193] / [i915#13723]) -> [PASS][314] +1 other test pass
[313]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-mtlp-7/igt@gem_eio@reset-stress.html
[314]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-8/igt@gem_eio@reset-stress.html
* igt@gem_lmem_swapping@smem-oom@lmem0:
- shard-dg1: [TIMEOUT][315] ([i915#14044] / [i915#5493]) -> [PASS][316] +1 other test pass
[315]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg1-16/igt@gem_lmem_swapping@smem-oom@lmem0.html
[316]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg1-19/igt@gem_lmem_swapping@smem-oom@lmem0.html
* igt@gem_pxp@verify-pxp-stale-buf-execution:
- shard-rkl: [TIMEOUT][317] ([i915#12917] / [i915#12964]) -> [PASS][318]
[317]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-rkl-5/igt@gem_pxp@verify-pxp-stale-buf-execution.html
[318]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@gem_pxp@verify-pxp-stale-buf-execution.html
* igt@i915_pm_rc6_residency@rc6-idle@gt0-vcs0:
- shard-dg1: [FAIL][319] ([i915#3591]) -> [PASS][320] +1 other test pass
[319]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg1-15/igt@i915_pm_rc6_residency@rc6-idle@gt0-vcs0.html
[320]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg1-14/igt@i915_pm_rc6_residency@rc6-idle@gt0-vcs0.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- shard-mtlp: [FAIL][321] ([i915#5138]) -> [PASS][322]
[321]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-mtlp-8/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
[322]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-3/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc:
- shard-dg1: [DMESG-WARN][323] ([i915#4423]) -> [PASS][324] +3 other tests pass
[323]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg1-19/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html
[324]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg1-15/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html
* igt@kms_cursor_crc@cursor-random-64x21:
- shard-tglu: [FAIL][325] ([i915#13566]) -> [PASS][326] +1 other test pass
[325]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-tglu-5/igt@kms_cursor_crc@cursor-random-64x21.html
[326]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-5/igt@kms_cursor_crc@cursor-random-64x21.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
- shard-snb: [SKIP][327] -> [PASS][328] +1 other test pass
[327]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-snb2/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
[328]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-snb6/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
* igt@kms_flip@2x-absolute-wf_vblank-interruptible@ab-vga1-hdmi-a1:
- shard-snb: [INCOMPLETE][329] ([i915#12314]) -> [PASS][330] +1 other test pass
[329]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-snb6/igt@kms_flip@2x-absolute-wf_vblank-interruptible@ab-vga1-hdmi-a1.html
[330]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-snb2/igt@kms_flip@2x-absolute-wf_vblank-interruptible@ab-vga1-hdmi-a1.html
* igt@kms_flip@flip-vs-dpms-on-nop-interruptible:
- shard-snb: [FAIL][331] ([i915#13734]) -> [PASS][332] +1 other test pass
[331]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-snb6/igt@kms_flip@flip-vs-dpms-on-nop-interruptible.html
[332]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-snb7/igt@kms_flip@flip-vs-dpms-on-nop-interruptible.html
* igt@kms_flip@plain-flip-fb-recreate:
- shard-dg2: [FAIL][333] ([i915#13734]) -> [PASS][334]
[333]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg2-5/igt@kms_flip@plain-flip-fb-recreate.html
[334]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-8/igt@kms_flip@plain-flip-fb-recreate.html
* igt@kms_flip@plain-flip-fb-recreate@a-edp1:
- shard-mtlp: [FAIL][335] ([i915#13734]) -> [PASS][336] +1 other test pass
[335]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-mtlp-6/igt@kms_flip@plain-flip-fb-recreate@a-edp1.html
[336]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-mtlp-6/igt@kms_flip@plain-flip-fb-recreate@a-edp1.html
* igt@kms_pm_rpm@modeset-non-lpsp:
- shard-rkl: [SKIP][337] ([i915#9519]) -> [PASS][338]
[337]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-rkl-4/igt@kms_pm_rpm@modeset-non-lpsp.html
[338]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-1/igt@kms_pm_rpm@modeset-non-lpsp.html
* igt@kms_rotation_crc@multiplane-rotation:
- shard-rkl: [DMESG-WARN][339] ([i915#12964]) -> [PASS][340] +4 other tests pass
[339]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-rkl-5/igt@kms_rotation_crc@multiplane-rotation.html
[340]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-8/igt@kms_rotation_crc@multiplane-rotation.html
#### Warnings ####
* igt@gem_pxp@hw-rejects-pxp-buffer:
- shard-rkl: [SKIP][341] ([i915#13717]) -> [TIMEOUT][342] ([i915#12917] / [i915#12964])
[341]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-rkl-8/igt@gem_pxp@hw-rejects-pxp-buffer.html
[342]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-7/igt@gem_pxp@hw-rejects-pxp-buffer.html
* igt@kms_content_protection@atomic:
- shard-dg2: [SKIP][343] ([i915#7118] / [i915#9424]) -> [FAIL][344] ([i915#7173])
[343]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg2-8/igt@kms_content_protection@atomic.html
[344]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-10/igt@kms_content_protection@atomic.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-legacy:
- shard-dg1: [SKIP][345] ([i915#4423]) -> [SKIP][346] +2 other tests skip
[345]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg1-19/igt@kms_cursor_legacy@cursorb-vs-flipb-legacy.html
[346]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg1-15/igt@kms_cursor_legacy@cursorb-vs-flipb-legacy.html
* igt@kms_flip@2x-flip-vs-suspend-interruptible:
- shard-glk: [INCOMPLETE][347] ([i915#12314] / [i915#12745] / [i915#4839]) -> [INCOMPLETE][348] ([i915#12745] / [i915#4839])
[347]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-glk8/igt@kms_flip@2x-flip-vs-suspend-interruptible.html
[348]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-glk4/igt@kms_flip@2x-flip-vs-suspend-interruptible.html
* igt@kms_flip@2x-flip-vs-suspend-interruptible@ab-hdmi-a1-hdmi-a2:
- shard-glk: [INCOMPLETE][349] ([i915#12314] / [i915#4839]) -> [INCOMPLETE][350] ([i915#4839])
[349]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-glk8/igt@kms_flip@2x-flip-vs-suspend-interruptible@ab-hdmi-a1-hdmi-a2.html
[350]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-glk4/igt@kms_flip@2x-flip-vs-suspend-interruptible@ab-hdmi-a1-hdmi-a2.html
* igt@kms_flip@flip-vs-suspend-interruptible:
- shard-glk: [INCOMPLETE][351] ([i915#12745] / [i915#4839]) -> [INCOMPLETE][352] ([i915#12745] / [i915#4839] / [i915#6113])
[351]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-glk9/igt@kms_flip@flip-vs-suspend-interruptible.html
[352]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-glk1/igt@kms_flip@flip-vs-suspend-interruptible.html
* igt@kms_flip@plain-flip-fb-recreate:
- shard-dg1: [FAIL][353] ([i915#13734]) -> [FAIL][354] ([i915#10826] / [i915#13734])
[353]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg1-12/igt@kms_flip@plain-flip-fb-recreate.html
[354]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg1-16/igt@kms_flip@plain-flip-fb-recreate.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite:
- shard-dg2: [SKIP][355] ([i915#3458]) -> [SKIP][356] ([i915#10433] / [i915#3458])
[355]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg2-3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite.html
[356]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-cpu:
- shard-dg1: [SKIP][357] -> [SKIP][358] ([i915#4423])
[357]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg1-14/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-cpu.html
[358]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg1-13/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@fbcpsr-suspend:
- shard-dg2: [SKIP][359] ([i915#10433] / [i915#3458]) -> [SKIP][360] ([i915#3458]) +4 other tests skip
[359]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html
[360]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-11/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html
* igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-render:
- shard-dg1: [SKIP][361] ([i915#3458] / [i915#4423]) -> [SKIP][362] ([i915#3458]) +1 other test skip
[361]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg1-17/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-render.html
[362]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg1-17/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-render.html
* igt@kms_hdr@brightness-with-hdr:
- shard-tglu: [SKIP][363] ([i915#12713]) -> [SKIP][364] ([i915#1187] / [i915#12713])
[363]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-tglu-6/igt@kms_hdr@brightness-with-hdr.html
[364]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-tglu-2/igt@kms_hdr@brightness-with-hdr.html
* igt@kms_joiner@invalid-modeset-big-joiner:
- shard-dg1: [SKIP][365] ([i915#10656] / [i915#4423]) -> [SKIP][366] ([i915#10656])
[365]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg1-19/igt@kms_joiner@invalid-modeset-big-joiner.html
[366]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg1-15/igt@kms_joiner@invalid-modeset-big-joiner.html
* igt@kms_plane_lowres@tiling-4:
- shard-dg1: [SKIP][367] ([i915#3555] / [i915#4423]) -> [SKIP][368] ([i915#3555])
[367]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg1-16/igt@kms_plane_lowres@tiling-4.html
[368]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg1-19/igt@kms_plane_lowres@tiling-4.html
* igt@kms_pm_rpm@dpms-lpsp:
- shard-rkl: [SKIP][369] ([i915#9519]) -> [SKIP][370] ([i915#12916])
[369]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-rkl-8/igt@kms_pm_rpm@dpms-lpsp.html
[370]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-rkl-7/igt@kms_pm_rpm@dpms-lpsp.html
* igt@prime_mmap@test_aperture_limit:
- shard-dg2: [WARN][371] ([i915#9351]) -> [INCOMPLETE][372] ([i915#5493])
[371]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg2-2/igt@prime_mmap@test_aperture_limit.html
[372]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-6/igt@prime_mmap@test_aperture_limit.html
* igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem:
- shard-dg2: [CRASH][373] ([i915#9351]) -> [INCOMPLETE][374] ([i915#5493])
[373]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16407/shard-dg2-2/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html
[374]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/shard-dg2-6/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html
[i915#10056]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10056
[i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
[i915#10393]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10393
[i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433
[i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
[i915#10656]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10656
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#10826]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10826
[i915#11078]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11078
[i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
[i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
[i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
[i915#11713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11713
[i915#11808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11808
[i915#11832]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11832
[i915#1187]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1187
[i915#11965]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11965
[i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
[i915#12247]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12247
[i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
[i915#12314]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12314
[i915#12316]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12316
[i915#12388]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12388
[i915#12392]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12392
[i915#12543]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12543
[i915#12713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12713
[i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745
[i915#12755]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12755
[i915#12796]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12796
[i915#12805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12805
[i915#12910]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12910
[i915#12916]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12916
[i915#12917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12917
[i915#12964]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12964
[i915#13046]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13046
[i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049
[i915#13179]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13179
[i915#13193]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13193
[i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356
[i915#13398]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13398
[i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566
[i915#13663]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13663
[i915#13665]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13665
[i915#13688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13688
[i915#13691]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13691
[i915#13707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13707
[i915#13717]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13717
[i915#13723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13723
[i915#13734]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13734
[i915#13783]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13783
[i915#13784]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13784
[i915#13798]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13798
[i915#13809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13809
[i915#13958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13958
[i915#14044]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14044
[i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
[i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839
[i915#2065]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2065
[i915#2437]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
[i915#2587]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2587
[i915#2672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2672
[i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280
[i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
[i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
[i915#3116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3116
[i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291
[i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299
[i915#3323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3323
[i915#3361]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3361
[i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458
[i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539
[i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
[i915#3591]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3591
[i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
[i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638
[i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
[i915#3742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3742
[i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
[i915#3955]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3955
[i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
[i915#4215]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4215
[i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
[i915#4349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4349
[i915#4387]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4387
[i915#4391]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4391
[i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
[i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525
[i915#4537]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4537
[i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
[i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#4771]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4771
[i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812
[i915#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817
[i915#4818]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4818
[i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839
[i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852
[i915#4854]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4854
[i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860
[i915#4879]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4879
[i915#4880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4880
[i915#4958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4958
[i915#5138]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5138
[i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
[i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
[i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289
[i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
[i915#5439]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5439
[i915#5465]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5465
[i915#5493]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5493
[i915#5784]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5784
[i915#5956]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5956
[i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
[i915#6113]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6113
[i915#6188]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6188
[i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301
[i915#6335]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6335
[i915#6344]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6344
[i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
[i915#6805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6805
[i915#6944]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6944
[i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
[i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118
[i915#7173]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7173
[i915#7443]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7443
[i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697
[i915#7707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7707
[i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
[i915#7975]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7975
[i915#8213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8213
[i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
[i915#8289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8289
[i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399
[i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411
[i915#8414]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8414
[i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428
[i915#8516]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8516
[i915#8555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8555
[i915#8623]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8623
[i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
[i915#8709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8709
[i915#8806]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8806
[i915#8810]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8810
[i915#8812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8812
[i915#8813]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8813
[i915#9053]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9053
[i915#9311]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9311
[i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
[i915#9351]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9351
[i915#9412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9412
[i915#9423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9423
[i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424
[i915#9519]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9519
[i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683
[i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685
[i915#9688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9688
[i915#9723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9723
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
[i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812
[i915#9833]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9833
[i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
[i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917
[i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934
Build changes
-------------
* Linux: CI_DRM_16407 -> Patchwork_147544v6
CI-20190529: 20190529
CI_DRM_16407: 95956f65403ec2f6784fca383eecbb54431ddebc @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8315: c85ef0df47b498f999b43dad6a5cc509228f953a @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_147544v6: 95956f65403ec2f6784fca383eecbb54431ddebc @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147544v6/index.html
[-- Attachment #2: Type: text/html, Size: 131638 bytes --]
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 17/19] drm/virtio: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
2025-04-10 16:32 ` [PATCH 17/19] drm/virtio: " Ville Syrjala
@ 2025-04-16 6:44 ` Dmitry Osipenko
0 siblings, 0 replies; 53+ messages in thread
From: Dmitry Osipenko @ 2025-04-16 6:44 UTC (permalink / raw)
To: Ville Syrjala, dri-devel
Cc: intel-gfx, intel-xe, David Airlie, Gerd Hoffmann, Gurchetan Singh,
Chia-I Wu, virtualization
On 4/10/25 19:32, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Plumb the format info from .fb_create() all the way to
> drm_helper_mode_fill_fb_struct() to avoid the redundant
> lookup.
>
> Cc: David Airlie <airlied@redhat.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Dmitry Osipenko <dmitry.osipenko@collabora.com>
> Cc: Gurchetan Singh <gurchetansingh@chromium.org>
> Cc: Chia-I Wu <olvaffe@gmail.com>
> Cc: virtualization@lists.linux.dev
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/virtio/virtgpu_display.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
> index 93763b91bab5..e5805ca646c7 100644
> --- a/drivers/gpu/drm/virtio/virtgpu_display.c
> +++ b/drivers/gpu/drm/virtio/virtgpu_display.c
> @@ -66,6 +66,7 @@ static const struct drm_framebuffer_funcs virtio_gpu_fb_funcs = {
> static int
> virtio_gpu_framebuffer_init(struct drm_device *dev,
> struct virtio_gpu_framebuffer *vgfb,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd,
> struct drm_gem_object *obj)
> {
> @@ -73,7 +74,7 @@ virtio_gpu_framebuffer_init(struct drm_device *dev,
>
> vgfb->base.obj[0] = obj;
>
> - drm_helper_mode_fill_fb_struct(dev, &vgfb->base, NULL, mode_cmd);
> + drm_helper_mode_fill_fb_struct(dev, &vgfb->base, info, mode_cmd);
>
> ret = drm_framebuffer_init(dev, &vgfb->base, &virtio_gpu_fb_funcs);
> if (ret) {
> @@ -315,7 +316,7 @@ virtio_gpu_user_framebuffer_create(struct drm_device *dev,
> return ERR_PTR(-ENOMEM);
> }
>
> - ret = virtio_gpu_framebuffer_init(dev, virtio_gpu_fb, mode_cmd, obj);
> + ret = virtio_gpu_framebuffer_init(dev, virtio_gpu_fb, info, mode_cmd, obj);
> if (ret) {
> kfree(virtio_gpu_fb);
> drm_gem_object_put(obj);
Acked-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
--
Best regards,
Dmitry
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
` (27 preceding siblings ...)
2025-04-12 7:02 ` ✗ i915.CI.Full: failure " Patchwork
@ 2025-07-15 18:21 ` Alex Deucher
2025-07-15 18:22 ` Alex Deucher
28 siblings, 1 reply; 53+ messages in thread
From: Alex Deucher @ 2025-07-15 18:21 UTC (permalink / raw)
To: Ville Syrjala; +Cc: dri-devel, intel-gfx, intel-xe
On Thu, Apr 10, 2025 at 12:44 PM Ville Syrjala
<ville.syrjala@linux.intel.com> wrote:
>
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> I noticed a bunch of redundant (and rather expensive) drm_format_info
> lookups in some traces recently. This series is an attempt to eliminate
> them.
Series is:
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Feel free to take the amdgpu/radeon bits through drm-misc.
Alex
>
> Ville Syrjälä (19):
> drm: Pass pixel_format+modifier to .get_format_info()
> drm: Pass pixel_format+modifier directly to drm_get_format_info()
> drm: Look up the format info earlier
> drm: Pass the format info to .fb_create()
> drm: Allow the caller to pass in the format info to
> drm_helper_mode_fill_fb_struct()
> drm/malidp: Pass along the format info from .fb_create()
> malidp_verify_afbc_framebuffer_size()
> drm/gem: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/gem/afbc: Eliminate redundant drm_get_format_info()
> drm/amdgpu: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/armada: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/exynos: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/gma500: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/i915: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/komeda: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/msm: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/tegra: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/virtio: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm/vmwgfx: Pass along the format info from .fb_create() to
> drm_helper_mode_fill_fb_struct()
> drm: Make passing of format info to drm_helper_mode_fill_fb_struct()
> mandatory
>
> drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 6 ++-
> drivers/gpu/drm/amd/amdgpu/amdgpu_display.h | 1 +
> .../amd/display/amdgpu_dm/amdgpu_dm_plane.c | 4 +-
> .../amd/display/amdgpu_dm/amdgpu_dm_plane.h | 2 +-
> .../arm/display/komeda/komeda_framebuffer.c | 3 +-
> .../arm/display/komeda/komeda_framebuffer.h | 1 +
> drivers/gpu/drm/arm/malidp_drv.c | 12 +++---
> drivers/gpu/drm/armada/armada_fb.c | 12 +++---
> drivers/gpu/drm/armada/armada_fb.h | 4 +-
> drivers/gpu/drm/armada/armada_fbdev.c | 5 ++-
> drivers/gpu/drm/drm_fourcc.c | 7 ++--
> drivers/gpu/drm/drm_framebuffer.c | 27 ++++++-------
> drivers/gpu/drm/drm_gem_framebuffer_helper.c | 38 ++++++++-----------
> drivers/gpu/drm/drm_modeset_helper.c | 4 +-
> drivers/gpu/drm/exynos/exynos_drm_fb.c | 7 ++--
> drivers/gpu/drm/exynos/exynos_drm_fb.h | 1 +
> drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 5 ++-
> drivers/gpu/drm/gma500/fbdev.c | 5 ++-
> drivers/gpu/drm/gma500/framebuffer.c | 14 ++++---
> drivers/gpu/drm/gma500/psb_drv.h | 1 +
> drivers/gpu/drm/i915/display/intel_fb.c | 18 +++++----
> drivers/gpu/drm/i915/display/intel_fb.h | 5 ++-
> drivers/gpu/drm/i915/display/intel_fbdev_fb.c | 6 ++-
> .../drm/i915/display/intel_plane_initial.c | 3 +-
> drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 5 ++-
> drivers/gpu/drm/mediatek/mtk_drm_drv.c | 5 +--
> drivers/gpu/drm/msm/msm_drv.h | 3 +-
> drivers/gpu/drm/msm/msm_fb.c | 18 +++++----
> drivers/gpu/drm/mxsfb/mxsfb_drv.c | 9 +----
> drivers/gpu/drm/nouveau/nouveau_display.c | 6 ++-
> drivers/gpu/drm/nouveau/nouveau_display.h | 1 +
> drivers/gpu/drm/omapdrm/omap_fb.c | 10 ++---
> drivers/gpu/drm/omapdrm/omap_fb.h | 3 +-
> drivers/gpu/drm/qxl/qxl_display.c | 3 +-
> drivers/gpu/drm/radeon/radeon_display.c | 3 +-
> drivers/gpu/drm/radeon/radeon_fbdev.c | 3 +-
> drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c | 3 +-
> drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c | 3 +-
> .../gpu/drm/renesas/shmobile/shmob_drm_kms.c | 3 +-
> drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 11 ++----
> drivers/gpu/drm/tegra/drm.h | 2 +
> drivers/gpu/drm/tegra/fb.c | 7 ++--
> drivers/gpu/drm/tegra/fbdev.c | 4 +-
> drivers/gpu/drm/tests/drm_framebuffer_test.c | 1 +
> drivers/gpu/drm/vc4/vc4_kms.c | 3 +-
> drivers/gpu/drm/virtio/virtgpu_display.c | 6 ++-
> drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 15 +++++---
> drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 1 +
> drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 6 ++-
> drivers/gpu/drm/xe/display/xe_plane_initial.c | 2 +-
> drivers/gpu/drm/xen/xen_drm_front_kms.c | 3 +-
> drivers/gpu/drm/xlnx/zynqmp_kms.c | 3 +-
> include/drm/drm_fourcc.h | 2 +-
> include/drm/drm_gem_framebuffer_helper.h | 6 +++
> include/drm/drm_mode_config.h | 3 +-
> include/drm/drm_modeset_helper.h | 2 +
> 56 files changed, 207 insertions(+), 139 deletions(-)
>
> --
> 2.49.0
>
^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups
2025-07-15 18:21 ` [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Alex Deucher
@ 2025-07-15 18:22 ` Alex Deucher
0 siblings, 0 replies; 53+ messages in thread
From: Alex Deucher @ 2025-07-15 18:22 UTC (permalink / raw)
To: Ville Syrjala; +Cc: dri-devel, intel-gfx, intel-xe
On Tue, Jul 15, 2025 at 2:21 PM Alex Deucher <alexdeucher@gmail.com> wrote:
>
> On Thu, Apr 10, 2025 at 12:44 PM Ville Syrjala
> <ville.syrjala@linux.intel.com> wrote:
> >
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > I noticed a bunch of redundant (and rather expensive) drm_format_info
> > lookups in some traces recently. This series is an attempt to eliminate
> > them.
>
> Series is:
> Acked-by: Alex Deucher <alexander.deucher@amd.com>
> Feel free to take the amdgpu/radeon bits through drm-misc.
Sorry, I replied to the wrong thread. Ignore.
Alex
>
> Alex
>
> >
> > Ville Syrjälä (19):
> > drm: Pass pixel_format+modifier to .get_format_info()
> > drm: Pass pixel_format+modifier directly to drm_get_format_info()
> > drm: Look up the format info earlier
> > drm: Pass the format info to .fb_create()
> > drm: Allow the caller to pass in the format info to
> > drm_helper_mode_fill_fb_struct()
> > drm/malidp: Pass along the format info from .fb_create()
> > malidp_verify_afbc_framebuffer_size()
> > drm/gem: Pass along the format info from .fb_create() to
> > drm_helper_mode_fill_fb_struct()
> > drm/gem/afbc: Eliminate redundant drm_get_format_info()
> > drm/amdgpu: Pass along the format info from .fb_create() to
> > drm_helper_mode_fill_fb_struct()
> > drm/armada: Pass along the format info from .fb_create() to
> > drm_helper_mode_fill_fb_struct()
> > drm/exynos: Pass along the format info from .fb_create() to
> > drm_helper_mode_fill_fb_struct()
> > drm/gma500: Pass along the format info from .fb_create() to
> > drm_helper_mode_fill_fb_struct()
> > drm/i915: Pass along the format info from .fb_create() to
> > drm_helper_mode_fill_fb_struct()
> > drm/komeda: Pass along the format info from .fb_create() to
> > drm_helper_mode_fill_fb_struct()
> > drm/msm: Pass along the format info from .fb_create() to
> > drm_helper_mode_fill_fb_struct()
> > drm/tegra: Pass along the format info from .fb_create() to
> > drm_helper_mode_fill_fb_struct()
> > drm/virtio: Pass along the format info from .fb_create() to
> > drm_helper_mode_fill_fb_struct()
> > drm/vmwgfx: Pass along the format info from .fb_create() to
> > drm_helper_mode_fill_fb_struct()
> > drm: Make passing of format info to drm_helper_mode_fill_fb_struct()
> > mandatory
> >
> > drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 6 ++-
> > drivers/gpu/drm/amd/amdgpu/amdgpu_display.h | 1 +
> > .../amd/display/amdgpu_dm/amdgpu_dm_plane.c | 4 +-
> > .../amd/display/amdgpu_dm/amdgpu_dm_plane.h | 2 +-
> > .../arm/display/komeda/komeda_framebuffer.c | 3 +-
> > .../arm/display/komeda/komeda_framebuffer.h | 1 +
> > drivers/gpu/drm/arm/malidp_drv.c | 12 +++---
> > drivers/gpu/drm/armada/armada_fb.c | 12 +++---
> > drivers/gpu/drm/armada/armada_fb.h | 4 +-
> > drivers/gpu/drm/armada/armada_fbdev.c | 5 ++-
> > drivers/gpu/drm/drm_fourcc.c | 7 ++--
> > drivers/gpu/drm/drm_framebuffer.c | 27 ++++++-------
> > drivers/gpu/drm/drm_gem_framebuffer_helper.c | 38 ++++++++-----------
> > drivers/gpu/drm/drm_modeset_helper.c | 4 +-
> > drivers/gpu/drm/exynos/exynos_drm_fb.c | 7 ++--
> > drivers/gpu/drm/exynos/exynos_drm_fb.h | 1 +
> > drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 5 ++-
> > drivers/gpu/drm/gma500/fbdev.c | 5 ++-
> > drivers/gpu/drm/gma500/framebuffer.c | 14 ++++---
> > drivers/gpu/drm/gma500/psb_drv.h | 1 +
> > drivers/gpu/drm/i915/display/intel_fb.c | 18 +++++----
> > drivers/gpu/drm/i915/display/intel_fb.h | 5 ++-
> > drivers/gpu/drm/i915/display/intel_fbdev_fb.c | 6 ++-
> > .../drm/i915/display/intel_plane_initial.c | 3 +-
> > drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 5 ++-
> > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 5 +--
> > drivers/gpu/drm/msm/msm_drv.h | 3 +-
> > drivers/gpu/drm/msm/msm_fb.c | 18 +++++----
> > drivers/gpu/drm/mxsfb/mxsfb_drv.c | 9 +----
> > drivers/gpu/drm/nouveau/nouveau_display.c | 6 ++-
> > drivers/gpu/drm/nouveau/nouveau_display.h | 1 +
> > drivers/gpu/drm/omapdrm/omap_fb.c | 10 ++---
> > drivers/gpu/drm/omapdrm/omap_fb.h | 3 +-
> > drivers/gpu/drm/qxl/qxl_display.c | 3 +-
> > drivers/gpu/drm/radeon/radeon_display.c | 3 +-
> > drivers/gpu/drm/radeon/radeon_fbdev.c | 3 +-
> > drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c | 3 +-
> > drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c | 3 +-
> > .../gpu/drm/renesas/shmobile/shmob_drm_kms.c | 3 +-
> > drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 11 ++----
> > drivers/gpu/drm/tegra/drm.h | 2 +
> > drivers/gpu/drm/tegra/fb.c | 7 ++--
> > drivers/gpu/drm/tegra/fbdev.c | 4 +-
> > drivers/gpu/drm/tests/drm_framebuffer_test.c | 1 +
> > drivers/gpu/drm/vc4/vc4_kms.c | 3 +-
> > drivers/gpu/drm/virtio/virtgpu_display.c | 6 ++-
> > drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 15 +++++---
> > drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 1 +
> > drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 6 ++-
> > drivers/gpu/drm/xe/display/xe_plane_initial.c | 2 +-
> > drivers/gpu/drm/xen/xen_drm_front_kms.c | 3 +-
> > drivers/gpu/drm/xlnx/zynqmp_kms.c | 3 +-
> > include/drm/drm_fourcc.h | 2 +-
> > include/drm/drm_gem_framebuffer_helper.h | 6 +++
> > include/drm/drm_mode_config.h | 3 +-
> > include/drm/drm_modeset_helper.h | 2 +
> > 56 files changed, 207 insertions(+), 139 deletions(-)
> >
> > --
> > 2.49.0
> >
^ permalink raw reply [flat|nested] 53+ messages in thread
end of thread, other threads:[~2025-07-15 18:22 UTC | newest]
Thread overview: 53+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
2025-04-10 16:32 ` [PATCH 01/19] drm: Pass pixel_format+modifier to .get_format_info() Ville Syrjala
2025-04-10 19:27 ` Laurent Pinchart
2025-04-11 6:47 ` Ville Syrjälä
2025-04-11 19:19 ` [PATCH v2 " Ville Syrjala
2025-04-10 16:32 ` [PATCH 02/19] drm: Pass pixel_format+modifier directly to drm_get_format_info() Ville Syrjala
2025-04-10 19:31 ` Laurent Pinchart
2025-04-10 19:43 ` kernel test robot
2025-04-11 7:23 ` Thomas Zimmermann
2025-04-11 19:27 ` [PATCH v2 " Ville Syrjala
2025-04-10 16:32 ` [PATCH 03/19] drm: Look up the format info earlier Ville Syrjala
2025-04-10 19:33 ` Laurent Pinchart
2025-04-11 7:01 ` Ville Syrjälä
2025-04-11 7:18 ` Thomas Zimmermann
2025-04-11 19:27 ` [PATCH v2 " Ville Syrjala
2025-04-10 16:32 ` [PATCH 04/19] drm: Pass the format info to .fb_create() Ville Syrjala
2025-04-10 19:37 ` Laurent Pinchart
2025-04-10 21:26 ` kernel test robot
2025-04-11 6:36 ` Geert Uytterhoeven
2025-04-11 19:29 ` [PATCH v2 " Ville Syrjala
2025-04-10 16:32 ` [PATCH 05/19] drm: Allow the caller to pass in the format info to drm_helper_mode_fill_fb_struct() Ville Syrjala
2025-04-10 19:38 ` Laurent Pinchart
2025-04-10 16:32 ` [PATCH 06/19] drm/malidp: Pass along the format info from .fb_create() malidp_verify_afbc_framebuffer_size() Ville Syrjala
2025-04-10 16:32 ` [PATCH 07/19] drm/gem: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() Ville Syrjala
2025-04-10 19:39 ` Laurent Pinchart
2025-04-10 22:58 ` kernel test robot
2025-04-11 19:31 ` [PATCH v2 " Ville Syrjala
2025-04-10 16:32 ` [PATCH 08/19] drm/gem/afbc: Eliminate redundant drm_get_format_info() Ville Syrjala
2025-04-10 16:32 ` [PATCH 09/19] drm/amdgpu: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() Ville Syrjala
2025-04-10 16:32 ` [PATCH 10/19] drm/armada: " Ville Syrjala
2025-04-10 16:32 ` [PATCH 11/19] drm/exynos: " Ville Syrjala
2025-04-10 16:32 ` [PATCH 12/19] drm/gma500: " Ville Syrjala
2025-04-10 16:32 ` [PATCH 13/19] drm/i915: " Ville Syrjala
2025-04-10 16:32 ` [PATCH 14/19] drm/komeda: " Ville Syrjala
2025-04-10 16:32 ` [PATCH 15/19] drm/msm: " Ville Syrjala
2025-04-10 19:28 ` Dmitry Baryshkov
2025-04-10 16:32 ` [PATCH 16/19] drm/tegra: " Ville Syrjala
2025-04-10 16:32 ` [PATCH 17/19] drm/virtio: " Ville Syrjala
2025-04-16 6:44 ` Dmitry Osipenko
2025-04-10 16:32 ` [PATCH 18/19] drm/vmwgfx: " Ville Syrjala
2025-04-10 16:32 ` [PATCH 19/19] drm: Make passing of format info to drm_helper_mode_fill_fb_struct() mandatory Ville Syrjala
2025-04-10 19:40 ` Laurent Pinchart
2025-04-10 17:07 ` ✗ Fi.CI.CHECKPATCH: warning for drm: Eliminate redundant drm_format_info lookups Patchwork
2025-04-10 17:07 ` ✗ Fi.CI.SPARSE: " Patchwork
2025-04-10 17:27 ` ✓ i915.CI.BAT: success " Patchwork
2025-04-10 22:45 ` ✗ i915.CI.Full: failure " Patchwork
2025-04-11 7:30 ` [PATCH 00/19] " Thomas Zimmermann
2025-04-11 20:06 ` ✗ Fi.CI.CHECKPATCH: warning for drm: Eliminate redundant drm_format_info lookups (rev6) Patchwork
2025-04-11 20:06 ` ✗ Fi.CI.SPARSE: " Patchwork
2025-04-12 3:53 ` ✓ i915.CI.BAT: success " Patchwork
2025-04-12 7:02 ` ✗ i915.CI.Full: failure " Patchwork
2025-07-15 18:21 ` [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Alex Deucher
2025-07-15 18:22 ` Alex Deucher
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox