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

Chaoyi Chen
2025-10-13T03:53:46Z

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

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