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 anymore: it can only return either the same pointer it received as input or a negative ERR_PTR.
Simplify up error management by just returning an int (0 or negative error). No functional changes. Signed-off-by: Luca Ceresoli <[email protected]> --- drivers/gpu/drm/display/drm_bridge_connector.c | 61 +++++++++++++------------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/drivers/gpu/drm/display/drm_bridge_connector.c b/drivers/gpu/drm/display/drm_bridge_connector.c index 97d9a4c6d166..d8a033ed8f41 100644 --- a/drivers/gpu/drm/display/drm_bridge_connector.c +++ b/drivers/gpu/drm/display/drm_bridge_connector.c @@ -772,14 +772,13 @@ static void drm_bridge_connector_put_bridges(struct drm_device *dev, void *data) drm_bridge_put(bridge_connector->bridge_hdmi_cec); } -static struct drm_bridge_connector * -drm_bridge_connector_get_bridges(struct drm_bridge_connector *bridge_connector, - int *connector_type, - unsigned int *supported_formats, - unsigned int *max_bpc, - struct i2c_adapter **ddc, - struct drm_bridge **panel_bridge, - bool *support_hdcp) +static int drm_bridge_connector_get_bridges(struct drm_bridge_connector *bridge_connector, + int *connector_type, + unsigned int *supported_formats, + unsigned int *max_bpc, + struct i2c_adapter **ddc, + struct drm_bridge **panel_bridge, + bool *support_hdcp) { struct drm_connector *connector = &bridge_connector->base; @@ -820,27 +819,27 @@ drm_bridge_connector_get_bridges(struct drm_bridge_connector *bridge_connector, } if (bridge->ops & DRM_BRIDGE_OP_HDMI) { if (bridge_connector->bridge_hdmi) - return ERR_PTR(-EBUSY); + return -EBUSY; if (!bridge->funcs->hdmi_write_avi_infoframe || !bridge->funcs->hdmi_clear_avi_infoframe || !bridge->funcs->hdmi_write_hdmi_infoframe || !bridge->funcs->hdmi_clear_hdmi_infoframe) - return ERR_PTR(-EINVAL); + return -EINVAL; if (bridge->ops & DRM_BRIDGE_OP_HDMI_AUDIO && (!bridge->funcs->hdmi_write_audio_infoframe || !bridge->funcs->hdmi_clear_audio_infoframe)) - return ERR_PTR(-EINVAL); + return -EINVAL; if (bridge->ops & DRM_BRIDGE_OP_HDMI_HDR_DRM_INFOFRAME && (!bridge->funcs->hdmi_write_hdr_drm_infoframe || !bridge->funcs->hdmi_clear_hdr_drm_infoframe)) - return ERR_PTR(-EINVAL); + return -EINVAL; if (bridge->ops & DRM_BRIDGE_OP_HDMI_SPD_INFOFRAME && (!bridge->funcs->hdmi_write_spd_infoframe || !bridge->funcs->hdmi_clear_spd_infoframe)) - return ERR_PTR(-EINVAL); + return -EINVAL; bridge_connector->bridge_hdmi = drm_bridge_get(bridge); @@ -852,57 +851,57 @@ drm_bridge_connector_get_bridges(struct drm_bridge_connector *bridge_connector, if (bridge->ops & DRM_BRIDGE_OP_HDMI_AUDIO) { if (bridge_connector->bridge_hdmi_audio) - return ERR_PTR(-EBUSY); + return -EBUSY; if (bridge_connector->bridge_dp_audio) - return ERR_PTR(-EBUSY); + return -EBUSY; if (!bridge->hdmi_audio_max_i2s_playback_channels && !bridge->hdmi_audio_spdif_playback) - return ERR_PTR(-EINVAL); + return -EINVAL; if (!bridge->funcs->hdmi_audio_prepare || !bridge->funcs->hdmi_audio_shutdown) - return ERR_PTR(-EINVAL); + return -EINVAL; bridge_connector->bridge_hdmi_audio = drm_bridge_get(bridge); } if (bridge->ops & DRM_BRIDGE_OP_DP_AUDIO) { if (bridge_connector->bridge_dp_audio) - return ERR_PTR(-EBUSY); + return -EBUSY; if (bridge_connector->bridge_hdmi_audio) - return ERR_PTR(-EBUSY); + return -EBUSY; if (!bridge->hdmi_audio_max_i2s_playback_channels && !bridge->hdmi_audio_spdif_playback) - return ERR_PTR(-EINVAL); + return -EINVAL; if (!bridge->funcs->dp_audio_prepare || !bridge->funcs->dp_audio_shutdown) - return ERR_PTR(-EINVAL); + return -EINVAL; bridge_connector->bridge_dp_audio = drm_bridge_get(bridge); } if (bridge->ops & DRM_BRIDGE_OP_HDMI_CEC_NOTIFIER) { if (bridge_connector->bridge_hdmi_cec) - return ERR_PTR(-EBUSY); + return -EBUSY; bridge_connector->bridge_hdmi_cec = drm_bridge_get(bridge); } if (bridge->ops & DRM_BRIDGE_OP_HDMI_CEC_ADAPTER) { if (bridge_connector->bridge_hdmi_cec) - return ERR_PTR(-EBUSY); + return -EBUSY; bridge_connector->bridge_hdmi_cec = drm_bridge_get(bridge); if (!bridge->funcs->hdmi_cec_enable || !bridge->funcs->hdmi_cec_log_addr || !bridge->funcs->hdmi_cec_transmit) - return ERR_PTR(-EINVAL); + return -EINVAL; } if (drm_bridge_is_last(bridge)) @@ -926,9 +925,9 @@ drm_bridge_connector_get_bridges(struct drm_bridge_connector *bridge_connector, } if (connector_type == DRM_MODE_CONNECTOR_Unknown) - return ERR_PTR(-EINVAL); + return -EINVAL; - return bridge_connector; + return 0; } /** @@ -956,11 +955,11 @@ drm_bridge_connector_add_connector(struct drm_bridge_connector *bridge_connector connector = &bridge_connector->base; - bridge_connector = drm_bridge_connector_get_bridges(bridge_connector, &connector_type, - &supported_formats, &max_bpc, &ddc, - &panel_bridge, &support_hdcp); - if (IS_ERR(bridge_connector)) - return bridge_connector; + ret = drm_bridge_connector_get_bridges(bridge_connector, &connector_type, + &supported_formats, &max_bpc, &ddc, + &panel_bridge, &support_hdcp); + if (ret) + return ERR_PTR(ret); if (bridge_connector->bridge_hdmi) { if (!connector->ycbcr_420_allowed) -- 2.54.0
