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
