mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v1] drm/mediatek: mtk_dsi: Open-code drm_simple_encoder_init()
@ 2026-08-13 17:55 Sean Chang
  2026-08-25  7:52 ` CK Hu (胡俊光)
  2026-08-25  8:06 ` CK Hu (胡俊光)
  0 siblings, 2 replies; 3+ messages in thread
From: Sean Chang @ 2026-08-13 17:55 UTC (permalink / raw)
  To: Chun-Kuang Hu, Philipp Zabel, Thomas Zimmermann
  Cc: David Airlie, Simona Vetter, Matthias Brugger,
	AngeloGioacchino Del Regno, dri-devel, linux-mediatek,
	linux-arm-kernel, linux-kernel, Sean Chang

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 <seanwascoding@gmail.com>
---
 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


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v1] drm/mediatek: mtk_dsi: Open-code drm_simple_encoder_init()
  2026-08-13 17:55 [PATCH v1] drm/mediatek: mtk_dsi: Open-code drm_simple_encoder_init() Sean Chang
@ 2026-08-25  7:52 ` CK Hu (胡俊光)
  2026-08-25  8:06 ` CK Hu (胡俊光)
  1 sibling, 0 replies; 3+ messages in thread
From: CK Hu (胡俊光) @ 2026-08-25  7:52 UTC (permalink / raw)
  To: p.zabel, chunkuang.hu, seanwascoding, tzimmermann
  Cc: simona, dri-devel, AngeloGioacchino Del Regno, airlied,
	linux-kernel, linux-arm-kernel, matthias.bgg, linux-mediatek

On Fri, 2026-08-14 at 01:55 +0800, Sean Chang wrote:
> External email : Please do not click links or open attachments until you have verified the sender or the content.
> 
> 
> 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 <seanwascoding@gmail.com>
> ---
>  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

Replace 

#include <drm/drm_simple_kms_helper.h>

with
 
#include <drm/drm_encoder.h>
 
> @@ -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,
> +};
> +

Align to mtk_dpi.c, move this function just before mtk_dsi_ddp_start().

Regards,
CK

>  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
> 
> 


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v1] drm/mediatek: mtk_dsi: Open-code drm_simple_encoder_init()
  2026-08-13 17:55 [PATCH v1] drm/mediatek: mtk_dsi: Open-code drm_simple_encoder_init() Sean Chang
  2026-08-25  7:52 ` CK Hu (胡俊光)
@ 2026-08-25  8:06 ` CK Hu (胡俊光)
  1 sibling, 0 replies; 3+ messages in thread
From: CK Hu (胡俊光) @ 2026-08-25  8:06 UTC (permalink / raw)
  To: p.zabel, chunkuang.hu, seanwascoding, tzimmermann
  Cc: simona, dri-devel, AngeloGioacchino Del Regno, airlied,
	linux-kernel, linux-arm-kernel, matthias.bgg, linux-mediatek

Hi, Sean:

On Fri, 2026-08-14 at 01:55 +0800, Sean Chang wrote:
> External email : Please do not click links or open attachments until you have verified the sender or the content.
> 
> 
> 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.

Because Diogo Silva has send similar patch before you and it looks good,
so I would like to apply his patch.

Regards,
CK

> 
> Signed-off-by: Sean Chang <seanwascoding@gmail.com>
> ---
>  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
> 
> 


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-08-25  8:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-13 17:55 [PATCH v1] drm/mediatek: mtk_dsi: Open-code drm_simple_encoder_init() Sean Chang
2026-08-25  7:52 ` CK Hu (胡俊光)
2026-08-25  8:06 ` CK Hu (胡俊光)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®