[PATCH] drivers: drm: remove drm_simple_encoder_init then inline with drm_encoder_init
From: junsungpark774
Date: Thu Jul 30 2026 - 08:40:05 EST
From: Park Junsung <junsungpark774@xxxxxxxxx>
remove drm_simple_encoder_init which is noted as a unnecessary
intermediate layer in the TODO list
and inline it into drm_encoder_init.
to achieve this,
declare and define drm_encoder_funcs with the static keyword.
has been verified by module compilation with no errors on modified area.
Signed-off-by: Park Junsung <junsungpark774@xxxxxxxxx>
---
drivers/gpu/drm/qxl/qxl_display.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
index a026bd35ef48..52d9bb46ea95 100644
--- a/drivers/gpu/drm/qxl/qxl_display.c
+++ b/drivers/gpu/drm/qxl/qxl_display.c
@@ -44,6 +44,10 @@
#include "qxl_drv.h"
#include "qxl_object.h"
+static const struct drm_encoder_funcs drm_encoder_funcs_cleanup = {
+ .destroy = drm_encoder_cleanup,
+};
+
static bool qxl_head_enabled(struct qxl_head *head)
{
return head->width && head->height;
@@ -1169,10 +1173,11 @@ static int qdev_output_init(struct drm_device *dev, int num_output)
drm_connector_init(dev, &qxl_output->base,
&qxl_connector_funcs, DRM_MODE_CONNECTOR_VIRTUAL);
- ret = drm_simple_encoder_init(dev, &qxl_output->enc,
- DRM_MODE_ENCODER_VIRTUAL);
+ ret = drm_encoder_init(dev, &qxl_output->enc,
+ &drm_encoder_funcs_cleanup,
+ DRM_MODE_ENCODER_VIRTUAL, NULL);
if (ret) {
- drm_err(dev, "drm_simple_encoder_init() failed, error %d\n",
+ drm_err(dev, "drm_encoder_init() failed, error %d\n",
ret);
goto err_drm_connector_cleanup;
}
--
2.53.0