From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5B313CD4851 for ; Tue, 19 May 2026 10:38:35 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B6BCC10EC16; Tue, 19 May 2026 10:38:34 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=bootlin.com header.i=@bootlin.com header.b="J0EO0XJf"; dkim-atps=neutral Received: from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6EBC810EC16 for ; Tue, 19 May 2026 10:38:33 +0000 (UTC) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-04.galae.net (Postfix) with ESMTPS id 53DD6C2B9E5; Tue, 19 May 2026 10:39:25 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 2A329606E9; Tue, 19 May 2026 10:38:32 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 8E1EB107E8ACA; Tue, 19 May 2026 12:38:26 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1779187110; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=pGMsYlYt9mcY7NwGwKaGJYaOC5KWQAxBqwt/f2CcMdA=; b=J0EO0XJfuiOfRnAq8HMXUUMSgfogKn0SYvWGsY1bBlP4dK4F6wbQsQzoXWuD9nMNm0sPwt C4C7T6/FRsSvoxtE3Qg2Xzr0qBZ4J5taiALqLJysPU1Pmt7hhXUheAV029REJ0Bd/VP9XR VC7nwp6+lAfA4iLCES7ENAYrqs0tPlVC7Nb17FF86L0xzevNKe735Wc3MGyzaXDh6wmGn1 +Mrv7hem3dPmr8XrIK08uY6oVQ7KKSW7SI0xyUjnzZUN6h70EiOTEZar9Bjn+36LBHgeRj pC5U9faLWhg8Lz6WFaNN+VOriV4brh0RJyGf9mmK+CEtD7DK9iLRPOXCqLtVaA== From: Luca Ceresoli Date: Tue, 19 May 2026 12:37:23 +0200 Subject: [PATCH 06/37] drm/display: bridge-connector: use a drm_bridge_connector internally, not a drm_connector MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260519-drm-bridge-hotplug-v1-6-45e2bdb3dfb4@bootlin.com> References: <20260519-drm-bridge-hotplug-v1-0-45e2bdb3dfb4@bootlin.com> In-Reply-To: <20260519-drm-bridge-hotplug-v1-0-45e2bdb3dfb4@bootlin.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Inki Dae , Jagan Teki , Marek Szyprowski , Marek Vasut , Stefan Agner , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: Hui Pu , Ian Ray , Thomas Petazzoni , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, Luca Ceresoli X-Mailer: b4 0.15.2 X-Last-TLS-Session-Version: TLSv1.3 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Currently drm_bridge_connector_init() always returns the added connector or errors out. When adding bridge hotplug the bridge-connector can be successfully initialized without creating a connector, which can be added later when the pipeline will be complete. For this the internal function drm_bridge_connector_add_connector() must be able to return a valid drm_bridge_connector even without any drm_connector. In preparation to support bridge hotplug, change its return value to be the same drm_bridge_connector pointer it gets as input, or a PTR_ERR. No functional changes, just changing an internal API. Note the return value could now become an int (0 or negative error) because returning the same value received as input does not carry any added value. However this would be change a lot of lines, so leave such change as a future cleanup. Signed-off-by: Luca Ceresoli --- drivers/gpu/drm/display/drm_bridge_connector.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/display/drm_bridge_connector.c b/drivers/gpu/drm/display/drm_bridge_connector.c index 6813c6008985..eb1912611cd6 100644 --- a/drivers/gpu/drm/display/drm_bridge_connector.c +++ b/drivers/gpu/drm/display/drm_bridge_connector.c @@ -780,10 +780,10 @@ static void drm_bridge_connector_put_bridges(struct drm_device *dev, void *data) * @bridge_connector->drm and @bridge_connector->encoder fields are * assigned at least) * - * Returns a pointer to the new drm_connector on success, or a negative - * error pointer otherwise. + * Returns a pointer to @bridge_connector on success, or a negative error + * pointer otherwise. */ -static struct drm_connector * +static struct drm_bridge_connector * drm_bridge_connector_add_connector(struct drm_bridge_connector *bridge_connector) { struct drm_connector *connector; @@ -1049,7 +1049,7 @@ drm_bridge_connector_add_connector(struct drm_bridge_connector *bridge_connector if (ret) return ERR_PTR(ret); - return connector; + return bridge_connector; } /** @@ -1086,6 +1086,10 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm, bridge_connector->drm = drm; bridge_connector->encoder = encoder; - return drm_bridge_connector_add_connector(bridge_connector); + bridge_connector = drm_bridge_connector_add_connector(bridge_connector); + if (IS_ERR(bridge_connector)) + return ERR_CAST(bridge_connector); + + return &bridge_connector->base; } EXPORT_SYMBOL_GPL(drm_bridge_connector_init); -- 2.54.0