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 v3 08/17] drm/bridge: dp_typec: Add "no-hpd" support
Date: Mon, 19 Aug 2024 15:38:22 -0700 [thread overview]
Message-ID: <20240819223834.2049862-9-swboyd@chromium.org> (raw)
In-Reply-To: <20240819223834.2049862-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 3d33f7936cbc..adafda4f128f 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 {
@@ -354,6 +355,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);
}
@@ -662,6 +665,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)
@@ -670,6 +674,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)
@@ -679,8 +686,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
next prev parent reply other threads:[~2024-08-19 22:38 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-19 22:38 [PATCH v3 00/17] platform/chrome: Add DT USB/DP muxing/topology support Stephen Boyd
2024-08-19 22:38 ` [PATCH v3 01/17] drm/atomic-helper: Introduce lane remapping support to bridges Stephen Boyd
2024-08-19 22:38 ` [PATCH v3 02/17] drm/bridge: Verify lane assignment is going to work during atomic_check Stephen Boyd
2024-08-20 10:09 ` Andy Shevchenko
2024-08-20 17:12 ` Stephen Boyd
2024-08-20 17:17 ` Andy Shevchenko
2024-08-20 17:24 ` Stephen Boyd
2024-08-20 17:29 ` Andy Shevchenko
2024-08-20 17:33 ` Stephen Boyd
2024-08-19 22:38 ` [PATCH v3 03/17] usb: typec: Stub out typec_switch APIs when CONFIG_TYPEC=n Stephen Boyd
2024-08-20 10:12 ` Andy Shevchenko
2024-08-19 22:38 ` [PATCH v3 04/17] usb: typec: Add device managed typec_mux_register() Stephen Boyd
2024-08-20 10:14 ` Andy Shevchenko
2024-08-19 22:38 ` [PATCH v3 05/17] usb: typec: Add device managed typec_switch_register() Stephen Boyd
2024-08-20 10:16 ` Andy Shevchenko
2024-08-20 17:01 ` Stephen Boyd
2024-08-20 17:16 ` Andy Shevchenko
2024-08-20 17:19 ` Stephen Boyd
2024-08-20 17:23 ` Stephen Boyd
2024-08-20 17:27 ` Andy Shevchenko
2024-08-19 22:38 ` [PATCH v3 06/17] drm/bridge: aux-hpd: Support USB Type-C DP altmodes via DRM lane assignment Stephen Boyd
2024-08-19 22:38 ` [PATCH v3 07/17] drm/bridge: dp_typec: Support USB Type-C orientation Stephen Boyd
2024-08-20 8:02 ` kernel test robot
2024-08-19 22:38 ` Stephen Boyd [this message]
2024-08-19 22:38 ` [PATCH v3 09/17] drm/bridge: dp_typec: Allow users to hook hpd notify path Stephen Boyd
2024-08-20 10:06 ` kernel test robot
2024-08-19 22:38 ` [PATCH v3 10/17] device property: Add remote endpoint to devcon matcher Stephen Boyd
2024-08-20 10:20 ` Andy Shevchenko
2024-08-20 17:34 ` Stephen Boyd
2024-08-19 22:38 ` [PATCH v3 11/17] dt-bindings: usb-switch: Extract endpoints to defs Stephen Boyd
2024-08-21 0:33 ` Rob Herring
2024-08-19 22:38 ` [PATCH v3 12/17] dt-bindings: usb-switch: Extend for DisplayPort altmode Stephen Boyd
2024-08-21 0:33 ` Rob Herring (Arm)
2024-08-19 22:38 ` [PATCH v3 13/17] dt-bindings: Move google,cros-ec-typec binding to usb Stephen Boyd
2024-08-21 0:33 ` Rob Herring (Arm)
2024-08-22 13:39 ` Lee Jones
2024-08-22 14:34 ` Tzung-Bi Shih
2024-08-23 20:47 ` Stephen Boyd
2024-08-19 22:38 ` [PATCH v3 14/17] dt-bindings: usb: Add ports to google,cros-ec-typec for DP altmode Stephen Boyd
2024-08-21 0:34 ` Rob Herring (Arm)
2024-08-19 22:38 ` [PATCH v3 15/17] platform/chrome: cros_ec_typec: Add support for signaling DP HPD via drm_bridge Stephen Boyd
2024-08-22 14:35 ` Tzung-Bi Shih
2024-08-23 20:47 ` Stephen Boyd
2024-08-27 3:25 ` Tzung-Bi Shih
2024-08-19 22:38 ` [PATCH v3 16/17] platform/chrome: cros_ec_typec: Support DP muxing Stephen Boyd
2024-08-22 14:37 ` Tzung-Bi Shih
2024-08-23 20:44 ` Stephen Boyd
2024-08-26 9:58 ` Andy Shevchenko
2024-08-19 22:38 ` [PATCH v3 17/17] platform/chrome: cros_ec_typec: Handle lack of HPD information 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=20240819223834.2049862-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;
as well as URLs for NNTP newsgroup(s).