[PATCH 1/2] drm/panel: Add and fill drm_panel type field

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri Aug 23 01:40:32 UTC 2019


Add a type field to the drm_panel structure to report the panel type,
using DRM_MODE_CONNECTOR_* macros (the values that make sense are LVDS,
eDP, DSI and DPI). This will be used to initialise the corresponding
connector type.

Update all panel drivers to fill the new field.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 drivers/gpu/drm/panel/panel-arm-versatile.c   |  1 +
 .../drm/panel/panel-feiyang-fy07024di26a30d.c |  1 +
 drivers/gpu/drm/panel/panel-ilitek-ili9322.c  |  1 +
 drivers/gpu/drm/panel/panel-ilitek-ili9881c.c |  1 +
 drivers/gpu/drm/panel/panel-innolux-p079zca.c |  1 +
 .../gpu/drm/panel/panel-jdi-lt070me05000.c    |  1 +
 .../drm/panel/panel-kingdisplay-kd097d04.c    |  1 +
 drivers/gpu/drm/panel/panel-lg-lb035q02.c     |  1 +
 drivers/gpu/drm/panel/panel-lg-lg4573.c       |  1 +
 drivers/gpu/drm/panel/panel-lvds.c            |  1 +
 drivers/gpu/drm/panel/panel-nec-nl8048hl11.c  |  1 +
 drivers/gpu/drm/panel/panel-novatek-nt39016.c |  1 +
 .../drm/panel/panel-olimex-lcd-olinuxino.c    |  1 +
 .../gpu/drm/panel/panel-orisetech-otm8009a.c  |  1 +
 .../drm/panel/panel-osd-osd101t2587-53ts.c    |  1 +
 .../drm/panel/panel-panasonic-vvx10f034n00.c  |  1 +
 .../drm/panel/panel-raspberrypi-touchscreen.c |  1 +
 drivers/gpu/drm/panel/panel-raydium-rm67191.c |  1 +
 drivers/gpu/drm/panel/panel-raydium-rm68200.c |  1 +
 .../drm/panel/panel-rocktech-jh057n00900.c    |  1 +
 drivers/gpu/drm/panel/panel-ronbo-rb070d30.c  |  1 +
 drivers/gpu/drm/panel/panel-samsung-ld9040.c  |  1 +
 drivers/gpu/drm/panel/panel-samsung-s6d16d0.c |  1 +
 drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c |  1 +
 .../gpu/drm/panel/panel-samsung-s6e63j0x03.c  |  1 +
 drivers/gpu/drm/panel/panel-samsung-s6e63m0.c |  1 +
 drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c |  1 +
 drivers/gpu/drm/panel/panel-seiko-43wvf1g.c   |  1 +
 .../gpu/drm/panel/panel-sharp-lq101r1sx01.c   |  1 +
 .../gpu/drm/panel/panel-sharp-ls037v7dw01.c   |  1 +
 .../gpu/drm/panel/panel-sharp-ls043t1le01.c   |  1 +
 drivers/gpu/drm/panel/panel-simple.c          | 23 +++++++++++++++++++
 drivers/gpu/drm/panel/panel-sitronix-st7701.c |  1 +
 .../gpu/drm/panel/panel-sitronix-st7789v.c    |  1 +
 drivers/gpu/drm/panel/panel-sony-acx565akm.c  |  1 +
 drivers/gpu/drm/panel/panel-tpo-td028ttec1.c  |  1 +
 drivers/gpu/drm/panel/panel-tpo-td043mtea1.c  |  1 +
 drivers/gpu/drm/panel/panel-tpo-tpg110.c      |  1 +
 drivers/gpu/drm/panel/panel-truly-nt35597.c   |  1 +
 include/drm/drm_panel.h                       |  7 ++++++
 40 files changed, 68 insertions(+)

diff --git a/drivers/gpu/drm/panel/panel-arm-versatile.c b/drivers/gpu/drm/panel/panel-arm-versatile.c
index 5f72c922a04b..5c335fc1632b 100644
--- a/drivers/gpu/drm/panel/panel-arm-versatile.c
+++ b/drivers/gpu/drm/panel/panel-arm-versatile.c
@@ -353,6 +353,7 @@ static int versatile_panel_probe(struct platform_device *pdev)
 	drm_panel_init(&vpanel->panel);
 	vpanel->panel.dev = dev;
 	vpanel->panel.funcs = &versatile_panel_drm_funcs;
+	vpanel->panel.type = DRM_MODE_CONNECTOR_DPI;
 
 	return drm_panel_add(&vpanel->panel);
 }
diff --git a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
index dabf59e0f56f..58894a4bf02c 100644
--- a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
+++ b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
@@ -207,6 +207,7 @@ static int feiyang_dsi_probe(struct mipi_dsi_device *dsi)
 	drm_panel_init(&ctx->panel);
 	ctx->panel.dev = &dsi->dev;
 	ctx->panel.funcs = &feiyang_funcs;
+	ctx->panel.type = DRM_MODE_CONNECTOR_DSI;
 
 	ctx->dvdd = devm_regulator_get(&dsi->dev, "dvdd");
 	if (IS_ERR(ctx->dvdd)) {
diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
index 3c58f63adbf7..10a6f4ab53e2 100644
--- a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
+++ b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
@@ -898,6 +898,7 @@ static int ili9322_probe(struct spi_device *spi)
 	drm_panel_init(&ili->panel);
 	ili->panel.dev = dev;
 	ili->panel.funcs = &ili9322_drm_funcs;
+	ili->panel.type = DRM_MODE_CONNECTOR_DPI;
 
 	return drm_panel_add(&ili->panel);
 }
diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
index 3ad4a46c4e94..360b87ff62a1 100644
--- a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
+++ b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
@@ -436,6 +436,7 @@ static int ili9881c_dsi_probe(struct mipi_dsi_device *dsi)
 	drm_panel_init(&ctx->panel);
 	ctx->panel.dev = &dsi->dev;
 	ctx->panel.funcs = &ili9881c_funcs;
+	ctx->panel.type = DRM_MODE_CONNECTOR_DSI;
 
 	ctx->power = devm_regulator_get(&dsi->dev, "power");
 	if (IS_ERR(ctx->power)) {
diff --git a/drivers/gpu/drm/panel/panel-innolux-p079zca.c b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
index d92d1c98878c..00b24662ebb5 100644
--- a/drivers/gpu/drm/panel/panel-innolux-p079zca.c
+++ b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
@@ -490,6 +490,7 @@ static int innolux_panel_add(struct mipi_dsi_device *dsi,
 	drm_panel_init(&innolux->base);
 	innolux->base.funcs = &innolux_panel_funcs;
 	innolux->base.dev = dev;
+	innolux->base.type = DRM_MODE_CONNECTOR_DSI;
 
 	err = drm_panel_add(&innolux->base);
 	if (err < 0)
diff --git a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
index ff3e89e61e3f..8e6035557297 100644
--- a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
+++ b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
@@ -440,6 +440,7 @@ static int jdi_panel_add(struct jdi_panel *jdi)
 	drm_panel_init(&jdi->base);
 	jdi->base.funcs = &jdi_panel_funcs;
 	jdi->base.dev = &jdi->dsi->dev;
+	jdi->base.type = DRM_MODE_CONNECTOR_DSI;
 
 	ret = drm_panel_add(&jdi->base);
 
diff --git a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
index 3ac04eb8d0fe..930e72bffc8c 100644
--- a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
+++ b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
@@ -394,6 +394,7 @@ static int kingdisplay_panel_add(struct kingdisplay_panel *kingdisplay)
 	drm_panel_init(&kingdisplay->base);
 	kingdisplay->base.funcs = &kingdisplay_panel_funcs;
 	kingdisplay->base.dev = &kingdisplay->link->dev;
+	kingdisplay->base.type = DRM_MODE_CONNECTOR_DSI;
 
 	return drm_panel_add(&kingdisplay->base);
 }
diff --git a/drivers/gpu/drm/panel/panel-lg-lb035q02.c b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
index fc82a525b071..790d44794a10 100644
--- a/drivers/gpu/drm/panel/panel-lg-lb035q02.c
+++ b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
@@ -199,6 +199,7 @@ static int lb035q02_probe(struct spi_device *spi)
 	drm_panel_init(&lcd->panel);
 	lcd->panel.dev = &lcd->spi->dev;
 	lcd->panel.funcs = &lb035q02_funcs;
+	lcd->panel.type = DRM_MODE_CONNECTOR_DPI;
 
 	return drm_panel_add(&lcd->panel);
 }
diff --git a/drivers/gpu/drm/panel/panel-lg-lg4573.c b/drivers/gpu/drm/panel/panel-lg-lg4573.c
index 41bf02d122a1..376d38bf3670 100644
--- a/drivers/gpu/drm/panel/panel-lg-lg4573.c
+++ b/drivers/gpu/drm/panel/panel-lg-lg4573.c
@@ -262,6 +262,7 @@ static int lg4573_probe(struct spi_device *spi)
 	drm_panel_init(&ctx->panel);
 	ctx->panel.dev = &spi->dev;
 	ctx->panel.funcs = &lg4573_drm_funcs;
+	ctx->panel.type = DRM_MODE_CONNECTOR_DPI;
 
 	return drm_panel_add(&ctx->panel);
 }
diff --git a/drivers/gpu/drm/panel/panel-lvds.c b/drivers/gpu/drm/panel/panel-lvds.c
index ad47cc95459e..311ce5067fd7 100644
--- a/drivers/gpu/drm/panel/panel-lvds.c
+++ b/drivers/gpu/drm/panel/panel-lvds.c
@@ -263,6 +263,7 @@ static int panel_lvds_probe(struct platform_device *pdev)
 	drm_panel_init(&lvds->panel);
 	lvds->panel.dev = lvds->dev;
 	lvds->panel.funcs = &panel_lvds_funcs;
+	lvds->panel.type = DRM_MODE_CONNECTOR_LVDS;
 
 	ret = drm_panel_add(&lvds->panel);
 	if (ret < 0)
diff --git a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
index 299b217c83e1..d7d07677879b 100644
--- a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
+++ b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
@@ -208,6 +208,7 @@ static int nl8048_probe(struct spi_device *spi)
 	drm_panel_init(&lcd->panel);
 	lcd->panel.dev = &lcd->spi->dev;
 	lcd->panel.funcs = &nl8048_funcs;
+	lcd->panel.type = DRM_MODE_CONNECTOR_DPI;
 
 	return drm_panel_add(&lcd->panel);
 }
diff --git a/drivers/gpu/drm/panel/panel-novatek-nt39016.c b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
index 2ad1063b068d..fbe549fb1f06 100644
--- a/drivers/gpu/drm/panel/panel-novatek-nt39016.c
+++ b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
@@ -295,6 +295,7 @@ static int nt39016_probe(struct spi_device *spi)
 	drm_panel_init(&panel->drm_panel);
 	panel->drm_panel.dev = dev;
 	panel->drm_panel.funcs = &nt39016_funcs;
+	panel->drm_panel.type = DRM_MODE_CONNECTOR_DPI;
 
 	err = drm_panel_add(&panel->drm_panel);
 	if (err < 0) {
diff --git a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
index 2bae1db3ff34..469b99e547f6 100644
--- a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
+++ b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
@@ -291,6 +291,7 @@ static int lcd_olinuxino_probe(struct i2c_client *client,
 	drm_panel_init(&lcd->panel);
 	lcd->panel.dev = dev;
 	lcd->panel.funcs = &lcd_olinuxino_funcs;
+	lcd->panel.type = DRM_MODE_CONNECTOR_DPI;
 
 	return drm_panel_add(&lcd->panel);
 }
diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
index c7b48df8869a..9a19dd5f70ca 100644
--- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
+++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
@@ -458,6 +458,7 @@ static int otm8009a_probe(struct mipi_dsi_device *dsi)
 	drm_panel_init(&ctx->panel);
 	ctx->panel.dev = dev;
 	ctx->panel.funcs = &otm8009a_drm_funcs;
+	ctx->panel.type = DRM_MODE_CONNECTOR_DSI;
 
 	ctx->bl_dev = devm_backlight_device_register(dev, dev_name(dev),
 						     dsi->host->dev, ctx,
diff --git a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
index e0e20ecff916..f68e40ecef6e 100644
--- a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
+++ b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
@@ -169,6 +169,7 @@ static int osd101t2587_panel_add(struct osd101t2587_panel *osd101t2587)
 	drm_panel_init(&osd101t2587->base);
 	osd101t2587->base.funcs = &osd101t2587_panel_funcs;
 	osd101t2587->base.dev = &osd101t2587->dsi->dev;
+	osd101t2587->base.type = DRM_MODE_CONNECTOR_DSI;
 
 	return drm_panel_add(&osd101t2587->base);
 }
diff --git a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
index 3dff0b3f73c2..5e04bb6d89ce 100644
--- a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
+++ b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
@@ -226,6 +226,7 @@ static int wuxga_nt_panel_add(struct wuxga_nt_panel *wuxga_nt)
 	drm_panel_init(&wuxga_nt->base);
 	wuxga_nt->base.funcs = &wuxga_nt_panel_funcs;
 	wuxga_nt->base.dev = &wuxga_nt->dsi->dev;
+	wuxga_nt->base.type = DRM_MODE_CONNECTOR_DSI;
 
 	ret = drm_panel_add(&wuxga_nt->base);
 	if (ret < 0)
diff --git a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
index b5b14aa059ea..cac074939e2c 100644
--- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
+++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
@@ -428,6 +428,7 @@ static int rpi_touchscreen_probe(struct i2c_client *i2c,
 
 	ts->base.dev = dev;
 	ts->base.funcs = &rpi_touchscreen_funcs;
+	ts->base.type = DRM_MODE_CONNECTOR_DSI;
 
 	/* This appears last, as it's what will unblock the DSI host
 	 * driver's component bind function.
diff --git a/drivers/gpu/drm/panel/panel-raydium-rm67191.c b/drivers/gpu/drm/panel/panel-raydium-rm67191.c
index 6a5d37006103..458b8826fe85 100644
--- a/drivers/gpu/drm/panel/panel-raydium-rm67191.c
+++ b/drivers/gpu/drm/panel/panel-raydium-rm67191.c
@@ -609,6 +609,7 @@ static int rad_panel_probe(struct mipi_dsi_device *dsi)
 	drm_panel_init(&panel->panel);
 	panel->panel.funcs = &rad_panel_funcs;
 	panel->panel.dev = dev;
+	panel->panel.type = DRM_MODE_CONNECTOR_DSI;
 	dev_set_drvdata(dev, panel);
 
 	ret = drm_panel_add(&panel->panel);
diff --git a/drivers/gpu/drm/panel/panel-raydium-rm68200.c b/drivers/gpu/drm/panel/panel-raydium-rm68200.c
index ba889625ad43..ebb6af1ea331 100644
--- a/drivers/gpu/drm/panel/panel-raydium-rm68200.c
+++ b/drivers/gpu/drm/panel/panel-raydium-rm68200.c
@@ -407,6 +407,7 @@ static int rm68200_probe(struct mipi_dsi_device *dsi)
 	drm_panel_init(&ctx->panel);
 	ctx->panel.dev = dev;
 	ctx->panel.funcs = &rm68200_drm_funcs;
+	ctx->panel.type = DRM_MODE_CONNECTOR_DSI;
 
 	drm_panel_add(&ctx->panel);
 
diff --git a/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c b/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c
index b9109922397f..b959d0581c95 100644
--- a/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c
+++ b/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c
@@ -346,6 +346,7 @@ static int jh057n_probe(struct mipi_dsi_device *dsi)
 	drm_panel_init(&ctx->panel);
 	ctx->panel.dev = dev;
 	ctx->panel.funcs = &jh057n_drm_funcs;
+	ctx->panel.type = DRM_MODE_CONNECTOR_DSI;
 
 	drm_panel_add(&ctx->panel);
 
diff --git a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
index 3c15764f0c03..c0f1262e080c 100644
--- a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
+++ b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
@@ -176,6 +176,7 @@ static int rb070d30_panel_dsi_probe(struct mipi_dsi_device *dsi)
 	drm_panel_init(&ctx->panel);
 	ctx->panel.dev = &dsi->dev;
 	ctx->panel.funcs = &rb070d30_panel_funcs;
+	ctx->panel.type = DRM_MODE_CONNECTOR_DSI;
 
 	ctx->gpios.reset = devm_gpiod_get(&dsi->dev, "reset", GPIOD_OUT_LOW);
 	if (IS_ERR(ctx->gpios.reset)) {
diff --git a/drivers/gpu/drm/panel/panel-samsung-ld9040.c b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
index 3be902dcedc0..78e484727661 100644
--- a/drivers/gpu/drm/panel/panel-samsung-ld9040.c
+++ b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
@@ -354,6 +354,7 @@ static int ld9040_probe(struct spi_device *spi)
 	drm_panel_init(&ctx->panel);
 	ctx->panel.dev = dev;
 	ctx->panel.funcs = &ld9040_drm_funcs;
+	ctx->panel.type = DRM_MODE_CONNECTOR_DPI;
 
 	return drm_panel_add(&ctx->panel);
 }
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c b/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
index f75bef24e050..4430c730026c 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
@@ -218,6 +218,7 @@ static int s6d16d0_probe(struct mipi_dsi_device *dsi)
 	drm_panel_init(&s6->panel);
 	s6->panel.dev = dev;
 	s6->panel.funcs = &s6d16d0_drm_funcs;
+	s6->panel.type = DRM_MODE_CONNECTOR_DSI;
 
 	ret = drm_panel_add(&s6->panel);
 	if (ret < 0)
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
index b923de23ed65..8b65ee4dabc7 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
@@ -735,6 +735,7 @@ static int s6e3ha2_probe(struct mipi_dsi_device *dsi)
 	drm_panel_init(&ctx->panel);
 	ctx->panel.dev = dev;
 	ctx->panel.funcs = &s6e3ha2_drm_funcs;
+	ctx->panel.type = DRM_MODE_CONNECTOR_DSI;
 
 	ret = drm_panel_add(&ctx->panel);
 	if (ret < 0)
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
index cd90fa700c49..f0dbcd9eddf6 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
@@ -469,6 +469,7 @@ static int s6e63j0x03_probe(struct mipi_dsi_device *dsi)
 	drm_panel_init(&ctx->panel);
 	ctx->panel.dev = dev;
 	ctx->panel.funcs = &s6e63j0x03_funcs;
+	ctx->panel.type = DRM_MODE_CONNECTOR_DSI;
 
 	ctx->bl_dev = backlight_device_register("s6e63j0x03", dev, ctx,
 						&s6e63j0x03_bl_ops, NULL);
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
index 142d395ea512..2a41ff055244 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
@@ -476,6 +476,7 @@ static int s6e63m0_probe(struct spi_device *spi)
 	drm_panel_init(&ctx->panel);
 	ctx->panel.dev = dev;
 	ctx->panel.funcs = &s6e63m0_drm_funcs;
+	ctx->panel.type = DRM_MODE_CONNECTOR_DPI;
 
 	ret = s6e63m0_backlight_register(ctx);
 	if (ret < 0)
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
index 81858267723a..c1d723296d33 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
@@ -1020,6 +1020,7 @@ static int s6e8aa0_probe(struct mipi_dsi_device *dsi)
 	drm_panel_init(&ctx->panel);
 	ctx->panel.dev = dev;
 	ctx->panel.funcs = &s6e8aa0_drm_funcs;
+	ctx->panel.type = DRM_MODE_CONNECTOR_DSI;
 
 	ret = drm_panel_add(&ctx->panel);
 	if (ret < 0)
diff --git a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
index 18b22b1294fb..0951b9b84dc1 100644
--- a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
+++ b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
@@ -277,6 +277,7 @@ static int seiko_panel_probe(struct device *dev,
 	drm_panel_init(&panel->base);
 	panel->base.dev = dev;
 	panel->base.funcs = &seiko_panel_funcs;
+	panel->base.type = DRM_MODE_CONNECTOR_DPI;
 
 	err = drm_panel_add(&panel->base);
 	if (err < 0)
diff --git a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
index e910b4ad1310..3dbbd3f9ba1a 100644
--- a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
+++ b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
@@ -332,6 +332,7 @@ static int sharp_panel_add(struct sharp_panel *sharp)
 	drm_panel_init(&sharp->base);
 	sharp->base.funcs = &sharp_panel_funcs;
 	sharp->base.dev = &sharp->link1->dev;
+	sharp->base.type = DRM_MODE_CONNECTOR_DSI;
 
 	return drm_panel_add(&sharp->base);
 }
diff --git a/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c b/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
index 46cd9a250129..099a29da7998 100644
--- a/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
+++ b/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
@@ -188,6 +188,7 @@ static int ls037v7dw01_probe(struct platform_device *pdev)
 	drm_panel_init(&lcd->panel);
 	lcd->panel.dev = &pdev->dev;
 	lcd->panel.funcs = &ls037v7dw01_funcs;
+	lcd->panel.type = DRM_MODE_CONNECTOR_DPI;
 
 	return drm_panel_add(&lcd->panel);
 }
diff --git a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
index c39abde9f9f1..1764e4cadea4 100644
--- a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
+++ b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
@@ -267,6 +267,7 @@ static int sharp_nt_panel_add(struct sharp_nt_panel *sharp_nt)
 	drm_panel_init(&sharp_nt->base);
 	sharp_nt->base.funcs = &sharp_nt_panel_funcs;
 	sharp_nt->base.dev = &sharp_nt->dsi->dev;
+	sharp_nt->base.type = DRM_MODE_CONNECTOR_DSI;
 
 	return drm_panel_add(&sharp_nt->base);
 }
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 28fa6ba7b767..6d5d0c51e97e 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -94,6 +94,7 @@ struct panel_desc {
 
 	u32 bus_format;
 	u32 bus_flags;
+	unsigned int type;
 };
 
 struct panel_simple {
@@ -467,6 +468,7 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc)
 	drm_panel_init(&panel->base);
 	panel->base.dev = dev;
 	panel->base.funcs = &panel_simple_funcs;
+	panel->base.type = desc->type ? desc->type : DRM_MODE_CONNECTOR_DPI;
 
 	err = drm_panel_add(&panel->base);
 	if (err < 0)
@@ -833,6 +835,7 @@ static const struct panel_desc auo_g133han01 = {
 		.unprepare = 1000,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing auo_g185han01_timings = {
@@ -862,6 +865,7 @@ static const struct panel_desc auo_g185han01 = {
 		.unprepare = 1000,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing auo_p320hvn03_timings = {
@@ -890,6 +894,7 @@ static const struct panel_desc auo_p320hvn03 = {
 		.unprepare = 500,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode auo_t215hvn01_mode = {
@@ -1205,6 +1210,7 @@ static const struct panel_desc dlc_dlc0700yzg_1 = {
 		.disable = 200,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing dlc_dlc1010gig_timing = {
@@ -1235,6 +1241,7 @@ static const struct panel_desc dlc_dlc1010gig = {
 		.unprepare = 60,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode edt_et035012dm6_mode = {
@@ -1501,6 +1508,7 @@ static const struct panel_desc hannstar_hsd070pww1 = {
 		.height = 94,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing hannstar_hsd100pxn1_timing = {
@@ -1525,6 +1533,7 @@ static const struct panel_desc hannstar_hsd100pxn1 = {
 		.height = 152,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode hitachi_tx23d38vm0caa_mode = {
@@ -1631,6 +1640,7 @@ static const struct panel_desc innolux_g070y2_l01 = {
 		.unprepare = 800,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing innolux_g101ice_l01_timing = {
@@ -1659,6 +1669,7 @@ static const struct panel_desc innolux_g101ice_l01 = {
 		.disable = 200,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing innolux_g121i1_l01_timing = {
@@ -1686,6 +1697,7 @@ static const struct panel_desc innolux_g121i1_l01 = {
 		.disable = 20,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode innolux_g121x1_l03_mode = {
@@ -1869,6 +1881,7 @@ static const struct panel_desc koe_tx31d200vm0baa = {
 		.height = 109,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing kyo_tcg121xglp_timing = {
@@ -1893,6 +1906,7 @@ static const struct panel_desc kyo_tcg121xglp = {
 		.height = 184,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode lemaker_bl035_rgb_002_mode = {
@@ -1941,6 +1955,7 @@ static const struct panel_desc lg_lb070wv8 = {
 		.height = 91,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode lg_lp079qx1_sp0v_mode = {
@@ -2063,6 +2078,7 @@ static const struct panel_desc mitsubishi_aa070mc01 = {
 		.disable = 400,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 	.bus_flags = DRM_BUS_FLAG_DE_HIGH,
 };
 
@@ -2091,6 +2107,7 @@ static const struct panel_desc nec_nl12880bc20_05 = {
 		.disable = 50,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode nec_nl4827hc19_05b_mode = {
@@ -2193,6 +2210,7 @@ static const struct panel_desc nlt_nl192108ac18_02d = {
 		.unprepare = 500,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode nvd_9128_mode = {
@@ -2216,6 +2234,7 @@ static const struct panel_desc nvd_9128 = {
 		.height = 88,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing okaya_rs800480t_7x0gp_timing = {
@@ -2628,6 +2647,7 @@ static const struct panel_desc sharp_lq101k1ly04 = {
 		.height = 136,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing sharp_lq123p1jx31_timing = {
@@ -2807,6 +2827,7 @@ static const struct panel_desc tianma_tm070jdhg30 = {
 		.height = 95,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing tianma_tm070rvhg71_timing = {
@@ -2831,6 +2852,7 @@ static const struct panel_desc tianma_tm070rvhg71 = {
 		.height = 86,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode ti_nspire_cx_lcd_mode[] = {
@@ -2983,6 +3005,7 @@ static const struct panel_desc urt_umsh_8596md_lvds = {
 		.height = 91,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct panel_desc urt_umsh_8596md_parallel = {
diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7701.c b/drivers/gpu/drm/panel/panel-sitronix-st7701.c
index 09c5d9a6f9fa..863de44b1389 100644
--- a/drivers/gpu/drm/panel/panel-sitronix-st7701.c
+++ b/drivers/gpu/drm/panel/panel-sitronix-st7701.c
@@ -383,6 +383,7 @@ static int st7701_dsi_probe(struct mipi_dsi_device *dsi)
 	st7701->sleep_delay = 120 + desc->panel_sleep_delay;
 	st7701->panel.funcs = &st7701_funcs;
 	st7701->panel.dev = &dsi->dev;
+	st7701->panel.type = DRM_MODE_CONNECTOR_DSI;
 
 	ret = drm_panel_add(&st7701->panel);
 	if (ret < 0)
diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
index 5e3e92ea9ea6..eb5f01629d92 100644
--- a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
+++ b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
@@ -383,6 +383,7 @@ static int st7789v_probe(struct spi_device *spi)
 
 	ctx->panel.dev = &spi->dev;
 	ctx->panel.funcs = &st7789v_drm_funcs;
+	ctx->panel.type = DRM_MODE_CONNECTOR_DPI;
 
 	ctx->power = devm_regulator_get(&spi->dev, "power");
 	if (IS_ERR(ctx->power))
diff --git a/drivers/gpu/drm/panel/panel-sony-acx565akm.c b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
index 305259b58767..1cbcbd0e213a 100644
--- a/drivers/gpu/drm/panel/panel-sony-acx565akm.c
+++ b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
@@ -651,6 +651,7 @@ static int acx565akm_probe(struct spi_device *spi)
 	drm_panel_init(&lcd->panel);
 	lcd->panel.dev = &lcd->spi->dev;
 	lcd->panel.funcs = &acx565akm_funcs;
+	lcd->panel.type = DRM_MODE_CONNECTOR_DPI;
 
 	ret = drm_panel_add(&lcd->panel);
 	if (ret < 0) {
diff --git a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
index d7b2e34626ef..f643e55ef90d 100644
--- a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
+++ b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
@@ -350,6 +350,7 @@ static int td028ttec1_probe(struct spi_device *spi)
 	drm_panel_init(&lcd->panel);
 	lcd->panel.dev = &lcd->spi->dev;
 	lcd->panel.funcs = &td028ttec1_funcs;
+	lcd->panel.type = DRM_MODE_CONNECTOR_DPI;
 
 	return drm_panel_add(&lcd->panel);
 }
diff --git a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
index 3b4f30c0fdae..885ea1a8c1f6 100644
--- a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
+++ b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
@@ -461,6 +461,7 @@ static int td043mtea1_probe(struct spi_device *spi)
 	drm_panel_init(&lcd->panel);
 	lcd->panel.dev = &lcd->spi->dev;
 	lcd->panel.funcs = &td043mtea1_funcs;
+	lcd->panel.type = DRM_MODE_CONNECTOR_DPI;
 
 	ret = drm_panel_add(&lcd->panel);
 	if (ret < 0) {
diff --git a/drivers/gpu/drm/panel/panel-tpo-tpg110.c b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
index 71591e5f5938..73ec6ff7eefb 100644
--- a/drivers/gpu/drm/panel/panel-tpo-tpg110.c
+++ b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
@@ -460,6 +460,7 @@ static int tpg110_probe(struct spi_device *spi)
 	drm_panel_init(&tpg->panel);
 	tpg->panel.dev = dev;
 	tpg->panel.funcs = &tpg110_drm_funcs;
+	tpg->panel.type = DRM_MODE_CONNECTOR_DPI;
 	spi_set_drvdata(spi, tpg);
 
 	return drm_panel_add(&tpg->panel);
diff --git a/drivers/gpu/drm/panel/panel-truly-nt35597.c b/drivers/gpu/drm/panel/panel-truly-nt35597.c
index 77e1311b7c69..aa2012fb7393 100644
--- a/drivers/gpu/drm/panel/panel-truly-nt35597.c
+++ b/drivers/gpu/drm/panel/panel-truly-nt35597.c
@@ -521,6 +521,7 @@ static int truly_nt35597_panel_add(struct truly_nt35597 *ctx)
 	drm_panel_init(&ctx->panel);
 	ctx->panel.dev = dev;
 	ctx->panel.funcs = &truly_nt35597_drm_funcs;
+	ctx->panel.type = DRM_MODE_CONNECTOR_DSI;
 	drm_panel_add(&ctx->panel);
 
 	return 0;
diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
index 624bd15ecfab..5899a7d6559c 100644
--- a/include/drm/drm_panel.h
+++ b/include/drm/drm_panel.h
@@ -139,6 +139,13 @@ struct drm_panel {
 	 */
 	const struct drm_panel_funcs *funcs;
 
+	/**
+	 * @type:
+	 *
+	 * Type of the panel as a DRM_MODE_CONNECTOR_* value.
+	 */
+	int type;
+
 	/**
 	 * @list:
 	 *
-- 
Regards,

Laurent Pinchart



More information about the dri-devel mailing list