[PATCH v5 1/8] usb: typec: Add default HPD device when register DisplayPort altmode
Chaoyi Chen
chaoyi.chen at rock-chips.com
Sun Oct 12 18:31:03 PDT 2025
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 at 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 at 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
More information about the linux-arm-kernel
mailing list