This function returns a struct drm_bridge_connector * because this was the case in the origin of its code. In current code it does not make sense: it can only return either the same pointer it received as input or a negative ERR_PTR.
This forces users to an unnecessarily complex error management code. Clean up error management by just returning an int (0 or negative error). Signed-off-by: Luca Ceresoli <[email protected]> --- drivers/gpu/drm/display/drm_bridge_connector.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/display/drm_bridge_connector.c b/drivers/gpu/drm/display/drm_bridge_connector.c index 6066ca0c5624..982bc64d8361 100644 --- a/drivers/gpu/drm/display/drm_bridge_connector.c +++ b/drivers/gpu/drm/display/drm_bridge_connector.c @@ -991,11 +991,9 @@ static int drm_bridge_connector_init_hdmi_audio_cec(struct drm_bridge_connector * @bridge_connector->drm and @bridge_connector->encoder fields are * assigned at least) * - * Returns a pointer to @bridge_connector on success, or a negative error - * pointer otherwise. + * Returns 0 on success or a negative error otherwise. */ -static struct drm_bridge_connector * -drm_bridge_connector_add_connector(struct drm_bridge_connector *bridge_connector) +static int drm_bridge_connector_add_connector(struct drm_bridge_connector *bridge_connector) { struct drm_connector *connector; struct i2c_adapter *ddc = NULL; @@ -1012,7 +1010,7 @@ drm_bridge_connector_add_connector(struct drm_bridge_connector *bridge_connector &supported_formats, &max_bpc, &ddc, &panel_bridge, &support_hdcp); if (ret) - return ERR_PTR(ret); + return ret; if (bridge_connector->bridge_hdmi) { if (!connector->ycbcr_420_allowed) @@ -1041,18 +1039,18 @@ drm_bridge_connector_add_connector(struct drm_bridge_connector *bridge_connector supported_formats, max_bpc); if (ret) - return ERR_PTR(ret); + return ret; } else { ret = drmm_connector_init(bridge_connector->drm, connector, &drm_bridge_connector_funcs, connector_type, ddc); if (ret) - return ERR_PTR(ret); + return ret; } ret = drm_bridge_connector_init_hdmi_audio_cec(bridge_connector); if (ret) - return ERR_PTR(ret); + return ret; drm_connector_helper_add(connector, &drm_bridge_connector_helper_funcs); @@ -1071,9 +1069,9 @@ drm_bridge_connector_add_connector(struct drm_bridge_connector *bridge_connector ret = drm_connector_attach_encoder(connector, bridge_connector->encoder); if (ret) - return ERR_PTR(ret); + return ret; - return bridge_connector; + return 0; } /** @@ -1110,9 +1108,9 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm, bridge_connector->drm = drm; bridge_connector->encoder = encoder; - bridge_connector = drm_bridge_connector_add_connector(bridge_connector); - if (IS_ERR(bridge_connector)) - return ERR_CAST(bridge_connector); + ret = drm_bridge_connector_add_connector(bridge_connector); + if (ret) + return ERR_PTR(ret); return &bridge_connector->base; } -- 2.54.0
