From c03adcddd5413e829e9cf63e8a7074a4c3d19d12 Mon Sep 17 00:00:00 2001 From: Diogo Silva Date: Tue, 7 Jul 2026 18:14:55 +0200 Subject: [PATCH] drm/qxl: remove dependency on DRM simple helpers Simple KMS helper are deprecated since they only add an intermediate layer between drivers and the atomic modesetting. This patch removes the drm_simple_encoder_init() helper usage in the qxl display driver by open coding it and using the encoder atomic helpers directly. This is a step to eventually get rid of this simple KMS helper, once all drivers that use it have been converted. Signed-off-by: Diogo Silva Reviewed-by: Thomas Zimmermann Signed-off-by: Thomas Zimmermann Link: https://patch.msgid.link/20260707-qxl-simple-v2-1-08d21bc74a41@gmail.com --- drivers/gpu/drm/qxl/qxl_display.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c index a026bd35ef48..7f4178800afd 100644 --- a/drivers/gpu/drm/qxl/qxl_display.c +++ b/drivers/gpu/drm/qxl/qxl_display.c @@ -31,12 +31,12 @@ #include #include #include +#include #include #include #include #include #include -#include #include #include #include @@ -1095,6 +1095,10 @@ static const struct drm_connector_helper_funcs qxl_connector_helper_funcs = { .best_encoder = qxl_best_encoder, }; +static const struct drm_encoder_funcs qxl_encoder_funcs = { + .destroy = drm_encoder_cleanup, +}; + static enum drm_connector_status qxl_conn_detect( struct drm_connector *connector, bool force) @@ -1169,10 +1173,10 @@ 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, &qxl_encoder_funcs, + 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; }