Re: [PATCH v5 1/8] usb: typec: Add default HPD device when register DisplayPort altmode

Dmitry Baryshkov
2025-10-11T16:51:48Z

On Sat, Oct 11, 2025 at 11:32:26AM +0800, Chaoyi Chen wrote:
> From: Chaoyi Chen <chaoyi.chen@rock-chips.com>
>
> 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 <chaoyi.chen@rock-chips.com>
> ---
>
> 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

> + 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)

--
With best wishes
Dmitry