]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/bridge-connector: switch to using drmm allocations
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Fri, 7 Jun 2024 13:22:59 +0000 (16:22 +0300)
committerDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Wed, 12 Jun 2024 07:55:54 +0000 (10:55 +0300)
Turn drm_bridge_connector to using drmm_kzalloc() and
drmm_connector_init() and drop the custom destroy function. The
drm_connector_unregister() and fwnode_handle_put() are already handled
by the drm_connector_cleanup() and so are safe to be dropped.

Acked-by: Maxime Ripard <mripard@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240607-bridge-hdmi-connector-v5-2-ab384e6021af@linaro.org
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
drivers/gpu/drm/drm_bridge_connector.c

index 982552c9f92c935666593b5dea050579ef4bb708..e093fc8928dcf1d7476b1fb298d19d362b636c32 100644 (file)
@@ -15,6 +15,7 @@
 #include <drm/drm_connector.h>
 #include <drm/drm_device.h>
 #include <drm/drm_edid.h>
+#include <drm/drm_managed.h>
 #include <drm/drm_modeset_helper_vtables.h>
 #include <drm/drm_probe_helper.h>
 
@@ -193,19 +194,6 @@ drm_bridge_connector_detect(struct drm_connector *connector, bool force)
        return status;
 }
 
-static void drm_bridge_connector_destroy(struct drm_connector *connector)
-{
-       struct drm_bridge_connector *bridge_connector =
-               to_drm_bridge_connector(connector);
-
-       drm_connector_unregister(connector);
-       drm_connector_cleanup(connector);
-
-       fwnode_handle_put(connector->fwnode);
-
-       kfree(bridge_connector);
-}
-
 static void drm_bridge_connector_debugfs_init(struct drm_connector *connector,
                                              struct dentry *root)
 {
@@ -224,7 +212,6 @@ static const struct drm_connector_funcs drm_bridge_connector_funcs = {
        .reset = drm_atomic_helper_connector_reset,
        .detect = drm_bridge_connector_detect,
        .fill_modes = drm_helper_probe_single_connector_modes,
-       .destroy = drm_bridge_connector_destroy,
        .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
        .atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
        .debugfs_init = drm_bridge_connector_debugfs_init,
@@ -328,7 +315,7 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm,
        int connector_type;
        int ret;
 
-       bridge_connector = kzalloc(sizeof(*bridge_connector), GFP_KERNEL);
+       bridge_connector = drmm_kzalloc(drm, sizeof(*bridge_connector), GFP_KERNEL);
        if (!bridge_connector)
                return ERR_PTR(-ENOMEM);
 
@@ -383,9 +370,9 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm,
                return ERR_PTR(-EINVAL);
        }
 
-       ret = drm_connector_init_with_ddc(drm, connector,
-                                         &drm_bridge_connector_funcs,
-                                         connector_type, ddc);
+       ret = drmm_connector_init(drm, connector,
+                                 &drm_bridge_connector_funcs,
+                                 connector_type, ddc);
        if (ret) {
                kfree(bridge_connector);
                return ERR_PTR(ret);