[PATCH v3 17/20] drm/drv: Switch skeleton to drm_mode_config_create_initial_state()
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon May 4 11:02:16 PDT 2026
On Fri, Apr 24, 2026 at 12:18:57PM +0200, Maxime Ripard wrote:
> The driver skeleton currently recommends calling
> drm_mode_config_reset() at probe time to create the initial state.
>
> Now that drm_mode_config_create_initial_state() exists to handle
> initial state allocation without hardware side effects, update the
> skeleton to recommend it instead.
>
> Signed-off-by: Maxime Ripard <mripard at kernel.org>
> ---
> drivers/gpu/drm/drm_drv.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
> index 985c283cf59f..f537556b06a8 100644
> --- a/drivers/gpu/drm/drm_drv.c
> +++ b/drivers/gpu/drm/drm_drv.c
> @@ -340,11 +340,13 @@ void drm_minor_release(struct drm_minor *minor)
> *
> * // Further setup, display pipeline etc
> *
> * platform_set_drvdata(pdev, drm);
> *
> - * drm_mode_config_reset(drm);
> + * ret = drm_mode_config_create_initial_state(drm);
> + * if (ret)
> + * return ret;
There's one point I'm still not sure to understand properly. The
skeleton example (and the tidss driver, which you convert to the new API
in this series) both call drm_mode_config_helper_resume(). This in turn
calls drm_atomic_helper_resume(), and drm_mode_config_reset(). For
drivers that implement .atomic_create_state() instead of .reset() (such
as tidss, after its conversion in this series), drm_mode_config_reset()
will call the drm_mode_config_*_create_state() helpers, which allocate
and initialize a new state (through .atomic_create_state()), and store
that new state in the object's ->state field. Won't this leak the state
previously stored there ?
> *
> * ret = drm_dev_register(drm);
> * if (ret)
> * return ret;
> *
--
Regards,
Laurent Pinchart
More information about the linux-arm-kernel
mailing list