]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/tidss: encoder: convert to devm_drm_bridge_alloc()
authorMichael Walle <mwalle@kernel.org>
Wed, 16 Jul 2025 13:41:07 +0000 (15:41 +0200)
committerTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Fri, 18 Jul 2025 11:55:48 +0000 (14:55 +0300)
Convert the tidss encoder to use devm_drm_bridge_alloc(). Instead of
allocating the memory by drmm_simple_encoder_alloc() use
devm_drm_bridge_alloc() and initialize the encoder afterwards.

Fixes: a7748dd127ea ("drm/bridge: get/put the bridge reference in drm_bridge_add/remove()")
Signed-off-by: Michael Walle <mwalle@kernel.org>
Link: https://lore.kernel.org/r/20250716134107.4084945-1-mwalle@kernel.org
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
drivers/gpu/drm/tidss/tidss_encoder.c

index 95b4aeff277505d64254177093d9bcc4de9f4a86..81a04f7677701b0b1bee204ac9fc5835ac373950 100644 (file)
@@ -90,14 +90,18 @@ int tidss_encoder_create(struct tidss_device *tidss,
        struct drm_connector *connector;
        int ret;
 
-       t_enc = drmm_simple_encoder_alloc(&tidss->ddev, struct tidss_encoder,
-                                         encoder, encoder_type);
+       t_enc = devm_drm_bridge_alloc(tidss->dev, struct tidss_encoder,
+                                     bridge, &tidss_bridge_funcs);
        if (IS_ERR(t_enc))
                return PTR_ERR(t_enc);
 
+       ret = drm_simple_encoder_init(&tidss->ddev, &t_enc->encoder,
+                                     encoder_type);
+       if (ret)
+               return ret;
+
        t_enc->tidss = tidss;
        t_enc->next_bridge = next_bridge;
-       t_enc->bridge.funcs = &tidss_bridge_funcs;
 
        enc = &t_enc->encoder;
        enc->possible_crtcs = possible_crtcs;