From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC2184A9D7C for ; Thu, 1 Oct 2026 12:44:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.85.4 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790858692; cv=none; b=mkkbKNFFsG/lilDr6sEFPrKtb6Sbrer+HzRSp+ymbY/15f1mqdcodVKQ+WL8ueeRfGb2JYgUT3gv70PR8al1H3rW+qzXSlnBDEP7PEnj5ZdVz29FjlRwzn/GHHQeif2en7eSSb7TT1ut8gB97ADigsdCzpmnZaCld1k0Y2fiLLg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790858692; c=relaxed/simple; bh=3uVJ0+CiBjqBMXrAwSnrSvrnV27RzwdfNd6pfvpfBCc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OyFC77Rwb9gav79hjYendlC/GTPdWOoxI0JOEbvf1IDSA/0Y0bC/IsOiQ65xiTZIhkHc3rzcX75JFMEJ/4xrMIcgmoLM/EuqPy5nqQy1O9Xkkmjo6RLUCq8wv65kTJoLSgdaokuKhCZL5xXL1MLrz0gL16/ktGcLntygXBPFB9Y= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=O6pYDGHm; arc=none smtp.client-ip=185.246.85.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="O6pYDGHm" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id DF1E14E416CC; Thu, 1 Oct 2026 12:44:47 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id B021160341; Thu, 1 Oct 2026 12:44:47 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 08D1D103280C2; Thu, 1 Oct 2026 14:44:40 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1790858685; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=QLYOPEBics56dBWNl5ZGCyhzCyMt9242fRwYR5+3TQ8=; b=O6pYDGHm3h4SYtZpmOXehWrflfGfvi1BHLUeuGeDjCVUhRG4yGQU2DxSB7/ZM8ls5x9XVI 1eWk3pPBRuG8XRY7Ha6ySoTS6V7aBqU6TXagOAjvto0o81lOe89/Yx7eU/nE4Rb2fTTQmA 5eMVGXsMrems6KoSxxA84lOTvNi78DWTSuBzu8Nq4JUnDUQrAd50VdiGXGycuahIlrLLCp Jr1BKm3GLghp8atUVtOxRWIuvH8uPRy7oGv+vLBUmCrsXXewOg79PDpBTIA4Zja7e7M6dZ dbytFQConraipTLbNc9guDAEuL3X8aVQGIGt66zf2fWZkjquKw4MOcsg9fJO+Q== From: Luca Ceresoli Date: Thu, 01 Oct 2026 14:42:42 +0200 Subject: [PATCH RFC v2 20/24] drm/bridge: ti-sn65dsi83: implement .get_next_bridge Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20261001-drm-bridge-hotplug-v2-20-8e34986dcb68@bootlin.com> References: <20261001-drm-bridge-hotplug-v2-0-8e34986dcb68@bootlin.com> In-Reply-To: <20261001-drm-bridge-hotplug-v2-0-8e34986dcb68@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 , Jessica Zhang , Douglas Anderson , Marek Vasut , Stefan Agner , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: Hui Pu , Ian Ray , Luca Ceresoli , Thomas Petazzoni , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org X-Mailer: b4 0.16.0 X-Last-TLS-Session-Version: TLSv1.3 Add get_next_callback func to expose the next bridge. Signed-off-by: Luca Ceresoli --- drivers/gpu/drm/bridge/ti-sn65dsi83.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi83.c b/drivers/gpu/drm/bridge/ti-sn65dsi83.c index d32b80e7c374..05c6b1d6b9f1 100644 --- a/drivers/gpu/drm/bridge/ti-sn65dsi83.c +++ b/drivers/gpu/drm/bridge/ti-sn65dsi83.c @@ -295,6 +295,13 @@ static struct sn65dsi83 *bridge_to_sn65dsi83(struct drm_bridge *bridge) return container_of(bridge, struct sn65dsi83, bridge); } +static struct drm_bridge *sn65dsi83_get_next_bridge(struct drm_bridge *bridge) +{ + struct sn65dsi83 *ctx = bridge_to_sn65dsi83(bridge); + + return ctx->panel_bridge ?: ERR_PTR(-ENODEV); +} + static int sn65dsi83_attach(struct drm_bridge *bridge, struct drm_encoder *encoder, enum drm_bridge_attach_flags flags) @@ -796,6 +803,7 @@ sn65dsi83_atomic_get_input_bus_fmts(struct drm_bridge *bridge, } static const struct drm_bridge_funcs sn65dsi83_funcs = { + .get_next_bridge = sn65dsi83_get_next_bridge, .attach = sn65dsi83_attach, .detach = sn65dsi83_detach, .atomic_enable = sn65dsi83_atomic_enable, @@ -1066,6 +1074,7 @@ static int sn65dsi83_probe(struct i2c_client *client) ctx->bridge.of_node = dev->of_node; ctx->bridge.pre_enable_prev_first = true; ctx->bridge.type = DRM_MODE_CONNECTOR_LVDS; + ctx->bridge.ops = DRM_BRIDGE_OP_GET_NEXT_BRIDGE; drm_bridge_add(&ctx->bridge); ret = sn65dsi83_host_attach(ctx); -- 2.55.0