On 10/12/2025 12:51 AM, Dmitry Baryshkov wrote:
On Sat, Oct 11, 2025 at 11:32:26AM +0800, Chaoyi Chen wrote:
From: Chaoyi Chen <[email protected]>
Add default DRM AUX HPD bridge device when register DisplayPort
altmode. That makes it redundant for each Type-C driver to implement
a similar registration process in embedded scenarios.
Signed-off-by: Chaoyi Chen <[email protected]>
---
Changes in v5:
- Remove the calls related to `drm_aux_hpd_bridge_notify()`.
- Place the helper functions in the same compilation unit.
- Add more comments about parent device.
drivers/usb/typec/class.c | 26 ++++++++++++++++++++++++++
include/linux/usb/typec_altmode.h | 2 ++
2 files changed, 28 insertions(+)
+static void dp_altmode_hpd_device_register(struct typec_altmode *alt)
+{
+ if (alt->svid != USB_TYPEC_DP_SID)
+ return;
+
+ /*
+ * alt->dev.parent->parent : USB-C controller device
+ * alt->dev.parent : USB-C connector device
+ */
+ alt->hpd_dev = drm_dp_hpd_bridge_register(alt->dev.parent->parent,
+
to_of_node(alt->dev.parent->fwnode));
You can not do this, unless you make TYPEC core:
depends on DRM || DRM=n
select DRM_AUX_HPD_BRIDGE if DRM_BRIDGE && OF
You are right, Kconfig should be configured by the actual caller. Will fix in
v6.
+ if (IS_ERR(alt->hpd_dev))
+ alt->hpd_dev = NULL;
+}
+
static struct typec_altmode *
typec_register_altmode(struct device *parent,
const struct typec_altmode_desc *desc)
--
Best,
Chaoyi