public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: Heiko Stuebner <heiko@sntech•de>
To: Heikki Krogerus <heikki.krogerus@linux•intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation•org>,
	Dmitry Baryshkov <dmitry.baryshkov@oss•qualcomm.com>,
	Peter Chen <hzpeterchen@gmail•com>,
	Luca Ceresoli <luca.ceresoli@bootlin•com>,
	Rob Herring <robh@kernel•org>,
	Krzysztof Kozlowski <krzk+dt@kernel•org>,
	Conor Dooley <conor+dt@kernel•org>, Vinod Koul <vkoul@kernel•org>,
	Kishon Vijay Abraham I <kishon@kernel•org>,
	Sandy Huang <hjc@rock-chips•com>,
	Andy Yan <andy.yan@rock-chips•com>,
	Yubing Zhang <yubing.zhang@rock-chips•com>,
	Frank Wang <frank.wang@rock-chips•com>,
	Andrzej Hajda <andrzej.hajda@intel•com>,
	Neil Armstrong <neil.armstrong@linaro•org>,
	Robert Foss <rfoss@kernel•org>,
	Laurent Pinchart <Laurent.pinchart@ideasonboard•com>,
	Jonas Karlman <jonas@kwiboo•se>,
	Jernej Skrabec <jernej.skrabec@gmail•com>,
	Maarten Lankhorst <maarten.lankhorst@linux•intel.com>,
	Maxime Ripard <mripard@kernel•org>,
	Thomas Zimmermann <tzimmermann@suse•de>,
	David Airlie <airlied@gmail•com>, Simona Vetter <simona@ffwll•ch>,
	Amit Sunil Dhamne <amitsd@google•com>,
	Dragan Simic <dsimic@manjaro•org>,
	Johan Jonker <jbx6244@gmail•com>,
	Diederik de Haas <didi.debian@cknow•org>,
	Peter Robinson <pbrobinson@gmail•com>,
	Hugh Cole-Baker <sigmaris@gmail•com>,
	Chaoyi Chen <kernel@airkyi•com>
Cc: linux-usb@vger•kernel.org, devicetree@vger•kernel.org,
	linux-kernel@vger•kernel.org, linux-phy@lists•infradead.org,
	linux-arm-kernel@lists•infradead.org,
	linux-rockchip@lists•infradead.org,
	dri-devel@lists•freedesktop.org,
	Chaoyi Chen <chaoyi.chen@rock-chips•com>
Subject: Re: [PATCH v15 7/9] drm/rockchip: cdn-dp: Add multiple bridges to support PHY port selection
Date: Wed, 20 May 2026 13:12:49 +0200	[thread overview]
Message-ID: <12511061.0AQdONaE2F@phil> (raw)
In-Reply-To: <20260304094152.92-8-kernel@airkyi.com>

Am Mittwoch, 4. März 2026, 10:41:50 Mitteleuropäische Sommerzeit schrieb Chaoyi Chen:
> From: Chaoyi Chen <chaoyi.chen@rock-chips•com>
> 
> The RK3399 has two USB/DP combo PHY and one CDN-DP controller. And
> the CDN-DP can be switched to output to one of the PHYs. If both ports
> are plugged into DP, DP will select the first port for output.
> 
> This patch adds support for multiple bridges, enabling users to flexibly
> select the output port. For each PHY port, a separate encoder and bridge
> are registered.
> 
> The change is based on the DRM AUX HPD bridge, rather than the
> extcon approach. This requires the DT to correctly describe the
> connections between the first bridge in bridge chain and DP
> controller. For example, the bridge chain may be like this:
> 
> PHY aux birdge -> fsa4480 analog audio switch bridge ->
> onnn,nb7vpq904m USB reminder bridge -> USB-C controller AUX HPD bridge
> 
> In this case, the connection relationships among the PHY aux bridge
> and the DP contorller need to be described in DT.
> 
> In addition, the cdn_dp_parse_next_bridge_dt() will parses it and
> determines whether to register one or two bridges.
> 
> Since there is only one DP controller, only one of the PHY ports can
> output at a time. The key is how to switch between different PHYs,
> which is handled by cdn_dp_switch_port() and cdn_dp_enable().
> 
> There are two cases:
> 
> 1. Neither bridge is enabled. In this case, both bridges can
> independently read the EDID, and the PHY port may switch before
> reading the EDID.
> 
> 2. One bridge is already enabled. In this case, other bridges are not
> allowed to read the EDID. So we will try to return the cached EDID.
> 
> Since the scenario of two ports plug in at the same time is rare,
> I don't have a board which support two TypeC connector to test this.
> Therefore, I tested forced switching on a single PHY port, as well as
> output using a fake PHY port alongside a real PHY port.
> 
> Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips•com>
> Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin•com>

Reviewed-by: Heiko Stuebner <heiko@sntech•de>




  reply	other threads:[~2026-05-20 11:13 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-04  9:41 [PATCH v15 0/9] Add Type-C DP support for RK3399 EVB IND board Chaoyi Chen
2026-03-04  9:41 ` [PATCH v15 1/9] drm/bridge: Implement generic USB Type-C DP HPD bridge Chaoyi Chen
2026-05-28 15:37   ` Nicolas Frattaroli
2026-05-29  1:18     ` Chaoyi Chen
2026-03-04  9:41 ` [PATCH v15 2/9] drm/bridge: aux: Add drm_aux_bridge_register_from_node() Chaoyi Chen
2026-05-28 15:46   ` Nicolas Frattaroli
2026-03-04  9:41 ` [PATCH v15 3/9] dt-bindings: phy: rockchip: rk3399-typec-phy: Support mode-switch Chaoyi Chen
2026-03-04  9:41 ` [PATCH v15 4/9] phy: rockchip: phy-rockchip-typec: Add typec_mux/typec_switch support Chaoyi Chen
2026-05-28 20:16   ` Nicolas Frattaroli
2026-05-29  8:13     ` Chaoyi Chen
2026-03-04  9:41 ` [PATCH v15 5/9] phy: rockchip: phy-rockchip-typec: Add DRM AUX bridge Chaoyi Chen
2026-03-04  9:41 ` [PATCH v15 6/9] drm/rockchip: cdn-dp: Support handle lane info without extcon Chaoyi Chen
2026-05-20 11:10   ` Heiko Stuebner
2026-03-04  9:41 ` [PATCH v15 7/9] drm/rockchip: cdn-dp: Add multiple bridges to support PHY port selection Chaoyi Chen
2026-05-20 11:12   ` Heiko Stuebner [this message]
2026-03-04  9:41 ` [PATCH v15 8/9] arm64: dts: rockchip: Add missing dp_out port for RK3399 CDN-DP Chaoyi Chen
2026-03-04  9:41 ` [PATCH v15 9/9] arm64: dts: rockchip: rk3399-evb-ind: Add support for DisplayPort Chaoyi Chen
2026-05-20 11:06   ` Heiko Stuebner
2026-05-19 13:43 ` [PATCH v15 0/9] Add Type-C DP support for RK3399 EVB IND board Heikki Krogerus
2026-05-20  1:13   ` Chaoyi Chen
2026-05-20 11:03     ` Heiko Stuebner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=12511061.0AQdONaE2F@phil \
    --to=heiko@sntech$(echo .)de \
    --cc=Laurent.pinchart@ideasonboard$(echo .)com \
    --cc=airlied@gmail$(echo .)com \
    --cc=amitsd@google$(echo .)com \
    --cc=andrzej.hajda@intel$(echo .)com \
    --cc=andy.yan@rock-chips$(echo .)com \
    --cc=chaoyi.chen@rock-chips$(echo .)com \
    --cc=conor+dt@kernel$(echo .)org \
    --cc=devicetree@vger$(echo .)kernel.org \
    --cc=didi.debian@cknow$(echo .)org \
    --cc=dmitry.baryshkov@oss$(echo .)qualcomm.com \
    --cc=dri-devel@lists$(echo .)freedesktop.org \
    --cc=dsimic@manjaro$(echo .)org \
    --cc=frank.wang@rock-chips$(echo .)com \
    --cc=gregkh@linuxfoundation$(echo .)org \
    --cc=heikki.krogerus@linux$(echo .)intel.com \
    --cc=hjc@rock-chips$(echo .)com \
    --cc=hzpeterchen@gmail$(echo .)com \
    --cc=jbx6244@gmail$(echo .)com \
    --cc=jernej.skrabec@gmail$(echo .)com \
    --cc=jonas@kwiboo$(echo .)se \
    --cc=kernel@airkyi$(echo .)com \
    --cc=kishon@kernel$(echo .)org \
    --cc=krzk+dt@kernel$(echo .)org \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    --cc=linux-kernel@vger$(echo .)kernel.org \
    --cc=linux-phy@lists$(echo .)infradead.org \
    --cc=linux-rockchip@lists$(echo .)infradead.org \
    --cc=linux-usb@vger$(echo .)kernel.org \
    --cc=luca.ceresoli@bootlin$(echo .)com \
    --cc=maarten.lankhorst@linux$(echo .)intel.com \
    --cc=mripard@kernel$(echo .)org \
    --cc=neil.armstrong@linaro$(echo .)org \
    --cc=pbrobinson@gmail$(echo .)com \
    --cc=rfoss@kernel$(echo .)org \
    --cc=robh@kernel$(echo .)org \
    --cc=sigmaris@gmail$(echo .)com \
    --cc=simona@ffwll$(echo .)ch \
    --cc=tzimmermann@suse$(echo .)de \
    --cc=vkoul@kernel$(echo .)org \
    --cc=yubing.zhang@rock-chips$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox