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