Re: [PATCH v2] drm/qxl: remove dependency on DRM simple helpers

Thomas Zimmermann <[email protected]>
Newsgroups dev.linux.lists.virtualization,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Merged into drm-misc-next

Am 08.07.26 um 14:33 schrieb Thomas Zimmermann:
>
>
> Am 07.07.26 um 18:14 schrieb Diogo Silva:
>> 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 <[email protected]>
>
> Reviewed-by: Thomas Zimmermann <[email protected]>
>
>> ---
>> Changes in v2:
>> - fix type error
>> - Link to v1: 
>> https://lore.kernel.org/r/[email protected]
>> ---
>>   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 a026bd35ef485..7f4178800afd7 100644
>> --- a/drivers/gpu/drm/qxl/qxl_display.c
>> +++ b/drivers/gpu/drm/qxl/qxl_display.c
>> @@ -31,12 +31,12 @@
>>   #include <drm/drm_atomic.h>
>>   #include <drm/drm_atomic_helper.h>
>>   #include <drm/drm_edid.h>
>> +#include <drm/drm_encoder.h>
>>   #include <drm/drm_framebuffer.h>
>>   #include <drm/drm_gem_framebuffer_helper.h>
>>   #include <drm/drm_plane_helper.h>
>>   #include <drm/drm_print.h>
>>   #include <drm/drm_probe_helper.h>
>> -#include <drm/drm_simple_kms_helper.h>
>>   #include <drm/drm_gem_atomic_helper.h>
>>   #include <drm/drm_vblank.h>
>>   #include <drm/drm_vblank_helper.h>
>> @@ -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;
>>       }
>>
>> ---
>> base-commit: ee2867b79f9bac3a6fc3221139b09598ce79099c
>> change-id: 20260707-qxl-simple-c01aa1a5c4eb
>>
>> Best regards,
>

-- 
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, (HRB 36809, AG Nürnberg)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.