Message ID | 20231031-tc358767-v1-2-392081ad9f4b@ideasonboard.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b90f:0:b0:403:3b70:6f57 with SMTP id t15csp238401vqg; Tue, 31 Oct 2023 06:27:49 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG6daNpHXBw7DR/zhu1tb8V/FriJQHthS4Zn+OzJe6YrOcjLzhT6HcZfFI5FSKwmBhVveEo X-Received: by 2002:a05:6a20:8f1f:b0:174:af85:9626 with SMTP id b31-20020a056a208f1f00b00174af859626mr11697340pzk.11.1698758869066; Tue, 31 Oct 2023 06:27:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698758869; cv=none; d=google.com; s=arc-20160816; b=TsNytcqe9fkSoTGxAurckdhpTQ7CzWPoPwViaHo9q10jLd9jCARJLukSItlmoE32Xt GXP13WO/+/cg/4brNaWgltx5APLj/e3c1SClQhOGtcqM2sZmQbhi5Gb/Ls1beJQRUmIs /5wS/bdLQbhbJ/VUfqNmS30jVH8MAYMNR48mM9+erwgLPuu7QsGCrjZN30385eHuVvm2 zhFb8og5bk8YB28j1Dj8QjupGgTSs3tog5PWWV/pujURNGJOwMlKhYU9nzTe8+qcSiQu omWJcQYVNjEm5FQN1hazQkBuCuuzcOOmUWJcx7Ow3tMsCqgjoaMF8bNS0mq5EVW7ivT2 Dj5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=415Y3ikchYtLA75uaBCPbR/z/LEhYy+UGrCfmz+wmnA=; fh=bpp/3S1Fl0AhI4Z5K3UWdDvav5T/++yXwguVMoLrE64=; b=lXnLOKh/7ARGpsAMuQlhPTG1kyaOAPhM/C10E/C/tZww7s309anwgqg113oe3bPpJf VcJ2s8/ZkC0xx2rQyKmFEbYZa+Ql6aQGw09XCgn8XBX/BMFqOLp9ztlsutRgXIAwQNz/ 05pvIlf0jO5QyaD+MruZlz93flHyQVK5Jq6jxh9lXX4aGaSOrP4JT0dVEZger6SWaZsh UN5qaxVttodgZlxkQQNYr1CsoUFp3xG5eSW/QYjsL36CchQZj01oUydPT6enivTqpGtU JNEAcX062SVL5CuvbrZJ/2lTkozdY0sMrWR9EeYKpN8Pt2qh7XiCi6Ph+xC74dWb1C7r XffQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=vmZZh7wY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id b4-20020aa79504000000b006b7b42fe43asi1000543pfp.185.2023.10.31.06.27.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Oct 2023 06:27:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=vmZZh7wY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 8BD8C80BA68C; Tue, 31 Oct 2023 06:27:46 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344524AbjJaN1Z (ORCPT <rfc822;chrisjones.unixmen@gmail.com> + 33 others); Tue, 31 Oct 2023 09:27:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52772 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344548AbjJaN1U (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Tue, 31 Oct 2023 09:27:20 -0400 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 25BA3F1 for <linux-kernel@vger.kernel.org>; Tue, 31 Oct 2023 06:27:17 -0700 (PDT) Received: from [127.0.1.1] (91-158-149-209.elisa-laajakaista.fi [91.158.149.209]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 1569F5AA; Tue, 31 Oct 2023 14:26:58 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1698758818; bh=I/CtWgvz0BJifB1qTHPuDWeeFWh42GIeJ7wx1VtfgUE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=vmZZh7wYPTXo5fLBTB1h+AraB7Gbk13wHg5d+3Ph7aveao9K9jlrjKMnEYB1cyN7Q 26ocM3/kwMDCEaU48NDJbcqK56Qt+S1MdT/IKmDqz8H0zIDV8tHXydV6n1Sf/me4Cb Aaoq9D8idueOswN73o0RdyKGqDfXemsi1DUyedqw= From: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Date: Tue, 31 Oct 2023 15:26:56 +0200 Subject: [PATCH 2/2] drm/bridge: tc358767: Fix link properties discovery MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20231031-tc358767-v1-2-392081ad9f4b@ideasonboard.com> References: <20231031-tc358767-v1-0-392081ad9f4b@ideasonboard.com> In-Reply-To: <20231031-tc358767-v1-0-392081ad9f4b@ideasonboard.com> To: Aradhya Bhatia <a-bhatia1@ti.com>, Jan Kiszka <jan.kiszka@siemens.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>, Daniel Vetter <daniel@ffwll.ch> Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> X-Mailer: b4 0.12.4 X-Developer-Signature: v=1; a=openpgp-sha256; l=1647; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=I/CtWgvz0BJifB1qTHPuDWeeFWh42GIeJ7wx1VtfgUE=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBlQQCvB7wrB7TMKnDKR6rRauEEUAKRUabrIZ4OB BOeFOvaEY6JAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCZUEArwAKCRD6PaqMvJYe 9UfAD/0c/gKIkRmx+ScHQe3PosmKMmN/Bvt6Y+Rq4GX/xx+IS1+eDx/L5pTPvYRCdOSno5JCJ6a 5w41PEgl9vSFftu75TYs0A5KwOo4JctKBQbHvpvaG55VGtodZtb2CfuGdp9sjUdT+DAUWI41Nhg 4aaIe4aYlTcsTsQwgZ+jF2wBfj73+JBENg8k2aKWUO3o/U/Z0N94JGIBnc+qAhTB/UDWqVQLOsg hJC3tnmulrPwGSVQUeSSmj+gyAuZsk3Dg8+NbdX3Jb1Ge/ds0E2daFHjjoHKkXFBqEaChR45eR+ wG0G195/F4Bqd+/hW8FQDl0K3WT8oulo8EFeYPouQ26w+LtfZdZhIUNSTktPCCjy+rWGREx0s3R uuPWD2totclIyiOy+RWFT1x2KLrF7ivYd7b8KdjxUc5f78BB36QzttdGTl1oFWGRhDChxty6+Vc K+VsKGd8qKminlqdrIAnkXGB/NIflfP6ARpBc5FZOG5wjhQ6NzybMW44fRxr8buxYijp9+6Cc+/ NjDrbZpInP+KHANRuS9k6MOD/fr2oLTuk6vvIZprjg6AJ9haU4or3ej5uyCZcRuk7Dpck4STLuv 2xx/wglVjRxpOu1UlEmMaKKarfdymQsgcMFtrkBSZ/rIHb5WV7Z0S3tYUvjVtgIi7pl6e7hD1P1 QFE34g+AHAuTEew== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Tue, 31 Oct 2023 06:27:46 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1781277779933450255 X-GMAIL-MSGID: 1781277779933450255 |
Series |
drm/bridge: tc358767: Fix DRM_BRIDGE_ATTACH_NO_CONNECTOR case
|
|
Commit Message
Tomi Valkeinen
Oct. 31, 2023, 1:26 p.m. UTC
When a display controller driver uses DRM_BRIDGE_ATTACH_NO_CONNECTOR,
tc358767 will behave properly and skip the creation of the connector.
However, tc_get_display_props(), which is used to find out about the DP
monitor and link, is only called from two places: .atomic_enable() and
tc_connector_get_modes(). The latter is only used when tc358767 creates
its own connector, i.e. when DRM_BRIDGE_ATTACH_NO_CONNECTOR is _not_
set.
Thus, the driver never finds out the link properties before get_edid()
is called. With num_lanes of 0 and link_rate of 0 there are not many
valid modes...
Fix this by adding tc_connector_get_modes() call at the beginning of
get_edid(), so that we have up to date information before looking at the
modes.
Reported-by: Jan Kiszka <jan.kiszka@siemens.com>
Closes: https://lore.kernel.org/all/24282420-b4dd-45b3-bb1c-fc37fe4a8205@siemens.com/
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
drivers/gpu/drm/bridge/tc358767.c | 7 +++++++
1 file changed, 7 insertions(+)
Comments
On 31-Oct-23 18:56, Tomi Valkeinen wrote: > When a display controller driver uses DRM_BRIDGE_ATTACH_NO_CONNECTOR, > tc358767 will behave properly and skip the creation of the connector. > > However, tc_get_display_props(), which is used to find out about the DP > monitor and link, is only called from two places: .atomic_enable() and > tc_connector_get_modes(). The latter is only used when tc358767 creates > its own connector, i.e. when DRM_BRIDGE_ATTACH_NO_CONNECTOR is _not_ > set. > > Thus, the driver never finds out the link properties before get_edid() > is called. With num_lanes of 0 and link_rate of 0 there are not many > valid modes... > > Fix this by adding tc_connector_get_modes() call at the beginning of > get_edid(), so that we have up to date information before looking at the > modes. > > Reported-by: Jan Kiszka <jan.kiszka@siemens.com> > Closes: https://lore.kernel.org/all/24282420-b4dd-45b3-bb1c-fc37fe4a8205@siemens.com/ > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> > --- Thank you, Tomi, for quickly debugging this! Reviewed-by: Aradhya Bhatia <a-bhatia1@ti.com> Regards Aradhya > drivers/gpu/drm/bridge/tc358767.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c > index 0affcefdeb1c..137a9f5e3cad 100644 > --- a/drivers/gpu/drm/bridge/tc358767.c > +++ b/drivers/gpu/drm/bridge/tc358767.c > @@ -1579,6 +1579,13 @@ static struct edid *tc_get_edid(struct drm_bridge *bridge, > struct drm_connector *connector) > { > struct tc_data *tc = bridge_to_tc(bridge); > + int ret; > + > + ret = tc_get_display_props(tc); > + if (ret < 0) { > + dev_err(tc->dev, "failed to read display props: %d\n", ret); > + return 0; > + } > > return drm_get_edid(connector, &tc->aux.ddc); > } >
diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c index 0affcefdeb1c..137a9f5e3cad 100644 --- a/drivers/gpu/drm/bridge/tc358767.c +++ b/drivers/gpu/drm/bridge/tc358767.c @@ -1579,6 +1579,13 @@ static struct edid *tc_get_edid(struct drm_bridge *bridge, struct drm_connector *connector) { struct tc_data *tc = bridge_to_tc(bridge); + int ret; + + ret = tc_get_display_props(tc); + if (ret < 0) { + dev_err(tc->dev, "failed to read display props: %d\n", ret); + return 0; + } return drm_get_edid(connector, &tc->aux.ddc); }