drm_bridge_connector_put_bridges() is currently meant as a drmm cleanup
action. In preparation for bridge hotplug add a non-drmm action, so it can
be called more simply in non-drmm context.

To do this split drm_bridge_connector_put_bridges() in two variants, both
doing the same actions and only differing in the name and arguments:

 * drm_bridge_connector_put_bridges() (same name as before) to be called
   directly by the drm_bridge_connector code with a drm_bridge_connector
   pointer as the only parameter
 * drmm_bridge_connector_put_bridges() (same name + drmm prefix) providing
   the same drmm calling convention as before

Update the only call site accordingly.

No functional changes.

Signed-off-by: Luca Ceresoli <[email protected]>
---
 drivers/gpu/drm/display/drm_bridge_connector.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/display/drm_bridge_connector.c 
b/drivers/gpu/drm/display/drm_bridge_connector.c
index 2e96af8efb55..1fd104f1647b 100644
--- a/drivers/gpu/drm/display/drm_bridge_connector.c
+++ b/drivers/gpu/drm/display/drm_bridge_connector.c
@@ -140,10 +140,8 @@ struct drm_bridge_connector {
 #define to_drm_bridge_connector(x) \
        container_of(x, struct drm_bridge_connector, base)
 
-static void drm_bridge_connector_put_bridges(struct drm_device *dev, void 
*data)
+static void drm_bridge_connector_put_bridges(struct drm_bridge_connector 
*bridge_connector)
 {
-       struct drm_bridge_connector *bridge_connector = (struct 
drm_bridge_connector *)data;
-
        drm_bridge_put(bridge_connector->bridge_edid);
        drm_bridge_put(bridge_connector->bridge_hpd);
        drm_bridge_put(bridge_connector->bridge_detect);
@@ -154,6 +152,13 @@ static void drm_bridge_connector_put_bridges(struct 
drm_device *dev, void *data)
        drm_bridge_put(bridge_connector->bridge_hdmi_cec);
 }
 
+static void drmm_bridge_connector_put_bridges(struct drm_device *dev, void 
*data)
+{
+       struct drm_bridge_connector *bridge_connector = (struct 
drm_bridge_connector *)data;
+
+       drm_bridge_connector_put_bridges(bridge_connector);
+}
+
 /* 
-----------------------------------------------------------------------------
  * Bridge Connector Hot-Plug Handling
  */
@@ -1099,7 +1104,7 @@ struct drm_connector *drm_bridge_connector_init(struct 
drm_device *drm,
        if (!bridge_connector)
                return ERR_PTR(-ENOMEM);
 
-       ret = drmm_add_action(drm, drm_bridge_connector_put_bridges, 
bridge_connector);
+       ret = drmm_add_action(drm, drmm_bridge_connector_put_bridges, 
bridge_connector);
        if (ret)
                return ERR_PTR(ret);
 

-- 
2.54.0

Reply via email to