From: Luca Ceresoli Date: Thu, 23 Apr 2026 09:16:55 +0000 (+0200) Subject: drm/display: bridge-connector: attach the encoder to the created connector X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dcad6dd16e87a6dcc78ab05f64c704cec2809db9;p=thirdparty%2Fkernel%2Flinux.git drm/display: bridge-connector: attach the encoder to the created connector Currently all users of the bridge-connector must call drm_connector_attach_encoder() immediately after a successful drm_bridge_connector_init(). This is an unnecessary burden for users. Move the call to the end of drm_bridge_connector_init() so all callers can be simplified. Update documentation accordingly, rewording a bit the whole paragraph which would otherwise become poorly readable due to the growing list of actions. Reviewed-by: Dmitry Baryshkov Link: https://patch.msgid.link/20260423-drm-bridge-connector-attach_encoder-v2-1-2ae6ca69b390@bootlin.com Signed-off-by: Luca Ceresoli --- diff --git a/drivers/gpu/drm/display/drm_bridge_connector.c b/drivers/gpu/drm/display/drm_bridge_connector.c index 39cc18f78eda1..d85ceb80c1379 100644 --- a/drivers/gpu/drm/display/drm_bridge_connector.c +++ b/drivers/gpu/drm/display/drm_bridge_connector.c @@ -773,8 +773,11 @@ static void drm_bridge_connector_put_bridges(struct drm_device *dev, void *data) * @drm: the DRM device * @encoder: the encoder where the bridge chain starts * - * Allocate, initialise and register a &drm_bridge_connector with the @drm - * device. The connector is associated with a chain of bridges that starts at + * Create a new &drm_bridge_connector for the @drm device. The connector is + * allocated, initialised, registered with the @drm device and attached to + * @encoder. + * + * The connector is associated with a chain of bridges that starts at * the @encoder. All bridges in the chain shall report bridge operation flags * (&drm_bridge->ops) and bridge output type (&drm_bridge->type), and none of * them may create a DRM connector directly. @@ -1055,6 +1058,10 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm, IS_ENABLED(CONFIG_DRM_DISPLAY_HDCP_HELPER)) drm_connector_attach_content_protection_property(connector, true); + ret = drm_connector_attach_encoder(connector, encoder); + if (ret) + return ERR_PTR(ret); + return connector; } EXPORT_SYMBOL_GPL(drm_bridge_connector_init);