The drm_simple_encoder_init() helper is deprecated because it adds an intermediate abstraction layer that only wraps drm_encoder_init() with an empty or minimal drm_encoder_funcs struct.
Replace drm_simple_encoder_init() with explicit calls to drm_encoder_init() and define driver-specific drm_encoder_funcs carrying the cleanup callback. Signed-off-by: Sean Chang <[email protected]> --- drivers/gpu/drm/mediatek/mtk_dsi.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c index 49dfc0f825cb..276d57f8407b 100644 --- a/drivers/gpu/drm/mediatek/mtk_dsi.c +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c @@ -226,6 +226,10 @@ struct mtk_dsi { const struct mtk_dsi_driver_data *driver_data; }; +static const struct drm_encoder_funcs mtk_dsi_encoder_funcs = { + .destroy = drm_encoder_cleanup, +}; + static inline struct mtk_dsi *bridge_to_dsi(struct drm_bridge *b) { return container_of(b, struct mtk_dsi, bridge); @@ -918,8 +922,9 @@ static int mtk_dsi_encoder_init(struct drm_device *drm, struct mtk_dsi *dsi) { int ret; - ret = drm_simple_encoder_init(drm, &dsi->encoder, - DRM_MODE_ENCODER_DSI); + ret = drm_encoder_init(drm, &dsi->encoder, + &mtk_dsi_encoder_funcs, + DRM_MODE_ENCODER_DSI, NULL); if (ret) { drm_err(drm, "Failed to encoder init to drm\n"); return ret; -- 2.43.0
