* [PATCH 0/5] drm/{i915,xe}: move bo stuff to parent interface
@ 2026-03-11 14:18 Jani Nikula
2026-03-11 14:18 ` [PATCH 1/5] drm/i915: move i915 specific bo implementation to i915 Jani Nikula
` (6 more replies)
0 siblings, 7 replies; 17+ messages in thread
From: Jani Nikula @ 2026-03-11 14:18 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: jani.nikula
Jani Nikula (5):
drm/i915: move i915 specific bo implementation to i915
drm/xe: rename intel_bo.c to xe_display_bo.c
drm/{i915,xe}/bo: move display bo calls to parent interface
drm/i915/fb: make intel_fb_bo.c less dependent on display
drm/{i915,xe}: move framebuffer bo to parent interface
drivers/gpu/drm/i915/Makefile | 2 +-
drivers/gpu/drm/i915/display/intel_bo.c | 66 ++++++--
drivers/gpu/drm/i915/display/intel_bo.h | 9 +
drivers/gpu/drm/i915/display/intel_fb.c | 12 +-
drivers/gpu/drm/i915/display/intel_fb_bo.c | 101 ------------
drivers/gpu/drm/i915/display/intel_fb_bo.h | 25 ---
drivers/gpu/drm/i915/i915_bo.c | 156 ++++++++++++++++++
drivers/gpu/drm/i915/i915_bo.h | 9 +
drivers/gpu/drm/i915/i915_driver.c | 2 +
drivers/gpu/drm/xe/Makefile | 4 +-
drivers/gpu/drm/xe/display/intel_bo.c | 53 ------
drivers/gpu/drm/xe/display/xe_display.c | 2 +
.../{intel_fb_bo.c => xe_display_bo.c} | 63 ++++---
drivers/gpu/drm/xe/display/xe_display_bo.h | 9 +
include/drm/intel/display_parent_interface.h | 22 +++
15 files changed, 311 insertions(+), 224 deletions(-)
delete mode 100644 drivers/gpu/drm/i915/display/intel_fb_bo.c
delete mode 100644 drivers/gpu/drm/i915/display/intel_fb_bo.h
create mode 100644 drivers/gpu/drm/i915/i915_bo.c
create mode 100644 drivers/gpu/drm/i915/i915_bo.h
delete mode 100644 drivers/gpu/drm/xe/display/intel_bo.c
rename drivers/gpu/drm/xe/display/{intel_fb_bo.c => xe_display_bo.c} (57%)
create mode 100644 drivers/gpu/drm/xe/display/xe_display_bo.h
--
2.47.3
^ permalink raw reply [flat|nested] 17+ messages in thread* [PATCH 1/5] drm/i915: move i915 specific bo implementation to i915 2026-03-11 14:18 [PATCH 0/5] drm/{i915,xe}: move bo stuff to parent interface Jani Nikula @ 2026-03-11 14:18 ` Jani Nikula 2026-03-12 3:39 ` Kandpal, Suraj 2026-03-11 14:18 ` [PATCH 2/5] drm/xe: rename intel_bo.c to xe_display_bo.c Jani Nikula ` (5 subsequent siblings) 6 siblings, 1 reply; 17+ messages in thread From: Jani Nikula @ 2026-03-11 14:18 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: jani.nikula The bo interface implementation is different for both i915 and xe. Move the i915 specific implementation from display to i915 core. Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- drivers/gpu/drm/i915/Makefile | 2 +- drivers/gpu/drm/i915/{display/intel_bo.c => i915_bo.c} | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) rename drivers/gpu/drm/i915/{display/intel_bo.c => i915_bo.c} (97%) diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile index 7e9d9b666511..52a82608b8b1 100644 --- a/drivers/gpu/drm/i915/Makefile +++ b/drivers/gpu/drm/i915/Makefile @@ -76,6 +76,7 @@ i915-$(CONFIG_PERF_EVENTS) += \ # core display adaptation i915-y += \ + i915_bo.o \ i915_display_pc8.o \ i915_dpt.o \ i915_dsb_buffer.o \ @@ -239,7 +240,6 @@ i915-y += \ display/intel_atomic.o \ display/intel_audio.o \ display/intel_bios.o \ - display/intel_bo.o \ display/intel_bw.o \ display/intel_casf.o \ display/intel_cdclk.o \ diff --git a/drivers/gpu/drm/i915/display/intel_bo.c b/drivers/gpu/drm/i915/i915_bo.c similarity index 97% rename from drivers/gpu/drm/i915/display/intel_bo.c rename to drivers/gpu/drm/i915/i915_bo.c index 2b6eaec351d8..21a4533ba341 100644 --- a/drivers/gpu/drm/i915/display/intel_bo.c +++ b/drivers/gpu/drm/i915/i915_bo.c @@ -3,12 +3,13 @@ #include <drm/drm_panic.h> +#include "display/intel_bo.h" + #include "gem/i915_gem_mman.h" #include "gem/i915_gem_object.h" #include "gem/i915_gem_object_frontbuffer.h" #include "pxp/intel_pxp.h" #include "i915_debugfs.h" -#include "intel_bo.h" bool intel_bo_is_tiled(struct drm_gem_object *obj) { -- 2.47.3 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* RE: [PATCH 1/5] drm/i915: move i915 specific bo implementation to i915 2026-03-11 14:18 ` [PATCH 1/5] drm/i915: move i915 specific bo implementation to i915 Jani Nikula @ 2026-03-12 3:39 ` Kandpal, Suraj 2026-03-12 3:52 ` Kandpal, Suraj 0 siblings, 1 reply; 17+ messages in thread From: Kandpal, Suraj @ 2026-03-12 3:39 UTC (permalink / raw) To: Nikula, Jani, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org Cc: Nikula, Jani > Subject: [PATCH 1/5] drm/i915: move i915 specific bo implementation to i915 > > The bo interface implementation is different for both i915 and xe. Move the > i915 specific implementation from display to i915 core. > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> LGTM, Reviewed-by : Suraj Kandpal <suraj.kandpal@intel.com> > --- > drivers/gpu/drm/i915/Makefile | 2 +- > drivers/gpu/drm/i915/{display/intel_bo.c => i915_bo.c} | 3 ++- > 2 files changed, 3 insertions(+), 2 deletions(-) rename > drivers/gpu/drm/i915/{display/intel_bo.c => i915_bo.c} (97%) > > diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile > index 7e9d9b666511..52a82608b8b1 100644 > --- a/drivers/gpu/drm/i915/Makefile > +++ b/drivers/gpu/drm/i915/Makefile > @@ -76,6 +76,7 @@ i915-$(CONFIG_PERF_EVENTS) += \ > > # core display adaptation > i915-y += \ > + i915_bo.o \ > i915_display_pc8.o \ > i915_dpt.o \ > i915_dsb_buffer.o \ > @@ -239,7 +240,6 @@ i915-y += \ > display/intel_atomic.o \ > display/intel_audio.o \ > display/intel_bios.o \ > - display/intel_bo.o \ > display/intel_bw.o \ > display/intel_casf.o \ > display/intel_cdclk.o \ > diff --git a/drivers/gpu/drm/i915/display/intel_bo.c > b/drivers/gpu/drm/i915/i915_bo.c similarity index 97% rename from > drivers/gpu/drm/i915/display/intel_bo.c > rename to drivers/gpu/drm/i915/i915_bo.c index > 2b6eaec351d8..21a4533ba341 100644 > --- a/drivers/gpu/drm/i915/display/intel_bo.c > +++ b/drivers/gpu/drm/i915/i915_bo.c > @@ -3,12 +3,13 @@ > > #include <drm/drm_panic.h> > > +#include "display/intel_bo.h" > + > #include "gem/i915_gem_mman.h" > #include "gem/i915_gem_object.h" > #include "gem/i915_gem_object_frontbuffer.h" > #include "pxp/intel_pxp.h" > #include "i915_debugfs.h" > -#include "intel_bo.h" > > bool intel_bo_is_tiled(struct drm_gem_object *obj) { > -- > 2.47.3 ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [PATCH 1/5] drm/i915: move i915 specific bo implementation to i915 2026-03-12 3:39 ` Kandpal, Suraj @ 2026-03-12 3:52 ` Kandpal, Suraj 0 siblings, 0 replies; 17+ messages in thread From: Kandpal, Suraj @ 2026-03-12 3:52 UTC (permalink / raw) To: Nikula, Jani, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org Cc: Nikula, Jani > -----Original Message----- > From: Kandpal, Suraj > Sent: Thursday, March 12, 2026 9:09 AM > To: 'Jani Nikula' <jani.nikula@intel.com>; intel-gfx@lists.freedesktop.org; > intel-xe@lists.freedesktop.org > Cc: Nikula, Jani <jani.nikula@intel.com> > Subject: RE: [PATCH 1/5] drm/i915: move i915 specific bo implementation to > i915 > > > Subject: [PATCH 1/5] drm/i915: move i915 specific bo implementation to > > i915 > > > > The bo interface implementation is different for both i915 and xe. > > Move the > > i915 specific implementation from display to i915 core. > > > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> > > Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com> > > --- > > drivers/gpu/drm/i915/Makefile | 2 +- > > drivers/gpu/drm/i915/{display/intel_bo.c => i915_bo.c} | 3 ++- > > 2 files changed, 3 insertions(+), 2 deletions(-) rename > > drivers/gpu/drm/i915/{display/intel_bo.c => i915_bo.c} (97%) > > > > diff --git a/drivers/gpu/drm/i915/Makefile > > b/drivers/gpu/drm/i915/Makefile index 7e9d9b666511..52a82608b8b1 > > 100644 > > --- a/drivers/gpu/drm/i915/Makefile > > +++ b/drivers/gpu/drm/i915/Makefile > > @@ -76,6 +76,7 @@ i915-$(CONFIG_PERF_EVENTS) += \ > > > > # core display adaptation > > i915-y += \ > > + i915_bo.o \ > > i915_display_pc8.o \ > > i915_dpt.o \ > > i915_dsb_buffer.o \ > > @@ -239,7 +240,6 @@ i915-y += \ > > display/intel_atomic.o \ > > display/intel_audio.o \ > > display/intel_bios.o \ > > - display/intel_bo.o \ > > display/intel_bw.o \ > > display/intel_casf.o \ > > display/intel_cdclk.o \ > > diff --git a/drivers/gpu/drm/i915/display/intel_bo.c > > b/drivers/gpu/drm/i915/i915_bo.c similarity index 97% rename from > > drivers/gpu/drm/i915/display/intel_bo.c > > rename to drivers/gpu/drm/i915/i915_bo.c index > > 2b6eaec351d8..21a4533ba341 100644 > > --- a/drivers/gpu/drm/i915/display/intel_bo.c > > +++ b/drivers/gpu/drm/i915/i915_bo.c > > @@ -3,12 +3,13 @@ > > > > #include <drm/drm_panic.h> > > > > +#include "display/intel_bo.h" > > + > > #include "gem/i915_gem_mman.h" > > #include "gem/i915_gem_object.h" > > #include "gem/i915_gem_object_frontbuffer.h" > > #include "pxp/intel_pxp.h" > > #include "i915_debugfs.h" > > -#include "intel_bo.h" > > > > bool intel_bo_is_tiled(struct drm_gem_object *obj) { > > -- > > 2.47.3 ^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 2/5] drm/xe: rename intel_bo.c to xe_display_bo.c 2026-03-11 14:18 [PATCH 0/5] drm/{i915,xe}: move bo stuff to parent interface Jani Nikula 2026-03-11 14:18 ` [PATCH 1/5] drm/i915: move i915 specific bo implementation to i915 Jani Nikula @ 2026-03-11 14:18 ` Jani Nikula 2026-03-12 3:40 ` Kandpal, Suraj 2026-03-11 14:18 ` [PATCH 3/5] drm/{i915, xe}/bo: move display bo calls to parent interface Jani Nikula ` (4 subsequent siblings) 6 siblings, 1 reply; 17+ messages in thread From: Jani Nikula @ 2026-03-11 14:18 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: jani.nikula Follow the xe_ prefixed file naming in xe. With xe_bo.[ch] already being a thing in xe core, use xe_display_bo.c. Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- drivers/gpu/drm/xe/Makefile | 2 +- drivers/gpu/drm/xe/display/{intel_bo.c => xe_display_bo.c} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename drivers/gpu/drm/xe/display/{intel_bo.c => xe_display_bo.c} (100%) diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile index 50608312bc66..aeede4423680 100644 --- a/drivers/gpu/drm/xe/Makefile +++ b/drivers/gpu/drm/xe/Makefile @@ -211,10 +211,10 @@ $(obj)/i915-display/%.o: $(srctree)/drivers/gpu/drm/i915/display/%.c FORCE # Display code specific to xe xe-$(CONFIG_DRM_XE_DISPLAY) += \ - display/intel_bo.o \ display/intel_fb_bo.o \ display/intel_fbdev_fb.o \ display/xe_display.o \ + display/xe_display_bo.o \ display/xe_display_pcode.o \ display/xe_display_rpm.o \ display/xe_display_wa.o \ diff --git a/drivers/gpu/drm/xe/display/intel_bo.c b/drivers/gpu/drm/xe/display/xe_display_bo.c similarity index 100% rename from drivers/gpu/drm/xe/display/intel_bo.c rename to drivers/gpu/drm/xe/display/xe_display_bo.c -- 2.47.3 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* RE: [PATCH 2/5] drm/xe: rename intel_bo.c to xe_display_bo.c 2026-03-11 14:18 ` [PATCH 2/5] drm/xe: rename intel_bo.c to xe_display_bo.c Jani Nikula @ 2026-03-12 3:40 ` Kandpal, Suraj 0 siblings, 0 replies; 17+ messages in thread From: Kandpal, Suraj @ 2026-03-12 3:40 UTC (permalink / raw) To: Nikula, Jani, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org Cc: Nikula, Jani > Subject: [PATCH 2/5] drm/xe: rename intel_bo.c to xe_display_bo.c > > Follow the xe_ prefixed file naming in xe. With xe_bo.[ch] already being a > thing in xe core, use xe_display_bo.c. > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> LGTM, Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com> > --- > drivers/gpu/drm/xe/Makefile | 2 +- > drivers/gpu/drm/xe/display/{intel_bo.c => xe_display_bo.c} | 0 > 2 files changed, 1 insertion(+), 1 deletion(-) rename > drivers/gpu/drm/xe/display/{intel_bo.c => xe_display_bo.c} (100%) > > diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile > index 50608312bc66..aeede4423680 100644 > --- a/drivers/gpu/drm/xe/Makefile > +++ b/drivers/gpu/drm/xe/Makefile > @@ -211,10 +211,10 @@ $(obj)/i915-display/%.o: > $(srctree)/drivers/gpu/drm/i915/display/%.c FORCE > > # Display code specific to xe > xe-$(CONFIG_DRM_XE_DISPLAY) += \ > - display/intel_bo.o \ > display/intel_fb_bo.o \ > display/intel_fbdev_fb.o \ > display/xe_display.o \ > + display/xe_display_bo.o \ > display/xe_display_pcode.o \ > display/xe_display_rpm.o \ > display/xe_display_wa.o \ > diff --git a/drivers/gpu/drm/xe/display/intel_bo.c > b/drivers/gpu/drm/xe/display/xe_display_bo.c > similarity index 100% > rename from drivers/gpu/drm/xe/display/intel_bo.c > rename to drivers/gpu/drm/xe/display/xe_display_bo.c > -- > 2.47.3 ^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 3/5] drm/{i915, xe}/bo: move display bo calls to parent interface 2026-03-11 14:18 [PATCH 0/5] drm/{i915,xe}: move bo stuff to parent interface Jani Nikula 2026-03-11 14:18 ` [PATCH 1/5] drm/i915: move i915 specific bo implementation to i915 Jani Nikula 2026-03-11 14:18 ` [PATCH 2/5] drm/xe: rename intel_bo.c to xe_display_bo.c Jani Nikula @ 2026-03-11 14:18 ` Jani Nikula 2026-03-12 3:47 ` Kandpal, Suraj 2026-03-11 14:18 ` [PATCH 4/5] drm/i915/fb: make intel_fb_bo.c less dependent on display Jani Nikula ` (3 subsequent siblings) 6 siblings, 1 reply; 17+ messages in thread From: Jani Nikula @ 2026-03-11 14:18 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: jani.nikula Continue i915 and xe separation from display by moving the bo calls to the display parent interface. Instead of adding all these functions to intel_parent.[ch], reuse the now vacated intel_bo.[ch], and avoid mass renames to calls of these functions. This is similar to intel_display_rpm.[ch]. Make many of the hooks optional to avoid having to implement dummy functions in xe. Indeed now we can remove many of the existing dummy functions. Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/display/intel_bo.c | 66 ++++++++++++++++++++ drivers/gpu/drm/i915/i915_bo.c | 32 +++++++--- drivers/gpu/drm/i915/i915_bo.h | 9 +++ drivers/gpu/drm/i915/i915_driver.c | 2 + drivers/gpu/drm/xe/Makefile | 1 + drivers/gpu/drm/xe/display/xe_display.c | 2 + drivers/gpu/drm/xe/display/xe_display_bo.c | 45 +++---------- drivers/gpu/drm/xe/display/xe_display_bo.h | 9 +++ include/drm/intel/display_parent_interface.h | 16 +++++ 10 files changed, 138 insertions(+), 45 deletions(-) create mode 100644 drivers/gpu/drm/i915/display/intel_bo.c create mode 100644 drivers/gpu/drm/i915/i915_bo.h create mode 100644 drivers/gpu/drm/xe/display/xe_display_bo.h diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile index 52a82608b8b1..425933fb26a5 100644 --- a/drivers/gpu/drm/i915/Makefile +++ b/drivers/gpu/drm/i915/Makefile @@ -240,6 +240,7 @@ i915-y += \ display/intel_atomic.o \ display/intel_audio.o \ display/intel_bios.o \ + display/intel_bo.o \ display/intel_bw.o \ display/intel_casf.o \ display/intel_cdclk.o \ diff --git a/drivers/gpu/drm/i915/display/intel_bo.c b/drivers/gpu/drm/i915/display/intel_bo.c new file mode 100644 index 000000000000..e356ab4e0640 --- /dev/null +++ b/drivers/gpu/drm/i915/display/intel_bo.c @@ -0,0 +1,66 @@ +// SPDX-License-Identifier: MIT +/* Copyright © 2026 Intel Corporation */ + +#include <drm/drm_gem.h> +#include <drm/intel/display_parent_interface.h> + +#include "intel_bo.h" +#include "intel_display_core.h" +#include "intel_display_types.h" + +bool intel_bo_is_tiled(struct drm_gem_object *obj) +{ + struct intel_display *display = to_intel_display(obj->dev); + + return display->parent->bo->is_tiled && display->parent->bo->is_tiled(obj); +} + +bool intel_bo_is_userptr(struct drm_gem_object *obj) +{ + struct intel_display *display = to_intel_display(obj->dev); + + return display->parent->bo->is_userptr && display->parent->bo->is_userptr(obj); +} + +bool intel_bo_is_shmem(struct drm_gem_object *obj) +{ + struct intel_display *display = to_intel_display(obj->dev); + + return display->parent->bo->is_shmem && display->parent->bo->is_shmem(obj); +} + +bool intel_bo_is_protected(struct drm_gem_object *obj) +{ + struct intel_display *display = to_intel_display(obj->dev); + + return display->parent->bo->is_protected(obj); +} + +int intel_bo_key_check(struct drm_gem_object *obj) +{ + struct intel_display *display = to_intel_display(obj->dev); + + return display->parent->bo->key_check(obj); +} + +int intel_bo_fb_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) +{ + struct intel_display *display = to_intel_display(obj->dev); + + return display->parent->bo->fb_mmap(obj, vma); +} + +int intel_bo_read_from_page(struct drm_gem_object *obj, u64 offset, void *dst, int size) +{ + struct intel_display *display = to_intel_display(obj->dev); + + return display->parent->bo->read_from_page(obj, offset, dst, size); +} + +void intel_bo_describe(struct seq_file *m, struct drm_gem_object *obj) +{ + struct intel_display *display = to_intel_display(obj->dev); + + if (display->parent->bo->describe) + display->parent->bo->describe(m, obj); +} diff --git a/drivers/gpu/drm/i915/i915_bo.c b/drivers/gpu/drm/i915/i915_bo.c index 21a4533ba341..04fc0e3b7ef6 100644 --- a/drivers/gpu/drm/i915/i915_bo.c +++ b/drivers/gpu/drm/i915/i915_bo.c @@ -2,51 +2,63 @@ /* Copyright © 2024 Intel Corporation */ #include <drm/drm_panic.h> - -#include "display/intel_bo.h" +#include <drm/intel/display_parent_interface.h> #include "gem/i915_gem_mman.h" #include "gem/i915_gem_object.h" #include "gem/i915_gem_object_frontbuffer.h" #include "pxp/intel_pxp.h" + +#include "i915_bo.h" #include "i915_debugfs.h" -bool intel_bo_is_tiled(struct drm_gem_object *obj) +static bool i915_bo_is_tiled(struct drm_gem_object *obj) { return i915_gem_object_is_tiled(to_intel_bo(obj)); } -bool intel_bo_is_userptr(struct drm_gem_object *obj) +static bool i915_bo_is_userptr(struct drm_gem_object *obj) { return i915_gem_object_is_userptr(to_intel_bo(obj)); } -bool intel_bo_is_shmem(struct drm_gem_object *obj) +static bool i915_bo_is_shmem(struct drm_gem_object *obj) { return i915_gem_object_is_shmem(to_intel_bo(obj)); } -bool intel_bo_is_protected(struct drm_gem_object *obj) +static bool i915_bo_is_protected(struct drm_gem_object *obj) { return i915_gem_object_is_protected(to_intel_bo(obj)); } -int intel_bo_key_check(struct drm_gem_object *obj) +static int i915_bo_key_check(struct drm_gem_object *obj) { return intel_pxp_key_check(obj, false); } -int intel_bo_fb_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) +static int i915_bo_fb_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) { return i915_gem_fb_mmap(to_intel_bo(obj), vma); } -int intel_bo_read_from_page(struct drm_gem_object *obj, u64 offset, void *dst, int size) +static int i915_bo_read_from_page(struct drm_gem_object *obj, u64 offset, void *dst, int size) { return i915_gem_object_read_from_page(to_intel_bo(obj), offset, dst, size); } -void intel_bo_describe(struct seq_file *m, struct drm_gem_object *obj) +static void i915_bo_describe(struct seq_file *m, struct drm_gem_object *obj) { i915_debugfs_describe_obj(m, to_intel_bo(obj)); } + +const struct intel_display_bo_interface i915_display_bo_interface = { + .is_tiled = i915_bo_is_tiled, + .is_userptr = i915_bo_is_userptr, + .is_shmem = i915_bo_is_shmem, + .is_protected = i915_bo_is_protected, + .key_check = i915_bo_key_check, + .fb_mmap = i915_bo_fb_mmap, + .read_from_page = i915_bo_read_from_page, + .describe = i915_bo_describe, +}; diff --git a/drivers/gpu/drm/i915/i915_bo.h b/drivers/gpu/drm/i915/i915_bo.h new file mode 100644 index 000000000000..57255d052dd9 --- /dev/null +++ b/drivers/gpu/drm/i915/i915_bo.h @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ +/* Copyright © 2026 Intel Corporation */ + +#ifndef __I915_BO_H__ +#define __I915_BO_H__ + +extern const struct intel_display_bo_interface i915_display_bo_interface; + +#endif /* __I915_BO_H__ */ diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c index 7a8c59a8c865..385a634c3ed0 100644 --- a/drivers/gpu/drm/i915/i915_driver.c +++ b/drivers/gpu/drm/i915/i915_driver.c @@ -90,6 +90,7 @@ #include "pxp/intel_pxp_debugfs.h" #include "pxp/intel_pxp_pm.h" +#include "i915_bo.h" #include "i915_debugfs.h" #include "i915_display_pc8.h" #include "i915_dpt.h" @@ -765,6 +766,7 @@ static bool vgpu_active(struct drm_device *drm) } static const struct intel_display_parent_interface parent = { + .bo = &i915_display_bo_interface, .dpt = &i915_display_dpt_interface, .dsb = &i915_display_dsb_interface, .frontbuffer = &i915_display_frontbuffer_interface, diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile index aeede4423680..b16ed1ce2a85 100644 --- a/drivers/gpu/drm/xe/Makefile +++ b/drivers/gpu/drm/xe/Makefile @@ -235,6 +235,7 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \ i915-display/intel_audio.o \ i915-display/intel_backlight.o \ i915-display/intel_bios.o \ + i915-display/intel_bo.o \ i915-display/intel_bw.o \ i915-display/intel_casf.o \ i915-display/intel_cdclk.o \ diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c index f1e1889a52d3..49b6f98e7391 100644 --- a/drivers/gpu/drm/xe/display/xe_display.c +++ b/drivers/gpu/drm/xe/display/xe_display.c @@ -35,6 +35,7 @@ #include "intel_hotplug.h" #include "intel_opregion.h" #include "skl_watermark.h" +#include "xe_display_bo.h" #include "xe_display_pcode.h" #include "xe_display_rpm.h" #include "xe_dsb_buffer.h" @@ -541,6 +542,7 @@ static const struct intel_display_irq_interface xe_display_irq_interface = { }; static const struct intel_display_parent_interface parent = { + .bo = &xe_display_bo_interface, .dsb = &xe_display_dsb_interface, .frontbuffer = &xe_display_frontbuffer_interface, .hdcp = &xe_display_hdcp_interface, diff --git a/drivers/gpu/drm/xe/display/xe_display_bo.c b/drivers/gpu/drm/xe/display/xe_display_bo.c index fa1f2c796b81..a53ba3f247ec 100644 --- a/drivers/gpu/drm/xe/display/xe_display_bo.c +++ b/drivers/gpu/drm/xe/display/xe_display_bo.c @@ -2,52 +2,27 @@ /* Copyright © 2024 Intel Corporation */ #include <drm/drm_gem.h> +#include <drm/intel/display_parent_interface.h> -#include "intel_bo.h" -#include "intel_frontbuffer.h" #include "xe_bo.h" +#include "xe_display_bo.h" #include "xe_pxp.h" -bool intel_bo_is_tiled(struct drm_gem_object *obj) -{ - /* legacy tiling is unused */ - return false; -} - -bool intel_bo_is_userptr(struct drm_gem_object *obj) -{ - /* xe does not have userptr bos */ - return false; -} - -bool intel_bo_is_shmem(struct drm_gem_object *obj) -{ - return false; -} - -bool intel_bo_is_protected(struct drm_gem_object *obj) +static bool xe_display_bo_is_protected(struct drm_gem_object *obj) { return xe_bo_is_protected(gem_to_xe_bo(obj)); } -int intel_bo_key_check(struct drm_gem_object *obj) -{ - return xe_pxp_obj_key_check(obj); -} - -int intel_bo_fb_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) -{ - return drm_gem_prime_mmap(obj, vma); -} - -int intel_bo_read_from_page(struct drm_gem_object *obj, u64 offset, void *dst, int size) +static int xe_display_bo_read_from_page(struct drm_gem_object *obj, u64 offset, void *dst, int size) { struct xe_bo *bo = gem_to_xe_bo(obj); return xe_bo_read(bo, offset, dst, size); } -void intel_bo_describe(struct seq_file *m, struct drm_gem_object *obj) -{ - /* FIXME */ -} +const struct intel_display_bo_interface xe_display_bo_interface = { + .is_protected = xe_display_bo_is_protected, + .key_check = xe_pxp_obj_key_check, + .fb_mmap = drm_gem_prime_mmap, + .read_from_page = xe_display_bo_read_from_page, +}; diff --git a/drivers/gpu/drm/xe/display/xe_display_bo.h b/drivers/gpu/drm/xe/display/xe_display_bo.h new file mode 100644 index 000000000000..6879c104b0b1 --- /dev/null +++ b/drivers/gpu/drm/xe/display/xe_display_bo.h @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ +/* Copyright © 2026 Intel Corporation */ + +#ifndef __XE_DISPLAY_BO_H__ +#define __XE_DISPLAY_BO_H__ + +extern const struct intel_display_bo_interface xe_display_bo_interface; + +#endif diff --git a/include/drm/intel/display_parent_interface.h b/include/drm/intel/display_parent_interface.h index c044472b9400..2b53d12b0e0a 100644 --- a/include/drm/intel/display_parent_interface.h +++ b/include/drm/intel/display_parent_interface.h @@ -23,9 +23,22 @@ struct intel_initial_plane_config; struct intel_panic; struct intel_stolen_node; struct ref_tracker; +struct seq_file; +struct vm_area_struct; /* Keep struct definitions sorted */ +struct intel_display_bo_interface { + bool (*is_tiled)(struct drm_gem_object *obj); /* Optional */ + bool (*is_userptr)(struct drm_gem_object *obj); /* Optional */ + bool (*is_shmem)(struct drm_gem_object *obj); /* Optional */ + bool (*is_protected)(struct drm_gem_object *obj); + int (*key_check)(struct drm_gem_object *obj); + int (*fb_mmap)(struct drm_gem_object *obj, struct vm_area_struct *vma); + int (*read_from_page)(struct drm_gem_object *obj, u64 offset, void *dst, int size); + void (*describe)(struct seq_file *m, struct drm_gem_object *obj); /* Optional */ +}; + struct intel_display_dpt_interface { struct intel_dpt *(*create)(struct drm_gem_object *obj, size_t size); void (*destroy)(struct intel_dpt *dpt); @@ -174,6 +187,9 @@ struct intel_display_vma_interface { * check the optional pointers. */ struct intel_display_parent_interface { + /** @bo: BO interface */ + const struct intel_display_bo_interface *bo; + /** @dpt: DPT interface. Optional. */ const struct intel_display_dpt_interface *dpt; -- 2.47.3 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* RE: [PATCH 3/5] drm/{i915, xe}/bo: move display bo calls to parent interface 2026-03-11 14:18 ` [PATCH 3/5] drm/{i915, xe}/bo: move display bo calls to parent interface Jani Nikula @ 2026-03-12 3:47 ` Kandpal, Suraj 2026-03-12 4:27 ` Kandpal, Suraj 0 siblings, 1 reply; 17+ messages in thread From: Kandpal, Suraj @ 2026-03-12 3:47 UTC (permalink / raw) To: Nikula, Jani, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org Cc: Nikula, Jani > Subject: [PATCH 3/5] drm/{i915, xe}/bo: move display bo calls to parent > interface > > Continue i915 and xe separation from display by moving the bo calls to the > display parent interface. Instead of adding all these functions to > intel_parent.[ch], reuse the now vacated intel_bo.[ch], and avoid mass > renames to calls of these functions. This is similar to intel_display_rpm.[ch]. > > Make many of the hooks optional to avoid having to implement dummy > functions in xe. Indeed now we can remove many of the existing dummy > functions. > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/i915/Makefile | 1 + > drivers/gpu/drm/i915/display/intel_bo.c | 66 ++++++++++++++++++++ > drivers/gpu/drm/i915/i915_bo.c | 32 +++++++--- > drivers/gpu/drm/i915/i915_bo.h | 9 +++ > drivers/gpu/drm/i915/i915_driver.c | 2 + > drivers/gpu/drm/xe/Makefile | 1 + > drivers/gpu/drm/xe/display/xe_display.c | 2 + > drivers/gpu/drm/xe/display/xe_display_bo.c | 45 +++---------- > drivers/gpu/drm/xe/display/xe_display_bo.h | 9 +++ > include/drm/intel/display_parent_interface.h | 16 +++++ > 10 files changed, 138 insertions(+), 45 deletions(-) create mode 100644 > drivers/gpu/drm/i915/display/intel_bo.c > create mode 100644 drivers/gpu/drm/i915/i915_bo.h create mode 100644 > drivers/gpu/drm/xe/display/xe_display_bo.h > > diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile > index 52a82608b8b1..425933fb26a5 100644 > --- a/drivers/gpu/drm/i915/Makefile > +++ b/drivers/gpu/drm/i915/Makefile > @@ -240,6 +240,7 @@ i915-y += \ > display/intel_atomic.o \ > display/intel_audio.o \ > display/intel_bios.o \ > + display/intel_bo.o \ > display/intel_bw.o \ > display/intel_casf.o \ > display/intel_cdclk.o \ > diff --git a/drivers/gpu/drm/i915/display/intel_bo.c > b/drivers/gpu/drm/i915/display/intel_bo.c > new file mode 100644 > index 000000000000..e356ab4e0640 > --- /dev/null > +++ b/drivers/gpu/drm/i915/display/intel_bo.c > @@ -0,0 +1,66 @@ > +// SPDX-License-Identifier: MIT > +/* Copyright © 2026 Intel Corporation */ > + > +#include <drm/drm_gem.h> > +#include <drm/intel/display_parent_interface.h> > + > +#include "intel_bo.h" > +#include "intel_display_core.h" > +#include "intel_display_types.h" > + > +bool intel_bo_is_tiled(struct drm_gem_object *obj) { > + struct intel_display *display = to_intel_display(obj->dev); > + > + return display->parent->bo->is_tiled && > +display->parent->bo->is_tiled(obj); > +} > + > +bool intel_bo_is_userptr(struct drm_gem_object *obj) { > + struct intel_display *display = to_intel_display(obj->dev); > + > + return display->parent->bo->is_userptr && > +display->parent->bo->is_userptr(obj); > +} > + > +bool intel_bo_is_shmem(struct drm_gem_object *obj) { > + struct intel_display *display = to_intel_display(obj->dev); > + > + return display->parent->bo->is_shmem && > +display->parent->bo->is_shmem(obj); > +} > + > +bool intel_bo_is_protected(struct drm_gem_object *obj) { > + struct intel_display *display = to_intel_display(obj->dev); > + > + return display->parent->bo->is_protected(obj); > +} > + > +int intel_bo_key_check(struct drm_gem_object *obj) { > + struct intel_display *display = to_intel_display(obj->dev); > + > + return display->parent->bo->key_check(obj); > +} > + > +int intel_bo_fb_mmap(struct drm_gem_object *obj, struct vm_area_struct > +*vma) { > + struct intel_display *display = to_intel_display(obj->dev); > + > + return display->parent->bo->fb_mmap(obj, vma); } > + > +int intel_bo_read_from_page(struct drm_gem_object *obj, u64 offset, > +void *dst, int size) { > + struct intel_display *display = to_intel_display(obj->dev); > + > + return display->parent->bo->read_from_page(obj, offset, dst, size); } > + > +void intel_bo_describe(struct seq_file *m, struct drm_gem_object *obj) > +{ > + struct intel_display *display = to_intel_display(obj->dev); > + > + if (display->parent->bo->describe) > + display->parent->bo->describe(m, obj); Nit: Why not follow the same way of making this optional the way you have done on top Would look consistent. return display->parent->bo->describe && display->parent->bo->describe(m, obj); Otherwise LGTM, Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com> > diff --git a/drivers/gpu/drm/i915/i915_bo.c > b/drivers/gpu/drm/i915/i915_bo.c index 21a4533ba341..04fc0e3b7ef6 > 100644 > --- a/drivers/gpu/drm/i915/i915_bo.c > +++ b/drivers/gpu/drm/i915/i915_bo.c > @@ -2,51 +2,63 @@ > /* Copyright © 2024 Intel Corporation */ > > #include <drm/drm_panic.h> > - > -#include "display/intel_bo.h" > +#include <drm/intel/display_parent_interface.h> > > #include "gem/i915_gem_mman.h" > #include "gem/i915_gem_object.h" > #include "gem/i915_gem_object_frontbuffer.h" > #include "pxp/intel_pxp.h" > + > +#include "i915_bo.h" > #include "i915_debugfs.h" > > -bool intel_bo_is_tiled(struct drm_gem_object *obj) > +static bool i915_bo_is_tiled(struct drm_gem_object *obj) > { > return i915_gem_object_is_tiled(to_intel_bo(obj)); > } > > -bool intel_bo_is_userptr(struct drm_gem_object *obj) > +static bool i915_bo_is_userptr(struct drm_gem_object *obj) > { > return i915_gem_object_is_userptr(to_intel_bo(obj)); > } > > -bool intel_bo_is_shmem(struct drm_gem_object *obj) > +static bool i915_bo_is_shmem(struct drm_gem_object *obj) > { > return i915_gem_object_is_shmem(to_intel_bo(obj)); > } > > -bool intel_bo_is_protected(struct drm_gem_object *obj) > +static bool i915_bo_is_protected(struct drm_gem_object *obj) > { > return i915_gem_object_is_protected(to_intel_bo(obj)); > } > > -int intel_bo_key_check(struct drm_gem_object *obj) > +static int i915_bo_key_check(struct drm_gem_object *obj) > { > return intel_pxp_key_check(obj, false); } > > -int intel_bo_fb_mmap(struct drm_gem_object *obj, struct vm_area_struct > *vma) > +static int i915_bo_fb_mmap(struct drm_gem_object *obj, struct > +vm_area_struct *vma) > { > return i915_gem_fb_mmap(to_intel_bo(obj), vma); } > > -int intel_bo_read_from_page(struct drm_gem_object *obj, u64 offset, void > *dst, int size) > +static int i915_bo_read_from_page(struct drm_gem_object *obj, u64 > +offset, void *dst, int size) > { > return i915_gem_object_read_from_page(to_intel_bo(obj), offset, > dst, size); } > > -void intel_bo_describe(struct seq_file *m, struct drm_gem_object *obj) > +static void i915_bo_describe(struct seq_file *m, struct drm_gem_object > +*obj) > { > i915_debugfs_describe_obj(m, to_intel_bo(obj)); } > + > +const struct intel_display_bo_interface i915_display_bo_interface = { > + .is_tiled = i915_bo_is_tiled, > + .is_userptr = i915_bo_is_userptr, > + .is_shmem = i915_bo_is_shmem, > + .is_protected = i915_bo_is_protected, > + .key_check = i915_bo_key_check, > + .fb_mmap = i915_bo_fb_mmap, > + .read_from_page = i915_bo_read_from_page, > + .describe = i915_bo_describe, > +}; > diff --git a/drivers/gpu/drm/i915/i915_bo.h > b/drivers/gpu/drm/i915/i915_bo.h new file mode 100644 index > 000000000000..57255d052dd9 > --- /dev/null > +++ b/drivers/gpu/drm/i915/i915_bo.h > @@ -0,0 +1,9 @@ > +/* SPDX-License-Identifier: MIT */ > +/* Copyright © 2026 Intel Corporation */ > + > +#ifndef __I915_BO_H__ > +#define __I915_BO_H__ > + > +extern const struct intel_display_bo_interface > +i915_display_bo_interface; > + > +#endif /* __I915_BO_H__ */ > diff --git a/drivers/gpu/drm/i915/i915_driver.c > b/drivers/gpu/drm/i915/i915_driver.c > index 7a8c59a8c865..385a634c3ed0 100644 > --- a/drivers/gpu/drm/i915/i915_driver.c > +++ b/drivers/gpu/drm/i915/i915_driver.c > @@ -90,6 +90,7 @@ > #include "pxp/intel_pxp_debugfs.h" > #include "pxp/intel_pxp_pm.h" > > +#include "i915_bo.h" > #include "i915_debugfs.h" > #include "i915_display_pc8.h" > #include "i915_dpt.h" > @@ -765,6 +766,7 @@ static bool vgpu_active(struct drm_device *drm) } > > static const struct intel_display_parent_interface parent = { > + .bo = &i915_display_bo_interface, > .dpt = &i915_display_dpt_interface, > .dsb = &i915_display_dsb_interface, > .frontbuffer = &i915_display_frontbuffer_interface, > diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile > index aeede4423680..b16ed1ce2a85 100644 > --- a/drivers/gpu/drm/xe/Makefile > +++ b/drivers/gpu/drm/xe/Makefile > @@ -235,6 +235,7 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \ > i915-display/intel_audio.o \ > i915-display/intel_backlight.o \ > i915-display/intel_bios.o \ > + i915-display/intel_bo.o \ > i915-display/intel_bw.o \ > i915-display/intel_casf.o \ > i915-display/intel_cdclk.o \ > diff --git a/drivers/gpu/drm/xe/display/xe_display.c > b/drivers/gpu/drm/xe/display/xe_display.c > index f1e1889a52d3..49b6f98e7391 100644 > --- a/drivers/gpu/drm/xe/display/xe_display.c > +++ b/drivers/gpu/drm/xe/display/xe_display.c > @@ -35,6 +35,7 @@ > #include "intel_hotplug.h" > #include "intel_opregion.h" > #include "skl_watermark.h" > +#include "xe_display_bo.h" > #include "xe_display_pcode.h" > #include "xe_display_rpm.h" > #include "xe_dsb_buffer.h" > @@ -541,6 +542,7 @@ static const struct intel_display_irq_interface > xe_display_irq_interface = { }; > > static const struct intel_display_parent_interface parent = { > + .bo = &xe_display_bo_interface, > .dsb = &xe_display_dsb_interface, > .frontbuffer = &xe_display_frontbuffer_interface, > .hdcp = &xe_display_hdcp_interface, > diff --git a/drivers/gpu/drm/xe/display/xe_display_bo.c > b/drivers/gpu/drm/xe/display/xe_display_bo.c > index fa1f2c796b81..a53ba3f247ec 100644 > --- a/drivers/gpu/drm/xe/display/xe_display_bo.c > +++ b/drivers/gpu/drm/xe/display/xe_display_bo.c > @@ -2,52 +2,27 @@ > /* Copyright © 2024 Intel Corporation */ > > #include <drm/drm_gem.h> > +#include <drm/intel/display_parent_interface.h> > > -#include "intel_bo.h" > -#include "intel_frontbuffer.h" > #include "xe_bo.h" > +#include "xe_display_bo.h" > #include "xe_pxp.h" > > -bool intel_bo_is_tiled(struct drm_gem_object *obj) -{ > - /* legacy tiling is unused */ > - return false; > -} > - > -bool intel_bo_is_userptr(struct drm_gem_object *obj) -{ > - /* xe does not have userptr bos */ > - return false; > -} > - > -bool intel_bo_is_shmem(struct drm_gem_object *obj) -{ > - return false; > -} > - > -bool intel_bo_is_protected(struct drm_gem_object *obj) > +static bool xe_display_bo_is_protected(struct drm_gem_object *obj) > { > return xe_bo_is_protected(gem_to_xe_bo(obj)); > } > > -int intel_bo_key_check(struct drm_gem_object *obj) -{ > - return xe_pxp_obj_key_check(obj); > -} > - > -int intel_bo_fb_mmap(struct drm_gem_object *obj, struct vm_area_struct > *vma) -{ > - return drm_gem_prime_mmap(obj, vma); > -} > - > -int intel_bo_read_from_page(struct drm_gem_object *obj, u64 offset, void > *dst, int size) > +static int xe_display_bo_read_from_page(struct drm_gem_object *obj, u64 > +offset, void *dst, int size) > { > struct xe_bo *bo = gem_to_xe_bo(obj); > > return xe_bo_read(bo, offset, dst, size); } > > -void intel_bo_describe(struct seq_file *m, struct drm_gem_object *obj) -{ > - /* FIXME */ > -} > +const struct intel_display_bo_interface xe_display_bo_interface = { > + .is_protected = xe_display_bo_is_protected, > + .key_check = xe_pxp_obj_key_check, > + .fb_mmap = drm_gem_prime_mmap, > + .read_from_page = xe_display_bo_read_from_page, }; > diff --git a/drivers/gpu/drm/xe/display/xe_display_bo.h > b/drivers/gpu/drm/xe/display/xe_display_bo.h > new file mode 100644 > index 000000000000..6879c104b0b1 > --- /dev/null > +++ b/drivers/gpu/drm/xe/display/xe_display_bo.h > @@ -0,0 +1,9 @@ > +/* SPDX-License-Identifier: MIT */ > +/* Copyright © 2026 Intel Corporation */ > + > +#ifndef __XE_DISPLAY_BO_H__ > +#define __XE_DISPLAY_BO_H__ > + > +extern const struct intel_display_bo_interface xe_display_bo_interface; > + > +#endif > diff --git a/include/drm/intel/display_parent_interface.h > b/include/drm/intel/display_parent_interface.h > index c044472b9400..2b53d12b0e0a 100644 > --- a/include/drm/intel/display_parent_interface.h > +++ b/include/drm/intel/display_parent_interface.h > @@ -23,9 +23,22 @@ struct intel_initial_plane_config; struct intel_panic; > struct intel_stolen_node; struct ref_tracker; > +struct seq_file; > +struct vm_area_struct; > > /* Keep struct definitions sorted */ > > +struct intel_display_bo_interface { > + bool (*is_tiled)(struct drm_gem_object *obj); /* Optional */ > + bool (*is_userptr)(struct drm_gem_object *obj); /* Optional */ > + bool (*is_shmem)(struct drm_gem_object *obj); /* Optional */ > + bool (*is_protected)(struct drm_gem_object *obj); > + int (*key_check)(struct drm_gem_object *obj); > + int (*fb_mmap)(struct drm_gem_object *obj, struct vm_area_struct > *vma); > + int (*read_from_page)(struct drm_gem_object *obj, u64 offset, void > *dst, int size); > + void (*describe)(struct seq_file *m, struct drm_gem_object *obj); /* > +Optional */ }; > + > struct intel_display_dpt_interface { > struct intel_dpt *(*create)(struct drm_gem_object *obj, size_t size); > void (*destroy)(struct intel_dpt *dpt); @@ -174,6 +187,9 @@ struct > intel_display_vma_interface { > * check the optional pointers. > */ > struct intel_display_parent_interface { > + /** @bo: BO interface */ > + const struct intel_display_bo_interface *bo; > + > /** @dpt: DPT interface. Optional. */ > const struct intel_display_dpt_interface *dpt; > > -- > 2.47.3 ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [PATCH 3/5] drm/{i915, xe}/bo: move display bo calls to parent interface 2026-03-12 3:47 ` Kandpal, Suraj @ 2026-03-12 4:27 ` Kandpal, Suraj 0 siblings, 0 replies; 17+ messages in thread From: Kandpal, Suraj @ 2026-03-12 4:27 UTC (permalink / raw) To: Nikula, Jani, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org Cc: Nikula, Jani > Subject: RE: [PATCH 3/5] drm/{i915, xe}/bo: move display bo calls to parent > interface > > > Subject: [PATCH 3/5] drm/{i915, xe}/bo: move display bo calls to > > parent interface > > > > Continue i915 and xe separation from display by moving the bo calls to > > the display parent interface. Instead of adding all these functions to > > intel_parent.[ch], reuse the now vacated intel_bo.[ch], and avoid mass > > renames to calls of these functions. This is similar to intel_display_rpm.[ch]. > > > > Make many of the hooks optional to avoid having to implement dummy > > functions in xe. Indeed now we can remove many of the existing dummy > > functions. > > > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> > > --- > > drivers/gpu/drm/i915/Makefile | 1 + > > drivers/gpu/drm/i915/display/intel_bo.c | 66 ++++++++++++++++++++ > > drivers/gpu/drm/i915/i915_bo.c | 32 +++++++--- > > drivers/gpu/drm/i915/i915_bo.h | 9 +++ > > drivers/gpu/drm/i915/i915_driver.c | 2 + > > drivers/gpu/drm/xe/Makefile | 1 + > > drivers/gpu/drm/xe/display/xe_display.c | 2 + > > drivers/gpu/drm/xe/display/xe_display_bo.c | 45 +++---------- > > drivers/gpu/drm/xe/display/xe_display_bo.h | 9 +++ > > include/drm/intel/display_parent_interface.h | 16 +++++ > > 10 files changed, 138 insertions(+), 45 deletions(-) create mode > > 100644 drivers/gpu/drm/i915/display/intel_bo.c > > create mode 100644 drivers/gpu/drm/i915/i915_bo.h create mode 100644 > > drivers/gpu/drm/xe/display/xe_display_bo.h > > > > diff --git a/drivers/gpu/drm/i915/Makefile > > b/drivers/gpu/drm/i915/Makefile index 52a82608b8b1..425933fb26a5 > > 100644 > > --- a/drivers/gpu/drm/i915/Makefile > > +++ b/drivers/gpu/drm/i915/Makefile > > @@ -240,6 +240,7 @@ i915-y += \ > > display/intel_atomic.o \ > > display/intel_audio.o \ > > display/intel_bios.o \ > > + display/intel_bo.o \ > > display/intel_bw.o \ > > display/intel_casf.o \ > > display/intel_cdclk.o \ > > diff --git a/drivers/gpu/drm/i915/display/intel_bo.c > > b/drivers/gpu/drm/i915/display/intel_bo.c > > new file mode 100644 > > index 000000000000..e356ab4e0640 > > --- /dev/null > > +++ b/drivers/gpu/drm/i915/display/intel_bo.c > > @@ -0,0 +1,66 @@ > > +// SPDX-License-Identifier: MIT > > +/* Copyright © 2026 Intel Corporation */ > > + > > +#include <drm/drm_gem.h> > > +#include <drm/intel/display_parent_interface.h> > > + > > +#include "intel_bo.h" > > +#include "intel_display_core.h" > > +#include "intel_display_types.h" > > + > > +bool intel_bo_is_tiled(struct drm_gem_object *obj) { > > + struct intel_display *display = to_intel_display(obj->dev); > > + > > + return display->parent->bo->is_tiled && > > +display->parent->bo->is_tiled(obj); > > +} > > + > > +bool intel_bo_is_userptr(struct drm_gem_object *obj) { > > + struct intel_display *display = to_intel_display(obj->dev); > > + > > + return display->parent->bo->is_userptr && > > +display->parent->bo->is_userptr(obj); > > +} > > + > > +bool intel_bo_is_shmem(struct drm_gem_object *obj) { > > + struct intel_display *display = to_intel_display(obj->dev); > > + > > + return display->parent->bo->is_shmem && > > +display->parent->bo->is_shmem(obj); > > +} > > + > > +bool intel_bo_is_protected(struct drm_gem_object *obj) { > > + struct intel_display *display = to_intel_display(obj->dev); > > + > > + return display->parent->bo->is_protected(obj); > > +} > > + > > +int intel_bo_key_check(struct drm_gem_object *obj) { > > + struct intel_display *display = to_intel_display(obj->dev); > > + > > + return display->parent->bo->key_check(obj); > > +} > > + > > +int intel_bo_fb_mmap(struct drm_gem_object *obj, struct > > +vm_area_struct > > +*vma) { > > + struct intel_display *display = to_intel_display(obj->dev); > > + > > + return display->parent->bo->fb_mmap(obj, vma); } > > + > > +int intel_bo_read_from_page(struct drm_gem_object *obj, u64 offset, > > +void *dst, int size) { > > + struct intel_display *display = to_intel_display(obj->dev); > > + > > + return display->parent->bo->read_from_page(obj, offset, dst, size); > > +} > > + > > +void intel_bo_describe(struct seq_file *m, struct drm_gem_object > > +*obj) { > > + struct intel_display *display = to_intel_display(obj->dev); > > + > > + if (display->parent->bo->describe) > > + display->parent->bo->describe(m, obj); > > Nit: Why not follow the same way of making this optional the way you have > done on top Would look consistent. > return display->parent->bo->describe && display->parent->bo- > >describe(m, obj); Ahh nevermind, I missed that it was a void function. In that case it make perfect sense. Regards, Suraj Kandpal > > Otherwise LGTM, > Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com> > > > diff --git a/drivers/gpu/drm/i915/i915_bo.c > > b/drivers/gpu/drm/i915/i915_bo.c index 21a4533ba341..04fc0e3b7ef6 > > 100644 > > --- a/drivers/gpu/drm/i915/i915_bo.c > > +++ b/drivers/gpu/drm/i915/i915_bo.c > > @@ -2,51 +2,63 @@ > > /* Copyright © 2024 Intel Corporation */ > > > > #include <drm/drm_panic.h> > > - > > -#include "display/intel_bo.h" > > +#include <drm/intel/display_parent_interface.h> > > > > #include "gem/i915_gem_mman.h" > > #include "gem/i915_gem_object.h" > > #include "gem/i915_gem_object_frontbuffer.h" > > #include "pxp/intel_pxp.h" > > + > > +#include "i915_bo.h" > > #include "i915_debugfs.h" > > > > -bool intel_bo_is_tiled(struct drm_gem_object *obj) > > +static bool i915_bo_is_tiled(struct drm_gem_object *obj) > > { > > return i915_gem_object_is_tiled(to_intel_bo(obj)); > > } > > > > -bool intel_bo_is_userptr(struct drm_gem_object *obj) > > +static bool i915_bo_is_userptr(struct drm_gem_object *obj) > > { > > return i915_gem_object_is_userptr(to_intel_bo(obj)); > > } > > > > -bool intel_bo_is_shmem(struct drm_gem_object *obj) > > +static bool i915_bo_is_shmem(struct drm_gem_object *obj) > > { > > return i915_gem_object_is_shmem(to_intel_bo(obj)); > > } > > > > -bool intel_bo_is_protected(struct drm_gem_object *obj) > > +static bool i915_bo_is_protected(struct drm_gem_object *obj) > > { > > return i915_gem_object_is_protected(to_intel_bo(obj)); > > } > > > > -int intel_bo_key_check(struct drm_gem_object *obj) > > +static int i915_bo_key_check(struct drm_gem_object *obj) > > { > > return intel_pxp_key_check(obj, false); } > > > > -int intel_bo_fb_mmap(struct drm_gem_object *obj, struct > > vm_area_struct > > *vma) > > +static int i915_bo_fb_mmap(struct drm_gem_object *obj, struct > > +vm_area_struct *vma) > > { > > return i915_gem_fb_mmap(to_intel_bo(obj), vma); } > > > > -int intel_bo_read_from_page(struct drm_gem_object *obj, u64 offset, > > void *dst, int size) > > +static int i915_bo_read_from_page(struct drm_gem_object *obj, u64 > > +offset, void *dst, int size) > > { > > return i915_gem_object_read_from_page(to_intel_bo(obj), offset, > dst, > > size); } > > > > -void intel_bo_describe(struct seq_file *m, struct drm_gem_object > > *obj) > > +static void i915_bo_describe(struct seq_file *m, struct > > +drm_gem_object > > +*obj) > > { > > i915_debugfs_describe_obj(m, to_intel_bo(obj)); } > > + > > +const struct intel_display_bo_interface i915_display_bo_interface = { > > + .is_tiled = i915_bo_is_tiled, > > + .is_userptr = i915_bo_is_userptr, > > + .is_shmem = i915_bo_is_shmem, > > + .is_protected = i915_bo_is_protected, > > + .key_check = i915_bo_key_check, > > + .fb_mmap = i915_bo_fb_mmap, > > + .read_from_page = i915_bo_read_from_page, > > + .describe = i915_bo_describe, > > +}; > > diff --git a/drivers/gpu/drm/i915/i915_bo.h > > b/drivers/gpu/drm/i915/i915_bo.h new file mode 100644 index > > 000000000000..57255d052dd9 > > --- /dev/null > > +++ b/drivers/gpu/drm/i915/i915_bo.h > > @@ -0,0 +1,9 @@ > > +/* SPDX-License-Identifier: MIT */ > > +/* Copyright © 2026 Intel Corporation */ > > + > > +#ifndef __I915_BO_H__ > > +#define __I915_BO_H__ > > + > > +extern const struct intel_display_bo_interface > > +i915_display_bo_interface; > > + > > +#endif /* __I915_BO_H__ */ > > diff --git a/drivers/gpu/drm/i915/i915_driver.c > > b/drivers/gpu/drm/i915/i915_driver.c > > index 7a8c59a8c865..385a634c3ed0 100644 > > --- a/drivers/gpu/drm/i915/i915_driver.c > > +++ b/drivers/gpu/drm/i915/i915_driver.c > > @@ -90,6 +90,7 @@ > > #include "pxp/intel_pxp_debugfs.h" > > #include "pxp/intel_pxp_pm.h" > > > > +#include "i915_bo.h" > > #include "i915_debugfs.h" > > #include "i915_display_pc8.h" > > #include "i915_dpt.h" > > @@ -765,6 +766,7 @@ static bool vgpu_active(struct drm_device *drm) } > > > > static const struct intel_display_parent_interface parent = { > > + .bo = &i915_display_bo_interface, > > .dpt = &i915_display_dpt_interface, > > .dsb = &i915_display_dsb_interface, > > .frontbuffer = &i915_display_frontbuffer_interface, > > diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile > > index aeede4423680..b16ed1ce2a85 100644 > > --- a/drivers/gpu/drm/xe/Makefile > > +++ b/drivers/gpu/drm/xe/Makefile > > @@ -235,6 +235,7 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \ > > i915-display/intel_audio.o \ > > i915-display/intel_backlight.o \ > > i915-display/intel_bios.o \ > > + i915-display/intel_bo.o \ > > i915-display/intel_bw.o \ > > i915-display/intel_casf.o \ > > i915-display/intel_cdclk.o \ > > diff --git a/drivers/gpu/drm/xe/display/xe_display.c > > b/drivers/gpu/drm/xe/display/xe_display.c > > index f1e1889a52d3..49b6f98e7391 100644 > > --- a/drivers/gpu/drm/xe/display/xe_display.c > > +++ b/drivers/gpu/drm/xe/display/xe_display.c > > @@ -35,6 +35,7 @@ > > #include "intel_hotplug.h" > > #include "intel_opregion.h" > > #include "skl_watermark.h" > > +#include "xe_display_bo.h" > > #include "xe_display_pcode.h" > > #include "xe_display_rpm.h" > > #include "xe_dsb_buffer.h" > > @@ -541,6 +542,7 @@ static const struct intel_display_irq_interface > > xe_display_irq_interface = { }; > > > > static const struct intel_display_parent_interface parent = { > > + .bo = &xe_display_bo_interface, > > .dsb = &xe_display_dsb_interface, > > .frontbuffer = &xe_display_frontbuffer_interface, > > .hdcp = &xe_display_hdcp_interface, > > diff --git a/drivers/gpu/drm/xe/display/xe_display_bo.c > > b/drivers/gpu/drm/xe/display/xe_display_bo.c > > index fa1f2c796b81..a53ba3f247ec 100644 > > --- a/drivers/gpu/drm/xe/display/xe_display_bo.c > > +++ b/drivers/gpu/drm/xe/display/xe_display_bo.c > > @@ -2,52 +2,27 @@ > > /* Copyright © 2024 Intel Corporation */ > > > > #include <drm/drm_gem.h> > > +#include <drm/intel/display_parent_interface.h> > > > > -#include "intel_bo.h" > > -#include "intel_frontbuffer.h" > > #include "xe_bo.h" > > +#include "xe_display_bo.h" > > #include "xe_pxp.h" > > > > -bool intel_bo_is_tiled(struct drm_gem_object *obj) -{ > > - /* legacy tiling is unused */ > > - return false; > > -} > > - > > -bool intel_bo_is_userptr(struct drm_gem_object *obj) -{ > > - /* xe does not have userptr bos */ > > - return false; > > -} > > - > > -bool intel_bo_is_shmem(struct drm_gem_object *obj) -{ > > - return false; > > -} > > - > > -bool intel_bo_is_protected(struct drm_gem_object *obj) > > +static bool xe_display_bo_is_protected(struct drm_gem_object *obj) > > { > > return xe_bo_is_protected(gem_to_xe_bo(obj)); > > } > > > > -int intel_bo_key_check(struct drm_gem_object *obj) -{ > > - return xe_pxp_obj_key_check(obj); > > -} > > - > > -int intel_bo_fb_mmap(struct drm_gem_object *obj, struct > > vm_area_struct > > *vma) -{ > > - return drm_gem_prime_mmap(obj, vma); > > -} > > - > > -int intel_bo_read_from_page(struct drm_gem_object *obj, u64 offset, > > void *dst, int size) > > +static int xe_display_bo_read_from_page(struct drm_gem_object *obj, > > +u64 offset, void *dst, int size) > > { > > struct xe_bo *bo = gem_to_xe_bo(obj); > > > > return xe_bo_read(bo, offset, dst, size); } > > > > -void intel_bo_describe(struct seq_file *m, struct drm_gem_object *obj) -{ > > - /* FIXME */ > > -} > > +const struct intel_display_bo_interface xe_display_bo_interface = { > > + .is_protected = xe_display_bo_is_protected, > > + .key_check = xe_pxp_obj_key_check, > > + .fb_mmap = drm_gem_prime_mmap, > > + .read_from_page = xe_display_bo_read_from_page, }; > > diff --git a/drivers/gpu/drm/xe/display/xe_display_bo.h > > b/drivers/gpu/drm/xe/display/xe_display_bo.h > > new file mode 100644 > > index 000000000000..6879c104b0b1 > > --- /dev/null > > +++ b/drivers/gpu/drm/xe/display/xe_display_bo.h > > @@ -0,0 +1,9 @@ > > +/* SPDX-License-Identifier: MIT */ > > +/* Copyright © 2026 Intel Corporation */ > > + > > +#ifndef __XE_DISPLAY_BO_H__ > > +#define __XE_DISPLAY_BO_H__ > > + > > +extern const struct intel_display_bo_interface > > +xe_display_bo_interface; > > + > > +#endif > > diff --git a/include/drm/intel/display_parent_interface.h > > b/include/drm/intel/display_parent_interface.h > > index c044472b9400..2b53d12b0e0a 100644 > > --- a/include/drm/intel/display_parent_interface.h > > +++ b/include/drm/intel/display_parent_interface.h > > @@ -23,9 +23,22 @@ struct intel_initial_plane_config; struct > > intel_panic; struct intel_stolen_node; struct ref_tracker; > > +struct seq_file; > > +struct vm_area_struct; > > > > /* Keep struct definitions sorted */ > > > > +struct intel_display_bo_interface { > > + bool (*is_tiled)(struct drm_gem_object *obj); /* Optional */ > > + bool (*is_userptr)(struct drm_gem_object *obj); /* Optional */ > > + bool (*is_shmem)(struct drm_gem_object *obj); /* Optional */ > > + bool (*is_protected)(struct drm_gem_object *obj); > > + int (*key_check)(struct drm_gem_object *obj); > > + int (*fb_mmap)(struct drm_gem_object *obj, struct vm_area_struct > > *vma); > > + int (*read_from_page)(struct drm_gem_object *obj, u64 offset, void > > *dst, int size); > > + void (*describe)(struct seq_file *m, struct drm_gem_object *obj); /* > > +Optional */ }; > > + > > struct intel_display_dpt_interface { > > struct intel_dpt *(*create)(struct drm_gem_object *obj, size_t size); > > void (*destroy)(struct intel_dpt *dpt); @@ -174,6 +187,9 @@ struct > > intel_display_vma_interface { > > * check the optional pointers. > > */ > > struct intel_display_parent_interface { > > + /** @bo: BO interface */ > > + const struct intel_display_bo_interface *bo; > > + > > /** @dpt: DPT interface. Optional. */ > > const struct intel_display_dpt_interface *dpt; > > > > -- > > 2.47.3 ^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 4/5] drm/i915/fb: make intel_fb_bo.c less dependent on display 2026-03-11 14:18 [PATCH 0/5] drm/{i915,xe}: move bo stuff to parent interface Jani Nikula ` (2 preceding siblings ...) 2026-03-11 14:18 ` [PATCH 3/5] drm/{i915, xe}/bo: move display bo calls to parent interface Jani Nikula @ 2026-03-11 14:18 ` Jani Nikula 2026-03-12 3:51 ` Kandpal, Suraj 2026-03-11 14:18 ` [PATCH 5/5] drm/{i915,xe}: move framebuffer bo to parent interface Jani Nikula ` (2 subsequent siblings) 6 siblings, 1 reply; 17+ messages in thread From: Jani Nikula @ 2026-03-11 14:18 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: jani.nikula intel_fb_bo.c is i915 core specific code, and should use struct drm_i915_private instead of struct intel_display. Switch one DISPLAY_VER() to GRAPHICS_VER(). The check is for < 4, where they're effectively the same thing. Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- drivers/gpu/drm/i915/display/intel_fb_bo.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_fb_bo.c b/drivers/gpu/drm/i915/display/intel_fb_bo.c index bfecd73d5fa0..a4d49ef450d9 100644 --- a/drivers/gpu/drm/i915/display/intel_fb_bo.c +++ b/drivers/gpu/drm/i915/display/intel_fb_bo.c @@ -9,8 +9,6 @@ #include "gem/i915_gem_object.h" #include "i915_drv.h" -#include "intel_display_core.h" -#include "intel_display_types.h" #include "intel_fb.h" #include "intel_fb_bo.h" @@ -23,7 +21,7 @@ int intel_fb_bo_framebuffer_init(struct drm_gem_object *_obj, struct drm_mode_fb_cmd2 *mode_cmd) { struct drm_i915_gem_object *obj = to_intel_bo(_obj); - struct intel_display *display = to_intel_display(obj->base.dev); + struct drm_i915_private *i915 = to_i915(obj->base.dev); unsigned int tiling, stride; i915_gem_object_lock(obj, NULL); @@ -38,7 +36,7 @@ int intel_fb_bo_framebuffer_init(struct drm_gem_object *_obj, */ if (tiling != I915_TILING_NONE && tiling != intel_fb_modifier_to_tiling(mode_cmd->modifier[0])) { - drm_dbg_kms(display->drm, + drm_dbg_kms(&i915->drm, "tiling_mode doesn't match fb modifier\n"); return -EINVAL; } @@ -46,7 +44,7 @@ int intel_fb_bo_framebuffer_init(struct drm_gem_object *_obj, if (tiling == I915_TILING_X) { mode_cmd->modifier[0] = I915_FORMAT_MOD_X_TILED; } else if (tiling == I915_TILING_Y) { - drm_dbg_kms(display->drm, + drm_dbg_kms(&i915->drm, "No Y tiling for legacy addfb\n"); return -EINVAL; } @@ -56,9 +54,9 @@ int intel_fb_bo_framebuffer_init(struct drm_gem_object *_obj, * gen2/3 display engine uses the fence if present, * so the tiling mode must match the fb modifier exactly. */ - if (DISPLAY_VER(display) < 4 && + if (GRAPHICS_VER(i915) < 4 && tiling != intel_fb_modifier_to_tiling(mode_cmd->modifier[0])) { - drm_dbg_kms(display->drm, + drm_dbg_kms(&i915->drm, "tiling_mode must match fb modifier exactly on gen2/3\n"); return -EINVAL; } @@ -68,7 +66,7 @@ int intel_fb_bo_framebuffer_init(struct drm_gem_object *_obj, * the fb pitch and fence stride match. */ if (tiling != I915_TILING_NONE && mode_cmd->pitches[0] != stride) { - drm_dbg_kms(display->drm, + drm_dbg_kms(&i915->drm, "pitch (%d) must match tiling stride (%d)\n", mode_cmd->pitches[0], stride); return -EINVAL; -- 2.47.3 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* RE: [PATCH 4/5] drm/i915/fb: make intel_fb_bo.c less dependent on display 2026-03-11 14:18 ` [PATCH 4/5] drm/i915/fb: make intel_fb_bo.c less dependent on display Jani Nikula @ 2026-03-12 3:51 ` Kandpal, Suraj 0 siblings, 0 replies; 17+ messages in thread From: Kandpal, Suraj @ 2026-03-12 3:51 UTC (permalink / raw) To: Nikula, Jani, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org Cc: Nikula, Jani > Subject: [PATCH 4/5] drm/i915/fb: make intel_fb_bo.c less dependent on > display > > intel_fb_bo.c is i915 core specific code, and should use struct > drm_i915_private instead of struct intel_display. > > Switch one DISPLAY_VER() to GRAPHICS_VER(). The check is for < 4, where > they're effectively the same thing. > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> LGTM, Reviewed-by: Suraj Kandpal@intel.com> > --- > drivers/gpu/drm/i915/display/intel_fb_bo.c | 14 ++++++-------- > 1 file changed, 6 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_fb_bo.c > b/drivers/gpu/drm/i915/display/intel_fb_bo.c > index bfecd73d5fa0..a4d49ef450d9 100644 > --- a/drivers/gpu/drm/i915/display/intel_fb_bo.c > +++ b/drivers/gpu/drm/i915/display/intel_fb_bo.c > @@ -9,8 +9,6 @@ > #include "gem/i915_gem_object.h" > > #include "i915_drv.h" > -#include "intel_display_core.h" > -#include "intel_display_types.h" > #include "intel_fb.h" > #include "intel_fb_bo.h" > > @@ -23,7 +21,7 @@ int intel_fb_bo_framebuffer_init(struct > drm_gem_object *_obj, > struct drm_mode_fb_cmd2 *mode_cmd) { > struct drm_i915_gem_object *obj = to_intel_bo(_obj); > - struct intel_display *display = to_intel_display(obj->base.dev); > + struct drm_i915_private *i915 = to_i915(obj->base.dev); > unsigned int tiling, stride; > > i915_gem_object_lock(obj, NULL); > @@ -38,7 +36,7 @@ int intel_fb_bo_framebuffer_init(struct > drm_gem_object *_obj, > */ > if (tiling != I915_TILING_NONE && > tiling != intel_fb_modifier_to_tiling(mode_cmd- > >modifier[0])) { > - drm_dbg_kms(display->drm, > + drm_dbg_kms(&i915->drm, > "tiling_mode doesn't match fb modifier\n"); > return -EINVAL; > } > @@ -46,7 +44,7 @@ int intel_fb_bo_framebuffer_init(struct > drm_gem_object *_obj, > if (tiling == I915_TILING_X) { > mode_cmd->modifier[0] = > I915_FORMAT_MOD_X_TILED; > } else if (tiling == I915_TILING_Y) { > - drm_dbg_kms(display->drm, > + drm_dbg_kms(&i915->drm, > "No Y tiling for legacy addfb\n"); > return -EINVAL; > } > @@ -56,9 +54,9 @@ int intel_fb_bo_framebuffer_init(struct > drm_gem_object *_obj, > * gen2/3 display engine uses the fence if present, > * so the tiling mode must match the fb modifier exactly. > */ > - if (DISPLAY_VER(display) < 4 && > + if (GRAPHICS_VER(i915) < 4 && > tiling != intel_fb_modifier_to_tiling(mode_cmd->modifier[0])) { > - drm_dbg_kms(display->drm, > + drm_dbg_kms(&i915->drm, > "tiling_mode must match fb modifier exactly on > gen2/3\n"); > return -EINVAL; > } > @@ -68,7 +66,7 @@ int intel_fb_bo_framebuffer_init(struct > drm_gem_object *_obj, > * the fb pitch and fence stride match. > */ > if (tiling != I915_TILING_NONE && mode_cmd->pitches[0] != stride) { > - drm_dbg_kms(display->drm, > + drm_dbg_kms(&i915->drm, > "pitch (%d) must match tiling stride (%d)\n", > mode_cmd->pitches[0], stride); > return -EINVAL; > -- > 2.47.3 ^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 5/5] drm/{i915,xe}: move framebuffer bo to parent interface 2026-03-11 14:18 [PATCH 0/5] drm/{i915,xe}: move bo stuff to parent interface Jani Nikula ` (3 preceding siblings ...) 2026-03-11 14:18 ` [PATCH 4/5] drm/i915/fb: make intel_fb_bo.c less dependent on display Jani Nikula @ 2026-03-11 14:18 ` Jani Nikula 2026-03-12 4:25 ` Kandpal, Suraj 2026-03-11 15:33 ` ✓ i915.CI.BAT: success for drm/{i915,xe}: move bo stuff " Patchwork 2026-03-12 6:37 ` ✓ i915.CI.Full: " Patchwork 6 siblings, 1 reply; 17+ messages in thread From: Jani Nikula @ 2026-03-11 14:18 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: jani.nikula Add .framebuffer_init, .framebuffer_fini and .framebuffer_lookup to the bo parent interface. While they're about framebuffers, they're specifically about framebuffer objects, so the bo interface is a good enough fit, and there's no need to add another interface struct. Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- drivers/gpu/drm/i915/Makefile | 1 - drivers/gpu/drm/i915/display/intel_bo.c | 21 +++++ drivers/gpu/drm/i915/display/intel_bo.h | 9 ++ drivers/gpu/drm/i915/display/intel_fb.c | 12 +-- drivers/gpu/drm/i915/display/intel_fb_bo.c | 99 -------------------- drivers/gpu/drm/i915/display/intel_fb_bo.h | 25 ----- drivers/gpu/drm/i915/i915_bo.c | 92 ++++++++++++++++++ drivers/gpu/drm/xe/Makefile | 1 - drivers/gpu/drm/xe/display/intel_fb_bo.c | 91 ------------------ drivers/gpu/drm/xe/display/xe_display_bo.c | 84 +++++++++++++++++ include/drm/intel/display_parent_interface.h | 6 ++ 11 files changed, 218 insertions(+), 223 deletions(-) delete mode 100644 drivers/gpu/drm/i915/display/intel_fb_bo.c delete mode 100644 drivers/gpu/drm/i915/display/intel_fb_bo.h delete mode 100644 drivers/gpu/drm/xe/display/intel_fb_bo.c diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile index 425933fb26a5..be976a90c5a6 100644 --- a/drivers/gpu/drm/i915/Makefile +++ b/drivers/gpu/drm/i915/Makefile @@ -278,7 +278,6 @@ i915-y += \ display/intel_drrs.o \ display/intel_dsb.o \ display/intel_fb.o \ - display/intel_fb_bo.o \ display/intel_fb_pin.o \ display/intel_fbc.o \ display/intel_fdi.o \ diff --git a/drivers/gpu/drm/i915/display/intel_bo.c b/drivers/gpu/drm/i915/display/intel_bo.c index e356ab4e0640..3b82d38a0504 100644 --- a/drivers/gpu/drm/i915/display/intel_bo.c +++ b/drivers/gpu/drm/i915/display/intel_bo.c @@ -64,3 +64,24 @@ void intel_bo_describe(struct seq_file *m, struct drm_gem_object *obj) if (display->parent->bo->describe) display->parent->bo->describe(m, obj); } + +int intel_bo_framebuffer_init(struct drm_gem_object *obj, struct drm_mode_fb_cmd2 *mode_cmd) +{ + struct intel_display *display = to_intel_display(obj->dev); + + return display->parent->bo->framebuffer_init(obj, mode_cmd); +} + +void intel_bo_framebuffer_fini(struct drm_gem_object *obj) +{ + struct intel_display *display = to_intel_display(obj->dev); + + display->parent->bo->framebuffer_fini(obj); +} + +struct drm_gem_object *intel_bo_framebuffer_lookup(struct intel_display *display, + struct drm_file *filp, + const struct drm_mode_fb_cmd2 *user_mode_cmd) +{ + return display->parent->bo->framebuffer_lookup(display->drm, filp, user_mode_cmd); +} diff --git a/drivers/gpu/drm/i915/display/intel_bo.h b/drivers/gpu/drm/i915/display/intel_bo.h index 40390ed92ceb..aec188c706c2 100644 --- a/drivers/gpu/drm/i915/display/intel_bo.h +++ b/drivers/gpu/drm/i915/display/intel_bo.h @@ -6,8 +6,11 @@ #include <linux/types.h> +struct drm_file; struct drm_gem_object; +struct drm_mode_fb_cmd2; struct drm_scanout_buffer; +struct intel_display; struct intel_framebuffer; struct seq_file; struct vm_area_struct; @@ -22,4 +25,10 @@ int intel_bo_read_from_page(struct drm_gem_object *obj, u64 offset, void *dst, i void intel_bo_describe(struct seq_file *m, struct drm_gem_object *obj); +void intel_bo_framebuffer_fini(struct drm_gem_object *obj); +int intel_bo_framebuffer_init(struct drm_gem_object *obj, struct drm_mode_fb_cmd2 *mode_cmd); +struct drm_gem_object *intel_bo_framebuffer_lookup(struct intel_display *display, + struct drm_file *filp, + const struct drm_mode_fb_cmd2 *user_mode_cmd); + #endif /* __INTEL_BO__ */ diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c index 49c6ca9d94c6..5768619f840f 100644 --- a/drivers/gpu/drm/i915/display/intel_fb.c +++ b/drivers/gpu/drm/i915/display/intel_fb.c @@ -17,7 +17,6 @@ #include "intel_display_types.h" #include "intel_display_utils.h" #include "intel_fb.h" -#include "intel_fb_bo.h" #include "intel_frontbuffer.h" #include "intel_parent.h" #include "intel_plane.h" @@ -2111,7 +2110,7 @@ static void intel_user_framebuffer_destroy(struct drm_framebuffer *fb) if (intel_fb_uses_dpt(fb)) intel_parent_dpt_destroy(display, intel_fb->dpt); - intel_fb_bo_framebuffer_fini(intel_fb_bo(fb)); + intel_bo_framebuffer_fini(intel_fb_bo(fb)); intel_parent_frontbuffer_put(display, intel_fb->frontbuffer); @@ -2222,7 +2221,7 @@ int intel_framebuffer_init(struct intel_framebuffer *intel_fb, /* * intel_parent_frontbuffer_get() must be done before - * intel_fb_bo_framebuffer_init() to avoid set_tiling vs. addfb race. + * intel_bo_framebuffer_init() to avoid set_tiling vs. addfb race. */ intel_fb->frontbuffer = intel_parent_frontbuffer_get(display, obj); if (!intel_fb->frontbuffer) { @@ -2230,7 +2229,7 @@ int intel_framebuffer_init(struct intel_framebuffer *intel_fb, goto err_free_panic; } - ret = intel_fb_bo_framebuffer_init(obj, mode_cmd); + ret = intel_bo_framebuffer_init(obj, mode_cmd); if (ret) goto err_frontbuffer_put; @@ -2333,7 +2332,7 @@ int intel_framebuffer_init(struct intel_framebuffer *intel_fb, if (intel_fb_uses_dpt(fb)) intel_parent_dpt_destroy(display, intel_fb->dpt); err_bo_framebuffer_fini: - intel_fb_bo_framebuffer_fini(obj); + intel_bo_framebuffer_fini(obj); err_frontbuffer_put: intel_parent_frontbuffer_put(display, intel_fb->frontbuffer); err_free_panic: @@ -2348,11 +2347,12 @@ intel_user_framebuffer_create(struct drm_device *dev, const struct drm_format_info *info, const struct drm_mode_fb_cmd2 *user_mode_cmd) { + struct intel_display *display = to_intel_display(dev); struct drm_framebuffer *fb; struct drm_gem_object *obj; struct drm_mode_fb_cmd2 mode_cmd = *user_mode_cmd; - obj = intel_fb_bo_lookup_valid_bo(dev, filp, &mode_cmd); + obj = intel_bo_framebuffer_lookup(display, filp, &mode_cmd); if (IS_ERR(obj)) return ERR_CAST(obj); diff --git a/drivers/gpu/drm/i915/display/intel_fb_bo.c b/drivers/gpu/drm/i915/display/intel_fb_bo.c deleted file mode 100644 index a4d49ef450d9..000000000000 --- a/drivers/gpu/drm/i915/display/intel_fb_bo.c +++ /dev/null @@ -1,99 +0,0 @@ -/* SPDX-License-Identifier: MIT */ -/* - * Copyright © 2021 Intel Corporation - */ - -#include <drm/drm_framebuffer.h> -#include <drm/drm_print.h> - -#include "gem/i915_gem_object.h" - -#include "i915_drv.h" -#include "intel_fb.h" -#include "intel_fb_bo.h" - -void intel_fb_bo_framebuffer_fini(struct drm_gem_object *obj) -{ - /* Nothing to do for i915 */ -} - -int intel_fb_bo_framebuffer_init(struct drm_gem_object *_obj, - struct drm_mode_fb_cmd2 *mode_cmd) -{ - struct drm_i915_gem_object *obj = to_intel_bo(_obj); - struct drm_i915_private *i915 = to_i915(obj->base.dev); - unsigned int tiling, stride; - - i915_gem_object_lock(obj, NULL); - tiling = i915_gem_object_get_tiling(obj); - stride = i915_gem_object_get_stride(obj); - i915_gem_object_unlock(obj); - - if (mode_cmd->flags & DRM_MODE_FB_MODIFIERS) { - /* - * If there's a fence, enforce that - * the fb modifier and tiling mode match. - */ - if (tiling != I915_TILING_NONE && - tiling != intel_fb_modifier_to_tiling(mode_cmd->modifier[0])) { - drm_dbg_kms(&i915->drm, - "tiling_mode doesn't match fb modifier\n"); - return -EINVAL; - } - } else { - if (tiling == I915_TILING_X) { - mode_cmd->modifier[0] = I915_FORMAT_MOD_X_TILED; - } else if (tiling == I915_TILING_Y) { - drm_dbg_kms(&i915->drm, - "No Y tiling for legacy addfb\n"); - return -EINVAL; - } - } - - /* - * gen2/3 display engine uses the fence if present, - * so the tiling mode must match the fb modifier exactly. - */ - if (GRAPHICS_VER(i915) < 4 && - tiling != intel_fb_modifier_to_tiling(mode_cmd->modifier[0])) { - drm_dbg_kms(&i915->drm, - "tiling_mode must match fb modifier exactly on gen2/3\n"); - return -EINVAL; - } - - /* - * If there's a fence, enforce that - * the fb pitch and fence stride match. - */ - if (tiling != I915_TILING_NONE && mode_cmd->pitches[0] != stride) { - drm_dbg_kms(&i915->drm, - "pitch (%d) must match tiling stride (%d)\n", - mode_cmd->pitches[0], stride); - return -EINVAL; - } - - return 0; -} - -struct drm_gem_object * -intel_fb_bo_lookup_valid_bo(struct drm_device *drm, - struct drm_file *filp, - const struct drm_mode_fb_cmd2 *mode_cmd) -{ - struct drm_i915_private *i915 = to_i915(drm); - struct drm_i915_gem_object *obj; - - obj = i915_gem_object_lookup(filp, mode_cmd->handles[0]); - if (!obj) - return ERR_PTR(-ENOENT); - - /* object is backed with LMEM for discrete */ - if (HAS_LMEM(i915) && !i915_gem_object_can_migrate(obj, INTEL_REGION_LMEM_0)) { - /* object is "remote", not in local memory */ - i915_gem_object_put(obj); - drm_dbg_kms(&i915->drm, "framebuffer must reside in local memory\n"); - return ERR_PTR(-EREMOTE); - } - - return intel_bo_to_drm_bo(obj); -} diff --git a/drivers/gpu/drm/i915/display/intel_fb_bo.h b/drivers/gpu/drm/i915/display/intel_fb_bo.h deleted file mode 100644 index d775773c6c03..000000000000 --- a/drivers/gpu/drm/i915/display/intel_fb_bo.h +++ /dev/null @@ -1,25 +0,0 @@ -/* SPDX-License-Identifier: MIT */ -/* - * Copyright © 2021 Intel Corporation - */ - -#ifndef __INTEL_FB_BO_H__ -#define __INTEL_FB_BO_H__ - -struct drm_device; -struct drm_file; -struct drm_framebuffer; -struct drm_gem_object; -struct drm_mode_fb_cmd2; - -void intel_fb_bo_framebuffer_fini(struct drm_gem_object *obj); - -int intel_fb_bo_framebuffer_init(struct drm_gem_object *obj, - struct drm_mode_fb_cmd2 *mode_cmd); - -struct drm_gem_object * -intel_fb_bo_lookup_valid_bo(struct drm_device *drm, - struct drm_file *filp, - const struct drm_mode_fb_cmd2 *user_mode_cmd); - -#endif diff --git a/drivers/gpu/drm/i915/i915_bo.c b/drivers/gpu/drm/i915/i915_bo.c index 04fc0e3b7ef6..1789f7cab05c 100644 --- a/drivers/gpu/drm/i915/i915_bo.c +++ b/drivers/gpu/drm/i915/i915_bo.c @@ -2,8 +2,10 @@ /* Copyright © 2024 Intel Corporation */ #include <drm/drm_panic.h> +#include <drm/drm_print.h> #include <drm/intel/display_parent_interface.h> +#include "display/intel_fb.h" #include "gem/i915_gem_mman.h" #include "gem/i915_gem_object.h" #include "gem/i915_gem_object_frontbuffer.h" @@ -11,6 +13,7 @@ #include "i915_bo.h" #include "i915_debugfs.h" +#include "i915_drv.h" static bool i915_bo_is_tiled(struct drm_gem_object *obj) { @@ -52,6 +55,92 @@ static void i915_bo_describe(struct seq_file *m, struct drm_gem_object *obj) i915_debugfs_describe_obj(m, to_intel_bo(obj)); } +static int i915_bo_framebuffer_init(struct drm_gem_object *_obj, + struct drm_mode_fb_cmd2 *mode_cmd) +{ + struct drm_i915_gem_object *obj = to_intel_bo(_obj); + struct drm_i915_private *i915 = to_i915(obj->base.dev); + unsigned int tiling, stride; + + i915_gem_object_lock(obj, NULL); + tiling = i915_gem_object_get_tiling(obj); + stride = i915_gem_object_get_stride(obj); + i915_gem_object_unlock(obj); + + if (mode_cmd->flags & DRM_MODE_FB_MODIFIERS) { + /* + * If there's a fence, enforce that + * the fb modifier and tiling mode match. + */ + if (tiling != I915_TILING_NONE && + tiling != intel_fb_modifier_to_tiling(mode_cmd->modifier[0])) { + drm_dbg_kms(&i915->drm, + "tiling_mode doesn't match fb modifier\n"); + return -EINVAL; + } + } else { + if (tiling == I915_TILING_X) { + mode_cmd->modifier[0] = I915_FORMAT_MOD_X_TILED; + } else if (tiling == I915_TILING_Y) { + drm_dbg_kms(&i915->drm, + "No Y tiling for legacy addfb\n"); + return -EINVAL; + } + } + + /* + * gen2/3 display engine uses the fence if present, + * so the tiling mode must match the fb modifier exactly. + */ + if (GRAPHICS_VER(i915) < 4 && + tiling != intel_fb_modifier_to_tiling(mode_cmd->modifier[0])) { + drm_dbg_kms(&i915->drm, + "tiling_mode must match fb modifier exactly on gen2/3\n"); + return -EINVAL; + } + + /* + * If there's a fence, enforce that + * the fb pitch and fence stride match. + */ + if (tiling != I915_TILING_NONE && mode_cmd->pitches[0] != stride) { + drm_dbg_kms(&i915->drm, + "pitch (%d) must match tiling stride (%d)\n", + mode_cmd->pitches[0], stride); + return -EINVAL; + } + + return 0; +} + +static void i915_bo_framebuffer_fini(struct drm_gem_object *obj) +{ + /* Nothing to do for i915 */ +} + +static struct drm_gem_object * +i915_bo_framebuffer_lookup(struct drm_device *drm, + struct drm_file *filp, + const struct drm_mode_fb_cmd2 *mode_cmd) +{ + struct drm_i915_private *i915 = to_i915(drm); + struct drm_i915_gem_object *obj; + + obj = i915_gem_object_lookup(filp, mode_cmd->handles[0]); + if (!obj) + return ERR_PTR(-ENOENT); + + /* object is backed with LMEM for discrete */ + if (HAS_LMEM(i915) && !i915_gem_object_can_migrate(obj, INTEL_REGION_LMEM_0)) { + /* object is "remote", not in local memory */ + i915_gem_object_put(obj); + drm_dbg_kms(&i915->drm, "framebuffer must reside in local memory\n"); + return ERR_PTR(-EREMOTE); + } + + return intel_bo_to_drm_bo(obj); +} + const struct intel_display_bo_interface i915_display_bo_interface = { .is_tiled = i915_bo_is_tiled, .is_userptr = i915_bo_is_userptr, @@ -61,4 +150,7 @@ const struct intel_display_bo_interface i915_display_bo_interface = { .fb_mmap = i915_bo_fb_mmap, .read_from_page = i915_bo_read_from_page, .describe = i915_bo_describe, + .framebuffer_init = i915_bo_framebuffer_init, + .framebuffer_fini = i915_bo_framebuffer_fini, + .framebuffer_lookup = i915_bo_framebuffer_lookup, }; diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile index b16ed1ce2a85..dab979287a96 100644 --- a/drivers/gpu/drm/xe/Makefile +++ b/drivers/gpu/drm/xe/Makefile @@ -211,7 +211,6 @@ $(obj)/i915-display/%.o: $(srctree)/drivers/gpu/drm/i915/display/%.c FORCE # Display code specific to xe xe-$(CONFIG_DRM_XE_DISPLAY) += \ - display/intel_fb_bo.o \ display/intel_fbdev_fb.o \ display/xe_display.o \ display/xe_display_bo.o \ diff --git a/drivers/gpu/drm/xe/display/intel_fb_bo.c b/drivers/gpu/drm/xe/display/intel_fb_bo.c deleted file mode 100644 index db8b1a27b4de..000000000000 --- a/drivers/gpu/drm/xe/display/intel_fb_bo.c +++ /dev/null @@ -1,91 +0,0 @@ -/* SPDX-License-Identifier: MIT */ -/* - * Copyright © 2021 Intel Corporation - */ - -#include <drm/drm_modeset_helper.h> -#include <drm/ttm/ttm_bo.h> - -#include "intel_display_types.h" -#include "intel_fb.h" -#include "intel_fb_bo.h" -#include "xe_bo.h" - -void intel_fb_bo_framebuffer_fini(struct drm_gem_object *obj) -{ - struct xe_bo *bo = gem_to_xe_bo(obj); - - if (bo->flags & XE_BO_FLAG_PINNED) { - /* Unpin our kernel fb first */ - xe_bo_lock(bo, false); - xe_bo_unpin(bo); - xe_bo_unlock(bo); - } - xe_bo_put(bo); -} - -int intel_fb_bo_framebuffer_init(struct drm_gem_object *obj, - struct drm_mode_fb_cmd2 *mode_cmd) -{ - struct xe_bo *bo = gem_to_xe_bo(obj); - struct xe_device *xe = to_xe_device(bo->ttm.base.dev); - int ret; - - /* - * Some modifiers require physical alignment of 64KiB VRAM pages; - * require that the BO in those cases is created correctly. - */ - if (XE_IOCTL_DBG(xe, intel_fb_needs_64k_phys(mode_cmd->modifier[0]) && - !(bo->flags & XE_BO_FLAG_NEEDS_64K))) - return -EINVAL; - - xe_bo_get(bo); - - ret = ttm_bo_reserve(&bo->ttm, true, false, NULL); - if (ret) - goto err; - - if (!(bo->flags & XE_BO_FLAG_SCANOUT)) { - /* - * XE_BO_FLAG_SCANOUT should ideally be set at creation, or is - * automatically set when creating FB. We cannot change caching - * mode when the bo is VM_BINDed, so we can only set - * coherency with display when unbound. - */ - if (XE_IOCTL_DBG(xe, xe_bo_is_vm_bound(bo))) { - ttm_bo_unreserve(&bo->ttm); - ret = -EINVAL; - goto err; - } - bo->flags |= XE_BO_FLAG_SCANOUT; - } - ttm_bo_unreserve(&bo->ttm); - return 0; - -err: - xe_bo_put(bo); - return ret; -} - -struct drm_gem_object *intel_fb_bo_lookup_valid_bo(struct drm_device *drm, - struct drm_file *filp, - const struct drm_mode_fb_cmd2 *mode_cmd) -{ - struct xe_device *xe = to_xe_device(drm); - struct xe_bo *bo; - struct drm_gem_object *gem = drm_gem_object_lookup(filp, mode_cmd->handles[0]); - - if (!gem) - return ERR_PTR(-ENOENT); - - bo = gem_to_xe_bo(gem); - /* Require vram placement or dma-buf import */ - if (IS_DGFX(xe) && - !xe_bo_can_migrate(bo, XE_PL_VRAM0) && - bo->ttm.type != ttm_bo_type_sg) { - drm_gem_object_put(gem); - return ERR_PTR(-EREMOTE); - } - - return gem; -} diff --git a/drivers/gpu/drm/xe/display/xe_display_bo.c b/drivers/gpu/drm/xe/display/xe_display_bo.c index a53ba3f247ec..a689f71e7b14 100644 --- a/drivers/gpu/drm/xe/display/xe_display_bo.c +++ b/drivers/gpu/drm/xe/display/xe_display_bo.c @@ -4,6 +4,7 @@ #include <drm/drm_gem.h> #include <drm/intel/display_parent_interface.h> +#include "intel_fb.h" #include "xe_bo.h" #include "xe_display_bo.h" #include "xe_pxp.h" @@ -20,9 +21,92 @@ static int xe_display_bo_read_from_page(struct drm_gem_object *obj, u64 offset, return xe_bo_read(bo, offset, dst, size); } +static int xe_display_bo_framebuffer_init(struct drm_gem_object *obj, + struct drm_mode_fb_cmd2 *mode_cmd) +{ + struct xe_bo *bo = gem_to_xe_bo(obj); + struct xe_device *xe = to_xe_device(bo->ttm.base.dev); + int ret; + + /* + * Some modifiers require physical alignment of 64KiB VRAM pages; + * require that the BO in those cases is created correctly. + */ + if (XE_IOCTL_DBG(xe, intel_fb_needs_64k_phys(mode_cmd->modifier[0]) && + !(bo->flags & XE_BO_FLAG_NEEDS_64K))) + return -EINVAL; + + xe_bo_get(bo); + + ret = ttm_bo_reserve(&bo->ttm, true, false, NULL); + if (ret) + goto err; + + if (!(bo->flags & XE_BO_FLAG_SCANOUT)) { + /* + * XE_BO_FLAG_SCANOUT should ideally be set at creation, or is + * automatically set when creating FB. We cannot change caching + * mode when the bo is VM_BINDed, so we can only set + * coherency with display when unbound. + */ + if (XE_IOCTL_DBG(xe, xe_bo_is_vm_bound(bo))) { + ttm_bo_unreserve(&bo->ttm); + ret = -EINVAL; + goto err; + } + bo->flags |= XE_BO_FLAG_SCANOUT; + } + ttm_bo_unreserve(&bo->ttm); + return 0; + +err: + xe_bo_put(bo); + return ret; +} + +static void xe_display_bo_framebuffer_fini(struct drm_gem_object *obj) +{ + struct xe_bo *bo = gem_to_xe_bo(obj); + + if (bo->flags & XE_BO_FLAG_PINNED) { + /* Unpin our kernel fb first */ + xe_bo_lock(bo, false); + xe_bo_unpin(bo); + xe_bo_unlock(bo); + } + xe_bo_put(bo); +} + +static struct drm_gem_object * +xe_display_bo_framebuffer_lookup(struct drm_device *drm, + struct drm_file *filp, + const struct drm_mode_fb_cmd2 *mode_cmd) +{ + struct xe_device *xe = to_xe_device(drm); + struct xe_bo *bo; + struct drm_gem_object *gem = drm_gem_object_lookup(filp, mode_cmd->handles[0]); + + if (!gem) + return ERR_PTR(-ENOENT); + + bo = gem_to_xe_bo(gem); + /* Require vram placement or dma-buf import */ + if (IS_DGFX(xe) && + !xe_bo_can_migrate(bo, XE_PL_VRAM0) && + bo->ttm.type != ttm_bo_type_sg) { + drm_gem_object_put(gem); + return ERR_PTR(-EREMOTE); + } + + return gem; +} + const struct intel_display_bo_interface xe_display_bo_interface = { .is_protected = xe_display_bo_is_protected, .key_check = xe_pxp_obj_key_check, .fb_mmap = drm_gem_prime_mmap, .read_from_page = xe_display_bo_read_from_page, + .framebuffer_init = xe_display_bo_framebuffer_init, + .framebuffer_fini = xe_display_bo_framebuffer_fini, + .framebuffer_lookup = xe_display_bo_framebuffer_lookup, }; diff --git a/include/drm/intel/display_parent_interface.h b/include/drm/intel/display_parent_interface.h index 2b53d12b0e0a..97ec94a2e749 100644 --- a/include/drm/intel/display_parent_interface.h +++ b/include/drm/intel/display_parent_interface.h @@ -12,6 +12,7 @@ struct drm_device; struct drm_file; struct drm_framebuffer; struct drm_gem_object; +struct drm_mode_fb_cmd2; struct drm_plane_state; struct drm_scanout_buffer; struct i915_vma; @@ -37,6 +38,11 @@ struct intel_display_bo_interface { int (*fb_mmap)(struct drm_gem_object *obj, struct vm_area_struct *vma); int (*read_from_page)(struct drm_gem_object *obj, u64 offset, void *dst, int size); void (*describe)(struct seq_file *m, struct drm_gem_object *obj); /* Optional */ + int (*framebuffer_init)(struct drm_gem_object *obj, struct drm_mode_fb_cmd2 *mode_cmd); + void (*framebuffer_fini)(struct drm_gem_object *obj); + struct drm_gem_object *(*framebuffer_lookup)(struct drm_device *drm, + struct drm_file *filp, + const struct drm_mode_fb_cmd2 *user_mode_cmd); }; struct intel_display_dpt_interface { -- 2.47.3 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* RE: [PATCH 5/5] drm/{i915,xe}: move framebuffer bo to parent interface 2026-03-11 14:18 ` [PATCH 5/5] drm/{i915,xe}: move framebuffer bo to parent interface Jani Nikula @ 2026-03-12 4:25 ` Kandpal, Suraj 2026-03-12 9:00 ` [PATCH 5/5] drm/{i915, xe}: " Jani Nikula 0 siblings, 1 reply; 17+ messages in thread From: Kandpal, Suraj @ 2026-03-12 4:25 UTC (permalink / raw) To: Nikula, Jani, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org Cc: Nikula, Jani > Subject: [PATCH 5/5] drm/{i915,xe}: move framebuffer bo to parent interface > > Add .framebuffer_init, .framebuffer_fini and .framebuffer_lookup to the bo > parent interface. While they're about framebuffers, they're specifically about > framebuffer objects, so the bo interface is a good enough fit, and there's no > need to add another interface struct. Maybe it can also be mentioned that since we move all the functions from Intel_fb_bo to i915_bo.c we can safely remove it. > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/i915/Makefile | 1 - > drivers/gpu/drm/i915/display/intel_bo.c | 21 +++++ > drivers/gpu/drm/i915/display/intel_bo.h | 9 ++ > drivers/gpu/drm/i915/display/intel_fb.c | 12 +-- > drivers/gpu/drm/i915/display/intel_fb_bo.c | 99 -------------------- > drivers/gpu/drm/i915/display/intel_fb_bo.h | 25 ----- > drivers/gpu/drm/i915/i915_bo.c | 92 ++++++++++++++++++ > drivers/gpu/drm/xe/Makefile | 1 - > drivers/gpu/drm/xe/display/intel_fb_bo.c | 91 ------------------ > drivers/gpu/drm/xe/display/xe_display_bo.c | 84 +++++++++++++++++ > include/drm/intel/display_parent_interface.h | 6 ++ > 11 files changed, 218 insertions(+), 223 deletions(-) delete mode 100644 > drivers/gpu/drm/i915/display/intel_fb_bo.c > delete mode 100644 drivers/gpu/drm/i915/display/intel_fb_bo.h > delete mode 100644 drivers/gpu/drm/xe/display/intel_fb_bo.c > > diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile > index 425933fb26a5..be976a90c5a6 100644 > --- a/drivers/gpu/drm/i915/Makefile > +++ b/drivers/gpu/drm/i915/Makefile > @@ -278,7 +278,6 @@ i915-y += \ > display/intel_drrs.o \ > display/intel_dsb.o \ > display/intel_fb.o \ > - display/intel_fb_bo.o \ > display/intel_fb_pin.o \ > display/intel_fbc.o \ > display/intel_fdi.o \ > diff --git a/drivers/gpu/drm/i915/display/intel_bo.c > b/drivers/gpu/drm/i915/display/intel_bo.c > index e356ab4e0640..3b82d38a0504 100644 > --- a/drivers/gpu/drm/i915/display/intel_bo.c > +++ b/drivers/gpu/drm/i915/display/intel_bo.c > @@ -64,3 +64,24 @@ void intel_bo_describe(struct seq_file *m, struct > drm_gem_object *obj) > if (display->parent->bo->describe) > display->parent->bo->describe(m, obj); } > + > +int intel_bo_framebuffer_init(struct drm_gem_object *obj, struct > +drm_mode_fb_cmd2 *mode_cmd) { > + struct intel_display *display = to_intel_display(obj->dev); > + > + return display->parent->bo->framebuffer_init(obj, mode_cmd); } > + > +void intel_bo_framebuffer_fini(struct drm_gem_object *obj) { > + struct intel_display *display = to_intel_display(obj->dev); > + > + display->parent->bo->framebuffer_fini(obj); Should we be making this optional . This will help avoid creating dummy functions for fini like you have done previously. Regards, Suraj Kandpal > +} > + > +struct drm_gem_object *intel_bo_framebuffer_lookup(struct intel_display > *display, > + struct drm_file *filp, > + const struct > drm_mode_fb_cmd2 *user_mode_cmd) { > + return display->parent->bo->framebuffer_lookup(display->drm, filp, > +user_mode_cmd); } > diff --git a/drivers/gpu/drm/i915/display/intel_bo.h > b/drivers/gpu/drm/i915/display/intel_bo.h > index 40390ed92ceb..aec188c706c2 100644 > --- a/drivers/gpu/drm/i915/display/intel_bo.h > +++ b/drivers/gpu/drm/i915/display/intel_bo.h > @@ -6,8 +6,11 @@ > > #include <linux/types.h> > > +struct drm_file; > struct drm_gem_object; > +struct drm_mode_fb_cmd2; > struct drm_scanout_buffer; > +struct intel_display; > struct intel_framebuffer; > struct seq_file; > struct vm_area_struct; > @@ -22,4 +25,10 @@ int intel_bo_read_from_page(struct drm_gem_object > *obj, u64 offset, void *dst, i > > void intel_bo_describe(struct seq_file *m, struct drm_gem_object *obj); > > +void intel_bo_framebuffer_fini(struct drm_gem_object *obj); int > +intel_bo_framebuffer_init(struct drm_gem_object *obj, struct > +drm_mode_fb_cmd2 *mode_cmd); struct drm_gem_object > *intel_bo_framebuffer_lookup(struct intel_display *display, > + struct drm_file *filp, > + const struct > drm_mode_fb_cmd2 *user_mode_cmd); > + > #endif /* __INTEL_BO__ */ > diff --git a/drivers/gpu/drm/i915/display/intel_fb.c > b/drivers/gpu/drm/i915/display/intel_fb.c > index 49c6ca9d94c6..5768619f840f 100644 > --- a/drivers/gpu/drm/i915/display/intel_fb.c > +++ b/drivers/gpu/drm/i915/display/intel_fb.c > @@ -17,7 +17,6 @@ > #include "intel_display_types.h" > #include "intel_display_utils.h" > #include "intel_fb.h" > -#include "intel_fb_bo.h" > #include "intel_frontbuffer.h" > #include "intel_parent.h" > #include "intel_plane.h" > @@ -2111,7 +2110,7 @@ static void intel_user_framebuffer_destroy(struct > drm_framebuffer *fb) > if (intel_fb_uses_dpt(fb)) > intel_parent_dpt_destroy(display, intel_fb->dpt); > > - intel_fb_bo_framebuffer_fini(intel_fb_bo(fb)); > + intel_bo_framebuffer_fini(intel_fb_bo(fb)); > > intel_parent_frontbuffer_put(display, intel_fb->frontbuffer); > > @@ -2222,7 +2221,7 @@ int intel_framebuffer_init(struct intel_framebuffer > *intel_fb, > > /* > * intel_parent_frontbuffer_get() must be done before > - * intel_fb_bo_framebuffer_init() to avoid set_tiling vs. addfb race. > + * intel_bo_framebuffer_init() to avoid set_tiling vs. addfb race. > */ > intel_fb->frontbuffer = intel_parent_frontbuffer_get(display, obj); > if (!intel_fb->frontbuffer) { > @@ -2230,7 +2229,7 @@ int intel_framebuffer_init(struct intel_framebuffer > *intel_fb, > goto err_free_panic; > } > > - ret = intel_fb_bo_framebuffer_init(obj, mode_cmd); > + ret = intel_bo_framebuffer_init(obj, mode_cmd); > if (ret) > goto err_frontbuffer_put; > > @@ -2333,7 +2332,7 @@ int intel_framebuffer_init(struct intel_framebuffer > *intel_fb, > if (intel_fb_uses_dpt(fb)) > intel_parent_dpt_destroy(display, intel_fb->dpt); > err_bo_framebuffer_fini: > - intel_fb_bo_framebuffer_fini(obj); > + intel_bo_framebuffer_fini(obj); > err_frontbuffer_put: > intel_parent_frontbuffer_put(display, intel_fb->frontbuffer); > err_free_panic: > @@ -2348,11 +2347,12 @@ intel_user_framebuffer_create(struct > drm_device *dev, > const struct drm_format_info *info, > const struct drm_mode_fb_cmd2 > *user_mode_cmd) { > + struct intel_display *display = to_intel_display(dev); > struct drm_framebuffer *fb; > struct drm_gem_object *obj; > struct drm_mode_fb_cmd2 mode_cmd = *user_mode_cmd; > > - obj = intel_fb_bo_lookup_valid_bo(dev, filp, &mode_cmd); > + obj = intel_bo_framebuffer_lookup(display, filp, &mode_cmd); > if (IS_ERR(obj)) > return ERR_CAST(obj); > > diff --git a/drivers/gpu/drm/i915/display/intel_fb_bo.c > b/drivers/gpu/drm/i915/display/intel_fb_bo.c > deleted file mode 100644 > index a4d49ef450d9..000000000000 > --- a/drivers/gpu/drm/i915/display/intel_fb_bo.c > +++ /dev/null > @@ -1,99 +0,0 @@ > -/* SPDX-License-Identifier: MIT */ > -/* > - * Copyright © 2021 Intel Corporation > - */ > - > -#include <drm/drm_framebuffer.h> > -#include <drm/drm_print.h> > - > -#include "gem/i915_gem_object.h" > - > -#include "i915_drv.h" > -#include "intel_fb.h" > -#include "intel_fb_bo.h" > - > -void intel_fb_bo_framebuffer_fini(struct drm_gem_object *obj) -{ > - /* Nothing to do for i915 */ > -} > - > -int intel_fb_bo_framebuffer_init(struct drm_gem_object *_obj, > - struct drm_mode_fb_cmd2 *mode_cmd) > -{ > - struct drm_i915_gem_object *obj = to_intel_bo(_obj); > - struct drm_i915_private *i915 = to_i915(obj->base.dev); > - unsigned int tiling, stride; > - > - i915_gem_object_lock(obj, NULL); > - tiling = i915_gem_object_get_tiling(obj); > - stride = i915_gem_object_get_stride(obj); > - i915_gem_object_unlock(obj); > - > - if (mode_cmd->flags & DRM_MODE_FB_MODIFIERS) { > - /* > - * If there's a fence, enforce that > - * the fb modifier and tiling mode match. > - */ > - if (tiling != I915_TILING_NONE && > - tiling != intel_fb_modifier_to_tiling(mode_cmd- > >modifier[0])) { > - drm_dbg_kms(&i915->drm, > - "tiling_mode doesn't match fb modifier\n"); > - return -EINVAL; > - } > - } else { > - if (tiling == I915_TILING_X) { > - mode_cmd->modifier[0] = > I915_FORMAT_MOD_X_TILED; > - } else if (tiling == I915_TILING_Y) { > - drm_dbg_kms(&i915->drm, > - "No Y tiling for legacy addfb\n"); > - return -EINVAL; > - } > - } > - > - /* > - * gen2/3 display engine uses the fence if present, > - * so the tiling mode must match the fb modifier exactly. > - */ > - if (GRAPHICS_VER(i915) < 4 && > - tiling != intel_fb_modifier_to_tiling(mode_cmd->modifier[0])) { > - drm_dbg_kms(&i915->drm, > - "tiling_mode must match fb modifier exactly on > gen2/3\n"); > - return -EINVAL; > - } > - > - /* > - * If there's a fence, enforce that > - * the fb pitch and fence stride match. > - */ > - if (tiling != I915_TILING_NONE && mode_cmd->pitches[0] != stride) { > - drm_dbg_kms(&i915->drm, > - "pitch (%d) must match tiling stride (%d)\n", > - mode_cmd->pitches[0], stride); > - return -EINVAL; > - } > - > - return 0; > -} > - > -struct drm_gem_object * > -intel_fb_bo_lookup_valid_bo(struct drm_device *drm, > - struct drm_file *filp, > - const struct drm_mode_fb_cmd2 *mode_cmd) > -{ > - struct drm_i915_private *i915 = to_i915(drm); > - struct drm_i915_gem_object *obj; > - > - obj = i915_gem_object_lookup(filp, mode_cmd->handles[0]); > - if (!obj) > - return ERR_PTR(-ENOENT); > - > - /* object is backed with LMEM for discrete */ > - if (HAS_LMEM(i915) && !i915_gem_object_can_migrate(obj, > INTEL_REGION_LMEM_0)) { > - /* object is "remote", not in local memory */ > - i915_gem_object_put(obj); > - drm_dbg_kms(&i915->drm, "framebuffer must reside in local > memory\n"); > - return ERR_PTR(-EREMOTE); > - } > - > - return intel_bo_to_drm_bo(obj); > -} > diff --git a/drivers/gpu/drm/i915/display/intel_fb_bo.h > b/drivers/gpu/drm/i915/display/intel_fb_bo.h > deleted file mode 100644 > index d775773c6c03..000000000000 > --- a/drivers/gpu/drm/i915/display/intel_fb_bo.h > +++ /dev/null > @@ -1,25 +0,0 @@ > -/* SPDX-License-Identifier: MIT */ > -/* > - * Copyright © 2021 Intel Corporation > - */ > - > -#ifndef __INTEL_FB_BO_H__ > -#define __INTEL_FB_BO_H__ > - > -struct drm_device; > -struct drm_file; > -struct drm_framebuffer; > -struct drm_gem_object; > -struct drm_mode_fb_cmd2; > - > -void intel_fb_bo_framebuffer_fini(struct drm_gem_object *obj); > - > -int intel_fb_bo_framebuffer_init(struct drm_gem_object *obj, > - struct drm_mode_fb_cmd2 *mode_cmd); > - > -struct drm_gem_object * > -intel_fb_bo_lookup_valid_bo(struct drm_device *drm, > - struct drm_file *filp, > - const struct drm_mode_fb_cmd2 > *user_mode_cmd); > - > -#endif > diff --git a/drivers/gpu/drm/i915/i915_bo.c > b/drivers/gpu/drm/i915/i915_bo.c index 04fc0e3b7ef6..1789f7cab05c > 100644 > --- a/drivers/gpu/drm/i915/i915_bo.c > +++ b/drivers/gpu/drm/i915/i915_bo.c > @@ -2,8 +2,10 @@ > /* Copyright © 2024 Intel Corporation */ > > #include <drm/drm_panic.h> > +#include <drm/drm_print.h> > #include <drm/intel/display_parent_interface.h> > > +#include "display/intel_fb.h" > #include "gem/i915_gem_mman.h" > #include "gem/i915_gem_object.h" > #include "gem/i915_gem_object_frontbuffer.h" > @@ -11,6 +13,7 @@ > > #include "i915_bo.h" > #include "i915_debugfs.h" > +#include "i915_drv.h" > > static bool i915_bo_is_tiled(struct drm_gem_object *obj) { @@ -52,6 +55,92 > @@ static void i915_bo_describe(struct seq_file *m, struct drm_gem_object > *obj) > i915_debugfs_describe_obj(m, to_intel_bo(obj)); } > > +static int i915_bo_framebuffer_init(struct drm_gem_object *_obj, > + struct drm_mode_fb_cmd2 *mode_cmd) { > + struct drm_i915_gem_object *obj = to_intel_bo(_obj); > + struct drm_i915_private *i915 = to_i915(obj->base.dev); > + unsigned int tiling, stride; > + > + i915_gem_object_lock(obj, NULL); > + tiling = i915_gem_object_get_tiling(obj); > + stride = i915_gem_object_get_stride(obj); > + i915_gem_object_unlock(obj); > + > + if (mode_cmd->flags & DRM_MODE_FB_MODIFIERS) { > + /* > + * If there's a fence, enforce that > + * the fb modifier and tiling mode match. > + */ > + if (tiling != I915_TILING_NONE && > + tiling != intel_fb_modifier_to_tiling(mode_cmd- > >modifier[0])) { > + drm_dbg_kms(&i915->drm, > + "tiling_mode doesn't match fb modifier\n"); > + return -EINVAL; > + } > + } else { > + if (tiling == I915_TILING_X) { > + mode_cmd->modifier[0] = > I915_FORMAT_MOD_X_TILED; > + } else if (tiling == I915_TILING_Y) { > + drm_dbg_kms(&i915->drm, > + "No Y tiling for legacy addfb\n"); > + return -EINVAL; > + } > + } > + > + /* > + * gen2/3 display engine uses the fence if present, > + * so the tiling mode must match the fb modifier exactly. > + */ > + if (GRAPHICS_VER(i915) < 4 && > + tiling != intel_fb_modifier_to_tiling(mode_cmd->modifier[0])) { > + drm_dbg_kms(&i915->drm, > + "tiling_mode must match fb modifier exactly on > gen2/3\n"); > + return -EINVAL; > + } > + > + /* > + * If there's a fence, enforce that > + * the fb pitch and fence stride match. > + */ > + if (tiling != I915_TILING_NONE && mode_cmd->pitches[0] != stride) { > + drm_dbg_kms(&i915->drm, > + "pitch (%d) must match tiling stride (%d)\n", > + mode_cmd->pitches[0], stride); > + return -EINVAL; > + } > + > + return 0; > +} > + > +static void i915_bo_framebuffer_fini(struct drm_gem_object *obj) { > + /* Nothing to do for i915 */ > +} > + > +static struct drm_gem_object * > +i915_bo_framebuffer_lookup(struct drm_device *drm, > + struct drm_file *filp, > + const struct drm_mode_fb_cmd2 *mode_cmd) { > + struct drm_i915_private *i915 = to_i915(drm); > + struct drm_i915_gem_object *obj; > + > + obj = i915_gem_object_lookup(filp, mode_cmd->handles[0]); > + if (!obj) > + return ERR_PTR(-ENOENT); > + > + /* object is backed with LMEM for discrete */ > + if (HAS_LMEM(i915) && !i915_gem_object_can_migrate(obj, > INTEL_REGION_LMEM_0)) { > + /* object is "remote", not in local memory */ > + i915_gem_object_put(obj); > + drm_dbg_kms(&i915->drm, "framebuffer must reside in local > memory\n"); > + return ERR_PTR(-EREMOTE); > + } > + > + return intel_bo_to_drm_bo(obj); > +} > + > const struct intel_display_bo_interface i915_display_bo_interface = { > .is_tiled = i915_bo_is_tiled, > .is_userptr = i915_bo_is_userptr, > @@ -61,4 +150,7 @@ const struct intel_display_bo_interface > i915_display_bo_interface = { > .fb_mmap = i915_bo_fb_mmap, > .read_from_page = i915_bo_read_from_page, > .describe = i915_bo_describe, > + .framebuffer_init = i915_bo_framebuffer_init, > + .framebuffer_fini = i915_bo_framebuffer_fini, > + .framebuffer_lookup = i915_bo_framebuffer_lookup, > }; > diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile > index b16ed1ce2a85..dab979287a96 100644 > --- a/drivers/gpu/drm/xe/Makefile > +++ b/drivers/gpu/drm/xe/Makefile > @@ -211,7 +211,6 @@ $(obj)/i915-display/%.o: > $(srctree)/drivers/gpu/drm/i915/display/%.c FORCE > > # Display code specific to xe > xe-$(CONFIG_DRM_XE_DISPLAY) += \ > - display/intel_fb_bo.o \ > display/intel_fbdev_fb.o \ > display/xe_display.o \ > display/xe_display_bo.o \ > diff --git a/drivers/gpu/drm/xe/display/intel_fb_bo.c > b/drivers/gpu/drm/xe/display/intel_fb_bo.c > deleted file mode 100644 > index db8b1a27b4de..000000000000 > --- a/drivers/gpu/drm/xe/display/intel_fb_bo.c > +++ /dev/null > @@ -1,91 +0,0 @@ > -/* SPDX-License-Identifier: MIT */ > -/* > - * Copyright © 2021 Intel Corporation > - */ > - > -#include <drm/drm_modeset_helper.h> > -#include <drm/ttm/ttm_bo.h> > - > -#include "intel_display_types.h" > -#include "intel_fb.h" > -#include "intel_fb_bo.h" > -#include "xe_bo.h" > - > -void intel_fb_bo_framebuffer_fini(struct drm_gem_object *obj) -{ > - struct xe_bo *bo = gem_to_xe_bo(obj); > - > - if (bo->flags & XE_BO_FLAG_PINNED) { > - /* Unpin our kernel fb first */ > - xe_bo_lock(bo, false); > - xe_bo_unpin(bo); > - xe_bo_unlock(bo); > - } > - xe_bo_put(bo); > -} > - > -int intel_fb_bo_framebuffer_init(struct drm_gem_object *obj, > - struct drm_mode_fb_cmd2 *mode_cmd) > -{ > - struct xe_bo *bo = gem_to_xe_bo(obj); > - struct xe_device *xe = to_xe_device(bo->ttm.base.dev); > - int ret; > - > - /* > - * Some modifiers require physical alignment of 64KiB VRAM pages; > - * require that the BO in those cases is created correctly. > - */ > - if (XE_IOCTL_DBG(xe, intel_fb_needs_64k_phys(mode_cmd- > >modifier[0]) && > - !(bo->flags & XE_BO_FLAG_NEEDS_64K))) > - return -EINVAL; > - > - xe_bo_get(bo); > - > - ret = ttm_bo_reserve(&bo->ttm, true, false, NULL); > - if (ret) > - goto err; > - > - if (!(bo->flags & XE_BO_FLAG_SCANOUT)) { > - /* > - * XE_BO_FLAG_SCANOUT should ideally be set at creation, > or is > - * automatically set when creating FB. We cannot change > caching > - * mode when the bo is VM_BINDed, so we can only set > - * coherency with display when unbound. > - */ > - if (XE_IOCTL_DBG(xe, xe_bo_is_vm_bound(bo))) { > - ttm_bo_unreserve(&bo->ttm); > - ret = -EINVAL; > - goto err; > - } > - bo->flags |= XE_BO_FLAG_SCANOUT; > - } > - ttm_bo_unreserve(&bo->ttm); > - return 0; > - > -err: > - xe_bo_put(bo); > - return ret; > -} > - > -struct drm_gem_object *intel_fb_bo_lookup_valid_bo(struct drm_device > *drm, > - struct drm_file *filp, > - const struct > drm_mode_fb_cmd2 *mode_cmd) > -{ > - struct xe_device *xe = to_xe_device(drm); > - struct xe_bo *bo; > - struct drm_gem_object *gem = drm_gem_object_lookup(filp, > mode_cmd->handles[0]); > - > - if (!gem) > - return ERR_PTR(-ENOENT); > - > - bo = gem_to_xe_bo(gem); > - /* Require vram placement or dma-buf import */ > - if (IS_DGFX(xe) && > - !xe_bo_can_migrate(bo, XE_PL_VRAM0) && > - bo->ttm.type != ttm_bo_type_sg) { > - drm_gem_object_put(gem); > - return ERR_PTR(-EREMOTE); > - } > - > - return gem; > -} > diff --git a/drivers/gpu/drm/xe/display/xe_display_bo.c > b/drivers/gpu/drm/xe/display/xe_display_bo.c > index a53ba3f247ec..a689f71e7b14 100644 > --- a/drivers/gpu/drm/xe/display/xe_display_bo.c > +++ b/drivers/gpu/drm/xe/display/xe_display_bo.c > @@ -4,6 +4,7 @@ > #include <drm/drm_gem.h> > #include <drm/intel/display_parent_interface.h> > > +#include "intel_fb.h" > #include "xe_bo.h" > #include "xe_display_bo.h" > #include "xe_pxp.h" > @@ -20,9 +21,92 @@ static int xe_display_bo_read_from_page(struct > drm_gem_object *obj, u64 offset, > return xe_bo_read(bo, offset, dst, size); } > > +static int xe_display_bo_framebuffer_init(struct drm_gem_object *obj, > + struct drm_mode_fb_cmd2 > *mode_cmd) { > + struct xe_bo *bo = gem_to_xe_bo(obj); > + struct xe_device *xe = to_xe_device(bo->ttm.base.dev); > + int ret; > + > + /* > + * Some modifiers require physical alignment of 64KiB VRAM pages; > + * require that the BO in those cases is created correctly. > + */ > + if (XE_IOCTL_DBG(xe, intel_fb_needs_64k_phys(mode_cmd- > >modifier[0]) && > + !(bo->flags & XE_BO_FLAG_NEEDS_64K))) > + return -EINVAL; > + > + xe_bo_get(bo); > + > + ret = ttm_bo_reserve(&bo->ttm, true, false, NULL); > + if (ret) > + goto err; > + > + if (!(bo->flags & XE_BO_FLAG_SCANOUT)) { > + /* > + * XE_BO_FLAG_SCANOUT should ideally be set at creation, > or is > + * automatically set when creating FB. We cannot change > caching > + * mode when the bo is VM_BINDed, so we can only set > + * coherency with display when unbound. > + */ > + if (XE_IOCTL_DBG(xe, xe_bo_is_vm_bound(bo))) { > + ttm_bo_unreserve(&bo->ttm); > + ret = -EINVAL; > + goto err; > + } > + bo->flags |= XE_BO_FLAG_SCANOUT; > + } > + ttm_bo_unreserve(&bo->ttm); > + return 0; > + > +err: > + xe_bo_put(bo); > + return ret; > +} > + > +static void xe_display_bo_framebuffer_fini(struct drm_gem_object *obj) > +{ > + struct xe_bo *bo = gem_to_xe_bo(obj); > + > + if (bo->flags & XE_BO_FLAG_PINNED) { > + /* Unpin our kernel fb first */ > + xe_bo_lock(bo, false); > + xe_bo_unpin(bo); > + xe_bo_unlock(bo); > + } > + xe_bo_put(bo); > +} > + > +static struct drm_gem_object * > +xe_display_bo_framebuffer_lookup(struct drm_device *drm, > + struct drm_file *filp, > + const struct drm_mode_fb_cmd2 > *mode_cmd) { > + struct xe_device *xe = to_xe_device(drm); > + struct xe_bo *bo; > + struct drm_gem_object *gem = drm_gem_object_lookup(filp, > +mode_cmd->handles[0]); > + > + if (!gem) > + return ERR_PTR(-ENOENT); > + > + bo = gem_to_xe_bo(gem); > + /* Require vram placement or dma-buf import */ > + if (IS_DGFX(xe) && > + !xe_bo_can_migrate(bo, XE_PL_VRAM0) && > + bo->ttm.type != ttm_bo_type_sg) { > + drm_gem_object_put(gem); > + return ERR_PTR(-EREMOTE); > + } > + > + return gem; > +} > + > const struct intel_display_bo_interface xe_display_bo_interface = { > .is_protected = xe_display_bo_is_protected, > .key_check = xe_pxp_obj_key_check, > .fb_mmap = drm_gem_prime_mmap, > .read_from_page = xe_display_bo_read_from_page, > + .framebuffer_init = xe_display_bo_framebuffer_init, > + .framebuffer_fini = xe_display_bo_framebuffer_fini, > + .framebuffer_lookup = xe_display_bo_framebuffer_lookup, > }; > diff --git a/include/drm/intel/display_parent_interface.h > b/include/drm/intel/display_parent_interface.h > index 2b53d12b0e0a..97ec94a2e749 100644 > --- a/include/drm/intel/display_parent_interface.h > +++ b/include/drm/intel/display_parent_interface.h > @@ -12,6 +12,7 @@ struct drm_device; > struct drm_file; > struct drm_framebuffer; > struct drm_gem_object; > +struct drm_mode_fb_cmd2; > struct drm_plane_state; > struct drm_scanout_buffer; > struct i915_vma; > @@ -37,6 +38,11 @@ struct intel_display_bo_interface { > int (*fb_mmap)(struct drm_gem_object *obj, struct vm_area_struct > *vma); > int (*read_from_page)(struct drm_gem_object *obj, u64 offset, void > *dst, int size); > void (*describe)(struct seq_file *m, struct drm_gem_object *obj); /* > Optional */ > + int (*framebuffer_init)(struct drm_gem_object *obj, struct > drm_mode_fb_cmd2 *mode_cmd); > + void (*framebuffer_fini)(struct drm_gem_object *obj); > + struct drm_gem_object *(*framebuffer_lookup)(struct drm_device > *drm, > + struct drm_file *filp, > + const struct > drm_mode_fb_cmd2 *user_mode_cmd); > }; > > struct intel_display_dpt_interface { > -- > 2.47.3 ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [PATCH 5/5] drm/{i915, xe}: move framebuffer bo to parent interface 2026-03-12 4:25 ` Kandpal, Suraj @ 2026-03-12 9:00 ` Jani Nikula 2026-03-13 5:12 ` [PATCH 5/5] drm/{i915,xe}: " Kandpal, Suraj 0 siblings, 1 reply; 17+ messages in thread From: Jani Nikula @ 2026-03-12 9:00 UTC (permalink / raw) To: Kandpal, Suraj, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org On Thu, 12 Mar 2026, "Kandpal, Suraj" <suraj.kandpal@intel.com> wrote: >> Subject: [PATCH 5/5] drm/{i915,xe}: move framebuffer bo to parent interface >> >> Add .framebuffer_init, .framebuffer_fini and .framebuffer_lookup to the bo >> parent interface. While they're about framebuffers, they're specifically about >> framebuffer objects, so the bo interface is a good enough fit, and there's no >> need to add another interface struct. > > Maybe it can also be mentioned that since we move all the functions from > Intel_fb_bo to i915_bo.c we can safely remove it. Sure. >> >> Signed-off-by: Jani Nikula <jani.nikula@intel.com> >> --- >> drivers/gpu/drm/i915/Makefile | 1 - >> drivers/gpu/drm/i915/display/intel_bo.c | 21 +++++ >> drivers/gpu/drm/i915/display/intel_bo.h | 9 ++ >> drivers/gpu/drm/i915/display/intel_fb.c | 12 +-- >> drivers/gpu/drm/i915/display/intel_fb_bo.c | 99 -------------------- >> drivers/gpu/drm/i915/display/intel_fb_bo.h | 25 ----- >> drivers/gpu/drm/i915/i915_bo.c | 92 ++++++++++++++++++ >> drivers/gpu/drm/xe/Makefile | 1 - >> drivers/gpu/drm/xe/display/intel_fb_bo.c | 91 ------------------ >> drivers/gpu/drm/xe/display/xe_display_bo.c | 84 +++++++++++++++++ >> include/drm/intel/display_parent_interface.h | 6 ++ >> 11 files changed, 218 insertions(+), 223 deletions(-) delete mode 100644 >> drivers/gpu/drm/i915/display/intel_fb_bo.c >> delete mode 100644 drivers/gpu/drm/i915/display/intel_fb_bo.h >> delete mode 100644 drivers/gpu/drm/xe/display/intel_fb_bo.c >> >> diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile >> index 425933fb26a5..be976a90c5a6 100644 >> --- a/drivers/gpu/drm/i915/Makefile >> +++ b/drivers/gpu/drm/i915/Makefile >> @@ -278,7 +278,6 @@ i915-y += \ >> display/intel_drrs.o \ >> display/intel_dsb.o \ >> display/intel_fb.o \ >> - display/intel_fb_bo.o \ >> display/intel_fb_pin.o \ >> display/intel_fbc.o \ >> display/intel_fdi.o \ >> diff --git a/drivers/gpu/drm/i915/display/intel_bo.c >> b/drivers/gpu/drm/i915/display/intel_bo.c >> index e356ab4e0640..3b82d38a0504 100644 >> --- a/drivers/gpu/drm/i915/display/intel_bo.c >> +++ b/drivers/gpu/drm/i915/display/intel_bo.c >> @@ -64,3 +64,24 @@ void intel_bo_describe(struct seq_file *m, struct >> drm_gem_object *obj) >> if (display->parent->bo->describe) >> display->parent->bo->describe(m, obj); } >> + >> +int intel_bo_framebuffer_init(struct drm_gem_object *obj, struct >> +drm_mode_fb_cmd2 *mode_cmd) { >> + struct intel_display *display = to_intel_display(obj->dev); >> + >> + return display->parent->bo->framebuffer_init(obj, mode_cmd); } >> + >> +void intel_bo_framebuffer_fini(struct drm_gem_object *obj) { >> + struct intel_display *display = to_intel_display(obj->dev); >> + >> + display->parent->bo->framebuffer_fini(obj); > > Should we be making this optional . This will help avoid creating dummy functions > for fini like you have done previously. I have this gnawing feeling that it should not be a dummy function in the first place. I haven't actually looked into the bottom of it. That's why I ended up keeping the dummy. BR, Jani. > > Regards, > Suraj Kandpal > >> +} >> + >> +struct drm_gem_object *intel_bo_framebuffer_lookup(struct intel_display >> *display, >> + struct drm_file *filp, >> + const struct >> drm_mode_fb_cmd2 *user_mode_cmd) { >> + return display->parent->bo->framebuffer_lookup(display->drm, filp, >> +user_mode_cmd); } >> diff --git a/drivers/gpu/drm/i915/display/intel_bo.h >> b/drivers/gpu/drm/i915/display/intel_bo.h >> index 40390ed92ceb..aec188c706c2 100644 >> --- a/drivers/gpu/drm/i915/display/intel_bo.h >> +++ b/drivers/gpu/drm/i915/display/intel_bo.h >> @@ -6,8 +6,11 @@ >> >> #include <linux/types.h> >> >> +struct drm_file; >> struct drm_gem_object; >> +struct drm_mode_fb_cmd2; >> struct drm_scanout_buffer; >> +struct intel_display; >> struct intel_framebuffer; >> struct seq_file; >> struct vm_area_struct; >> @@ -22,4 +25,10 @@ int intel_bo_read_from_page(struct drm_gem_object >> *obj, u64 offset, void *dst, i >> >> void intel_bo_describe(struct seq_file *m, struct drm_gem_object *obj); >> >> +void intel_bo_framebuffer_fini(struct drm_gem_object *obj); int >> +intel_bo_framebuffer_init(struct drm_gem_object *obj, struct >> +drm_mode_fb_cmd2 *mode_cmd); struct drm_gem_object >> *intel_bo_framebuffer_lookup(struct intel_display *display, >> + struct drm_file *filp, >> + const struct >> drm_mode_fb_cmd2 *user_mode_cmd); >> + >> #endif /* __INTEL_BO__ */ >> diff --git a/drivers/gpu/drm/i915/display/intel_fb.c >> b/drivers/gpu/drm/i915/display/intel_fb.c >> index 49c6ca9d94c6..5768619f840f 100644 >> --- a/drivers/gpu/drm/i915/display/intel_fb.c >> +++ b/drivers/gpu/drm/i915/display/intel_fb.c >> @@ -17,7 +17,6 @@ >> #include "intel_display_types.h" >> #include "intel_display_utils.h" >> #include "intel_fb.h" >> -#include "intel_fb_bo.h" >> #include "intel_frontbuffer.h" >> #include "intel_parent.h" >> #include "intel_plane.h" >> @@ -2111,7 +2110,7 @@ static void intel_user_framebuffer_destroy(struct >> drm_framebuffer *fb) >> if (intel_fb_uses_dpt(fb)) >> intel_parent_dpt_destroy(display, intel_fb->dpt); >> >> - intel_fb_bo_framebuffer_fini(intel_fb_bo(fb)); >> + intel_bo_framebuffer_fini(intel_fb_bo(fb)); >> >> intel_parent_frontbuffer_put(display, intel_fb->frontbuffer); >> >> @@ -2222,7 +2221,7 @@ int intel_framebuffer_init(struct intel_framebuffer >> *intel_fb, >> >> /* >> * intel_parent_frontbuffer_get() must be done before >> - * intel_fb_bo_framebuffer_init() to avoid set_tiling vs. addfb race. >> + * intel_bo_framebuffer_init() to avoid set_tiling vs. addfb race. >> */ >> intel_fb->frontbuffer = intel_parent_frontbuffer_get(display, obj); >> if (!intel_fb->frontbuffer) { >> @@ -2230,7 +2229,7 @@ int intel_framebuffer_init(struct intel_framebuffer >> *intel_fb, >> goto err_free_panic; >> } >> >> - ret = intel_fb_bo_framebuffer_init(obj, mode_cmd); >> + ret = intel_bo_framebuffer_init(obj, mode_cmd); >> if (ret) >> goto err_frontbuffer_put; >> >> @@ -2333,7 +2332,7 @@ int intel_framebuffer_init(struct intel_framebuffer >> *intel_fb, >> if (intel_fb_uses_dpt(fb)) >> intel_parent_dpt_destroy(display, intel_fb->dpt); >> err_bo_framebuffer_fini: >> - intel_fb_bo_framebuffer_fini(obj); >> + intel_bo_framebuffer_fini(obj); >> err_frontbuffer_put: >> intel_parent_frontbuffer_put(display, intel_fb->frontbuffer); >> err_free_panic: >> @@ -2348,11 +2347,12 @@ intel_user_framebuffer_create(struct >> drm_device *dev, >> const struct drm_format_info *info, >> const struct drm_mode_fb_cmd2 >> *user_mode_cmd) { >> + struct intel_display *display = to_intel_display(dev); >> struct drm_framebuffer *fb; >> struct drm_gem_object *obj; >> struct drm_mode_fb_cmd2 mode_cmd = *user_mode_cmd; >> >> - obj = intel_fb_bo_lookup_valid_bo(dev, filp, &mode_cmd); >> + obj = intel_bo_framebuffer_lookup(display, filp, &mode_cmd); >> if (IS_ERR(obj)) >> return ERR_CAST(obj); >> >> diff --git a/drivers/gpu/drm/i915/display/intel_fb_bo.c >> b/drivers/gpu/drm/i915/display/intel_fb_bo.c >> deleted file mode 100644 >> index a4d49ef450d9..000000000000 >> --- a/drivers/gpu/drm/i915/display/intel_fb_bo.c >> +++ /dev/null >> @@ -1,99 +0,0 @@ >> -/* SPDX-License-Identifier: MIT */ >> -/* >> - * Copyright © 2021 Intel Corporation >> - */ >> - >> -#include <drm/drm_framebuffer.h> >> -#include <drm/drm_print.h> >> - >> -#include "gem/i915_gem_object.h" >> - >> -#include "i915_drv.h" >> -#include "intel_fb.h" >> -#include "intel_fb_bo.h" >> - >> -void intel_fb_bo_framebuffer_fini(struct drm_gem_object *obj) -{ >> - /* Nothing to do for i915 */ >> -} >> - >> -int intel_fb_bo_framebuffer_init(struct drm_gem_object *_obj, >> - struct drm_mode_fb_cmd2 *mode_cmd) >> -{ >> - struct drm_i915_gem_object *obj = to_intel_bo(_obj); >> - struct drm_i915_private *i915 = to_i915(obj->base.dev); >> - unsigned int tiling, stride; >> - >> - i915_gem_object_lock(obj, NULL); >> - tiling = i915_gem_object_get_tiling(obj); >> - stride = i915_gem_object_get_stride(obj); >> - i915_gem_object_unlock(obj); >> - >> - if (mode_cmd->flags & DRM_MODE_FB_MODIFIERS) { >> - /* >> - * If there's a fence, enforce that >> - * the fb modifier and tiling mode match. >> - */ >> - if (tiling != I915_TILING_NONE && >> - tiling != intel_fb_modifier_to_tiling(mode_cmd- >> >modifier[0])) { >> - drm_dbg_kms(&i915->drm, >> - "tiling_mode doesn't match fb modifier\n"); >> - return -EINVAL; >> - } >> - } else { >> - if (tiling == I915_TILING_X) { >> - mode_cmd->modifier[0] = >> I915_FORMAT_MOD_X_TILED; >> - } else if (tiling == I915_TILING_Y) { >> - drm_dbg_kms(&i915->drm, >> - "No Y tiling for legacy addfb\n"); >> - return -EINVAL; >> - } >> - } >> - >> - /* >> - * gen2/3 display engine uses the fence if present, >> - * so the tiling mode must match the fb modifier exactly. >> - */ >> - if (GRAPHICS_VER(i915) < 4 && >> - tiling != intel_fb_modifier_to_tiling(mode_cmd->modifier[0])) { >> - drm_dbg_kms(&i915->drm, >> - "tiling_mode must match fb modifier exactly on >> gen2/3\n"); >> - return -EINVAL; >> - } >> - >> - /* >> - * If there's a fence, enforce that >> - * the fb pitch and fence stride match. >> - */ >> - if (tiling != I915_TILING_NONE && mode_cmd->pitches[0] != stride) { >> - drm_dbg_kms(&i915->drm, >> - "pitch (%d) must match tiling stride (%d)\n", >> - mode_cmd->pitches[0], stride); >> - return -EINVAL; >> - } >> - >> - return 0; >> -} >> - >> -struct drm_gem_object * >> -intel_fb_bo_lookup_valid_bo(struct drm_device *drm, >> - struct drm_file *filp, >> - const struct drm_mode_fb_cmd2 *mode_cmd) >> -{ >> - struct drm_i915_private *i915 = to_i915(drm); >> - struct drm_i915_gem_object *obj; >> - >> - obj = i915_gem_object_lookup(filp, mode_cmd->handles[0]); >> - if (!obj) >> - return ERR_PTR(-ENOENT); >> - >> - /* object is backed with LMEM for discrete */ >> - if (HAS_LMEM(i915) && !i915_gem_object_can_migrate(obj, >> INTEL_REGION_LMEM_0)) { >> - /* object is "remote", not in local memory */ >> - i915_gem_object_put(obj); >> - drm_dbg_kms(&i915->drm, "framebuffer must reside in local >> memory\n"); >> - return ERR_PTR(-EREMOTE); >> - } >> - >> - return intel_bo_to_drm_bo(obj); >> -} >> diff --git a/drivers/gpu/drm/i915/display/intel_fb_bo.h >> b/drivers/gpu/drm/i915/display/intel_fb_bo.h >> deleted file mode 100644 >> index d775773c6c03..000000000000 >> --- a/drivers/gpu/drm/i915/display/intel_fb_bo.h >> +++ /dev/null >> @@ -1,25 +0,0 @@ >> -/* SPDX-License-Identifier: MIT */ >> -/* >> - * Copyright © 2021 Intel Corporation >> - */ >> - >> -#ifndef __INTEL_FB_BO_H__ >> -#define __INTEL_FB_BO_H__ >> - >> -struct drm_device; >> -struct drm_file; >> -struct drm_framebuffer; >> -struct drm_gem_object; >> -struct drm_mode_fb_cmd2; >> - >> -void intel_fb_bo_framebuffer_fini(struct drm_gem_object *obj); >> - >> -int intel_fb_bo_framebuffer_init(struct drm_gem_object *obj, >> - struct drm_mode_fb_cmd2 *mode_cmd); >> - >> -struct drm_gem_object * >> -intel_fb_bo_lookup_valid_bo(struct drm_device *drm, >> - struct drm_file *filp, >> - const struct drm_mode_fb_cmd2 >> *user_mode_cmd); >> - >> -#endif >> diff --git a/drivers/gpu/drm/i915/i915_bo.c >> b/drivers/gpu/drm/i915/i915_bo.c index 04fc0e3b7ef6..1789f7cab05c >> 100644 >> --- a/drivers/gpu/drm/i915/i915_bo.c >> +++ b/drivers/gpu/drm/i915/i915_bo.c >> @@ -2,8 +2,10 @@ >> /* Copyright © 2024 Intel Corporation */ >> >> #include <drm/drm_panic.h> >> +#include <drm/drm_print.h> >> #include <drm/intel/display_parent_interface.h> >> >> +#include "display/intel_fb.h" >> #include "gem/i915_gem_mman.h" >> #include "gem/i915_gem_object.h" >> #include "gem/i915_gem_object_frontbuffer.h" >> @@ -11,6 +13,7 @@ >> >> #include "i915_bo.h" >> #include "i915_debugfs.h" >> +#include "i915_drv.h" >> >> static bool i915_bo_is_tiled(struct drm_gem_object *obj) { @@ -52,6 +55,92 >> @@ static void i915_bo_describe(struct seq_file *m, struct drm_gem_object >> *obj) >> i915_debugfs_describe_obj(m, to_intel_bo(obj)); } >> >> +static int i915_bo_framebuffer_init(struct drm_gem_object *_obj, >> + struct drm_mode_fb_cmd2 *mode_cmd) { >> + struct drm_i915_gem_object *obj = to_intel_bo(_obj); >> + struct drm_i915_private *i915 = to_i915(obj->base.dev); >> + unsigned int tiling, stride; >> + >> + i915_gem_object_lock(obj, NULL); >> + tiling = i915_gem_object_get_tiling(obj); >> + stride = i915_gem_object_get_stride(obj); >> + i915_gem_object_unlock(obj); >> + >> + if (mode_cmd->flags & DRM_MODE_FB_MODIFIERS) { >> + /* >> + * If there's a fence, enforce that >> + * the fb modifier and tiling mode match. >> + */ >> + if (tiling != I915_TILING_NONE && >> + tiling != intel_fb_modifier_to_tiling(mode_cmd- >> >modifier[0])) { >> + drm_dbg_kms(&i915->drm, >> + "tiling_mode doesn't match fb modifier\n"); >> + return -EINVAL; >> + } >> + } else { >> + if (tiling == I915_TILING_X) { >> + mode_cmd->modifier[0] = >> I915_FORMAT_MOD_X_TILED; >> + } else if (tiling == I915_TILING_Y) { >> + drm_dbg_kms(&i915->drm, >> + "No Y tiling for legacy addfb\n"); >> + return -EINVAL; >> + } >> + } >> + >> + /* >> + * gen2/3 display engine uses the fence if present, >> + * so the tiling mode must match the fb modifier exactly. >> + */ >> + if (GRAPHICS_VER(i915) < 4 && >> + tiling != intel_fb_modifier_to_tiling(mode_cmd->modifier[0])) { >> + drm_dbg_kms(&i915->drm, >> + "tiling_mode must match fb modifier exactly on >> gen2/3\n"); >> + return -EINVAL; >> + } >> + >> + /* >> + * If there's a fence, enforce that >> + * the fb pitch and fence stride match. >> + */ >> + if (tiling != I915_TILING_NONE && mode_cmd->pitches[0] != stride) { >> + drm_dbg_kms(&i915->drm, >> + "pitch (%d) must match tiling stride (%d)\n", >> + mode_cmd->pitches[0], stride); >> + return -EINVAL; >> + } >> + >> + return 0; >> +} >> + >> +static void i915_bo_framebuffer_fini(struct drm_gem_object *obj) { >> + /* Nothing to do for i915 */ >> +} >> + >> +static struct drm_gem_object * >> +i915_bo_framebuffer_lookup(struct drm_device *drm, >> + struct drm_file *filp, >> + const struct drm_mode_fb_cmd2 *mode_cmd) { >> + struct drm_i915_private *i915 = to_i915(drm); >> + struct drm_i915_gem_object *obj; >> + >> + obj = i915_gem_object_lookup(filp, mode_cmd->handles[0]); >> + if (!obj) >> + return ERR_PTR(-ENOENT); >> + >> + /* object is backed with LMEM for discrete */ >> + if (HAS_LMEM(i915) && !i915_gem_object_can_migrate(obj, >> INTEL_REGION_LMEM_0)) { >> + /* object is "remote", not in local memory */ >> + i915_gem_object_put(obj); >> + drm_dbg_kms(&i915->drm, "framebuffer must reside in local >> memory\n"); >> + return ERR_PTR(-EREMOTE); >> + } >> + >> + return intel_bo_to_drm_bo(obj); >> +} >> + >> const struct intel_display_bo_interface i915_display_bo_interface = { >> .is_tiled = i915_bo_is_tiled, >> .is_userptr = i915_bo_is_userptr, >> @@ -61,4 +150,7 @@ const struct intel_display_bo_interface >> i915_display_bo_interface = { >> .fb_mmap = i915_bo_fb_mmap, >> .read_from_page = i915_bo_read_from_page, >> .describe = i915_bo_describe, >> + .framebuffer_init = i915_bo_framebuffer_init, >> + .framebuffer_fini = i915_bo_framebuffer_fini, >> + .framebuffer_lookup = i915_bo_framebuffer_lookup, >> }; >> diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile >> index b16ed1ce2a85..dab979287a96 100644 >> --- a/drivers/gpu/drm/xe/Makefile >> +++ b/drivers/gpu/drm/xe/Makefile >> @@ -211,7 +211,6 @@ $(obj)/i915-display/%.o: >> $(srctree)/drivers/gpu/drm/i915/display/%.c FORCE >> >> # Display code specific to xe >> xe-$(CONFIG_DRM_XE_DISPLAY) += \ >> - display/intel_fb_bo.o \ >> display/intel_fbdev_fb.o \ >> display/xe_display.o \ >> display/xe_display_bo.o \ >> diff --git a/drivers/gpu/drm/xe/display/intel_fb_bo.c >> b/drivers/gpu/drm/xe/display/intel_fb_bo.c >> deleted file mode 100644 >> index db8b1a27b4de..000000000000 >> --- a/drivers/gpu/drm/xe/display/intel_fb_bo.c >> +++ /dev/null >> @@ -1,91 +0,0 @@ >> -/* SPDX-License-Identifier: MIT */ >> -/* >> - * Copyright © 2021 Intel Corporation >> - */ >> - >> -#include <drm/drm_modeset_helper.h> >> -#include <drm/ttm/ttm_bo.h> >> - >> -#include "intel_display_types.h" >> -#include "intel_fb.h" >> -#include "intel_fb_bo.h" >> -#include "xe_bo.h" >> - >> -void intel_fb_bo_framebuffer_fini(struct drm_gem_object *obj) -{ >> - struct xe_bo *bo = gem_to_xe_bo(obj); >> - >> - if (bo->flags & XE_BO_FLAG_PINNED) { >> - /* Unpin our kernel fb first */ >> - xe_bo_lock(bo, false); >> - xe_bo_unpin(bo); >> - xe_bo_unlock(bo); >> - } >> - xe_bo_put(bo); >> -} >> - >> -int intel_fb_bo_framebuffer_init(struct drm_gem_object *obj, >> - struct drm_mode_fb_cmd2 *mode_cmd) >> -{ >> - struct xe_bo *bo = gem_to_xe_bo(obj); >> - struct xe_device *xe = to_xe_device(bo->ttm.base.dev); >> - int ret; >> - >> - /* >> - * Some modifiers require physical alignment of 64KiB VRAM pages; >> - * require that the BO in those cases is created correctly. >> - */ >> - if (XE_IOCTL_DBG(xe, intel_fb_needs_64k_phys(mode_cmd- >> >modifier[0]) && >> - !(bo->flags & XE_BO_FLAG_NEEDS_64K))) >> - return -EINVAL; >> - >> - xe_bo_get(bo); >> - >> - ret = ttm_bo_reserve(&bo->ttm, true, false, NULL); >> - if (ret) >> - goto err; >> - >> - if (!(bo->flags & XE_BO_FLAG_SCANOUT)) { >> - /* >> - * XE_BO_FLAG_SCANOUT should ideally be set at creation, >> or is >> - * automatically set when creating FB. We cannot change >> caching >> - * mode when the bo is VM_BINDed, so we can only set >> - * coherency with display when unbound. >> - */ >> - if (XE_IOCTL_DBG(xe, xe_bo_is_vm_bound(bo))) { >> - ttm_bo_unreserve(&bo->ttm); >> - ret = -EINVAL; >> - goto err; >> - } >> - bo->flags |= XE_BO_FLAG_SCANOUT; >> - } >> - ttm_bo_unreserve(&bo->ttm); >> - return 0; >> - >> -err: >> - xe_bo_put(bo); >> - return ret; >> -} >> - >> -struct drm_gem_object *intel_fb_bo_lookup_valid_bo(struct drm_device >> *drm, >> - struct drm_file *filp, >> - const struct >> drm_mode_fb_cmd2 *mode_cmd) >> -{ >> - struct xe_device *xe = to_xe_device(drm); >> - struct xe_bo *bo; >> - struct drm_gem_object *gem = drm_gem_object_lookup(filp, >> mode_cmd->handles[0]); >> - >> - if (!gem) >> - return ERR_PTR(-ENOENT); >> - >> - bo = gem_to_xe_bo(gem); >> - /* Require vram placement or dma-buf import */ >> - if (IS_DGFX(xe) && >> - !xe_bo_can_migrate(bo, XE_PL_VRAM0) && >> - bo->ttm.type != ttm_bo_type_sg) { >> - drm_gem_object_put(gem); >> - return ERR_PTR(-EREMOTE); >> - } >> - >> - return gem; >> -} >> diff --git a/drivers/gpu/drm/xe/display/xe_display_bo.c >> b/drivers/gpu/drm/xe/display/xe_display_bo.c >> index a53ba3f247ec..a689f71e7b14 100644 >> --- a/drivers/gpu/drm/xe/display/xe_display_bo.c >> +++ b/drivers/gpu/drm/xe/display/xe_display_bo.c >> @@ -4,6 +4,7 @@ >> #include <drm/drm_gem.h> >> #include <drm/intel/display_parent_interface.h> >> >> +#include "intel_fb.h" >> #include "xe_bo.h" >> #include "xe_display_bo.h" >> #include "xe_pxp.h" >> @@ -20,9 +21,92 @@ static int xe_display_bo_read_from_page(struct >> drm_gem_object *obj, u64 offset, >> return xe_bo_read(bo, offset, dst, size); } >> >> +static int xe_display_bo_framebuffer_init(struct drm_gem_object *obj, >> + struct drm_mode_fb_cmd2 >> *mode_cmd) { >> + struct xe_bo *bo = gem_to_xe_bo(obj); >> + struct xe_device *xe = to_xe_device(bo->ttm.base.dev); >> + int ret; >> + >> + /* >> + * Some modifiers require physical alignment of 64KiB VRAM pages; >> + * require that the BO in those cases is created correctly. >> + */ >> + if (XE_IOCTL_DBG(xe, intel_fb_needs_64k_phys(mode_cmd- >> >modifier[0]) && >> + !(bo->flags & XE_BO_FLAG_NEEDS_64K))) >> + return -EINVAL; >> + >> + xe_bo_get(bo); >> + >> + ret = ttm_bo_reserve(&bo->ttm, true, false, NULL); >> + if (ret) >> + goto err; >> + >> + if (!(bo->flags & XE_BO_FLAG_SCANOUT)) { >> + /* >> + * XE_BO_FLAG_SCANOUT should ideally be set at creation, >> or is >> + * automatically set when creating FB. We cannot change >> caching >> + * mode when the bo is VM_BINDed, so we can only set >> + * coherency with display when unbound. >> + */ >> + if (XE_IOCTL_DBG(xe, xe_bo_is_vm_bound(bo))) { >> + ttm_bo_unreserve(&bo->ttm); >> + ret = -EINVAL; >> + goto err; >> + } >> + bo->flags |= XE_BO_FLAG_SCANOUT; >> + } >> + ttm_bo_unreserve(&bo->ttm); >> + return 0; >> + >> +err: >> + xe_bo_put(bo); >> + return ret; >> +} >> + >> +static void xe_display_bo_framebuffer_fini(struct drm_gem_object *obj) >> +{ >> + struct xe_bo *bo = gem_to_xe_bo(obj); >> + >> + if (bo->flags & XE_BO_FLAG_PINNED) { >> + /* Unpin our kernel fb first */ >> + xe_bo_lock(bo, false); >> + xe_bo_unpin(bo); >> + xe_bo_unlock(bo); >> + } >> + xe_bo_put(bo); >> +} >> + >> +static struct drm_gem_object * >> +xe_display_bo_framebuffer_lookup(struct drm_device *drm, >> + struct drm_file *filp, >> + const struct drm_mode_fb_cmd2 >> *mode_cmd) { >> + struct xe_device *xe = to_xe_device(drm); >> + struct xe_bo *bo; >> + struct drm_gem_object *gem = drm_gem_object_lookup(filp, >> +mode_cmd->handles[0]); >> + >> + if (!gem) >> + return ERR_PTR(-ENOENT); >> + >> + bo = gem_to_xe_bo(gem); >> + /* Require vram placement or dma-buf import */ >> + if (IS_DGFX(xe) && >> + !xe_bo_can_migrate(bo, XE_PL_VRAM0) && >> + bo->ttm.type != ttm_bo_type_sg) { >> + drm_gem_object_put(gem); >> + return ERR_PTR(-EREMOTE); >> + } >> + >> + return gem; >> +} >> + >> const struct intel_display_bo_interface xe_display_bo_interface = { >> .is_protected = xe_display_bo_is_protected, >> .key_check = xe_pxp_obj_key_check, >> .fb_mmap = drm_gem_prime_mmap, >> .read_from_page = xe_display_bo_read_from_page, >> + .framebuffer_init = xe_display_bo_framebuffer_init, >> + .framebuffer_fini = xe_display_bo_framebuffer_fini, >> + .framebuffer_lookup = xe_display_bo_framebuffer_lookup, >> }; >> diff --git a/include/drm/intel/display_parent_interface.h >> b/include/drm/intel/display_parent_interface.h >> index 2b53d12b0e0a..97ec94a2e749 100644 >> --- a/include/drm/intel/display_parent_interface.h >> +++ b/include/drm/intel/display_parent_interface.h >> @@ -12,6 +12,7 @@ struct drm_device; >> struct drm_file; >> struct drm_framebuffer; >> struct drm_gem_object; >> +struct drm_mode_fb_cmd2; >> struct drm_plane_state; >> struct drm_scanout_buffer; >> struct i915_vma; >> @@ -37,6 +38,11 @@ struct intel_display_bo_interface { >> int (*fb_mmap)(struct drm_gem_object *obj, struct vm_area_struct >> *vma); >> int (*read_from_page)(struct drm_gem_object *obj, u64 offset, void >> *dst, int size); >> void (*describe)(struct seq_file *m, struct drm_gem_object *obj); /* >> Optional */ >> + int (*framebuffer_init)(struct drm_gem_object *obj, struct >> drm_mode_fb_cmd2 *mode_cmd); >> + void (*framebuffer_fini)(struct drm_gem_object *obj); >> + struct drm_gem_object *(*framebuffer_lookup)(struct drm_device >> *drm, >> + struct drm_file *filp, >> + const struct >> drm_mode_fb_cmd2 *user_mode_cmd); >> }; >> >> struct intel_display_dpt_interface { >> -- >> 2.47.3 > -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [PATCH 5/5] drm/{i915,xe}: move framebuffer bo to parent interface 2026-03-12 9:00 ` [PATCH 5/5] drm/{i915, xe}: " Jani Nikula @ 2026-03-13 5:12 ` Kandpal, Suraj 0 siblings, 0 replies; 17+ messages in thread From: Kandpal, Suraj @ 2026-03-13 5:12 UTC (permalink / raw) To: Nikula, Jani, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org > Subject: RE: [PATCH 5/5] drm/{i915,xe}: move framebuffer bo to parent > interface > > On Thu, 12 Mar 2026, "Kandpal, Suraj" <suraj.kandpal@intel.com> wrote: > >> Subject: [PATCH 5/5] drm/{i915,xe}: move framebuffer bo to parent > >> interface > >> > >> Add .framebuffer_init, .framebuffer_fini and .framebuffer_lookup to > >> the bo parent interface. While they're about framebuffers, they're > >> specifically about framebuffer objects, so the bo interface is a good > >> enough fit, and there's no need to add another interface struct. > > > > Maybe it can also be mentioned that since we move all the functions > > from Intel_fb_bo to i915_bo.c we can safely remove it. > > Sure. > > >> > >> Signed-off-by: Jani Nikula <jani.nikula@intel.com> > >> --- > >> drivers/gpu/drm/i915/Makefile | 1 - > >> drivers/gpu/drm/i915/display/intel_bo.c | 21 +++++ > >> drivers/gpu/drm/i915/display/intel_bo.h | 9 ++ > >> drivers/gpu/drm/i915/display/intel_fb.c | 12 +-- > >> drivers/gpu/drm/i915/display/intel_fb_bo.c | 99 -------------------- > >> drivers/gpu/drm/i915/display/intel_fb_bo.h | 25 ----- > >> drivers/gpu/drm/i915/i915_bo.c | 92 ++++++++++++++++++ > >> drivers/gpu/drm/xe/Makefile | 1 - > >> drivers/gpu/drm/xe/display/intel_fb_bo.c | 91 ------------------ > >> drivers/gpu/drm/xe/display/xe_display_bo.c | 84 +++++++++++++++++ > >> include/drm/intel/display_parent_interface.h | 6 ++ > >> 11 files changed, 218 insertions(+), 223 deletions(-) delete mode > >> 100644 drivers/gpu/drm/i915/display/intel_fb_bo.c > >> delete mode 100644 drivers/gpu/drm/i915/display/intel_fb_bo.h > >> delete mode 100644 drivers/gpu/drm/xe/display/intel_fb_bo.c > >> > >> diff --git a/drivers/gpu/drm/i915/Makefile > >> b/drivers/gpu/drm/i915/Makefile index 425933fb26a5..be976a90c5a6 > >> 100644 > >> --- a/drivers/gpu/drm/i915/Makefile > >> +++ b/drivers/gpu/drm/i915/Makefile > >> @@ -278,7 +278,6 @@ i915-y += \ > >> display/intel_drrs.o \ > >> display/intel_dsb.o \ > >> display/intel_fb.o \ > >> - display/intel_fb_bo.o \ > >> display/intel_fb_pin.o \ > >> display/intel_fbc.o \ > >> display/intel_fdi.o \ > >> diff --git a/drivers/gpu/drm/i915/display/intel_bo.c > >> b/drivers/gpu/drm/i915/display/intel_bo.c > >> index e356ab4e0640..3b82d38a0504 100644 > >> --- a/drivers/gpu/drm/i915/display/intel_bo.c > >> +++ b/drivers/gpu/drm/i915/display/intel_bo.c > >> @@ -64,3 +64,24 @@ void intel_bo_describe(struct seq_file *m, struct > >> drm_gem_object *obj) > >> if (display->parent->bo->describe) > >> display->parent->bo->describe(m, obj); } > >> + > >> +int intel_bo_framebuffer_init(struct drm_gem_object *obj, struct > >> +drm_mode_fb_cmd2 *mode_cmd) { > >> + struct intel_display *display = to_intel_display(obj->dev); > >> + > >> + return display->parent->bo->framebuffer_init(obj, mode_cmd); } > >> + > >> +void intel_bo_framebuffer_fini(struct drm_gem_object *obj) { > >> + struct intel_display *display = to_intel_display(obj->dev); > >> + > >> + display->parent->bo->framebuffer_fini(obj); > > > > Should we be making this optional . This will help avoid creating > > dummy functions for fini like you have done previously. > > I have this gnawing feeling that it should not be a dummy function in the first > place. I haven't actually looked into the bottom of it. That's why I ended up > keeping the dummy. I think its better to play it safe. Do you think a TODO can be added ? Otherwise LGTM, Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com> > > BR, > Jani. > > > > > > Regards, > > Suraj Kandpal > > > >> +} > >> + > >> +struct drm_gem_object *intel_bo_framebuffer_lookup(struct > >> +intel_display > >> *display, > >> + struct drm_file *filp, > >> + const struct > >> drm_mode_fb_cmd2 *user_mode_cmd) { > >> + return display->parent->bo->framebuffer_lookup(display->drm, filp, > >> +user_mode_cmd); } > >> diff --git a/drivers/gpu/drm/i915/display/intel_bo.h > >> b/drivers/gpu/drm/i915/display/intel_bo.h > >> index 40390ed92ceb..aec188c706c2 100644 > >> --- a/drivers/gpu/drm/i915/display/intel_bo.h > >> +++ b/drivers/gpu/drm/i915/display/intel_bo.h > >> @@ -6,8 +6,11 @@ > >> > >> #include <linux/types.h> > >> > >> +struct drm_file; > >> struct drm_gem_object; > >> +struct drm_mode_fb_cmd2; > >> struct drm_scanout_buffer; > >> +struct intel_display; > >> struct intel_framebuffer; > >> struct seq_file; > >> struct vm_area_struct; > >> @@ -22,4 +25,10 @@ int intel_bo_read_from_page(struct drm_gem_object > >> *obj, u64 offset, void *dst, i > >> > >> void intel_bo_describe(struct seq_file *m, struct drm_gem_object > >> *obj); > >> > >> +void intel_bo_framebuffer_fini(struct drm_gem_object *obj); int > >> +intel_bo_framebuffer_init(struct drm_gem_object *obj, struct > >> +drm_mode_fb_cmd2 *mode_cmd); struct drm_gem_object > >> *intel_bo_framebuffer_lookup(struct intel_display *display, > >> + struct drm_file *filp, > >> + const struct > >> drm_mode_fb_cmd2 *user_mode_cmd); > >> + > >> #endif /* __INTEL_BO__ */ > >> diff --git a/drivers/gpu/drm/i915/display/intel_fb.c > >> b/drivers/gpu/drm/i915/display/intel_fb.c > >> index 49c6ca9d94c6..5768619f840f 100644 > >> --- a/drivers/gpu/drm/i915/display/intel_fb.c > >> +++ b/drivers/gpu/drm/i915/display/intel_fb.c > >> @@ -17,7 +17,6 @@ > >> #include "intel_display_types.h" > >> #include "intel_display_utils.h" > >> #include "intel_fb.h" > >> -#include "intel_fb_bo.h" > >> #include "intel_frontbuffer.h" > >> #include "intel_parent.h" > >> #include "intel_plane.h" > >> @@ -2111,7 +2110,7 @@ static void > >> intel_user_framebuffer_destroy(struct > >> drm_framebuffer *fb) > >> if (intel_fb_uses_dpt(fb)) > >> intel_parent_dpt_destroy(display, intel_fb->dpt); > >> > >> - intel_fb_bo_framebuffer_fini(intel_fb_bo(fb)); > >> + intel_bo_framebuffer_fini(intel_fb_bo(fb)); > >> > >> intel_parent_frontbuffer_put(display, intel_fb->frontbuffer); > >> > >> @@ -2222,7 +2221,7 @@ int intel_framebuffer_init(struct > >> intel_framebuffer *intel_fb, > >> > >> /* > >> * intel_parent_frontbuffer_get() must be done before > >> - * intel_fb_bo_framebuffer_init() to avoid set_tiling vs. addfb race. > >> + * intel_bo_framebuffer_init() to avoid set_tiling vs. addfb race. > >> */ > >> intel_fb->frontbuffer = intel_parent_frontbuffer_get(display, obj); > >> if (!intel_fb->frontbuffer) { > >> @@ -2230,7 +2229,7 @@ int intel_framebuffer_init(struct > >> intel_framebuffer *intel_fb, > >> goto err_free_panic; > >> } > >> > >> - ret = intel_fb_bo_framebuffer_init(obj, mode_cmd); > >> + ret = intel_bo_framebuffer_init(obj, mode_cmd); > >> if (ret) > >> goto err_frontbuffer_put; > >> > >> @@ -2333,7 +2332,7 @@ int intel_framebuffer_init(struct > >> intel_framebuffer *intel_fb, > >> if (intel_fb_uses_dpt(fb)) > >> intel_parent_dpt_destroy(display, intel_fb->dpt); > >> err_bo_framebuffer_fini: > >> - intel_fb_bo_framebuffer_fini(obj); > >> + intel_bo_framebuffer_fini(obj); > >> err_frontbuffer_put: > >> intel_parent_frontbuffer_put(display, intel_fb->frontbuffer); > >> err_free_panic: > >> @@ -2348,11 +2347,12 @@ intel_user_framebuffer_create(struct > >> drm_device *dev, > >> const struct drm_format_info *info, > >> const struct drm_mode_fb_cmd2 > >> *user_mode_cmd) { > >> + struct intel_display *display = to_intel_display(dev); > >> struct drm_framebuffer *fb; > >> struct drm_gem_object *obj; > >> struct drm_mode_fb_cmd2 mode_cmd = *user_mode_cmd; > >> > >> - obj = intel_fb_bo_lookup_valid_bo(dev, filp, &mode_cmd); > >> + obj = intel_bo_framebuffer_lookup(display, filp, &mode_cmd); > >> if (IS_ERR(obj)) > >> return ERR_CAST(obj); > >> > >> diff --git a/drivers/gpu/drm/i915/display/intel_fb_bo.c > >> b/drivers/gpu/drm/i915/display/intel_fb_bo.c > >> deleted file mode 100644 > >> index a4d49ef450d9..000000000000 > >> --- a/drivers/gpu/drm/i915/display/intel_fb_bo.c > >> +++ /dev/null > >> @@ -1,99 +0,0 @@ > >> -/* SPDX-License-Identifier: MIT */ > >> -/* > >> - * Copyright © 2021 Intel Corporation > >> - */ > >> - > >> -#include <drm/drm_framebuffer.h> > >> -#include <drm/drm_print.h> > >> - > >> -#include "gem/i915_gem_object.h" > >> - > >> -#include "i915_drv.h" > >> -#include "intel_fb.h" > >> -#include "intel_fb_bo.h" > >> - > >> -void intel_fb_bo_framebuffer_fini(struct drm_gem_object *obj) -{ > >> - /* Nothing to do for i915 */ > >> -} > >> - > >> -int intel_fb_bo_framebuffer_init(struct drm_gem_object *_obj, > >> - struct drm_mode_fb_cmd2 *mode_cmd) > >> -{ > >> - struct drm_i915_gem_object *obj = to_intel_bo(_obj); > >> - struct drm_i915_private *i915 = to_i915(obj->base.dev); > >> - unsigned int tiling, stride; > >> - > >> - i915_gem_object_lock(obj, NULL); > >> - tiling = i915_gem_object_get_tiling(obj); > >> - stride = i915_gem_object_get_stride(obj); > >> - i915_gem_object_unlock(obj); > >> - > >> - if (mode_cmd->flags & DRM_MODE_FB_MODIFIERS) { > >> - /* > >> - * If there's a fence, enforce that > >> - * the fb modifier and tiling mode match. > >> - */ > >> - if (tiling != I915_TILING_NONE && > >> - tiling != intel_fb_modifier_to_tiling(mode_cmd- > >> >modifier[0])) { > >> - drm_dbg_kms(&i915->drm, > >> - "tiling_mode doesn't match fb modifier\n"); > >> - return -EINVAL; > >> - } > >> - } else { > >> - if (tiling == I915_TILING_X) { > >> - mode_cmd->modifier[0] = > >> I915_FORMAT_MOD_X_TILED; > >> - } else if (tiling == I915_TILING_Y) { > >> - drm_dbg_kms(&i915->drm, > >> - "No Y tiling for legacy addfb\n"); > >> - return -EINVAL; > >> - } > >> - } > >> - > >> - /* > >> - * gen2/3 display engine uses the fence if present, > >> - * so the tiling mode must match the fb modifier exactly. > >> - */ > >> - if (GRAPHICS_VER(i915) < 4 && > >> - tiling != intel_fb_modifier_to_tiling(mode_cmd->modifier[0])) { > >> - drm_dbg_kms(&i915->drm, > >> - "tiling_mode must match fb modifier exactly on > >> gen2/3\n"); > >> - return -EINVAL; > >> - } > >> - > >> - /* > >> - * If there's a fence, enforce that > >> - * the fb pitch and fence stride match. > >> - */ > >> - if (tiling != I915_TILING_NONE && mode_cmd->pitches[0] != stride) { > >> - drm_dbg_kms(&i915->drm, > >> - "pitch (%d) must match tiling stride (%d)\n", > >> - mode_cmd->pitches[0], stride); > >> - return -EINVAL; > >> - } > >> - > >> - return 0; > >> -} > >> - > >> -struct drm_gem_object * > >> -intel_fb_bo_lookup_valid_bo(struct drm_device *drm, > >> - struct drm_file *filp, > >> - const struct drm_mode_fb_cmd2 *mode_cmd) > >> -{ > >> - struct drm_i915_private *i915 = to_i915(drm); > >> - struct drm_i915_gem_object *obj; > >> - > >> - obj = i915_gem_object_lookup(filp, mode_cmd->handles[0]); > >> - if (!obj) > >> - return ERR_PTR(-ENOENT); > >> - > >> - /* object is backed with LMEM for discrete */ > >> - if (HAS_LMEM(i915) && !i915_gem_object_can_migrate(obj, > >> INTEL_REGION_LMEM_0)) { > >> - /* object is "remote", not in local memory */ > >> - i915_gem_object_put(obj); > >> - drm_dbg_kms(&i915->drm, "framebuffer must reside in local > >> memory\n"); > >> - return ERR_PTR(-EREMOTE); > >> - } > >> - > >> - return intel_bo_to_drm_bo(obj); > >> -} > >> diff --git a/drivers/gpu/drm/i915/display/intel_fb_bo.h > >> b/drivers/gpu/drm/i915/display/intel_fb_bo.h > >> deleted file mode 100644 > >> index d775773c6c03..000000000000 > >> --- a/drivers/gpu/drm/i915/display/intel_fb_bo.h > >> +++ /dev/null > >> @@ -1,25 +0,0 @@ > >> -/* SPDX-License-Identifier: MIT */ > >> -/* > >> - * Copyright © 2021 Intel Corporation > >> - */ > >> - > >> -#ifndef __INTEL_FB_BO_H__ > >> -#define __INTEL_FB_BO_H__ > >> - > >> -struct drm_device; > >> -struct drm_file; > >> -struct drm_framebuffer; > >> -struct drm_gem_object; > >> -struct drm_mode_fb_cmd2; > >> - > >> -void intel_fb_bo_framebuffer_fini(struct drm_gem_object *obj); > >> - > >> -int intel_fb_bo_framebuffer_init(struct drm_gem_object *obj, > >> - struct drm_mode_fb_cmd2 *mode_cmd); > >> - > >> -struct drm_gem_object * > >> -intel_fb_bo_lookup_valid_bo(struct drm_device *drm, > >> - struct drm_file *filp, > >> - const struct drm_mode_fb_cmd2 > >> *user_mode_cmd); > >> - > >> -#endif > >> diff --git a/drivers/gpu/drm/i915/i915_bo.c > >> b/drivers/gpu/drm/i915/i915_bo.c index 04fc0e3b7ef6..1789f7cab05c > >> 100644 > >> --- a/drivers/gpu/drm/i915/i915_bo.c > >> +++ b/drivers/gpu/drm/i915/i915_bo.c > >> @@ -2,8 +2,10 @@ > >> /* Copyright © 2024 Intel Corporation */ > >> > >> #include <drm/drm_panic.h> > >> +#include <drm/drm_print.h> > >> #include <drm/intel/display_parent_interface.h> > >> > >> +#include "display/intel_fb.h" > >> #include "gem/i915_gem_mman.h" > >> #include "gem/i915_gem_object.h" > >> #include "gem/i915_gem_object_frontbuffer.h" > >> @@ -11,6 +13,7 @@ > >> > >> #include "i915_bo.h" > >> #include "i915_debugfs.h" > >> +#include "i915_drv.h" > >> > >> static bool i915_bo_is_tiled(struct drm_gem_object *obj) { @@ -52,6 > >> +55,92 @@ static void i915_bo_describe(struct seq_file *m, struct > >> drm_gem_object > >> *obj) > >> i915_debugfs_describe_obj(m, to_intel_bo(obj)); } > >> > >> +static int i915_bo_framebuffer_init(struct drm_gem_object *_obj, > >> + struct drm_mode_fb_cmd2 *mode_cmd) { > >> + struct drm_i915_gem_object *obj = to_intel_bo(_obj); > >> + struct drm_i915_private *i915 = to_i915(obj->base.dev); > >> + unsigned int tiling, stride; > >> + > >> + i915_gem_object_lock(obj, NULL); > >> + tiling = i915_gem_object_get_tiling(obj); > >> + stride = i915_gem_object_get_stride(obj); > >> + i915_gem_object_unlock(obj); > >> + > >> + if (mode_cmd->flags & DRM_MODE_FB_MODIFIERS) { > >> + /* > >> + * If there's a fence, enforce that > >> + * the fb modifier and tiling mode match. > >> + */ > >> + if (tiling != I915_TILING_NONE && > >> + tiling != intel_fb_modifier_to_tiling(mode_cmd- > >> >modifier[0])) { > >> + drm_dbg_kms(&i915->drm, > >> + "tiling_mode doesn't match fb modifier\n"); > >> + return -EINVAL; > >> + } > >> + } else { > >> + if (tiling == I915_TILING_X) { > >> + mode_cmd->modifier[0] = > >> I915_FORMAT_MOD_X_TILED; > >> + } else if (tiling == I915_TILING_Y) { > >> + drm_dbg_kms(&i915->drm, > >> + "No Y tiling for legacy addfb\n"); > >> + return -EINVAL; > >> + } > >> + } > >> + > >> + /* > >> + * gen2/3 display engine uses the fence if present, > >> + * so the tiling mode must match the fb modifier exactly. > >> + */ > >> + if (GRAPHICS_VER(i915) < 4 && > >> + tiling != intel_fb_modifier_to_tiling(mode_cmd->modifier[0])) { > >> + drm_dbg_kms(&i915->drm, > >> + "tiling_mode must match fb modifier exactly on > >> gen2/3\n"); > >> + return -EINVAL; > >> + } > >> + > >> + /* > >> + * If there's a fence, enforce that > >> + * the fb pitch and fence stride match. > >> + */ > >> + if (tiling != I915_TILING_NONE && mode_cmd->pitches[0] != stride) { > >> + drm_dbg_kms(&i915->drm, > >> + "pitch (%d) must match tiling stride (%d)\n", > >> + mode_cmd->pitches[0], stride); > >> + return -EINVAL; > >> + } > >> + > >> + return 0; > >> +} > >> + > >> +static void i915_bo_framebuffer_fini(struct drm_gem_object *obj) { > >> + /* Nothing to do for i915 */ > >> +} > >> + > >> +static struct drm_gem_object * > >> +i915_bo_framebuffer_lookup(struct drm_device *drm, > >> + struct drm_file *filp, > >> + const struct drm_mode_fb_cmd2 *mode_cmd) { > >> + struct drm_i915_private *i915 = to_i915(drm); > >> + struct drm_i915_gem_object *obj; > >> + > >> + obj = i915_gem_object_lookup(filp, mode_cmd->handles[0]); > >> + if (!obj) > >> + return ERR_PTR(-ENOENT); > >> + > >> + /* object is backed with LMEM for discrete */ > >> + if (HAS_LMEM(i915) && !i915_gem_object_can_migrate(obj, > >> INTEL_REGION_LMEM_0)) { > >> + /* object is "remote", not in local memory */ > >> + i915_gem_object_put(obj); > >> + drm_dbg_kms(&i915->drm, "framebuffer must reside in local > >> memory\n"); > >> + return ERR_PTR(-EREMOTE); > >> + } > >> + > >> + return intel_bo_to_drm_bo(obj); > >> +} > >> + > >> const struct intel_display_bo_interface i915_display_bo_interface = { > >> .is_tiled = i915_bo_is_tiled, > >> .is_userptr = i915_bo_is_userptr, > >> @@ -61,4 +150,7 @@ const struct intel_display_bo_interface > >> i915_display_bo_interface = { > >> .fb_mmap = i915_bo_fb_mmap, > >> .read_from_page = i915_bo_read_from_page, > >> .describe = i915_bo_describe, > >> + .framebuffer_init = i915_bo_framebuffer_init, > >> + .framebuffer_fini = i915_bo_framebuffer_fini, > >> + .framebuffer_lookup = i915_bo_framebuffer_lookup, > >> }; > >> diff --git a/drivers/gpu/drm/xe/Makefile > >> b/drivers/gpu/drm/xe/Makefile index b16ed1ce2a85..dab979287a96 100644 > >> --- a/drivers/gpu/drm/xe/Makefile > >> +++ b/drivers/gpu/drm/xe/Makefile > >> @@ -211,7 +211,6 @@ $(obj)/i915-display/%.o: > >> $(srctree)/drivers/gpu/drm/i915/display/%.c FORCE > >> > >> # Display code specific to xe > >> xe-$(CONFIG_DRM_XE_DISPLAY) += \ > >> - display/intel_fb_bo.o \ > >> display/intel_fbdev_fb.o \ > >> display/xe_display.o \ > >> display/xe_display_bo.o \ > >> diff --git a/drivers/gpu/drm/xe/display/intel_fb_bo.c > >> b/drivers/gpu/drm/xe/display/intel_fb_bo.c > >> deleted file mode 100644 > >> index db8b1a27b4de..000000000000 > >> --- a/drivers/gpu/drm/xe/display/intel_fb_bo.c > >> +++ /dev/null > >> @@ -1,91 +0,0 @@ > >> -/* SPDX-License-Identifier: MIT */ > >> -/* > >> - * Copyright © 2021 Intel Corporation > >> - */ > >> - > >> -#include <drm/drm_modeset_helper.h> > >> -#include <drm/ttm/ttm_bo.h> > >> - > >> -#include "intel_display_types.h" > >> -#include "intel_fb.h" > >> -#include "intel_fb_bo.h" > >> -#include "xe_bo.h" > >> - > >> -void intel_fb_bo_framebuffer_fini(struct drm_gem_object *obj) -{ > >> - struct xe_bo *bo = gem_to_xe_bo(obj); > >> - > >> - if (bo->flags & XE_BO_FLAG_PINNED) { > >> - /* Unpin our kernel fb first */ > >> - xe_bo_lock(bo, false); > >> - xe_bo_unpin(bo); > >> - xe_bo_unlock(bo); > >> - } > >> - xe_bo_put(bo); > >> -} > >> - > >> -int intel_fb_bo_framebuffer_init(struct drm_gem_object *obj, > >> - struct drm_mode_fb_cmd2 *mode_cmd) > >> -{ > >> - struct xe_bo *bo = gem_to_xe_bo(obj); > >> - struct xe_device *xe = to_xe_device(bo->ttm.base.dev); > >> - int ret; > >> - > >> - /* > >> - * Some modifiers require physical alignment of 64KiB VRAM pages; > >> - * require that the BO in those cases is created correctly. > >> - */ > >> - if (XE_IOCTL_DBG(xe, intel_fb_needs_64k_phys(mode_cmd- > >> >modifier[0]) && > >> - !(bo->flags & XE_BO_FLAG_NEEDS_64K))) > >> - return -EINVAL; > >> - > >> - xe_bo_get(bo); > >> - > >> - ret = ttm_bo_reserve(&bo->ttm, true, false, NULL); > >> - if (ret) > >> - goto err; > >> - > >> - if (!(bo->flags & XE_BO_FLAG_SCANOUT)) { > >> - /* > >> - * XE_BO_FLAG_SCANOUT should ideally be set at creation, > >> or is > >> - * automatically set when creating FB. We cannot change > >> caching > >> - * mode when the bo is VM_BINDed, so we can only set > >> - * coherency with display when unbound. > >> - */ > >> - if (XE_IOCTL_DBG(xe, xe_bo_is_vm_bound(bo))) { > >> - ttm_bo_unreserve(&bo->ttm); > >> - ret = -EINVAL; > >> - goto err; > >> - } > >> - bo->flags |= XE_BO_FLAG_SCANOUT; > >> - } > >> - ttm_bo_unreserve(&bo->ttm); > >> - return 0; > >> - > >> -err: > >> - xe_bo_put(bo); > >> - return ret; > >> -} > >> - > >> -struct drm_gem_object *intel_fb_bo_lookup_valid_bo(struct drm_device > >> *drm, > >> - struct drm_file *filp, > >> - const struct > >> drm_mode_fb_cmd2 *mode_cmd) > >> -{ > >> - struct xe_device *xe = to_xe_device(drm); > >> - struct xe_bo *bo; > >> - struct drm_gem_object *gem = drm_gem_object_lookup(filp, > >> mode_cmd->handles[0]); > >> - > >> - if (!gem) > >> - return ERR_PTR(-ENOENT); > >> - > >> - bo = gem_to_xe_bo(gem); > >> - /* Require vram placement or dma-buf import */ > >> - if (IS_DGFX(xe) && > >> - !xe_bo_can_migrate(bo, XE_PL_VRAM0) && > >> - bo->ttm.type != ttm_bo_type_sg) { > >> - drm_gem_object_put(gem); > >> - return ERR_PTR(-EREMOTE); > >> - } > >> - > >> - return gem; > >> -} > >> diff --git a/drivers/gpu/drm/xe/display/xe_display_bo.c > >> b/drivers/gpu/drm/xe/display/xe_display_bo.c > >> index a53ba3f247ec..a689f71e7b14 100644 > >> --- a/drivers/gpu/drm/xe/display/xe_display_bo.c > >> +++ b/drivers/gpu/drm/xe/display/xe_display_bo.c > >> @@ -4,6 +4,7 @@ > >> #include <drm/drm_gem.h> > >> #include <drm/intel/display_parent_interface.h> > >> > >> +#include "intel_fb.h" > >> #include "xe_bo.h" > >> #include "xe_display_bo.h" > >> #include "xe_pxp.h" > >> @@ -20,9 +21,92 @@ static int xe_display_bo_read_from_page(struct > >> drm_gem_object *obj, u64 offset, > >> return xe_bo_read(bo, offset, dst, size); } > >> > >> +static int xe_display_bo_framebuffer_init(struct drm_gem_object *obj, > >> + struct drm_mode_fb_cmd2 > >> *mode_cmd) { > >> + struct xe_bo *bo = gem_to_xe_bo(obj); > >> + struct xe_device *xe = to_xe_device(bo->ttm.base.dev); > >> + int ret; > >> + > >> + /* > >> + * Some modifiers require physical alignment of 64KiB VRAM pages; > >> + * require that the BO in those cases is created correctly. > >> + */ > >> + if (XE_IOCTL_DBG(xe, intel_fb_needs_64k_phys(mode_cmd- > >> >modifier[0]) && > >> + !(bo->flags & XE_BO_FLAG_NEEDS_64K))) > >> + return -EINVAL; > >> + > >> + xe_bo_get(bo); > >> + > >> + ret = ttm_bo_reserve(&bo->ttm, true, false, NULL); > >> + if (ret) > >> + goto err; > >> + > >> + if (!(bo->flags & XE_BO_FLAG_SCANOUT)) { > >> + /* > >> + * XE_BO_FLAG_SCANOUT should ideally be set at creation, > >> or is > >> + * automatically set when creating FB. We cannot change > >> caching > >> + * mode when the bo is VM_BINDed, so we can only set > >> + * coherency with display when unbound. > >> + */ > >> + if (XE_IOCTL_DBG(xe, xe_bo_is_vm_bound(bo))) { > >> + ttm_bo_unreserve(&bo->ttm); > >> + ret = -EINVAL; > >> + goto err; > >> + } > >> + bo->flags |= XE_BO_FLAG_SCANOUT; > >> + } > >> + ttm_bo_unreserve(&bo->ttm); > >> + return 0; > >> + > >> +err: > >> + xe_bo_put(bo); > >> + return ret; > >> +} > >> + > >> +static void xe_display_bo_framebuffer_fini(struct drm_gem_object > >> +*obj) { > >> + struct xe_bo *bo = gem_to_xe_bo(obj); > >> + > >> + if (bo->flags & XE_BO_FLAG_PINNED) { > >> + /* Unpin our kernel fb first */ > >> + xe_bo_lock(bo, false); > >> + xe_bo_unpin(bo); > >> + xe_bo_unlock(bo); > >> + } > >> + xe_bo_put(bo); > >> +} > >> + > >> +static struct drm_gem_object * > >> +xe_display_bo_framebuffer_lookup(struct drm_device *drm, > >> + struct drm_file *filp, > >> + const struct drm_mode_fb_cmd2 > >> *mode_cmd) { > >> + struct xe_device *xe = to_xe_device(drm); > >> + struct xe_bo *bo; > >> + struct drm_gem_object *gem = drm_gem_object_lookup(filp, > >> +mode_cmd->handles[0]); > >> + > >> + if (!gem) > >> + return ERR_PTR(-ENOENT); > >> + > >> + bo = gem_to_xe_bo(gem); > >> + /* Require vram placement or dma-buf import */ > >> + if (IS_DGFX(xe) && > >> + !xe_bo_can_migrate(bo, XE_PL_VRAM0) && > >> + bo->ttm.type != ttm_bo_type_sg) { > >> + drm_gem_object_put(gem); > >> + return ERR_PTR(-EREMOTE); > >> + } > >> + > >> + return gem; > >> +} > >> + > >> const struct intel_display_bo_interface xe_display_bo_interface = { > >> .is_protected = xe_display_bo_is_protected, > >> .key_check = xe_pxp_obj_key_check, > >> .fb_mmap = drm_gem_prime_mmap, > >> .read_from_page = xe_display_bo_read_from_page, > >> + .framebuffer_init = xe_display_bo_framebuffer_init, > >> + .framebuffer_fini = xe_display_bo_framebuffer_fini, > >> + .framebuffer_lookup = xe_display_bo_framebuffer_lookup, > >> }; > >> diff --git a/include/drm/intel/display_parent_interface.h > >> b/include/drm/intel/display_parent_interface.h > >> index 2b53d12b0e0a..97ec94a2e749 100644 > >> --- a/include/drm/intel/display_parent_interface.h > >> +++ b/include/drm/intel/display_parent_interface.h > >> @@ -12,6 +12,7 @@ struct drm_device; > >> struct drm_file; > >> struct drm_framebuffer; > >> struct drm_gem_object; > >> +struct drm_mode_fb_cmd2; > >> struct drm_plane_state; > >> struct drm_scanout_buffer; > >> struct i915_vma; > >> @@ -37,6 +38,11 @@ struct intel_display_bo_interface { > >> int (*fb_mmap)(struct drm_gem_object *obj, struct vm_area_struct > >> *vma); > >> int (*read_from_page)(struct drm_gem_object *obj, u64 offset, void > >> *dst, int size); > >> void (*describe)(struct seq_file *m, struct drm_gem_object *obj); > >> /* Optional */ > >> + int (*framebuffer_init)(struct drm_gem_object *obj, struct > >> drm_mode_fb_cmd2 *mode_cmd); > >> + void (*framebuffer_fini)(struct drm_gem_object *obj); > >> + struct drm_gem_object *(*framebuffer_lookup)(struct drm_device > >> *drm, > >> + struct drm_file *filp, > >> + const struct > >> drm_mode_fb_cmd2 *user_mode_cmd); > >> }; > >> > >> struct intel_display_dpt_interface { > >> -- > >> 2.47.3 > > > > -- > Jani Nikula, Intel ^ permalink raw reply [flat|nested] 17+ messages in thread
* ✓ i915.CI.BAT: success for drm/{i915,xe}: move bo stuff to parent interface 2026-03-11 14:18 [PATCH 0/5] drm/{i915,xe}: move bo stuff to parent interface Jani Nikula ` (4 preceding siblings ...) 2026-03-11 14:18 ` [PATCH 5/5] drm/{i915,xe}: move framebuffer bo to parent interface Jani Nikula @ 2026-03-11 15:33 ` Patchwork 2026-03-12 6:37 ` ✓ i915.CI.Full: " Patchwork 6 siblings, 0 replies; 17+ messages in thread From: Patchwork @ 2026-03-11 15:33 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 7035 bytes --] == Series Details == Series: drm/{i915,xe}: move bo stuff to parent interface URL : https://patchwork.freedesktop.org/series/163033/ State : success == Summary == CI Bug Log - changes from CI_DRM_18130 -> Patchwork_163033v1 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/index.html Participating hosts (39 -> 39) ------------------------------ Additional (2): bat-adlp-6 bat-adls-6 Missing (2): bat-dg2-13 fi-snb-2520m Known issues ------------ Here are the changes found in Patchwork_163033v1 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_lmem_swapping@parallel-random-engines: - bat-adls-6: NOTRUN -> [SKIP][1] ([i915#4613]) +3 other tests skip [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-adls-6/igt@gem_lmem_swapping@parallel-random-engines.html * igt@gem_lmem_swapping@random-engines: - bat-adlp-6: NOTRUN -> [SKIP][2] ([i915#4613]) +3 other tests skip [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-adlp-6/igt@gem_lmem_swapping@random-engines.html * igt@gem_tiled_pread_basic@basic: - bat-adlp-6: NOTRUN -> [SKIP][3] ([i915#15656]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-adlp-6/igt@gem_tiled_pread_basic@basic.html - bat-adls-6: NOTRUN -> [SKIP][4] ([i915#15656]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-adls-6/igt@gem_tiled_pread_basic@basic.html * igt@i915_pm_rps@basic-api: - bat-adlp-6: NOTRUN -> [SKIP][5] ([i915#6621]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-adlp-6/igt@i915_pm_rps@basic-api.html * igt@i915_selftest@live@workarounds: - bat-arlh-2: [PASS][6] -> [DMESG-FAIL][7] ([i915#12061]) +1 other test dmesg-fail [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/bat-arlh-2/igt@i915_selftest@live@workarounds.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-arlh-2/igt@i915_selftest@live@workarounds.html * igt@intel_hwmon@hwmon-read: - bat-adls-6: NOTRUN -> [SKIP][8] ([i915#7707]) +1 other test skip [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-adls-6/igt@intel_hwmon@hwmon-read.html - bat-adlp-6: NOTRUN -> [SKIP][9] ([i915#7707]) +1 other test skip [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-adlp-6/igt@intel_hwmon@hwmon-read.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy: - bat-adls-6: NOTRUN -> [SKIP][10] ([i915#4103]) +1 other test skip [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-adls-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html - bat-adlp-6: NOTRUN -> [SKIP][11] ([i915#4103]) +1 other test skip [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-adlp-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html * igt@kms_dsc@dsc-basic: - bat-adls-6: NOTRUN -> [SKIP][12] ([i915#3555] / [i915#3840]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-adls-6/igt@kms_dsc@dsc-basic.html * igt@kms_force_connector_basic@force-load-detect: - bat-adls-6: NOTRUN -> [SKIP][13] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-adls-6/igt@kms_force_connector_basic@force-load-detect.html - bat-adlp-6: NOTRUN -> [SKIP][14] [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-adlp-6/igt@kms_force_connector_basic@force-load-detect.html * igt@kms_pm_backlight@basic-brightness: - bat-adls-6: NOTRUN -> [SKIP][15] ([i915#5354]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-adls-6/igt@kms_pm_backlight@basic-brightness.html * igt@kms_psr@psr-primary-mmap-gtt: - bat-adls-6: NOTRUN -> [SKIP][16] ([i915#1072] / [i915#9732]) +3 other tests skip [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-adls-6/igt@kms_psr@psr-primary-mmap-gtt.html * igt@kms_setmode@basic-clone-single-crtc: - bat-adlp-6: NOTRUN -> [SKIP][17] ([i915#3555]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-adlp-6/igt@kms_setmode@basic-clone-single-crtc.html - bat-adls-6: NOTRUN -> [SKIP][18] ([i915#3555]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-adls-6/igt@kms_setmode@basic-clone-single-crtc.html * igt@prime_vgem@basic-fence-read: - bat-adls-6: NOTRUN -> [SKIP][19] ([i915#3291]) +2 other tests skip [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-adls-6/igt@prime_vgem@basic-fence-read.html * igt@prime_vgem@basic-write: - bat-adlp-6: NOTRUN -> [SKIP][20] ([i915#3291] / [i915#3708]) +2 other tests skip [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-adlp-6/igt@prime_vgem@basic-write.html #### Possible fixes #### * igt@i915_selftest@live@workarounds: - bat-arls-6: [DMESG-FAIL][21] ([i915#12061]) -> [PASS][22] +1 other test pass [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/bat-arls-6/igt@i915_selftest@live@workarounds.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/bat-arls-6/igt@i915_selftest@live@workarounds.html [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072 [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061 [i915#15656]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15656 [i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291 [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555 [i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708 [i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840 [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103 [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613 [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354 [i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6621 [i915#7707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7707 [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732 Build changes ------------- * Linux: CI_DRM_18130 -> Patchwork_163033v1 CI-20190529: 20190529 CI_DRM_18130: 4a30f5fa0fe382b3915a8208a483d0044c40b9eb @ git://anongit.freedesktop.org/gfx-ci/linux IGT_8793: c623172fdd4dd92bb23dbc55b3930c40266c3e59 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_163033v1: 4a30f5fa0fe382b3915a8208a483d0044c40b9eb @ git://anongit.freedesktop.org/gfx-ci/linux == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/index.html [-- Attachment #2: Type: text/html, Size: 8625 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* ✓ i915.CI.Full: success for drm/{i915,xe}: move bo stuff to parent interface 2026-03-11 14:18 [PATCH 0/5] drm/{i915,xe}: move bo stuff to parent interface Jani Nikula ` (5 preceding siblings ...) 2026-03-11 15:33 ` ✓ i915.CI.BAT: success for drm/{i915,xe}: move bo stuff " Patchwork @ 2026-03-12 6:37 ` Patchwork 6 siblings, 0 replies; 17+ messages in thread From: Patchwork @ 2026-03-12 6:37 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 93190 bytes --] == Series Details == Series: drm/{i915,xe}: move bo stuff to parent interface URL : https://patchwork.freedesktop.org/series/163033/ State : success == Summary == CI Bug Log - changes from CI_DRM_18130_full -> Patchwork_163033v1_full ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (10 -> 10) ------------------------------ No changes in participating hosts Known issues ------------ Here are the changes found in Patchwork_163033v1_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@api_intel_bb@object-reloc-keep-cache: - shard-rkl: NOTRUN -> [SKIP][1] ([i915#8411]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-8/igt@api_intel_bb@object-reloc-keep-cache.html * igt@gem_bad_reloc@negative-reloc-lut: - shard-rkl: NOTRUN -> [SKIP][2] ([i915#3281]) +5 other tests skip [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-8/igt@gem_bad_reloc@negative-reloc-lut.html * igt@gem_close_race@multigpu-basic-process: - shard-rkl: NOTRUN -> [SKIP][3] ([i915#7697]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-5/igt@gem_close_race@multigpu-basic-process.html * igt@gem_create@create-ext-cpu-access-big: - shard-tglu: NOTRUN -> [SKIP][4] ([i915#6335]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@gem_create@create-ext-cpu-access-big.html * igt@gem_ctx_persistence@engines-persistence: - shard-snb: NOTRUN -> [SKIP][5] ([i915#1099]) +2 other tests skip [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-snb6/igt@gem_ctx_persistence@engines-persistence.html * igt@gem_ctx_sseu@engines: - shard-tglu-1: NOTRUN -> [SKIP][6] ([i915#280]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@gem_ctx_sseu@engines.html * igt@gem_eio@unwedge-stress: - shard-snb: NOTRUN -> [FAIL][7] ([i915#8898]) +1 other test fail [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-snb6/igt@gem_eio@unwedge-stress.html * igt@gem_exec_balancer@parallel-balancer: - shard-tglu: NOTRUN -> [SKIP][8] ([i915#4525]) +1 other test skip [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-6/igt@gem_exec_balancer@parallel-balancer.html * igt@gem_exec_balancer@parallel-ordering: - shard-tglu-1: NOTRUN -> [SKIP][9] ([i915#4525]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@gem_exec_balancer@parallel-ordering.html * igt@gem_exec_capture@capture-recoverable: - shard-rkl: NOTRUN -> [SKIP][10] ([i915#6344]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-8/igt@gem_exec_capture@capture-recoverable.html * igt@gem_exec_suspend@basic-s0: - shard-rkl: [PASS][11] -> [INCOMPLETE][12] ([i915#13356]) +1 other test incomplete [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-7/igt@gem_exec_suspend@basic-s0.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@gem_exec_suspend@basic-s0.html * igt@gem_exec_suspend@basic-s3: - shard-glk11: NOTRUN -> [INCOMPLETE][13] ([i915#13196] / [i915#13356]) +1 other test incomplete [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk11/igt@gem_exec_suspend@basic-s3.html * igt@gem_huc_copy@huc-copy: - shard-tglu: NOTRUN -> [SKIP][14] ([i915#2190]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-6/igt@gem_huc_copy@huc-copy.html * igt@gem_lmem_swapping@basic: - shard-glk: NOTRUN -> [SKIP][15] ([i915#4613]) +2 other tests skip [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk6/igt@gem_lmem_swapping@basic.html * igt@gem_lmem_swapping@parallel-random-verify: - shard-tglu-1: NOTRUN -> [SKIP][16] ([i915#4613]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@gem_lmem_swapping@parallel-random-verify.html * igt@gem_lmem_swapping@verify-ccs: - shard-tglu: NOTRUN -> [SKIP][17] ([i915#4613]) +2 other tests skip [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@gem_lmem_swapping@verify-ccs.html * igt@gem_pwrite@basic-exhaustion: - shard-glk: NOTRUN -> [WARN][18] ([i915#14702] / [i915#2658]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk9/igt@gem_pwrite@basic-exhaustion.html * igt@gem_pxp@hw-rejects-pxp-context: - shard-tglu: NOTRUN -> [SKIP][19] ([i915#13398]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@gem_pxp@hw-rejects-pxp-context.html * igt@gem_tiled_partial_pwrite_pread@reads: - shard-rkl: NOTRUN -> [SKIP][20] ([i915#3282]) [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-5/igt@gem_tiled_partial_pwrite_pread@reads.html * igt@gem_userptr_blits@create-destroy-unsync: - shard-tglu: NOTRUN -> [SKIP][21] ([i915#3297]) +1 other test skip [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@gem_userptr_blits@create-destroy-unsync.html * igt@gem_userptr_blits@dmabuf-sync: - shard-glk: NOTRUN -> [SKIP][22] ([i915#3323]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk9/igt@gem_userptr_blits@dmabuf-sync.html * igt@gem_userptr_blits@readonly-pwrite-unsync: - shard-tglu-1: NOTRUN -> [SKIP][23] ([i915#3297]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@gem_userptr_blits@readonly-pwrite-unsync.html * igt@gen9_exec_parse@allowed-single: - shard-glk: [PASS][24] -> [ABORT][25] ([i915#5566]) [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-glk2/igt@gen9_exec_parse@allowed-single.html [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk4/igt@gen9_exec_parse@allowed-single.html * igt@gen9_exec_parse@bb-secure: - shard-tglu-1: NOTRUN -> [SKIP][26] ([i915#2527] / [i915#2856]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@gen9_exec_parse@bb-secure.html * igt@gen9_exec_parse@bb-start-out: - shard-rkl: NOTRUN -> [SKIP][27] ([i915#2527]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-8/igt@gen9_exec_parse@bb-start-out.html * igt@gen9_exec_parse@bb-start-param: - shard-tglu: NOTRUN -> [SKIP][28] ([i915#2527] / [i915#2856]) +1 other test skip [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-6/igt@gen9_exec_parse@bb-start-param.html * igt@i915_module_load@fault-injection@__uc_init: - shard-rkl: NOTRUN -> [SKIP][29] ([i915#15479]) +4 other tests skip [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-5/igt@i915_module_load@fault-injection@__uc_init.html * igt@i915_module_load@fault-injection@intel_connector_register: - shard-rkl: NOTRUN -> [ABORT][30] ([i915#15342]) +1 other test abort [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-5/igt@i915_module_load@fault-injection@intel_connector_register.html * igt@i915_pm_freq_api@freq-suspend: - shard-rkl: NOTRUN -> [SKIP][31] ([i915#8399]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-8/igt@i915_pm_freq_api@freq-suspend.html * igt@i915_pm_rc6_residency@rc6-fence: - shard-tglu: NOTRUN -> [WARN][32] ([i915#13790] / [i915#2681]) +1 other test warn [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@i915_pm_rc6_residency@rc6-fence.html * igt@i915_pm_rc6_residency@rc6-idle: - shard-tglu-1: NOTRUN -> [SKIP][33] ([i915#14498]) [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@i915_pm_rc6_residency@rc6-idle.html * igt@i915_pm_rps@reset: - shard-snb: [PASS][34] -> [INCOMPLETE][35] ([i915#13821]) [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-snb6/igt@i915_pm_rps@reset.html [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-snb1/igt@i915_pm_rps@reset.html * igt@i915_query@hwconfig_table: - shard-rkl: NOTRUN -> [SKIP][36] ([i915#6245]) [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@i915_query@hwconfig_table.html * igt@i915_query@test-query-geometry-subslices: - shard-rkl: NOTRUN -> [SKIP][37] ([i915#5723]) [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-5/igt@i915_query@test-query-geometry-subslices.html * igt@i915_suspend@debugfs-reader: - shard-glk: NOTRUN -> [INCOMPLETE][38] ([i915#4817]) +1 other test incomplete [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk5/igt@i915_suspend@debugfs-reader.html * igt@i915_suspend@fence-restore-tiled2untiled: - shard-rkl: [PASS][39] -> [INCOMPLETE][40] ([i915#4817]) [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-4/igt@i915_suspend@fence-restore-tiled2untiled.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@i915_suspend@fence-restore-tiled2untiled.html * igt@kms_atomic_transition@plane-all-modeset-transition: - shard-dg1: [PASS][41] -> [DMESG-WARN][42] ([i915#4423]) [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-dg1-12/igt@kms_atomic_transition@plane-all-modeset-transition.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg1-12/igt@kms_atomic_transition@plane-all-modeset-transition.html * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-3: - shard-dg2: NOTRUN -> [FAIL][43] ([i915#5956]) [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg2-8/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-3.html * igt@kms_atomic_transition@plane-toggle-modeset-transition@pipe-a-edp-1: - shard-mtlp: [PASS][44] -> [FAIL][45] ([i915#5956]) +1 other test fail [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-mtlp-2/igt@kms_atomic_transition@plane-toggle-modeset-transition@pipe-a-edp-1.html [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-mtlp-4/igt@kms_atomic_transition@plane-toggle-modeset-transition@pipe-a-edp-1.html * igt@kms_atomic_transition@plane-toggle-modeset-transition@pipe-a-hdmi-a-3: - shard-dg2: [PASS][46] -> [FAIL][47] ([i915#5956]) +2 other tests fail [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-dg2-5/igt@kms_atomic_transition@plane-toggle-modeset-transition@pipe-a-hdmi-a-3.html [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg2-5/igt@kms_atomic_transition@plane-toggle-modeset-transition@pipe-a-hdmi-a-3.html * igt@kms_big_fb@4-tiled-64bpp-rotate-180: - shard-rkl: NOTRUN -> [SKIP][48] ([i915#5286]) [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-5/igt@kms_big_fb@4-tiled-64bpp-rotate-180.html * igt@kms_big_fb@4-tiled-addfb: - shard-tglu: NOTRUN -> [SKIP][49] ([i915#5286]) +5 other tests skip [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@kms_big_fb@4-tiled-addfb.html * igt@kms_big_fb@4-tiled-addfb-size-overflow: - shard-tglu-1: NOTRUN -> [SKIP][50] ([i915#5286]) +2 other tests skip [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_big_fb@4-tiled-addfb-size-overflow.html * igt@kms_big_fb@linear-64bpp-rotate-90: - shard-rkl: NOTRUN -> [SKIP][51] ([i915#3638]) +4 other tests skip [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-8/igt@kms_big_fb@linear-64bpp-rotate-90.html * igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180: - shard-glk11: NOTRUN -> [DMESG-WARN][52] ([i915#118]) [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk11/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180.html * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180: - shard-rkl: NOTRUN -> [SKIP][53] +3 other tests skip [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-5/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180.html * igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs: - shard-tglu: NOTRUN -> [SKIP][54] ([i915#12313]) [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html * igt@kms_ccs@bad-rotation-90-y-tiled-ccs@pipe-b-hdmi-a-1: - shard-rkl: NOTRUN -> [SKIP][55] ([i915#6095]) +63 other tests skip [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-2/igt@kms_ccs@bad-rotation-90-y-tiled-ccs@pipe-b-hdmi-a-1.html * igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs-cc@pipe-d-hdmi-a-1: - shard-tglu: NOTRUN -> [SKIP][56] ([i915#6095]) +39 other tests skip [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs-cc@pipe-d-hdmi-a-1.html * igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-3: - shard-dg2: NOTRUN -> [SKIP][57] ([i915#6095]) +23 other tests skip [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg2-8/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-3.html * igt@kms_ccs@crc-primary-basic-y-tiled-ccs: - shard-tglu-1: NOTRUN -> [SKIP][58] ([i915#6095]) +24 other tests skip [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_ccs@crc-primary-basic-y-tiled-ccs.html * igt@kms_ccs@crc-primary-basic-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-1: - shard-dg2: NOTRUN -> [SKIP][59] ([i915#10307] / [i915#10434] / [i915#6095]) +1 other test skip [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg2-4/igt@kms_ccs@crc-primary-basic-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-1.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][60] ([i915#14098] / [i915#14544] / [i915#6095]) +2 other tests skip [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-2.html * igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-1: - shard-dg2: NOTRUN -> [SKIP][61] ([i915#10307] / [i915#6095]) +49 other tests skip [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg2-4/igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-1.html * igt@kms_ccs@crc-primary-suspend-y-tiled-ccs: - shard-glk10: NOTRUN -> [INCOMPLETE][62] ([i915#15582]) +1 other test incomplete [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk10/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs.html * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs: - shard-tglu-1: NOTRUN -> [SKIP][63] ([i915#12313]) [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs.html * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs: - shard-rkl: NOTRUN -> [SKIP][64] ([i915#12313]) +1 other test skip [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-8/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html * igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs@pipe-c-hdmi-a-1: - shard-rkl: NOTRUN -> [SKIP][65] ([i915#14098] / [i915#6095]) +39 other tests skip [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-2/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs@pipe-c-hdmi-a-1.html * igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs@pipe-a-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][66] ([i915#14544] / [i915#6095]) +5 other tests skip [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs@pipe-a-hdmi-a-2.html * igt@kms_ccs@missing-ccs-buffer-yf-tiled-ccs@pipe-b-hdmi-a-1: - shard-dg1: NOTRUN -> [SKIP][67] ([i915#6095]) +155 other tests skip [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg1-14/igt@kms_ccs@missing-ccs-buffer-yf-tiled-ccs@pipe-b-hdmi-a-1.html * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2: - shard-glk10: NOTRUN -> [SKIP][68] +52 other tests skip [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk10/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2.html * igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs@pipe-a-hdmi-a-1: - shard-glk: NOTRUN -> [SKIP][69] +228 other tests skip [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk6/igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs@pipe-a-hdmi-a-1.html * igt@kms_cdclk@plane-scaling: - shard-tglu: NOTRUN -> [SKIP][70] ([i915#3742]) [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@kms_cdclk@plane-scaling.html * igt@kms_cdclk@plane-scaling@pipe-c-hdmi-a-3: - shard-dg2: NOTRUN -> [SKIP][71] ([i915#13783]) +3 other tests skip [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg2-1/igt@kms_cdclk@plane-scaling@pipe-c-hdmi-a-3.html * igt@kms_chamelium_edid@dp-edid-resolution-list: - shard-tglu: NOTRUN -> [SKIP][72] ([i915#11151] / [i915#7828]) +5 other tests skip [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@kms_chamelium_edid@dp-edid-resolution-list.html * igt@kms_chamelium_frames@hdmi-crc-multiple: - shard-rkl: NOTRUN -> [SKIP][73] ([i915#11151] / [i915#7828]) +3 other tests skip [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@kms_chamelium_frames@hdmi-crc-multiple.html * igt@kms_chamelium_hpd@dp-hpd-after-suspend: - shard-glk11: NOTRUN -> [SKIP][74] +143 other tests skip [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk11/igt@kms_chamelium_hpd@dp-hpd-after-suspend.html * igt@kms_chamelium_hpd@dp-hpd-storm-disable: - shard-tglu-1: NOTRUN -> [SKIP][75] ([i915#11151] / [i915#7828]) +4 other tests skip [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_chamelium_hpd@dp-hpd-storm-disable.html * igt@kms_content_protection@atomic-dpms-hdcp14: - shard-tglu-1: NOTRUN -> [SKIP][76] ([i915#6944]) [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_content_protection@atomic-dpms-hdcp14.html * igt@kms_content_protection@dp-mst-lic-type-0: - shard-tglu: NOTRUN -> [SKIP][77] ([i915#15330] / [i915#3116] / [i915#3299]) +1 other test skip [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-6/igt@kms_content_protection@dp-mst-lic-type-0.html * igt@kms_content_protection@uevent: - shard-tglu-1: NOTRUN -> [SKIP][78] ([i915#6944] / [i915#7116] / [i915#7118] / [i915#9424]) [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_content_protection@uevent.html * igt@kms_cursor_crc@cursor-offscreen-512x512: - shard-rkl: NOTRUN -> [SKIP][79] ([i915#13049]) [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-8/igt@kms_cursor_crc@cursor-offscreen-512x512.html * igt@kms_cursor_crc@cursor-onscreen-512x170: - shard-tglu: NOTRUN -> [SKIP][80] ([i915#13049]) [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@kms_cursor_crc@cursor-onscreen-512x170.html * igt@kms_cursor_crc@cursor-rapid-movement-32x10: - shard-tglu: NOTRUN -> [SKIP][81] ([i915#3555]) +4 other tests skip [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html * igt@kms_cursor_crc@cursor-rapid-movement-32x32: - shard-tglu-1: NOTRUN -> [SKIP][82] ([i915#3555]) [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_cursor_crc@cursor-rapid-movement-32x32.html * igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-1: - shard-tglu-1: NOTRUN -> [FAIL][83] ([i915#13566]) +1 other test fail [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-1.html * igt@kms_cursor_crc@cursor-sliding-256x85@pipe-a-hdmi-a-1: - shard-rkl: NOTRUN -> [FAIL][84] ([i915#13566]) [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-5/igt@kms_cursor_crc@cursor-sliding-256x85@pipe-a-hdmi-a-1.html * igt@kms_cursor_crc@cursor-sliding-512x170: - shard-tglu-1: NOTRUN -> [SKIP][85] ([i915#13049]) [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_cursor_crc@cursor-sliding-512x170.html * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size: - shard-tglu: NOTRUN -> [SKIP][86] ([i915#4103]) [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html * igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle: - shard-rkl: NOTRUN -> [SKIP][87] ([i915#4103]) [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html * igt@kms_dither@fb-8bpc-vs-panel-6bpc: - shard-tglu: NOTRUN -> [SKIP][88] ([i915#1769] / [i915#3555] / [i915#3804]) [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-6/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html * igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1: - shard-tglu: NOTRUN -> [SKIP][89] ([i915#3804]) [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-6/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1.html * igt@kms_dp_link_training@uhbr-mst: - shard-tglu-1: NOTRUN -> [SKIP][90] ([i915#13748]) [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_dp_link_training@uhbr-mst.html * igt@kms_dsc@dsc-fractional-bpp: - shard-rkl: NOTRUN -> [SKIP][91] ([i915#3840]) [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-8/igt@kms_dsc@dsc-fractional-bpp.html * igt@kms_dsc@dsc-with-bpc-formats: - shard-rkl: NOTRUN -> [SKIP][92] ([i915#3555] / [i915#3840]) +1 other test skip [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-5/igt@kms_dsc@dsc-with-bpc-formats.html * igt@kms_dsc@dsc-with-output-formats-with-bpc: - shard-tglu: NOTRUN -> [SKIP][93] ([i915#3840] / [i915#9053]) [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-6/igt@kms_dsc@dsc-with-output-formats-with-bpc.html * igt@kms_fbcon_fbt@fbc-suspend: - shard-rkl: [PASS][94] -> [INCOMPLETE][95] ([i915#9878]) [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-8/igt@kms_fbcon_fbt@fbc-suspend.html [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@kms_fbcon_fbt@fbc-suspend.html * igt@kms_feature_discovery@display-2x: - shard-tglu-1: NOTRUN -> [SKIP][96] ([i915#1839]) [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_feature_discovery@display-2x.html * igt@kms_feature_discovery@psr1: - shard-tglu: NOTRUN -> [SKIP][97] ([i915#658]) +1 other test skip [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@kms_feature_discovery@psr1.html * igt@kms_flip@2x-blocking-wf_vblank: - shard-rkl: NOTRUN -> [SKIP][98] ([i915#9934]) +5 other tests skip [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@kms_flip@2x-blocking-wf_vblank.html * igt@kms_flip@2x-flip-vs-rmfb-interruptible: - shard-tglu-1: NOTRUN -> [SKIP][99] ([i915#3637] / [i915#9934]) [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_flip@2x-flip-vs-rmfb-interruptible.html * igt@kms_flip@2x-flip-vs-suspend-interruptible: - shard-glk10: NOTRUN -> [INCOMPLETE][100] ([i915#12745] / [i915#4839]) [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk10/igt@kms_flip@2x-flip-vs-suspend-interruptible.html * igt@kms_flip@2x-flip-vs-suspend-interruptible@ab-hdmi-a1-hdmi-a2: - shard-glk10: NOTRUN -> [INCOMPLETE][101] ([i915#4839]) [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk10/igt@kms_flip@2x-flip-vs-suspend-interruptible@ab-hdmi-a1-hdmi-a2.html * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible: - shard-tglu: NOTRUN -> [SKIP][102] ([i915#3637] / [i915#9934]) +7 other tests skip [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-6/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html * igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a4: - shard-dg1: [PASS][103] -> [FAIL][104] ([i915#13027]) +1 other test fail [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-dg1-18/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a4.html [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg1-17/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a4.html * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling: - shard-tglu: NOTRUN -> [SKIP][105] ([i915#15643]) +1 other test skip [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling.html * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling: - shard-tglu-1: NOTRUN -> [SKIP][106] ([i915#15643]) [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling: - shard-rkl: NOTRUN -> [SKIP][107] ([i915#15643]) [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-5/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-plflip-blt: - shard-tglu: NOTRUN -> [SKIP][108] +44 other tests skip [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-plflip-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-mmap-wc: - shard-snb: NOTRUN -> [SKIP][109] +144 other tests skip [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-snb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt: - shard-tglu-1: NOTRUN -> [SKIP][110] +24 other tests skip [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt: - shard-rkl: NOTRUN -> [SKIP][111] ([i915#1825]) +22 other tests skip [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-modesetfrombusy: - shard-tglu: NOTRUN -> [SKIP][112] ([i915#15102]) +15 other tests skip [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@kms_frontbuffer_tracking@fbcpsr-modesetfrombusy.html * igt@kms_frontbuffer_tracking@fbcpsr-tiling-4: - shard-tglu-1: NOTRUN -> [SKIP][113] ([i915#5439]) [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html * igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-blt: - shard-rkl: NOTRUN -> [SKIP][114] ([i915#15102]) [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-5/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-blt.html * igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-mmap-gtt: - shard-tglu-1: NOTRUN -> [SKIP][115] ([i915#15102]) +9 other tests skip [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@psr-rgb565-draw-render: - shard-rkl: NOTRUN -> [SKIP][116] ([i915#15102] / [i915#3023]) +9 other tests skip [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@kms_frontbuffer_tracking@psr-rgb565-draw-render.html * igt@kms_hdr@bpc-switch-dpms: - shard-rkl: [PASS][117] -> [SKIP][118] ([i915#3555] / [i915#8228]) [117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_hdr@bpc-switch-dpms.html [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@kms_hdr@bpc-switch-dpms.html * igt@kms_hdr@invalid-hdr: - shard-rkl: NOTRUN -> [SKIP][119] ([i915#3555] / [i915#8228]) [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@kms_hdr@invalid-hdr.html * igt@kms_hdr@static-swap: - shard-tglu: NOTRUN -> [SKIP][120] ([i915#3555] / [i915#8228]) [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-6/igt@kms_hdr@static-swap.html * igt@kms_hdr@static-toggle: - shard-tglu-1: NOTRUN -> [SKIP][121] ([i915#3555] / [i915#8228]) [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_hdr@static-toggle.html * igt@kms_multipipe_modeset@basic-max-pipe-crc-check: - shard-rkl: NOTRUN -> [SKIP][122] ([i915#15815]) [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-5/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html * igt@kms_plane@pixel-format-4-tiled-dg2-mc-ccs-modifier-source-clamping: - shard-tglu: NOTRUN -> [SKIP][123] ([i915#15709]) +3 other tests skip [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@kms_plane@pixel-format-4-tiled-dg2-mc-ccs-modifier-source-clamping.html * igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier-source-clamping: - shard-tglu-1: NOTRUN -> [SKIP][124] ([i915#15709]) +2 other tests skip [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier-source-clamping.html * igt@kms_plane@pixel-format-yf-tiled-ccs-modifier: - shard-rkl: NOTRUN -> [SKIP][125] ([i915#15709]) +1 other test skip [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-8/igt@kms_plane@pixel-format-yf-tiled-ccs-modifier.html * igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b: - shard-glk: NOTRUN -> [INCOMPLETE][126] ([i915#13026]) +1 other test incomplete [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk6/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b.html * igt@kms_plane_multiple@2x-tiling-4: - shard-rkl: NOTRUN -> [SKIP][127] ([i915#13958]) [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@kms_plane_multiple@2x-tiling-4.html * igt@kms_plane_multiple@2x-tiling-y: - shard-tglu: NOTRUN -> [SKIP][128] ([i915#13958]) [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-6/igt@kms_plane_multiple@2x-tiling-y.html * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation: - shard-rkl: NOTRUN -> [SKIP][129] ([i915#15329] / [i915#3555]) [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-8/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation.html * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b: - shard-rkl: NOTRUN -> [SKIP][130] ([i915#15329]) +2 other tests skip [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-8/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b.html * igt@kms_pm_backlight@bad-brightness: - shard-tglu: NOTRUN -> [SKIP][131] ([i915#9812]) [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@kms_pm_backlight@bad-brightness.html * igt@kms_pm_backlight@fade-with-suspend: - shard-rkl: NOTRUN -> [SKIP][132] ([i915#5354]) [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@kms_pm_backlight@fade-with-suspend.html * igt@kms_pm_dc@dc5-retention-flops: - shard-rkl: NOTRUN -> [SKIP][133] ([i915#3828]) +1 other test skip [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-8/igt@kms_pm_dc@dc5-retention-flops.html * igt@kms_pm_dc@dc6-psr: - shard-tglu-1: NOTRUN -> [SKIP][134] ([i915#9685]) [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_pm_dc@dc6-psr.html * igt@kms_pm_lpsp@screens-disabled: - shard-tglu: NOTRUN -> [SKIP][135] ([i915#8430]) [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@kms_pm_lpsp@screens-disabled.html * igt@kms_pm_rpm@modeset-lpsp-stress-no-wait: - shard-dg1: [PASS][136] -> [SKIP][137] ([i915#15073]) [136]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-dg1-14/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg1-13/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html * igt@kms_pm_rpm@modeset-non-lpsp: - shard-tglu: NOTRUN -> [SKIP][138] ([i915#15073]) [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@kms_pm_rpm@modeset-non-lpsp.html * igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait: - shard-rkl: [PASS][139] -> [SKIP][140] ([i915#15073]) +1 other test skip [139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-4/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-2/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html * igt@kms_pm_rpm@system-suspend-modeset: - shard-glk: NOTRUN -> [INCOMPLETE][141] ([i915#10553]) [141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk8/igt@kms_pm_rpm@system-suspend-modeset.html - shard-rkl: [PASS][142] -> [INCOMPLETE][143] ([i915#14419]) [142]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_pm_rpm@system-suspend-modeset.html [143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_pm_rpm@system-suspend-modeset.html * igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf: - shard-rkl: NOTRUN -> [SKIP][144] ([i915#11520]) +2 other tests skip [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-5/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html * igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-sf: - shard-tglu-1: NOTRUN -> [SKIP][145] ([i915#11520]) +2 other tests skip [145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-sf.html * igt@kms_psr2_sf@pr-cursor-plane-update-sf: - shard-tglu: NOTRUN -> [SKIP][146] ([i915#11520]) +5 other tests skip [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@kms_psr2_sf@pr-cursor-plane-update-sf.html * igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area: - shard-glk: NOTRUN -> [SKIP][147] ([i915#11520]) +4 other tests skip [147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk9/igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area.html * igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf: - shard-snb: NOTRUN -> [SKIP][148] ([i915#11520]) +2 other tests skip [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-snb1/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf.html - shard-glk10: NOTRUN -> [SKIP][149] ([i915#11520]) +1 other test skip [149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk10/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf.html * igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-sf: - shard-glk11: NOTRUN -> [SKIP][150] ([i915#11520]) +5 other tests skip [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk11/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-sf.html * igt@kms_psr2_su@page_flip-p010: - shard-tglu: NOTRUN -> [SKIP][151] ([i915#9683]) [151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-6/igt@kms_psr2_su@page_flip-p010.html * igt@kms_psr@fbc-pr-cursor-mmap-gtt: - shard-rkl: NOTRUN -> [SKIP][152] ([i915#1072] / [i915#9732]) +10 other tests skip [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-8/igt@kms_psr@fbc-pr-cursor-mmap-gtt.html * igt@kms_psr@fbc-pr-suspend: - shard-tglu: NOTRUN -> [SKIP][153] ([i915#9732]) +11 other tests skip [153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@kms_psr@fbc-pr-suspend.html * igt@kms_psr@psr2-sprite-mmap-gtt: - shard-tglu-1: NOTRUN -> [SKIP][154] ([i915#9732]) +10 other tests skip [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_psr@psr2-sprite-mmap-gtt.html * igt@kms_rotation_crc@multiplane-rotation: - shard-glk: NOTRUN -> [INCOMPLETE][155] ([i915#15492]) [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk9/igt@kms_rotation_crc@multiplane-rotation.html * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180: - shard-tglu-1: NOTRUN -> [SKIP][156] ([i915#5289]) +1 other test skip [156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90: - shard-rkl: NOTRUN -> [SKIP][157] ([i915#5289]) [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-8/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html * igt@kms_selftest@drm_framebuffer: - shard-tglu: NOTRUN -> [ABORT][158] ([i915#13179]) +1 other test abort [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@kms_selftest@drm_framebuffer.html * igt@kms_setmode@basic-clone-single-crtc: - shard-rkl: NOTRUN -> [SKIP][159] ([i915#3555]) +3 other tests skip [159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-5/igt@kms_setmode@basic-clone-single-crtc.html * igt@kms_vrr@max-min: - shard-rkl: NOTRUN -> [SKIP][160] ([i915#9906]) [160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-5/igt@kms_vrr@max-min.html * igt@kms_vrr@seamless-rr-switch-drrs: - shard-tglu-1: NOTRUN -> [SKIP][161] ([i915#9906]) [161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-1/igt@kms_vrr@seamless-rr-switch-drrs.html * igt@perf_pmu@busy-double-start@rcs0: - shard-mtlp: [PASS][162] -> [FAIL][163] ([i915#4349]) [162]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-mtlp-1/igt@perf_pmu@busy-double-start@rcs0.html [163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-mtlp-4/igt@perf_pmu@busy-double-start@rcs0.html * igt@perf_pmu@busy-double-start@vecs1: - shard-dg2: [PASS][164] -> [FAIL][165] ([i915#4349]) +4 other tests fail [164]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-dg2-6/igt@perf_pmu@busy-double-start@vecs1.html [165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg2-5/igt@perf_pmu@busy-double-start@vecs1.html * igt@prime_vgem@basic-write: - shard-rkl: NOTRUN -> [SKIP][166] ([i915#3291] / [i915#3708]) [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-8/igt@prime_vgem@basic-write.html * igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all: - shard-tglu: NOTRUN -> [FAIL][167] ([i915#12910]) [167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-tglu-10/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html #### Possible fixes #### * igt@drm_read@fault-buffer: - shard-dg1: [DMESG-WARN][168] ([i915#4423]) -> [PASS][169] +1 other test pass [168]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-dg1-19/igt@drm_read@fault-buffer.html [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg1-18/igt@drm_read@fault-buffer.html * igt@gem_lmem_swapping@smem-oom: - shard-dg1: [FAIL][170] ([i915#15734]) -> [PASS][171] [170]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-dg1-13/igt@gem_lmem_swapping@smem-oom.html [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg1-16/igt@gem_lmem_swapping@smem-oom.html * igt@gem_lmem_swapping@smem-oom@lmem0: - shard-dg1: [CRASH][172] ([i915#5493]) -> [PASS][173] [172]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-dg1-13/igt@gem_lmem_swapping@smem-oom@lmem0.html [173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg1-16/igt@gem_lmem_swapping@smem-oom@lmem0.html * igt@gem_workarounds@suspend-resume-fd: - shard-glk: [INCOMPLETE][174] ([i915#13356] / [i915#14586]) -> [PASS][175] [174]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-glk8/igt@gem_workarounds@suspend-resume-fd.html [175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk9/igt@gem_workarounds@suspend-resume-fd.html * igt@i915_selftest@live: - shard-mtlp: [DMESG-FAIL][176] ([i915#12061] / [i915#15560]) -> [PASS][177] [176]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-mtlp-5/igt@i915_selftest@live.html [177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-mtlp-2/igt@i915_selftest@live.html * igt@i915_selftest@live@workarounds: - shard-mtlp: [DMESG-FAIL][178] ([i915#12061]) -> [PASS][179] [178]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-mtlp-5/igt@i915_selftest@live@workarounds.html [179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-mtlp-2/igt@i915_selftest@live@workarounds.html * igt@i915_suspend@basic-s2idle-without-i915: - shard-dg1: [DMESG-WARN][180] ([i915#4391] / [i915#4423]) -> [PASS][181] [180]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-dg1-18/igt@i915_suspend@basic-s2idle-without-i915.html [181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg1-17/igt@i915_suspend@basic-s2idle-without-i915.html * igt@kms_cursor_crc@cursor-suspend: - shard-rkl: [INCOMPLETE][182] ([i915#12358] / [i915#14152]) -> [PASS][183] [182]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-3/igt@kms_cursor_crc@cursor-suspend.html [183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-8/igt@kms_cursor_crc@cursor-suspend.html * igt@kms_force_connector_basic@force-edid: - shard-mtlp: [SKIP][184] ([i915#15672]) -> [PASS][185] [184]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-mtlp-1/igt@kms_force_connector_basic@force-edid.html [185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-mtlp-5/igt@kms_force_connector_basic@force-edid.html * igt@kms_pm_lpsp@kms-lpsp: - shard-dg2: [SKIP][186] ([i915#9340]) -> [PASS][187] [186]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-dg2-6/igt@kms_pm_lpsp@kms-lpsp.html [187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg2-4/igt@kms_pm_lpsp@kms-lpsp.html * igt@kms_pm_rpm@dpms-lpsp: - shard-rkl: [SKIP][188] ([i915#15073]) -> [PASS][189] +2 other tests pass [188]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-4/igt@kms_pm_rpm@dpms-lpsp.html [189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-5/igt@kms_pm_rpm@dpms-lpsp.html * igt@kms_pm_rpm@dpms-mode-unset-lpsp: - shard-dg2: [SKIP][190] ([i915#15073]) -> [PASS][191] [190]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-dg2-5/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html [191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg2-4/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html * igt@kms_vblank@ts-continuation-suspend@pipe-a-hdmi-a-2: - shard-rkl: [INCOMPLETE][192] ([i915#12276]) -> [PASS][193] +1 other test pass [192]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-3/igt@kms_vblank@ts-continuation-suspend@pipe-a-hdmi-a-2.html [193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@kms_vblank@ts-continuation-suspend@pipe-a-hdmi-a-2.html * igt@testdisplay: - shard-snb: [DMESG-WARN][194] -> [PASS][195] [194]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-snb5/igt@testdisplay.html [195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-snb4/igt@testdisplay.html #### Warnings #### * igt@gem_ccs@block-multicopy-inplace: - shard-rkl: [SKIP][196] ([i915#14544] / [i915#3555] / [i915#9323]) -> [SKIP][197] ([i915#3555] / [i915#9323]) [196]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@gem_ccs@block-multicopy-inplace.html [197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@gem_ccs@block-multicopy-inplace.html * igt@gem_create@create-ext-cpu-access-big: - shard-rkl: [SKIP][198] ([i915#6335]) -> [SKIP][199] ([i915#14544] / [i915#6335]) [198]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@gem_create@create-ext-cpu-access-big.html [199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@gem_create@create-ext-cpu-access-big.html * igt@gem_exec_balancer@parallel: - shard-rkl: [SKIP][200] ([i915#4525]) -> [SKIP][201] ([i915#14544] / [i915#4525]) [200]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@gem_exec_balancer@parallel.html [201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@gem_exec_balancer@parallel.html * igt@gem_exec_reloc@basic-cpu-noreloc: - shard-rkl: [SKIP][202] ([i915#3281]) -> [SKIP][203] ([i915#14544] / [i915#3281]) +2 other tests skip [202]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-4/igt@gem_exec_reloc@basic-cpu-noreloc.html [203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@gem_exec_reloc@basic-cpu-noreloc.html * igt@gem_exec_reloc@basic-gtt-cpu: - shard-rkl: [SKIP][204] ([i915#14544] / [i915#3281]) -> [SKIP][205] ([i915#3281]) +3 other tests skip [204]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@gem_exec_reloc@basic-gtt-cpu.html [205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@gem_exec_reloc@basic-gtt-cpu.html * igt@gem_lmem_swapping@parallel-random-verify-ccs: - shard-rkl: [SKIP][206] ([i915#14544] / [i915#4613]) -> [SKIP][207] ([i915#4613]) +1 other test skip [206]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@gem_lmem_swapping@parallel-random-verify-ccs.html [207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@gem_lmem_swapping@parallel-random-verify-ccs.html * igt@gem_partial_pwrite_pread@writes-after-reads: - shard-rkl: [SKIP][208] ([i915#3282]) -> [SKIP][209] ([i915#14544] / [i915#3282]) +3 other tests skip [208]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-4/igt@gem_partial_pwrite_pread@writes-after-reads.html [209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@gem_partial_pwrite_pread@writes-after-reads.html * igt@gem_partial_pwrite_pread@writes-after-reads-uncached: - shard-rkl: [SKIP][210] ([i915#14544] / [i915#3282]) -> [SKIP][211] ([i915#3282]) +6 other tests skip [210]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html [211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html * igt@gem_pxp@hw-rejects-pxp-context: - shard-rkl: [SKIP][212] ([i915#13717]) -> [SKIP][213] ([i915#13717] / [i915#14544]) [212]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@gem_pxp@hw-rejects-pxp-context.html [213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@gem_pxp@hw-rejects-pxp-context.html * igt@gem_set_tiling_vs_blt@tiled-to-untiled: - shard-rkl: [SKIP][214] ([i915#8411]) -> [SKIP][215] ([i915#14544] / [i915#8411]) [214]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@gem_set_tiling_vs_blt@tiled-to-untiled.html [215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@gem_set_tiling_vs_blt@tiled-to-untiled.html * igt@gem_softpin@evict-snoop: - shard-rkl: [SKIP][216] -> [SKIP][217] ([i915#14544]) +12 other tests skip [216]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-4/igt@gem_softpin@evict-snoop.html [217]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@gem_softpin@evict-snoop.html * igt@gem_userptr_blits@create-destroy-unsync: - shard-rkl: [SKIP][218] ([i915#3297]) -> [SKIP][219] ([i915#14544] / [i915#3297]) +1 other test skip [218]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@gem_userptr_blits@create-destroy-unsync.html [219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@gem_userptr_blits@create-destroy-unsync.html * igt@gem_userptr_blits@invalid-mmap-offset-unsync: - shard-rkl: [SKIP][220] ([i915#14544] / [i915#3297]) -> [SKIP][221] ([i915#3297]) [220]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html [221]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html * igt@gen9_exec_parse@bb-oversize: - shard-rkl: [SKIP][222] ([i915#14544] / [i915#2527]) -> [SKIP][223] ([i915#2527]) +1 other test skip [222]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@gen9_exec_parse@bb-oversize.html [223]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@gen9_exec_parse@bb-oversize.html * igt@i915_pm_freq_api@freq-basic-api: - shard-rkl: [SKIP][224] ([i915#14544] / [i915#8399]) -> [SKIP][225] ([i915#8399]) [224]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@i915_pm_freq_api@freq-basic-api.html [225]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@i915_pm_freq_api@freq-basic-api.html * igt@i915_pm_freq_api@freq-reset-multiple: - shard-rkl: [SKIP][226] ([i915#8399]) -> [SKIP][227] ([i915#14544] / [i915#8399]) [226]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@i915_pm_freq_api@freq-reset-multiple.html [227]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@i915_pm_freq_api@freq-reset-multiple.html * igt@i915_power@sanity: - shard-rkl: [SKIP][228] ([i915#14544] / [i915#7984]) -> [SKIP][229] ([i915#7984]) [228]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@i915_power@sanity.html [229]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@i915_power@sanity.html * igt@i915_suspend@forcewake: - shard-rkl: [INCOMPLETE][230] ([i915#4817]) -> [ABORT][231] ([i915#15140]) [230]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@i915_suspend@forcewake.html [231]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-1/igt@i915_suspend@forcewake.html * igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels: - shard-rkl: [SKIP][232] ([i915#14544] / [i915#1769] / [i915#3555]) -> [SKIP][233] ([i915#1769] / [i915#3555]) [232]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html [233]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html * igt@kms_big_fb@4-tiled-32bpp-rotate-0: - shard-rkl: [SKIP][234] ([i915#5286]) -> [SKIP][235] ([i915#14544] / [i915#5286]) +1 other test skip [234]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_big_fb@4-tiled-32bpp-rotate-0.html [235]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_big_fb@4-tiled-32bpp-rotate-0.html * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180: - shard-rkl: [SKIP][236] ([i915#14544] / [i915#5286]) -> [SKIP][237] ([i915#5286]) +2 other tests skip [236]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180.html [237]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180.html * igt@kms_big_fb@y-tiled-8bpp-rotate-270: - shard-rkl: [SKIP][238] ([i915#3638]) -> [SKIP][239] ([i915#14544] / [i915#3638]) +1 other test skip [238]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_big_fb@y-tiled-8bpp-rotate-270.html [239]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_big_fb@y-tiled-8bpp-rotate-270.html * igt@kms_big_fb@y-tiled-8bpp-rotate-90: - shard-rkl: [SKIP][240] ([i915#14544] / [i915#3638]) -> [SKIP][241] ([i915#3638]) +3 other tests skip [240]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html [241]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip: - shard-rkl: [SKIP][242] ([i915#14544]) -> [SKIP][243] +6 other tests skip [242]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html [243]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip: - shard-dg1: [SKIP][244] ([i915#4538]) -> [SKIP][245] ([i915#4423] / [i915#4538]) [244]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-dg1-16/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html [245]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg1-19/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html * igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs: - shard-rkl: [SKIP][246] ([i915#12313]) -> [SKIP][247] ([i915#12313] / [i915#14544]) [246]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html [247]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html * igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-2: - shard-rkl: [SKIP][248] ([i915#14544] / [i915#6095]) -> [SKIP][249] ([i915#6095]) +9 other tests skip [248]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-2.html [249]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-2.html * igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-2: - shard-rkl: [SKIP][250] ([i915#14098] / [i915#14544] / [i915#6095]) -> [SKIP][251] ([i915#14098] / [i915#6095]) +9 other tests skip [250]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-2.html [251]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-2.html * igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs: - shard-rkl: [SKIP][252] ([i915#12313] / [i915#14544]) -> [SKIP][253] ([i915#12313]) [252]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html [253]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html * igt@kms_ccs@crc-primary-rotation-180-yf-tiled-ccs@pipe-a-hdmi-a-4: - shard-dg1: [SKIP][254] ([i915#4423] / [i915#6095]) -> [SKIP][255] ([i915#6095]) +1 other test skip [254]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-dg1-18/igt@kms_ccs@crc-primary-rotation-180-yf-tiled-ccs@pipe-a-hdmi-a-4.html [255]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg1-17/igt@kms_ccs@crc-primary-rotation-180-yf-tiled-ccs@pipe-a-hdmi-a-4.html * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs: - shard-rkl: [SKIP][256] ([i915#12805] / [i915#14544]) -> [SKIP][257] ([i915#12805]) [256]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html [257]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html * igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs: - shard-rkl: [SKIP][258] ([i915#14098] / [i915#6095]) -> [SKIP][259] ([i915#14098] / [i915#14544] / [i915#6095]) +2 other tests skip [258]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs.html [259]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs.html * igt@kms_cdclk@mode-transition-all-outputs: - shard-rkl: [SKIP][260] ([i915#3742]) -> [SKIP][261] ([i915#14544] / [i915#3742]) [260]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-4/igt@kms_cdclk@mode-transition-all-outputs.html [261]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_cdclk@mode-transition-all-outputs.html * igt@kms_chamelium_frames@hdmi-cmp-planar-formats: - shard-rkl: [SKIP][262] ([i915#11151] / [i915#14544] / [i915#7828]) -> [SKIP][263] ([i915#11151] / [i915#7828]) +3 other tests skip [262]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_chamelium_frames@hdmi-cmp-planar-formats.html [263]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@kms_chamelium_frames@hdmi-cmp-planar-formats.html * igt@kms_chamelium_hpd@dp-hpd-fast: - shard-rkl: [SKIP][264] ([i915#11151] / [i915#7828]) -> [SKIP][265] ([i915#11151] / [i915#14544] / [i915#7828]) +4 other tests skip [264]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-4/igt@kms_chamelium_hpd@dp-hpd-fast.html [265]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_chamelium_hpd@dp-hpd-fast.html * igt@kms_content_protection@atomic-dpms: - shard-rkl: [SKIP][266] ([i915#14544] / [i915#6944] / [i915#7118] / [i915#9424]) -> [SKIP][267] ([i915#6944] / [i915#7118] / [i915#9424]) [266]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_content_protection@atomic-dpms.html [267]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@kms_content_protection@atomic-dpms.html * igt@kms_content_protection@dp-mst-lic-type-1: - shard-rkl: [SKIP][268] ([i915#15330] / [i915#3116]) -> [SKIP][269] ([i915#14544] / [i915#15330] / [i915#3116]) [268]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_content_protection@dp-mst-lic-type-1.html [269]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_content_protection@dp-mst-lic-type-1.html * igt@kms_content_protection@dp-mst-type-1-suspend-resume: - shard-rkl: [SKIP][270] ([i915#15330]) -> [SKIP][271] ([i915#14544] / [i915#15330]) [270]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_content_protection@dp-mst-type-1-suspend-resume.html [271]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_content_protection@dp-mst-type-1-suspend-resume.html * igt@kms_cursor_crc@cursor-onscreen-512x170: - shard-rkl: [SKIP][272] ([i915#13049]) -> [SKIP][273] ([i915#13049] / [i915#14544]) [272]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_cursor_crc@cursor-onscreen-512x170.html [273]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_cursor_crc@cursor-onscreen-512x170.html * igt@kms_cursor_crc@cursor-rapid-movement-32x10: - shard-rkl: [SKIP][274] ([i915#3555]) -> [SKIP][275] ([i915#14544] / [i915#3555]) +1 other test skip [274]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html [275]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html * igt@kms_cursor_crc@cursor-rapid-movement-512x170: - shard-rkl: [SKIP][276] ([i915#13049] / [i915#14544]) -> [SKIP][277] ([i915#13049]) [276]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html [277]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size: - shard-glk: [FAIL][278] ([i915#15804]) -> [FAIL][279] ([i915#15805]) [278]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-glk4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html [279]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-glk4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size: - shard-rkl: [SKIP][280] ([i915#4103]) -> [SKIP][281] ([i915#14544] / [i915#4103]) [280]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html [281]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html * igt@kms_dirtyfb@psr-dirtyfb-ioctl: - shard-rkl: [SKIP][282] ([i915#14544] / [i915#9723]) -> [SKIP][283] ([i915#9723]) [282]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html [283]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html * igt@kms_dp_linktrain_fallback@dsc-fallback: - shard-rkl: [SKIP][284] ([i915#13707]) -> [SKIP][285] ([i915#13707] / [i915#14544]) [284]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_dp_linktrain_fallback@dsc-fallback.html [285]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_dp_linktrain_fallback@dsc-fallback.html * igt@kms_dsc@dsc-basic: - shard-rkl: [SKIP][286] ([i915#3555] / [i915#3840]) -> [SKIP][287] ([i915#14544] / [i915#3555] / [i915#3840]) [286]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_dsc@dsc-basic.html [287]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_dsc@dsc-basic.html * igt@kms_feature_discovery@display-4x: - shard-rkl: [SKIP][288] ([i915#1839]) -> [SKIP][289] ([i915#14544] / [i915#1839]) [288]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-4/igt@kms_feature_discovery@display-4x.html [289]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_feature_discovery@display-4x.html * igt@kms_feature_discovery@psr1: - shard-rkl: [SKIP][290] ([i915#658]) -> [SKIP][291] ([i915#14544] / [i915#658]) [290]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_feature_discovery@psr1.html [291]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_feature_discovery@psr1.html * igt@kms_flip@2x-plain-flip: - shard-rkl: [SKIP][292] ([i915#9934]) -> [SKIP][293] ([i915#14544] / [i915#9934]) +4 other tests skip [292]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_flip@2x-plain-flip.html [293]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_flip@2x-plain-flip.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling: - shard-rkl: [SKIP][294] ([i915#14544] / [i915#15643]) -> [SKIP][295] ([i915#15643]) +3 other tests skip [294]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling.html [295]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling: - shard-rkl: [SKIP][296] ([i915#15643]) -> [SKIP][297] ([i915#14544] / [i915#15643]) +2 other tests skip [296]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling.html [297]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc: - shard-rkl: [SKIP][298] ([i915#1825]) -> [SKIP][299] ([i915#14544] / [i915#1825]) +22 other tests skip [298]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc.html [299]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-pwrite: - shard-rkl: [SKIP][300] ([i915#14544] / [i915#15102]) -> [SKIP][301] ([i915#15102]) [300]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-pwrite.html [301]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-blt: - shard-rkl: [SKIP][302] ([i915#15102]) -> [SKIP][303] ([i915#14544] / [i915#15102]) +1 other test skip [302]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-blt.html [303]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw: - shard-rkl: [SKIP][304] ([i915#15102] / [i915#3023]) -> [SKIP][305] ([i915#14544] / [i915#15102] / [i915#3023]) +8 other tests skip [304]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html [305]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move: - shard-rkl: [SKIP][306] ([i915#14544] / [i915#15102] / [i915#3023]) -> [SKIP][307] ([i915#15102] / [i915#3023]) +8 other tests skip [306]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move.html [307]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite: - shard-dg2: [SKIP][308] ([i915#15102] / [i915#3458]) -> [SKIP][309] ([i915#10433] / [i915#15102] / [i915#3458]) +2 other tests skip [308]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-dg2-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite.html [309]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render: - shard-dg2: [SKIP][310] ([i915#10433] / [i915#15102] / [i915#3458]) -> [SKIP][311] ([i915#15102] / [i915#3458]) +5 other tests skip [310]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render.html [311]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg2-8/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render.html * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt: - shard-rkl: [SKIP][312] ([i915#14544] / [i915#1825]) -> [SKIP][313] ([i915#1825]) +14 other tests skip [312]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt.html [313]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt.html * igt@kms_hdr@bpc-switch-suspend: - shard-rkl: [ABORT][314] ([i915#15132]) -> [SKIP][315] ([i915#3555] / [i915#8228]) [314]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-1/igt@kms_hdr@bpc-switch-suspend.html [315]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-8/igt@kms_hdr@bpc-switch-suspend.html * igt@kms_joiner@invalid-modeset-ultra-joiner: - shard-rkl: [SKIP][316] ([i915#14544] / [i915#15458]) -> [SKIP][317] ([i915#15458]) [316]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_joiner@invalid-modeset-ultra-joiner.html [317]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@kms_joiner@invalid-modeset-ultra-joiner.html * igt@kms_panel_fitting@legacy: - shard-rkl: [SKIP][318] ([i915#14544] / [i915#6301]) -> [SKIP][319] ([i915#6301]) [318]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_panel_fitting@legacy.html [319]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@kms_panel_fitting@legacy.html * igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier: - shard-rkl: [SKIP][320] ([i915#15709]) -> [SKIP][321] ([i915#14544] / [i915#15709]) +1 other test skip [320]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier.html [321]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier.html * igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier: - shard-rkl: [SKIP][322] ([i915#14544] / [i915#15709]) -> [SKIP][323] ([i915#15709]) +2 other tests skip [322]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier.html [323]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier.html * igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation@pipe-c: - shard-rkl: [SKIP][324] ([i915#14544] / [i915#15329]) -> [SKIP][325] ([i915#15329]) +3 other tests skip [324]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation@pipe-c.html [325]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation@pipe-c.html * igt@kms_pm_backlight@bad-brightness: - shard-rkl: [SKIP][326] ([i915#5354]) -> [SKIP][327] ([i915#14544] / [i915#5354]) [326]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_pm_backlight@bad-brightness.html [327]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_pm_backlight@bad-brightness.html * igt@kms_pm_dc@dc5-psr: - shard-rkl: [SKIP][328] ([i915#14544] / [i915#9685]) -> [SKIP][329] ([i915#9685]) [328]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_pm_dc@dc5-psr.html [329]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@kms_pm_dc@dc5-psr.html * igt@kms_pm_dc@dc9-dpms: - shard-rkl: [SKIP][330] ([i915#14544] / [i915#15739]) -> [SKIP][331] ([i915#15739]) [330]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_pm_dc@dc9-dpms.html [331]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-1/igt@kms_pm_dc@dc9-dpms.html * igt@kms_pm_lpsp@kms-lpsp: - shard-dg1: [SKIP][332] ([i915#9340]) -> [SKIP][333] ([i915#3828]) [332]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-dg1-12/igt@kms_pm_lpsp@kms-lpsp.html [333]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-dg1-14/igt@kms_pm_lpsp@kms-lpsp.html * igt@kms_pm_lpsp@screens-disabled: - shard-rkl: [SKIP][334] ([i915#8430]) -> [SKIP][335] ([i915#14544] / [i915#8430]) [334]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_pm_lpsp@screens-disabled.html [335]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_pm_lpsp@screens-disabled.html * igt@kms_prime@basic-crc-hybrid: - shard-rkl: [SKIP][336] ([i915#14544] / [i915#6524]) -> [SKIP][337] ([i915#6524]) [336]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_prime@basic-crc-hybrid.html [337]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@kms_prime@basic-crc-hybrid.html * igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-sf: - shard-rkl: [SKIP][338] ([i915#11520] / [i915#14544]) -> [SKIP][339] ([i915#11520]) +2 other tests skip [338]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-sf.html [339]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-4/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-sf.html * igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf: - shard-rkl: [SKIP][340] ([i915#11520]) -> [SKIP][341] ([i915#11520] / [i915#14544]) +5 other tests skip [340]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf.html [341]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf.html * igt@kms_psr@psr-cursor-mmap-cpu: - shard-rkl: [SKIP][342] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][343] ([i915#1072] / [i915#9732]) +10 other tests skip [342]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_psr@psr-cursor-mmap-cpu.html [343]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-1/igt@kms_psr@psr-cursor-mmap-cpu.html * igt@kms_psr@psr-sprite-render: - shard-rkl: [SKIP][344] ([i915#1072] / [i915#9732]) -> [SKIP][345] ([i915#1072] / [i915#14544] / [i915#9732]) +4 other tests skip [344]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_psr@psr-sprite-render.html [345]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_psr@psr-sprite-render.html * igt@kms_psr_stress_test@flip-primary-invalidate-overlay: - shard-rkl: [SKIP][346] ([i915#9685]) -> [SKIP][347] ([i915#14544] / [i915#9685]) [346]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html [347]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html * igt@kms_scaling_modes@scaling-mode-none: - shard-rkl: [SKIP][348] ([i915#14544] / [i915#3555]) -> [SKIP][349] ([i915#3555]) +1 other test skip [348]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_scaling_modes@scaling-mode-none.html [349]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@kms_scaling_modes@scaling-mode-none.html * igt@kms_vrr@flipline: - shard-rkl: [SKIP][350] ([i915#15243] / [i915#3555]) -> [SKIP][351] ([i915#14544] / [i915#15243] / [i915#3555]) [350]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_vrr@flipline.html [351]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_vrr@flipline.html * igt@kms_vrr@lobf: - shard-rkl: [SKIP][352] ([i915#11920]) -> [SKIP][353] ([i915#11920] / [i915#14544]) [352]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@kms_vrr@lobf.html [353]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@kms_vrr@lobf.html * igt@kms_vrr@negative-basic: - shard-rkl: [SKIP][354] ([i915#14544] / [i915#3555] / [i915#9906]) -> [SKIP][355] ([i915#3555] / [i915#9906]) [354]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@kms_vrr@negative-basic.html [355]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@kms_vrr@negative-basic.html * igt@perf@mi-rpc: - shard-rkl: [SKIP][356] ([i915#2434]) -> [SKIP][357] ([i915#14544] / [i915#2434]) [356]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@perf@mi-rpc.html [357]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@perf@mi-rpc.html * igt@prime_vgem@basic-fence-read: - shard-rkl: [SKIP][358] ([i915#3291] / [i915#3708]) -> [SKIP][359] ([i915#14544] / [i915#3291] / [i915#3708]) [358]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@prime_vgem@basic-fence-read.html [359]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@prime_vgem@basic-fence-read.html * igt@prime_vgem@fence-write-hang: - shard-rkl: [SKIP][360] ([i915#14544] / [i915#3708]) -> [SKIP][361] ([i915#3708]) [360]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-6/igt@prime_vgem@fence-write-hang.html [361]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-3/igt@prime_vgem@fence-write-hang.html * igt@sriov_basic@enable-vfs-bind-unbind-each: - shard-rkl: [SKIP][362] ([i915#9917]) -> [SKIP][363] ([i915#14544] / [i915#9917]) [362]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18130/shard-rkl-2/igt@sriov_basic@enable-vfs-bind-unbind-each.html [363]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_163033v1/shard-rkl-6/igt@sriov_basic@enable-vfs-bind-unbind-each.html [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#10553]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10553 [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072 [i915#1099]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1099 [i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151 [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520 [i915#118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/118 [i915#11920]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11920 [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061 [i915#12276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12276 [i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313 [i915#12358]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12358 [i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745 [i915#12805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12805 [i915#12910]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12910 [i915#13026]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13026 [i915#13027]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13027 [i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049 [i915#13179]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13179 [i915#13196]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13196 [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#13707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13707 [i915#13717]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13717 [i915#13748]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13748 [i915#13783]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13783 [i915#13790]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13790 [i915#13821]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13821 [i915#13958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13958 [i915#14098]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14098 [i915#14152]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14152 [i915#14419]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14419 [i915#14498]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14498 [i915#14544]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14544 [i915#14586]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14586 [i915#14702]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14702 [i915#15073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15073 [i915#15102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15102 [i915#15132]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15132 [i915#15140]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15140 [i915#15243]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15243 [i915#15329]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15329 [i915#15330]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15330 [i915#15342]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15342 [i915#15458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15458 [i915#15479]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15479 [i915#15492]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15492 [i915#15560]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15560 [i915#15582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15582 [i915#15643]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15643 [i915#15672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15672 [i915#15709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15709 [i915#15734]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15734 [i915#15739]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15739 [i915#15804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15804 [i915#15805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15805 [i915#15815]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15815 [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#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190 [i915#2434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2434 [i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527 [i915#2658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2658 [i915#2681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2681 [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#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458 [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555 [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#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804 [i915#3828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3828 [i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840 [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103 [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#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613 [i915#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817 [i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839 [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#5493]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5493 [i915#5566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5566 [i915#5723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5723 [i915#5956]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5956 [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095 [i915#6245]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6245 [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#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658 [i915#6944]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6944 [i915#7116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7116 [i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118 [i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697 [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828 [i915#7984]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7984 [i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228 [i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399 [i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411 [i915#8430]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8430 [i915#8898]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8898 [i915#9053]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9053 [i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323 [i915#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340 [i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424 [i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683 [i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685 [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#9878]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9878 [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_18130 -> Patchwork_163033v1 CI-20190529: 20190529 CI_DRM_18130: 4a30f5fa0fe382b3915a8208a483d0044c40b9eb @ git://anongit.freedesktop.org/gfx-ci/linux IGT_8793: c623172fdd4dd92bb23dbc55b3930c40266c3e59 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_163033v1: 4a30f5fa0fe382b3915a8208a483d0044c40b9eb @ 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_163033v1/index.html [-- Attachment #2: Type: text/html, Size: 125231 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2026-03-13 5:12 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-11 14:18 [PATCH 0/5] drm/{i915,xe}: move bo stuff to parent interface Jani Nikula
2026-03-11 14:18 ` [PATCH 1/5] drm/i915: move i915 specific bo implementation to i915 Jani Nikula
2026-03-12 3:39 ` Kandpal, Suraj
2026-03-12 3:52 ` Kandpal, Suraj
2026-03-11 14:18 ` [PATCH 2/5] drm/xe: rename intel_bo.c to xe_display_bo.c Jani Nikula
2026-03-12 3:40 ` Kandpal, Suraj
2026-03-11 14:18 ` [PATCH 3/5] drm/{i915, xe}/bo: move display bo calls to parent interface Jani Nikula
2026-03-12 3:47 ` Kandpal, Suraj
2026-03-12 4:27 ` Kandpal, Suraj
2026-03-11 14:18 ` [PATCH 4/5] drm/i915/fb: make intel_fb_bo.c less dependent on display Jani Nikula
2026-03-12 3:51 ` Kandpal, Suraj
2026-03-11 14:18 ` [PATCH 5/5] drm/{i915,xe}: move framebuffer bo to parent interface Jani Nikula
2026-03-12 4:25 ` Kandpal, Suraj
2026-03-12 9:00 ` [PATCH 5/5] drm/{i915, xe}: " Jani Nikula
2026-03-13 5:12 ` [PATCH 5/5] drm/{i915,xe}: " Kandpal, Suraj
2026-03-11 15:33 ` ✓ i915.CI.BAT: success for drm/{i915,xe}: move bo stuff " Patchwork
2026-03-12 6:37 ` ✓ i915.CI.Full: " Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox