diff -drupN a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c --- a/drivers/extcon/extcon.c 2018-08-06 17:23:04.000000000 +0300 +++ b/drivers/extcon/extcon.c 2022-06-12 05:28:14.000000000 +0300 @@ -172,6 +172,21 @@ struct __extcon_info { .id = EXTCON_DISP_HMD, .name = "HMD", }, + [EXTCON_DISP_CVBS] = { + .type = EXTCON_TYPE_DISP, + .id = EXTCON_DISP_CVBS, + .name = "CVBS", + }, + [EXTCON_DISP_TVD] = { + .type = EXTCON_TYPE_DISP, + .id = EXTCON_DISP_TVD, + .name = "TVD", + }, + [EXTCON_DISP_EDP] = { + .type = EXTCON_TYPE_DISP, + .id = EXTCON_DISP_EDP, + .name = "EDP", + }, /* Miscellaneous external connector */ [EXTCON_DOCK] = { @@ -1056,14 +1071,18 @@ int extcon_dev_register(struct extcon_de edev->dev.class = extcon_class; edev->dev.release = extcon_dev_release; - edev->name = dev_name(edev->dev.parent); if (IS_ERR_OR_NULL(edev->name)) { - dev_err(&edev->dev, - "extcon device name is null\n"); + dev_set_name(&edev->dev, "extcon%lu", + (unsigned long)atomic_inc_return(&edev_no)); + edev->name = dev_name(edev->dev.parent); + } else { + dev_set_name(&edev->dev, edev->name); + } + + if (IS_ERR_OR_NULL(edev->name)) { + dev_err(&edev->dev, "extcon device name is null\n"); return -EINVAL; } - dev_set_name(&edev->dev, "extcon%lu", - (unsigned long)atomic_inc_return(&edev_no)); if (edev->max_supported) { char buf[10];