From 9dacae143e6ff18e77fbad6f1413fb8f2f975407 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Mon, 15 Dec 2025 17:28:18 +0200 Subject: drm/{i915, xe}: move initial plane calls to parent interface MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add the initial plane handling functions to the display parent interface. Add the call wrappers in dedicated intel_initial_plane.c instead of intel_parent.c, as we'll be refactoring the calls heavily. Reviewed-by: Ville Syrjälä Link: https://patch.msgid.link/ab91c891677fe2bb83bf5aafa5ee984b2442b84d.1765812266.git.jani.nikula@intel.com Signed-off-by: Jani Nikula --- include/drm/intel/display_parent_interface.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'include') diff --git a/include/drm/intel/display_parent_interface.h b/include/drm/intel/display_parent_interface.h index 10c50b42844e..48d52bee4cee 100644 --- a/include/drm/intel/display_parent_interface.h +++ b/include/drm/intel/display_parent_interface.h @@ -7,6 +7,7 @@ #include struct dma_fence; +struct drm_crtc; struct drm_device; struct drm_scanout_buffer; struct intel_hdcp_gsc_context; @@ -25,6 +26,11 @@ struct intel_display_hdcp_interface { void (*gsc_context_free)(struct intel_hdcp_gsc_context *gsc_context); }; +struct intel_display_initial_plane_interface { + void (*vblank_wait)(struct drm_crtc *crtc); + void (*config)(struct drm_device *drm); +}; + struct intel_display_irq_interface { bool (*enabled)(struct drm_device *drm); void (*synchronize)(struct drm_device *drm); @@ -95,6 +101,9 @@ struct intel_display_parent_interface { /** @hdcp: HDCP GSC interface */ const struct intel_display_hdcp_interface *hdcp; + /** @initial_plane: Initial plane interface */ + const struct intel_display_initial_plane_interface *initial_plane; + /** @irq: IRQ interface */ const struct intel_display_irq_interface *irq; -- cgit v1.2.3 From a13f152a6c09338a7f81efdd414425a9d8d50b16 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Mon, 15 Dec 2025 17:28:19 +0200 Subject: drm/{i915, xe}: deduplicate intel_initial_plane_config() between i915 and xe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move the parent interface at one step lower level, allowing deduplication. Reviewed-by: Ville Syrjälä Link: https://patch.msgid.link/0cb4077a5a39274c7a2dae95d548d7b33365a518.1765812266.git.jani.nikula@intel.com Signed-off-by: Jani Nikula --- include/drm/intel/display_parent_interface.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/drm/intel/display_parent_interface.h b/include/drm/intel/display_parent_interface.h index 48d52bee4cee..87cd3c5e1055 100644 --- a/include/drm/intel/display_parent_interface.h +++ b/include/drm/intel/display_parent_interface.h @@ -11,6 +11,7 @@ struct drm_crtc; struct drm_device; struct drm_scanout_buffer; struct intel_hdcp_gsc_context; +struct intel_initial_plane_config; struct intel_panic; struct intel_stolen_node; struct ref_tracker; @@ -28,7 +29,8 @@ struct intel_display_hdcp_interface { struct intel_display_initial_plane_interface { void (*vblank_wait)(struct drm_crtc *crtc); - void (*config)(struct drm_device *drm); + void (*find_obj)(struct drm_crtc *crtc, struct intel_initial_plane_config *plane_configs); + void (*config_fini)(struct intel_initial_plane_config *plane_configs); }; struct intel_display_irq_interface { -- cgit v1.2.3 From 1b3cc68df363820537d6c837069db4c303ee58a9 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Mon, 15 Dec 2025 17:28:21 +0200 Subject: drm/{i915, xe}: start deduplicating intel_find_initial_plane_obj() between i915 and xe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move some easy common parts to display. Initially, the intel_find_initial_plane_obj() error path seems silly, but it'll be more helpful this way for later changes. Reviewed-by: Ville Syrjälä Link: https://patch.msgid.link/950d308172443d5bae975aa1ab72111720134219.1765812266.git.jani.nikula@intel.com Signed-off-by: Jani Nikula --- include/drm/intel/display_parent_interface.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/drm/intel/display_parent_interface.h b/include/drm/intel/display_parent_interface.h index 87cd3c5e1055..997a9746dc83 100644 --- a/include/drm/intel/display_parent_interface.h +++ b/include/drm/intel/display_parent_interface.h @@ -29,7 +29,7 @@ struct intel_display_hdcp_interface { struct intel_display_initial_plane_interface { void (*vblank_wait)(struct drm_crtc *crtc); - void (*find_obj)(struct drm_crtc *crtc, struct intel_initial_plane_config *plane_configs); + int (*find_obj)(struct drm_crtc *crtc, struct intel_initial_plane_config *plane_configs); void (*config_fini)(struct intel_initial_plane_config *plane_configs); }; -- cgit v1.2.3 From adf7968e52e8d9f1b76ecc46ac5720c0e61c9d51 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Mon, 15 Dec 2025 17:28:24 +0200 Subject: drm/i915: further deduplicate intel_find_initial_plane_obj() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move intel_reuse_initial_plane_obj() into common display code, and split the ->find_obj hook into ->alloc_obj and ->setup hooks. Return the struct drm_gem_object from ->alloc_obj in preparation for moving more things to display. Reviewed-by: Ville Syrjälä Link: https://patch.msgid.link/c71011dbb11afaa5c4da30aa2627833374300d63.1765812266.git.jani.nikula@intel.com Signed-off-by: Jani Nikula --- include/drm/intel/display_parent_interface.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/drm/intel/display_parent_interface.h b/include/drm/intel/display_parent_interface.h index 997a9746dc83..f0f379ae912d 100644 --- a/include/drm/intel/display_parent_interface.h +++ b/include/drm/intel/display_parent_interface.h @@ -9,7 +9,10 @@ struct dma_fence; struct drm_crtc; struct drm_device; +struct drm_framebuffer; +struct drm_gem_object; struct drm_scanout_buffer; +struct i915_vma; struct intel_hdcp_gsc_context; struct intel_initial_plane_config; struct intel_panic; @@ -29,7 +32,9 @@ struct intel_display_hdcp_interface { struct intel_display_initial_plane_interface { void (*vblank_wait)(struct drm_crtc *crtc); - int (*find_obj)(struct drm_crtc *crtc, struct intel_initial_plane_config *plane_configs); + struct drm_gem_object *(*alloc_obj)(struct drm_crtc *crtc, struct intel_initial_plane_config *plane_config); + int (*setup)(struct drm_crtc *crtc, struct intel_initial_plane_config *plane_config, + struct drm_framebuffer *fb, struct i915_vma *vma); void (*config_fini)(struct intel_initial_plane_config *plane_configs); }; -- cgit v1.2.3 From 5bad00377ec844d93947fd4c081abd2000a63dfc Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Mon, 15 Dec 2025 17:28:27 +0200 Subject: drm/{i915, xe}: pass struct drm_plane_state instead of struct drm_crtc to ->setup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The initial plane parent interface ->setup hook no longer needs the crtc for anything. Pass the struct drm_plane_state instead. Reviewed-by: Ville Syrjälä Link: https://patch.msgid.link/c3db101ef5fd13c56cb3a9329adecf521a807abc.1765812266.git.jani.nikula@intel.com Signed-off-by: Jani Nikula --- include/drm/intel/display_parent_interface.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/drm/intel/display_parent_interface.h b/include/drm/intel/display_parent_interface.h index f0f379ae912d..129e2b9e9a21 100644 --- a/include/drm/intel/display_parent_interface.h +++ b/include/drm/intel/display_parent_interface.h @@ -11,6 +11,7 @@ struct drm_crtc; struct drm_device; struct drm_framebuffer; struct drm_gem_object; +struct drm_plane_state; struct drm_scanout_buffer; struct i915_vma; struct intel_hdcp_gsc_context; @@ -33,7 +34,7 @@ struct intel_display_hdcp_interface { struct intel_display_initial_plane_interface { void (*vblank_wait)(struct drm_crtc *crtc); struct drm_gem_object *(*alloc_obj)(struct drm_crtc *crtc, struct intel_initial_plane_config *plane_config); - int (*setup)(struct drm_crtc *crtc, struct intel_initial_plane_config *plane_config, + int (*setup)(struct drm_plane_state *plane_state, struct intel_initial_plane_config *plane_config, struct drm_framebuffer *fb, struct i915_vma *vma); void (*config_fini)(struct intel_initial_plane_config *plane_configs); }; -- cgit v1.2.3 From 82eaf3459dbf92ea78243150508740c007e0eea7 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Mon, 15 Dec 2025 17:28:28 +0200 Subject: drm/{i915, xe}: pass struct drm_device instead of drm_device to ->alloc_obj MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The initial plane parent interface ->alloc_obj hook no longer needs the crtc for anything. Pass struct drm_device instead. Reviewed-by: Ville Syrjälä Link: https://patch.msgid.link/7a40381be6d98dc0916a5447be5dd6cba86cfd0a.1765812266.git.jani.nikula@intel.com Signed-off-by: Jani Nikula --- include/drm/intel/display_parent_interface.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/drm/intel/display_parent_interface.h b/include/drm/intel/display_parent_interface.h index 129e2b9e9a21..ce946859a3a9 100644 --- a/include/drm/intel/display_parent_interface.h +++ b/include/drm/intel/display_parent_interface.h @@ -33,7 +33,7 @@ struct intel_display_hdcp_interface { struct intel_display_initial_plane_interface { void (*vblank_wait)(struct drm_crtc *crtc); - struct drm_gem_object *(*alloc_obj)(struct drm_crtc *crtc, struct intel_initial_plane_config *plane_config); + struct drm_gem_object *(*alloc_obj)(struct drm_device *drm, struct intel_initial_plane_config *plane_config); int (*setup)(struct drm_plane_state *plane_state, struct intel_initial_plane_config *plane_config, struct drm_framebuffer *fb, struct i915_vma *vma); void (*config_fini)(struct intel_initial_plane_config *plane_configs); -- cgit v1.2.3 From 936cae9254e55a39aeaa0c156a764d22f319338b Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Wed, 7 Jan 2026 18:02:26 +0200 Subject: mei: late_bind: fix struct intel_lb_component_ops kernel-doc Fix kernel-doc warnings on struct intel_lb_component_ops: Warning: include/drm/intel/intel_lb_mei_interface.h:55 Incorrect use of kernel-doc format: * push_payload - Sends a payload to the authentication firmware And a bunch more. There isn't really support for documenting function pointer struct members in kernel-doc, but at least reference the member properly. Fixes: 741eeabb7c78 ("mei: late_bind: add late binding component driver") Cc: Alexander Usyskin Reviewed-by: Nitin Gote Link: https://patch.msgid.link/20260107160226.2381388-1-jani.nikula@intel.com Signed-off-by: Jani Nikula --- include/drm/intel/intel_lb_mei_interface.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/drm/intel/intel_lb_mei_interface.h b/include/drm/intel/intel_lb_mei_interface.h index d65be2cba2ab..0850738a30fc 100644 --- a/include/drm/intel/intel_lb_mei_interface.h +++ b/include/drm/intel/intel_lb_mei_interface.h @@ -53,7 +53,8 @@ enum intel_lb_status { */ struct intel_lb_component_ops { /** - * push_payload - Sends a payload to the authentication firmware + * @push_payload: Sends a payload to the authentication firmware + * * @dev: Device struct corresponding to the mei device * @type: Payload type (see &enum intel_lb_type) * @flags: Payload flags bitmap (e.g. %INTEL_LB_FLAGS_IS_PERSISTENT) -- cgit v1.2.3