Archive-only list for patches
 help / color / mirror / Atom feed
From: Stephen Boyd <swboyd@chromium.org>
To: chrome-platform@lists.linux.dev
Cc: linux-kernel@vger.kernel.org, patches@lists.linux.dev,
	devicetree@vger.kernel.org,
	Douglas Anderson <dianders@chromium.org>,
	Pin-yen Lin <treapking@chromium.org>,
	Andrzej Hajda <andrzej.hajda@intel.com>,
	Benson Leung <bleung@chromium.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Daniel Vetter <daniel@ffwll.ch>, David Airlie <airlied@gmail.com>,
	Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
	dri-devel@lists.freedesktop.org,
	Guenter Roeck <groeck@chromium.org>,
	Jernej Skrabec <jernej.skrabec@gmail.com>,
	Jonas Karlman <jonas@kwiboo.se>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
	Lee Jones <lee@kernel.org>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Neil Armstrong <neil.armstrong@linaro.org>,
	Prashant Malani <pmalani@chromium.org>,
	Robert Foss <rfoss@kernel.org>, Rob Herring <robh+dt@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Tzung-Bi Shih <tzungbi@kernel.org>,
	Alexandre Belloni <alexandre.belloni@bootlin.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Daniel Scally <djrscally@gmail.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Heikki Krogerus <heikki.krogerus@linux.intel.com>,
	Ivan Orlov <ivan.orlov0322@gmail.com>,
	linux-acpi@vger.kernel.org, linux-usb@vger.kernel.org,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	Vinod Koul <vkoul@kernel.org>
Subject: [PATCH v4 08/18] drm/bridge: dp_typec: Add "no-hpd" support
Date: Sat, 31 Aug 2024 21:06:46 -0700	[thread overview]
Message-ID: <20240901040658.157425-9-swboyd@chromium.org> (raw)
In-Reply-To: <20240901040658.157425-1-swboyd@chromium.org>

Add support for HPD coming from somewhere else in the drm_bridge chain.
Skip signaling HPD sate when "no-hpd" is present in the DT node backing
the dp_typec bridge.

Add this support because some EC firmwares on Trogdor/Strongbad boards
don't properly indicate the state of the DP HPD level on a type-c port.
The EC only indicates that DP mode is entered or exited for a type-c
port. The HPD level is expressed to the DP controller via a pin on the
AP that the EC drives high or low when the type-c port partner (i.e.
monitor) asserts or deasserts HPD.

Cc: Prashant Malani <pmalani@chromium.org>
Cc: Benson Leung <bleung@chromium.org>
Cc: Tzung-Bi Shih <tzungbi@kernel.org>
Cc: <chrome-platform@lists.linux.dev>
Cc: Pin-yen Lin <treapking@chromium.org>
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Stephen Boyd <swboyd@chromium.org>
---
 drivers/gpu/drm/bridge/aux-hpd-bridge.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/bridge/aux-hpd-bridge.c b/drivers/gpu/drm/bridge/aux-hpd-bridge.c
index d2832e6481d7..52db36aa190b 100644
--- a/drivers/gpu/drm/bridge/aux-hpd-bridge.c
+++ b/drivers/gpu/drm/bridge/aux-hpd-bridge.c
@@ -22,6 +22,7 @@ static DEFINE_IDA(drm_aux_hpd_bridge_ida);
 struct drm_aux_hpd_bridge_data {
 	struct drm_bridge bridge;
 	struct device *dev;
+	bool no_hpd;
 };
 
 enum dp_lane {
@@ -355,6 +356,8 @@ void drm_aux_hpd_bridge_notify(struct device *dev, enum drm_connector_status sta
 
 	if (!data)
 		return;
+	if (data->no_hpd)
+		return;
 
 	drm_bridge_hpd_notify(&data->bridge, status);
 }
@@ -672,6 +675,7 @@ static int drm_aux_hpd_bridge_probe(struct auxiliary_device *auxdev,
 			return -ENOMEM;
 		bridge = &hpd_data->bridge;
 		bridge->funcs = &drm_aux_hpd_bridge_funcs;
+		bridge->ops = DRM_BRIDGE_OP_HPD;
 	} else if (id->driver_data == DRM_AUX_TYPEC_BRIDGE) {
 		typec_data = devm_kzalloc(dev, sizeof(*typec_data), GFP_KERNEL);
 		if (!typec_data)
@@ -680,6 +684,9 @@ static int drm_aux_hpd_bridge_probe(struct auxiliary_device *auxdev,
 		bridge = &hpd_data->bridge;
 		bridge->funcs = &drm_dp_typec_bridge_funcs;
 		typec_bridge_dev = to_drm_dp_typec_bridge_dev(dev);
+		hpd_data->no_hpd = of_property_read_bool(np, "no-hpd");
+		if (!hpd_data->no_hpd)
+			bridge->ops = DRM_BRIDGE_OP_HPD;
 		memcpy(typec_data->dp_lanes, dp_lanes, sizeof(typec_data->dp_lanes));
 		ret = drm_dp_typec_bridge_probe_typec_ports(typec_data, typec_bridge_dev, np);
 		if (ret)
@@ -689,8 +696,7 @@ static int drm_aux_hpd_bridge_probe(struct auxiliary_device *auxdev,
 	}
 
 	hpd_data->dev = dev;
-	bridge->of_node = dev_get_platdata(dev);
-	bridge->ops = DRM_BRIDGE_OP_HPD;
+	bridge->of_node = np;
 	bridge->type = DRM_MODE_CONNECTOR_DisplayPort;
 
 	auxiliary_set_drvdata(auxdev, hpd_data);
-- 
https://chromeos.dev


  parent reply	other threads:[~2024-09-01  4:07 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-01  4:06 [PATCH v4 00/18] platform/chrome: Add DT USB/DP muxing/topology support Stephen Boyd
2024-09-01  4:06 ` [PATCH v4 01/18] drm/atomic-helper: Introduce lane remapping support to bridges Stephen Boyd
2024-09-20 13:41   ` Dmitry Baryshkov
2024-09-01  4:06 ` [PATCH v4 02/18] drm/bridge: Verify lane assignment is going to work during atomic_check Stephen Boyd
2024-09-01  4:06 ` [PATCH v4 03/18] usb: typec: Stub out typec_switch APIs when CONFIG_TYPEC=n Stephen Boyd
2024-09-03 11:40   ` Heikki Krogerus
2024-09-19 10:12   ` Dmitry Baryshkov
2024-09-01  4:06 ` [PATCH v4 04/18] usb: typec: Add device managed typec_mux_register() Stephen Boyd
2024-09-03 11:57   ` Heikki Krogerus
2024-09-01  4:06 ` [PATCH v4 05/18] usb: typec: Add device managed typec_switch_register() Stephen Boyd
2024-09-02 11:22   ` Andy Shevchenko
2024-09-01  4:06 ` [PATCH v4 06/18] drm/bridge: aux-hpd: Support USB Type-C DP altmodes via DRM lane assignment Stephen Boyd
2024-09-02 11:35   ` Andy Shevchenko
2024-09-03 22:20     ` Stephen Boyd
2024-09-04 13:00       ` Andy Shevchenko
2024-09-04 17:17         ` Stephen Boyd
2024-09-01  4:06 ` [PATCH v4 07/18] drm/bridge: dp_typec: Support USB Type-C orientation Stephen Boyd
2024-09-01  4:06 ` Stephen Boyd [this message]
2024-09-01  4:06 ` [PATCH v4 09/18] drm/bridge: dp_typec: Allow users to hook hpd notify path Stephen Boyd
2024-09-01  4:06 ` [PATCH v4 10/18] devcon property: Document devcon_match_fn_t Stephen Boyd
2024-09-02 11:17   ` Andy Shevchenko
2024-09-03 22:35     ` Stephen Boyd
2024-09-01  4:06 ` [PATCH v4 11/18] device property: Add remote endpoint to devcon matcher Stephen Boyd
2024-09-02 11:12   ` Andy Shevchenko
2024-09-03 22:49     ` Stephen Boyd
2024-09-01  4:06 ` [PATCH v4 12/18] dt-bindings: usb-switch: Extract endpoints to defs Stephen Boyd
2024-09-01  4:06 ` [PATCH v4 13/18] dt-bindings: usb-switch: Extend for DisplayPort altmode Stephen Boyd
2024-09-19 10:40   ` Dmitry Baryshkov
2024-10-10 22:43     ` Stephen Boyd
2024-10-25  6:36       ` Dmitry Baryshkov
2024-09-01  4:06 ` [PATCH v4 14/18] dt-bindings: Move google,cros-ec-typec binding to usb Stephen Boyd
2024-09-01  4:06 ` [PATCH v4 15/18] dt-bindings: usb: Add ports to google,cros-ec-typec for DP altmode Stephen Boyd
2024-09-03 15:35   ` Lee Jones
2024-09-20  9:38   ` Dmitry Baryshkov
2024-10-23  1:15     ` Stephen Boyd
2024-10-25 10:49       ` Dmitry Baryshkov
2024-10-29 20:15         ` Stephen Boyd
2024-10-31 18:42           ` Dmitry Baryshkov
2024-10-31 21:45             ` Stephen Boyd
2024-10-31 22:54               ` Dmitry Baryshkov
2024-11-08  0:28                 ` Stephen Boyd
2024-11-09  7:05                   ` Dmitry Baryshkov
2024-11-12  2:16                     ` Stephen Boyd
2024-11-15 17:17                       ` Dmitry Baryshkov
2024-11-20  1:09                         ` Stephen Boyd
2024-11-21 22:59                           ` Dmitry Baryshkov
2024-12-03 23:50                             ` Stephen Boyd
2024-12-05 18:47                               ` Dmitry Baryshkov
2024-12-11 21:11                                 ` Stephen Boyd
2024-12-11 21:16                                   ` Dmitry Baryshkov
2024-12-11 21:21                                     ` Stephen Boyd
2024-09-01  4:06 ` [PATCH v4 16/18] platform/chrome: cros_ec_typec: Add support for signaling DP HPD via drm_bridge Stephen Boyd
2024-09-04  9:35   ` Tzung-Bi Shih
2024-09-01  4:06 ` [PATCH v4 17/18] platform/chrome: cros_ec_typec: Support DP muxing Stephen Boyd
2024-09-04  9:36   ` Tzung-Bi Shih
2024-09-01  4:06 ` [PATCH v4 18/18] platform/chrome: cros_ec_typec: Handle lack of HPD information Stephen Boyd
2024-09-04  9:36   ` Tzung-Bi Shih
2024-09-04 21:45     ` Stephen Boyd
2024-09-06  8:18       ` Tzung-Bi Shih
2024-09-06 23:22         ` Stephen Boyd

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=20240901040658.157425-9-swboyd@chromium.org \
    --to=swboyd@chromium.org \
    --cc=Laurent.pinchart@ideasonboard.com \
    --cc=airlied@gmail.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=andrzej.hajda@intel.com \
    --cc=bleung@chromium.org \
    --cc=chrome-platform@lists.linux.dev \
    --cc=conor+dt@kernel.org \
    --cc=daniel@ffwll.ch \
    --cc=devicetree@vger.kernel.org \
    --cc=dianders@chromium.org \
    --cc=djrscally@gmail.com \
    --cc=dmitry.baryshkov@linaro.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=groeck@chromium.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=ivan.orlov0322@gmail.com \
    --cc=jernej.skrabec@gmail.com \
    --cc=jonas@kwiboo.se \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=lee@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mika.westerberg@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=neil.armstrong@linaro.org \
    --cc=patches@lists.linux.dev \
    --cc=pmalani@chromium.org \
    --cc=rafael.j.wysocki@intel.com \
    --cc=rfoss@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=sakari.ailus@linux.intel.com \
    --cc=treapking@chromium.org \
    --cc=tzimmermann@suse.de \
    --cc=tzungbi@kernel.org \
    --cc=vkoul@kernel.org \
    /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