devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tony Lindgren <tony@atomide.com>
To: 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>,
	David Airlie <airlied@gmail.com>, Daniel Vetter <daniel@ffwll.ch>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Conor Dooley <conor+dt@kernel.org>, Simha BN <simhavcs@gmail.com>,
	Sam Ravnborg <sam@ravnborg.org>
Cc: Carl Philipp Klemm <philipp@uvos.xyz>,
	Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>,
	Merlijn Wajer <merlijn@wizzup.org>, Pavel Machek <pavel@ucw.cz>,
	Sebastian Reichel <sre@kernel.org>,
	dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org
Subject: [PATCH v2 06/10] drm/bridge: tc358775: Get bridge data lanes instead of the DSI host lanes
Date: Sat,  2 Dec 2023 09:54:45 +0200	[thread overview]
Message-ID: <20231202075514.44474-7-tony@atomide.com> (raw)
In-Reply-To: <20231202075514.44474-1-tony@atomide.com>

The current code assumes the data-lanes property is configured on the
DSI host side instead of the bridge side, and assumes DSI host endpoint 1.

Let's standardize on what the other bridge drivers are doing and parse the
data-lanes property for the bridge. Only if data-lanes property is not found,
let's be nice and also check the DSI host for old dtb in use and warn.

Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 drivers/gpu/drm/bridge/tc358775.c | 25 +++++++++++--------------
 1 file changed, 11 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/bridge/tc358775.c b/drivers/gpu/drm/bridge/tc358775.c
--- a/drivers/gpu/drm/bridge/tc358775.c
+++ b/drivers/gpu/drm/bridge/tc358775.c
@@ -525,27 +525,24 @@ tc_mode_valid(struct drm_bridge *bridge,
 static int tc358775_parse_dt(struct device_node *np, struct tc_data *tc)
 {
 	struct device_node *endpoint;
-	struct device_node *parent;
 	struct device_node *remote;
 	int dsi_lanes = -1;
 
-	/*
-	 * To get the data-lanes of dsi, we need to access the dsi0_out of port1
-	 *  of dsi0 endpoint from bridge port0 of d2l_in
-	 */
 	endpoint = of_graph_get_endpoint_by_regs(tc->dev->of_node,
 						 TC358775_DSI_IN, -1);
-	if (endpoint) {
-		/* dsi0_out node */
-		parent = of_graph_get_remote_port_parent(endpoint);
-		of_node_put(endpoint);
-		if (parent) {
-			/* dsi0 port 1 */
-			dsi_lanes = drm_of_get_data_lanes_count_ep(parent, 1, -1, 1, 4);
-			of_node_put(parent);
-		}
+	dsi_lanes = drm_of_get_data_lanes_count(endpoint, 1, 4);
+
+	/* Quirk old dtb: Use data lanes from the DSI host side instead of bridge */
+	if (dsi_lanes == -EINVAL || dsi_lanes == -ENODEV) {
+		remote = of_graph_get_remote_endpoint(endpoint);
+		dsi_lanes = drm_of_get_data_lanes_count(remote, 1, 4);
+		of_node_put(remote);
+		if (dsi_lanes >= 1)
+			dev_warn(tc->dev, "missing dsi-lanes property for the bridge\n");
 	}
 
+	of_node_put(endpoint);
+
 	if (dsi_lanes < 0)
 		return dsi_lanes;
 
-- 
2.43.0

  parent reply	other threads:[~2023-12-02  8:01 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-02  7:54 [PATCH v2 00/10] Improvments for tc358775 with support for tc358765 Tony Lindgren
2023-12-02  7:54 ` [PATCH v2 01/10] dt-bindings: display: bridge: tc358775: make stby gpio and vdd supplies optional Tony Lindgren
2023-12-03 16:49   ` Krzysztof Kozlowski
2023-12-04  9:33     ` Michael Walle
2023-12-02  7:54 ` [PATCH v2 02/10] dt-bindings: display: bridge: tc358775: Add data-lanes Tony Lindgren
2023-12-03 16:51   ` Krzysztof Kozlowski
2023-12-02  7:54 ` [PATCH v2 03/10] dt-bindings: display: bridge: tc358775: Add support for tc358765 Tony Lindgren
2023-12-03 16:52   ` Krzysztof Kozlowski
2023-12-02  7:54 ` [PATCH v2 04/10] drm/bridge: tc358775: fix support for jeida-18 and jeida-24 Tony Lindgren
2023-12-02  7:54 ` [PATCH v2 05/10] drm/bridge: tc358775: make standby GPIO optional Tony Lindgren
2023-12-03 23:37   ` Dmitry Baryshkov
2023-12-04  9:29   ` Michael Walle
2023-12-02  7:54 ` Tony Lindgren [this message]
2023-12-03 23:47   ` [PATCH v2 06/10] drm/bridge: tc358775: Get bridge data lanes instead of the DSI host lanes Dmitry Baryshkov
2023-12-07 15:14   ` Michael Walle
2023-12-02  7:54 ` [PATCH v2 07/10] drm/bridge: tc358775: Add burst and low-power modes Tony Lindgren
2023-12-07 15:01   ` Michael Walle
2023-12-02  7:54 ` [PATCH v2 08/10] drm/bridge: tc358775: Enable pre_enable_prev_first flag Tony Lindgren
2023-12-03 23:48   ` Dmitry Baryshkov
2023-12-07 15:03   ` Michael Walle
2023-12-02  7:54 ` [PATCH v2 09/10] drm/bridge: tc358775: Add support for tc358765 Tony Lindgren
2023-12-03 23:52   ` Dmitry Baryshkov
2023-12-04  9:52     ` Michael Walle
2024-01-31  6:20       ` Tony Lindgren
2023-12-05 20:19   ` kernel test robot
2023-12-02  7:54 ` [PATCH v2 10/10] drm/bridge: tc358775: Configure hs_rate and lp_rate Tony Lindgren
2023-12-03 23:48   ` Dmitry Baryshkov
2023-12-07 16:13   ` Michael Walle
2024-01-31  6:14     ` Tony Lindgren

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=20231202075514.44474-7-tony@atomide.com \
    --to=tony@atomide.com \
    --cc=Laurent.pinchart@ideasonboard.com \
    --cc=airlied@gmail.com \
    --cc=andrzej.hajda@intel.com \
    --cc=conor+dt@kernel.org \
    --cc=daniel@ffwll.ch \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=ivo.g.dimitrov.75@gmail.com \
    --cc=jernej.skrabec@gmail.com \
    --cc=jonas@kwiboo.se \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=merlijn@wizzup.org \
    --cc=mripard@kernel.org \
    --cc=neil.armstrong@linaro.org \
    --cc=pavel@ucw.cz \
    --cc=philipp@uvos.xyz \
    --cc=rfoss@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=sam@ravnborg.org \
    --cc=simhavcs@gmail.com \
    --cc=sre@kernel.org \
    --cc=tzimmermann@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
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;
as well as URLs for NNTP newsgroup(s).