Re: [PATCH 10/10] drm/panel: Make drm_panel_init() static
From: Maxime Ripard
Date: Thu May 07 2026 - 11:04:02 EST
Hi,
On Thu, May 07, 2026 at 01:53:08PM +0200, Albert Esteve wrote:
> Now that all panel drivers use devm_drm_panel_alloc(),
> there are no external callers of drm_panel_init().
> Make it static to prevent new users from bypassing the
> refcounted allocation path.
>
> Remove stale references to drm_panel_init() in kdocs.
>
> Signed-off-by: Albert Esteve <aesteve@xxxxxxxxxx>
> ---
> drivers/gpu/drm/display/drm_dp_helper.c | 2 +-
> drivers/gpu/drm/drm_panel.c | 8 ++++----
> include/drm/drm_panel.h | 4 ----
> 3 files changed, 5 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/display/drm_dp_helper.c b/drivers/gpu/drm/display/drm_dp_helper.c
> index a697cc227e289..380ebf0fad2be 100644
> --- a/drivers/gpu/drm/display/drm_dp_helper.c
> +++ b/drivers/gpu/drm/display/drm_dp_helper.c
> @@ -4626,7 +4626,7 @@ static const struct backlight_ops dp_aux_bl_ops = {
> * Backlight will then be handled transparently without requiring
> * any intervention from the driver.
> *
> - * drm_panel_dp_aux_backlight() must be called after the call to drm_panel_init().
> + * drm_panel_dp_aux_backlight() must be called after devm_drm_panel_alloc().
> *
> * Return: 0 on success or a negative error code on failure.
> */
> diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
> index d1e6598ea3bc0..e3e1c5ceb8ff8 100644
> --- a/drivers/gpu/drm/drm_panel.c
> +++ b/drivers/gpu/drm/drm_panel.c
> @@ -56,8 +56,9 @@ static LIST_HEAD(panel_list);
> * Initialize the panel structure for subsequent registration with
> * drm_panel_add().
> */
> -void drm_panel_init(struct drm_panel *panel, struct device *dev,
> - const struct drm_panel_funcs *funcs, int connector_type)
> +static void drm_panel_init(struct drm_panel *panel, struct device *dev,
> + const struct drm_panel_funcs *funcs,
> + int connector_type)
> {
> if (connector_type == DRM_MODE_CONNECTOR_Unknown)
> DRM_WARN("%s: %s: a valid connector type is required!\n", __func__, dev_name(dev));
> @@ -69,7 +70,6 @@ void drm_panel_init(struct drm_panel *panel, struct device *dev,
> panel->funcs = funcs;
> panel->connector_type = connector_type;
> }
> -EXPORT_SYMBOL(drm_panel_init);
>
> /**
> * drm_panel_add - add a panel to the global registry
> @@ -708,7 +708,7 @@ EXPORT_SYMBOL(devm_drm_panel_add_follower);
> * A typical implementation for a panel driver supporting device tree
> * will call this function at probe time. Backlight will then be handled
> * transparently without requiring any intervention from the driver.
> - * drm_panel_of_backlight() must be called after the call to drm_panel_init().
> + * drm_panel_of_backlight() must be called after devm_drm_panel_alloc().
I think we can drop that sentence entirely. Now that we can only get a
panel structure through devm_drm_panel_alloc, and that it also
initializes it, we can't call drm_panel_of_backlight before having an
initialized drm_panel.
Maxime
Attachment:
signature.asc
Description: PGP signature