All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/panel: remove return value of function drm_panel_add
@ 2020-08-01 12:02 ` Bernard Zhao
  0 siblings, 0 replies; 18+ messages in thread
From: Bernard Zhao @ 2020-08-01 12:02 UTC (permalink / raw)
  To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	Thierry Reding, Sam Ravnborg, David Airlie, Daniel Vetter,
	Linus Walleij, Jerry Han, Icenowy Zheng, Jagan Teki,
	Laurent Pinchart, Stefan Mavrodiev, Robert Chiras, dri-devel,
	linux-kernel
  Cc: opensource.kernel, Bernard Zhao

The function "int drm_panel_add(struct drm_panel *panel)"
always returns 0, this return value is meaningless.
Also, there is no need to check return value which calls
"drm_panel_add and", error branch code will never run.

Signed-off-by: Bernard Zhao <bernard@vivo.com>
---
 drivers/gpu/drm/drm_panel.c                              | 4 +---
 drivers/gpu/drm/panel/panel-arm-versatile.c              | 4 +++-
 drivers/gpu/drm/panel/panel-boe-himax8279d.c             | 4 +++-
 drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c           | 4 +++-
 drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c        | 4 +---
 drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c    | 4 +---
 drivers/gpu/drm/panel/panel-ilitek-ili9322.c             | 4 +++-
 drivers/gpu/drm/panel/panel-ilitek-ili9881c.c            | 4 +---
 drivers/gpu/drm/panel/panel-innolux-p079zca.c            | 4 +---
 drivers/gpu/drm/panel/panel-jdi-lt070me05000.c           | 4 ++--
 drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c       | 4 +++-
 drivers/gpu/drm/panel/panel-lg-lb035q02.c                | 4 +++-
 drivers/gpu/drm/panel/panel-lg-lg4573.c                  | 4 +++-
 drivers/gpu/drm/panel/panel-lvds.c                       | 4 +---
 drivers/gpu/drm/panel/panel-nec-nl8048hl11.c             | 4 +++-
 drivers/gpu/drm/panel/panel-novatek-nt35510.c            | 4 +---
 drivers/gpu/drm/panel/panel-novatek-nt39016.c            | 6 +-----
 drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c       | 4 +++-
 drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c       | 4 +++-
 drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c     | 4 +++-
 drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c    | 4 +---
 drivers/gpu/drm/panel/panel-raydium-rm67191.c            | 4 +---
 drivers/gpu/drm/panel/panel-ronbo-rb070d30.c             | 4 +---
 drivers/gpu/drm/panel/panel-samsung-ld9040.c             | 4 +++-
 drivers/gpu/drm/panel/panel-samsung-s6d16d0.c            | 4 +---
 drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c            | 4 +---
 drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c         | 4 +---
 drivers/gpu/drm/panel/panel-samsung-s6e63m0.c            | 4 +++-
 drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c | 6 +-----
 drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c            | 4 +---
 drivers/gpu/drm/panel/panel-seiko-43wvf1g.c              | 4 +---
 drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c          | 4 +++-
 drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c          | 4 +++-
 drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c          | 4 +++-
 drivers/gpu/drm/panel/panel-simple.c                     | 4 +---
 drivers/gpu/drm/panel/panel-sitronix-st7701.c            | 4 +---
 drivers/gpu/drm/panel/panel-sitronix-st7789v.c           | 4 +---
 drivers/gpu/drm/panel/panel-sony-acx424akp.c             | 4 +---
 drivers/gpu/drm/panel/panel-sony-acx565akm.c             | 7 +------
 drivers/gpu/drm/panel/panel-tpo-td028ttec1.c             | 4 +++-
 drivers/gpu/drm/panel/panel-tpo-td043mtea1.c             | 6 +-----
 drivers/gpu/drm/panel/panel-tpo-tpg110.c                 | 4 +++-
 include/drm/drm_panel.h                                  | 2 +-
 43 files changed, 80 insertions(+), 99 deletions(-)

diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
index 8c7bac85a793..fab41f63ad12 100644
--- a/drivers/gpu/drm/drm_panel.c
+++ b/drivers/gpu/drm/drm_panel.c
@@ -73,13 +73,11 @@ EXPORT_SYMBOL(drm_panel_init);
  *
  * Return: 0 on success or a negative error code on failure.
  */
-int drm_panel_add(struct drm_panel *panel)
+void drm_panel_add(struct drm_panel *panel)
 {
 	mutex_lock(&panel_lock);
 	list_add_tail(&panel->list, &panel_list);
 	mutex_unlock(&panel_lock);
-
-	return 0;
 }
 EXPORT_SYMBOL(drm_panel_add);
 
diff --git a/drivers/gpu/drm/panel/panel-arm-versatile.c b/drivers/gpu/drm/panel/panel-arm-versatile.c
index 41444a73c980..5aaee5414c40 100644
--- a/drivers/gpu/drm/panel/panel-arm-versatile.c
+++ b/drivers/gpu/drm/panel/panel-arm-versatile.c
@@ -353,7 +353,9 @@ static int versatile_panel_probe(struct platform_device *pdev)
 	drm_panel_init(&vpanel->panel, dev, &versatile_panel_drm_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	return drm_panel_add(&vpanel->panel);
+	drm_panel_add(&vpanel->panel);
+
+	return 0;
 }
 
 static const struct of_device_id versatile_panel_match[] = {
diff --git a/drivers/gpu/drm/panel/panel-boe-himax8279d.c b/drivers/gpu/drm/panel/panel-boe-himax8279d.c
index 74d58ee7d04c..e0630ce04147 100644
--- a/drivers/gpu/drm/panel/panel-boe-himax8279d.c
+++ b/drivers/gpu/drm/panel/panel-boe-himax8279d.c
@@ -896,7 +896,9 @@ static int panel_add(struct panel_info *pinfo)
 	if (ret)
 		return ret;
 
-	return drm_panel_add(&pinfo->base);
+	drm_panel_add(&pinfo->base);
+
+	return 0;
 }
 
 static int panel_probe(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
index 2649469070aa..b9379ad92546 100644
--- a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
+++ b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
@@ -792,7 +792,9 @@ static int boe_panel_add(struct boe_panel *boe)
 	boe->base.funcs = &boe_panel_funcs;
 	boe->base.dev = &boe->dsi->dev;
 
-	return drm_panel_add(&boe->base);
+	drm_panel_add(&boe->base);
+
+	return 0;
 }
 
 static int boe_panel_probe(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c b/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c
index fddbfddf6566..7f2eb54e4254 100644
--- a/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c
+++ b/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c
@@ -478,9 +478,7 @@ static int k101_im2ba02_dsi_probe(struct mipi_dsi_device *dsi)
 	if (ret)
 		return ret;
 
-	ret = drm_panel_add(&ctx->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&ctx->panel);
 
 	dsi->mode_flags = MIPI_DSI_MODE_VIDEO;
 	dsi->format = MIPI_DSI_FMT_RGB888;
diff --git a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
index 95b789ab9d29..2c168a405928 100644
--- a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
+++ b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
@@ -225,9 +225,7 @@ static int feiyang_dsi_probe(struct mipi_dsi_device *dsi)
 	if (ret)
 		return ret;
 
-	ret = drm_panel_add(&ctx->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&ctx->panel);
 
 	dsi->mode_flags = MIPI_DSI_MODE_VIDEO_BURST;
 	dsi->format = MIPI_DSI_FMT_RGB888;
diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
index 873b1c7059bd..4a41d8734cc7 100644
--- a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
+++ b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
@@ -899,7 +899,9 @@ static int ili9322_probe(struct spi_device *spi)
 	drm_panel_init(&ili->panel, dev, &ili9322_drm_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	return drm_panel_add(&ili->panel);
+	drm_panel_add(&ili->panel);
+
+	return 0;
 }
 
 static int ili9322_remove(struct spi_device *spi)
diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
index f54077c216a3..52fd6f3d4452 100644
--- a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
+++ b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
@@ -447,9 +447,7 @@ static int ili9881c_dsi_probe(struct mipi_dsi_device *dsi)
 	if (ret)
 		return ret;
 
-	ret = drm_panel_add(&ctx->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&ctx->panel);
 
 	dsi->mode_flags = MIPI_DSI_MODE_VIDEO_SYNC_PULSE;
 	dsi->format = MIPI_DSI_FMT_RGB888;
diff --git a/drivers/gpu/drm/panel/panel-innolux-p079zca.c b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
index 7419f1f0acee..cc3e07b61a6c 100644
--- a/drivers/gpu/drm/panel/panel-innolux-p079zca.c
+++ b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
@@ -477,9 +477,7 @@ static int innolux_panel_add(struct mipi_dsi_device *dsi,
 	if (err)
 		return err;
 
-	err = drm_panel_add(&innolux->base);
-	if (err < 0)
-		return err;
+	drm_panel_add(&innolux->base);
 
 	mipi_dsi_set_drvdata(dsi, innolux);
 	innolux->link = dsi;
diff --git a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
index 4bfd8c877c8e..4fc2185575a7 100644
--- a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
+++ b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
@@ -441,9 +441,9 @@ static int jdi_panel_add(struct jdi_panel *jdi)
 	drm_panel_init(&jdi->base, &jdi->dsi->dev, &jdi_panel_funcs,
 		       DRM_MODE_CONNECTOR_DSI);
 
-	ret = drm_panel_add(&jdi->base);
+	drm_panel_add(&jdi->base);
 
-	return ret;
+	return 0;
 }
 
 static void jdi_panel_del(struct jdi_panel *jdi)
diff --git a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
index bac1a2a06c92..c75790f95461 100644
--- a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
+++ b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
@@ -383,7 +383,9 @@ static int kingdisplay_panel_add(struct kingdisplay_panel *kingdisplay)
 	if (err)
 		return err;
 
-	return drm_panel_add(&kingdisplay->base);
+	drm_panel_add(&kingdisplay->base);
+
+	return 0;
 }
 
 static void kingdisplay_panel_del(struct kingdisplay_panel *kingdisplay)
diff --git a/drivers/gpu/drm/panel/panel-lg-lb035q02.c b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
index e90efeaba4ad..8cb403ed2d5f 100644
--- a/drivers/gpu/drm/panel/panel-lg-lb035q02.c
+++ b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
@@ -199,7 +199,9 @@ static int lb035q02_probe(struct spi_device *spi)
 	drm_panel_init(&lcd->panel, &lcd->spi->dev, &lb035q02_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	return drm_panel_add(&lcd->panel);
+	drm_panel_add(&lcd->panel);
+
+	return 0;
 }
 
 static int lb035q02_remove(struct spi_device *spi)
diff --git a/drivers/gpu/drm/panel/panel-lg-lg4573.c b/drivers/gpu/drm/panel/panel-lg-lg4573.c
index 5907f2503755..02e8e593ba17 100644
--- a/drivers/gpu/drm/panel/panel-lg-lg4573.c
+++ b/drivers/gpu/drm/panel/panel-lg-lg4573.c
@@ -262,7 +262,9 @@ static int lg4573_probe(struct spi_device *spi)
 	drm_panel_init(&ctx->panel, &spi->dev, &lg4573_drm_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	return drm_panel_add(&ctx->panel);
+	drm_panel_add(&ctx->panel);
+
+	return 0;
 }
 
 static int lg4573_remove(struct spi_device *spi)
diff --git a/drivers/gpu/drm/panel/panel-lvds.c b/drivers/gpu/drm/panel/panel-lvds.c
index 5ce3f4a2b7a1..41305c3dcf31 100644
--- a/drivers/gpu/drm/panel/panel-lvds.c
+++ b/drivers/gpu/drm/panel/panel-lvds.c
@@ -227,9 +227,7 @@ static int panel_lvds_probe(struct platform_device *pdev)
 	if (ret)
 		return ret;
 
-	ret = drm_panel_add(&lvds->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&lvds->panel);
 
 	dev_set_drvdata(lvds->dev, lvds);
 	return 0;
diff --git a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
index c4f83f6384e1..8217cb9a0658 100644
--- a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
+++ b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
@@ -208,7 +208,9 @@ static int nl8048_probe(struct spi_device *spi)
 	drm_panel_init(&lcd->panel, &lcd->spi->dev, &nl8048_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	return drm_panel_add(&lcd->panel);
+	drm_panel_add(&lcd->panel);
+
+	return 0;
 }
 
 static int nl8048_remove(struct spi_device *spi)
diff --git a/drivers/gpu/drm/panel/panel-novatek-nt35510.c b/drivers/gpu/drm/panel/panel-novatek-nt35510.c
index 4a8fa908a2cf..9a701a30fe04 100644
--- a/drivers/gpu/drm/panel/panel-novatek-nt35510.c
+++ b/drivers/gpu/drm/panel/panel-novatek-nt35510.c
@@ -956,9 +956,7 @@ static int nt35510_probe(struct mipi_dsi_device *dsi)
 		nt->panel.backlight = bl;
 	}
 
-	ret = drm_panel_add(&nt->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&nt->panel);
 
 	ret = mipi_dsi_attach(dsi);
 	if (ret < 0)
diff --git a/drivers/gpu/drm/panel/panel-novatek-nt39016.c b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
index 05cae8d62d56..9957b846bcff 100644
--- a/drivers/gpu/drm/panel/panel-novatek-nt39016.c
+++ b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
@@ -303,11 +303,7 @@ static int nt39016_probe(struct spi_device *spi)
 	drm_panel_init(&panel->drm_panel, dev, &nt39016_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	err = drm_panel_add(&panel->drm_panel);
-	if (err < 0) {
-		dev_err(dev, "Failed to register panel");
-		return err;
-	}
+	drm_panel_add(&panel->drm_panel);
 
 	return 0;
 }
diff --git a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
index 09deb99981a4..2edda548fffd 100644
--- a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
+++ b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
@@ -284,7 +284,9 @@ static int lcd_olinuxino_probe(struct i2c_client *client,
 	if (ret)
 		return ret;
 
-	return drm_panel_add(&lcd->panel);
+	drm_panel_add(&lcd->panel);
+
+	return 0;
 }
 
 static int lcd_olinuxino_remove(struct i2c_client *client)
diff --git a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
index 3a0229d60095..4fbf12ee858e 100644
--- a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
+++ b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
@@ -165,7 +165,9 @@ static int osd101t2587_panel_add(struct osd101t2587_panel *osd101t2587)
 	if (ret)
 		return ret;
 
-	return drm_panel_add(&osd101t2587->base);
+	drm_panel_add(&osd101t2587->base);
+
+	return 0;
 }
 
 static int osd101t2587_panel_probe(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
index 69693451462e..368722d98faf 100644
--- a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
+++ b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
@@ -207,7 +207,9 @@ static int wuxga_nt_panel_add(struct wuxga_nt_panel *wuxga_nt)
 	if (ret)
 		return ret;
 
-	return drm_panel_add(&wuxga_nt->base);
+	drm_panel_add(&wuxga_nt->base);
+
+	return 0;
 }
 
 static void wuxga_nt_panel_del(struct wuxga_nt_panel *wuxga_nt)
diff --git a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
index 8f078b7dd89e..25112e5b353b 100644
--- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
+++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
@@ -429,9 +429,7 @@ static int rpi_touchscreen_probe(struct i2c_client *i2c,
 	/* This appears last, as it's what will unblock the DSI host
 	 * driver's component bind function.
 	 */
-	ret = drm_panel_add(&ts->base);
-	if (ret)
-		return ret;
+	drm_panel_add(&ts->base);
 
 	return 0;
 
diff --git a/drivers/gpu/drm/panel/panel-raydium-rm67191.c b/drivers/gpu/drm/panel/panel-raydium-rm67191.c
index 313637d53d28..055201534bf5 100644
--- a/drivers/gpu/drm/panel/panel-raydium-rm67191.c
+++ b/drivers/gpu/drm/panel/panel-raydium-rm67191.c
@@ -610,9 +610,7 @@ static int rad_panel_probe(struct mipi_dsi_device *dsi)
 		       DRM_MODE_CONNECTOR_DSI);
 	dev_set_drvdata(dev, panel);
 
-	ret = drm_panel_add(&panel->panel);
-	if (ret)
-		return ret;
+	drm_panel_add(&panel->panel);
 
 	ret = mipi_dsi_attach(dsi);
 	if (ret)
diff --git a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
index ef18559e237e..6298051c7244 100644
--- a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
+++ b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
@@ -201,9 +201,7 @@ static int rb070d30_panel_dsi_probe(struct mipi_dsi_device *dsi)
 	if (ret)
 		return ret;
 
-	ret = drm_panel_add(&ctx->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&ctx->panel);
 
 	dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_LPM;
 	dsi->format = MIPI_DSI_FMT_RGB888;
diff --git a/drivers/gpu/drm/panel/panel-samsung-ld9040.c b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
index 9bb2e8c7934a..358168ed8355 100644
--- a/drivers/gpu/drm/panel/panel-samsung-ld9040.c
+++ b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
@@ -354,7 +354,9 @@ static int ld9040_probe(struct spi_device *spi)
 	drm_panel_init(&ctx->panel, dev, &ld9040_drm_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	return drm_panel_add(&ctx->panel);
+	drm_panel_add(&ctx->panel);
+
+	return 0;
 }
 
 static int ld9040_remove(struct spi_device *spi)
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c b/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
index 2150043dcf6b..72c26a63dbe5 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
@@ -218,9 +218,7 @@ static int s6d16d0_probe(struct mipi_dsi_device *dsi)
 	drm_panel_init(&s6->panel, dev, &s6d16d0_drm_funcs,
 		       DRM_MODE_CONNECTOR_DSI);
 
-	ret = drm_panel_add(&s6->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&s6->panel);
 
 	ret = mipi_dsi_attach(dsi);
 	if (ret < 0)
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
index 36ebd5a4ac7b..d242b2f5f2d8 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
@@ -735,9 +735,7 @@ static int s6e3ha2_probe(struct mipi_dsi_device *dsi)
 	drm_panel_init(&ctx->panel, dev, &s6e3ha2_drm_funcs,
 		       DRM_MODE_CONNECTOR_DSI);
 
-	ret = drm_panel_add(&ctx->panel);
-	if (ret < 0)
-		goto unregister_backlight;
+	drm_panel_add(&ctx->panel);
 
 	ret = mipi_dsi_attach(dsi);
 	if (ret < 0)
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
index a3570e0a90a8..0c60f61015ff 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
@@ -480,9 +480,7 @@ static int s6e63j0x03_probe(struct mipi_dsi_device *dsi)
 	ctx->bl_dev->props.brightness = DEFAULT_BRIGHTNESS;
 	ctx->bl_dev->props.power = FB_BLANK_POWERDOWN;
 
-	ret = drm_panel_add(&ctx->panel);
-	if (ret < 0)
-		goto unregister_backlight;
+	drm_panel_add(&ctx->panel);
 
 	ret = mipi_dsi_attach(dsi);
 	if (ret < 0)
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
index a5f76eb4fa25..40f2f427dc91 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
@@ -480,7 +480,9 @@ static int s6e63m0_probe(struct spi_device *spi)
 	if (ret < 0)
 		return ret;
 
-	return drm_panel_add(&ctx->panel);
+	drm_panel_add(&ctx->panel);
+
+	return 0;
 }
 
 static int s6e63m0_remove(struct spi_device *spi)
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c b/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
index 9d843fcc3a22..e17ba1d84481 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
@@ -243,11 +243,7 @@ static int s6e88a0_ams452ef01_probe(struct mipi_dsi_device *dsi)
 	drm_panel_init(&ctx->panel, dev, &s6e88a0_ams452ef01_panel_funcs,
 		       DRM_MODE_CONNECTOR_DSI);
 
-	ret = drm_panel_add(&ctx->panel);
-	if (ret < 0) {
-		dev_err(dev, "Failed to add panel: %d\n", ret);
-		return ret;
-	}
+	drm_panel_add(&ctx->panel);
 
 	ret = mipi_dsi_attach(dsi);
 	if (ret < 0) {
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
index 8a028d2bd0d6..e36cb1a25318 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
@@ -1020,9 +1020,7 @@ static int s6e8aa0_probe(struct mipi_dsi_device *dsi)
 	drm_panel_init(&ctx->panel, dev, &s6e8aa0_drm_funcs,
 		       DRM_MODE_CONNECTOR_DSI);
 
-	ret = drm_panel_add(&ctx->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&ctx->panel);
 
 	ret = mipi_dsi_attach(dsi);
 	if (ret < 0)
diff --git a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
index 40fcbbbacb2c..46428b513a5d 100644
--- a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
+++ b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
@@ -257,9 +257,7 @@ static int seiko_panel_probe(struct device *dev,
 	if (err)
 		return err;
 
-	err = drm_panel_add(&panel->base);
-	if (err < 0)
-		return err;
+	drm_panel_add(&panel->base);
 
 	dev_set_drvdata(dev, panel);
 
diff --git a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
index b5d1977221a7..9727d3748034 100644
--- a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
+++ b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
@@ -326,7 +326,9 @@ static int sharp_panel_add(struct sharp_panel *sharp)
 	if (ret)
 		return ret;
 
-	return drm_panel_add(&sharp->base);
+	drm_panel_add(&sharp->base);
+
+	return 0;
 }
 
 static void sharp_panel_del(struct sharp_panel *sharp)
diff --git a/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c b/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
index 1cf3f02435c1..be5cdadf5147 100644
--- a/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
+++ b/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
@@ -188,7 +188,9 @@ static int ls037v7dw01_probe(struct platform_device *pdev)
 	drm_panel_init(&lcd->panel, &pdev->dev, &ls037v7dw01_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	return drm_panel_add(&lcd->panel);
+	drm_panel_add(&lcd->panel);
+
+	return 0;
 }
 
 static int ls037v7dw01_remove(struct platform_device *pdev)
diff --git a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
index ce586c6d70c7..730efc3d6984 100644
--- a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
+++ b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
@@ -262,7 +262,9 @@ static int sharp_nt_panel_add(struct sharp_nt_panel *sharp_nt)
 	if (ret)
 		return ret;
 
-	return drm_panel_add(&sharp_nt->base);
+	drm_panel_add(&sharp_nt->base);
+
+	return 0;
 }
 
 static void sharp_nt_panel_del(struct sharp_nt_panel *sharp_nt)
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 4aeb960ccf15..b290b2b966c2 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -555,9 +555,7 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc)
 	if (err)
 		goto free_ddc;
 
-	err = drm_panel_add(&panel->base);
-	if (err < 0)
-		goto free_ddc;
+	drm_panel_add(&panel->base);
 
 	dev_set_drvdata(dev, panel);
 
diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7701.c b/drivers/gpu/drm/panel/panel-sitronix-st7701.c
index 4b4f2558e3b4..66030978bcf9 100644
--- a/drivers/gpu/drm/panel/panel-sitronix-st7701.c
+++ b/drivers/gpu/drm/panel/panel-sitronix-st7701.c
@@ -380,9 +380,7 @@ static int st7701_dsi_probe(struct mipi_dsi_device *dsi)
 	if (ret)
 		return ret;
 
-	ret = drm_panel_add(&st7701->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&st7701->panel);
 
 	mipi_dsi_set_drvdata(dsi, st7701);
 	st7701->dsi = dsi;
diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
index cc02c54c1b2e..6ed8c9823ee6 100644
--- a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
+++ b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
@@ -383,9 +383,7 @@ static int st7789v_probe(struct spi_device *spi)
 	if (ret)
 		return ret;
 
-	ret = drm_panel_add(&ctx->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&ctx->panel);
 
 	return 0;
 }
diff --git a/drivers/gpu/drm/panel/panel-sony-acx424akp.c b/drivers/gpu/drm/panel/panel-sony-acx424akp.c
index c91e55b2d7a3..4c46ed9b3f6d 100644
--- a/drivers/gpu/drm/panel/panel-sony-acx424akp.c
+++ b/drivers/gpu/drm/panel/panel-sony-acx424akp.c
@@ -506,9 +506,7 @@ static int acx424akp_probe(struct mipi_dsi_device *dsi)
 	acx->bl->props.brightness = 512;
 	acx->bl->props.power = FB_BLANK_POWERDOWN;
 
-	ret = drm_panel_add(&acx->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&acx->panel);
 
 	ret = mipi_dsi_attach(dsi);
 	if (ret < 0) {
diff --git a/drivers/gpu/drm/panel/panel-sony-acx565akm.c b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
index 5c4b6f6e5c2d..08442104dc43 100644
--- a/drivers/gpu/drm/panel/panel-sony-acx565akm.c
+++ b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
@@ -651,12 +651,7 @@ static int acx565akm_probe(struct spi_device *spi)
 	drm_panel_init(&lcd->panel, &lcd->spi->dev, &acx565akm_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	ret = drm_panel_add(&lcd->panel);
-	if (ret < 0) {
-		if (lcd->has_bc)
-			acx565akm_backlight_cleanup(lcd);
-		return ret;
-	}
+	drm_panel_add(&lcd->panel);
 
 	return 0;
 }
diff --git a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
index aeca15dfeb3c..5f4001a21a04 100644
--- a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
+++ b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
@@ -351,7 +351,9 @@ static int td028ttec1_probe(struct spi_device *spi)
 	if (ret)
 		return ret;
 
-	return drm_panel_add(&lcd->panel);
+	drm_panel_add(&lcd->panel);
+
+	return 0;
 }
 
 static int td028ttec1_remove(struct spi_device *spi)
diff --git a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
index 75f1f1f1b6de..1d7a0df1680e 100644
--- a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
+++ b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
@@ -461,11 +461,7 @@ static int td043mtea1_probe(struct spi_device *spi)
 	drm_panel_init(&lcd->panel, &lcd->spi->dev, &td043mtea1_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	ret = drm_panel_add(&lcd->panel);
-	if (ret < 0) {
-		sysfs_remove_group(&spi->dev.kobj, &td043mtea1_attr_group);
-		return ret;
-	}
+	drm_panel_add(&lcd->panel);
 
 	return 0;
 }
diff --git a/drivers/gpu/drm/panel/panel-tpo-tpg110.c b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
index 8472d018c16f..b54dfcc5b3ef 100644
--- a/drivers/gpu/drm/panel/panel-tpo-tpg110.c
+++ b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
@@ -453,7 +453,9 @@ static int tpg110_probe(struct spi_device *spi)
 
 	spi_set_drvdata(spi, tpg);
 
-	return drm_panel_add(&tpg->panel);
+	drm_panel_add(&tpg->panel);
+
+	return 0;
 }
 
 static int tpg110_remove(struct spi_device *spi)
diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
index 6193cb555acc..ff066524cb70 100644
--- a/include/drm/drm_panel.h
+++ b/include/drm/drm_panel.h
@@ -175,7 +175,7 @@ void drm_panel_init(struct drm_panel *panel, struct device *dev,
 		    const struct drm_panel_funcs *funcs,
 		    int connector_type);
 
-int drm_panel_add(struct drm_panel *panel);
+void drm_panel_add(struct drm_panel *panel);
 void drm_panel_remove(struct drm_panel *panel);
 
 int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector);
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH] drm/panel: remove return value of function drm_panel_add
@ 2020-08-01 12:02 ` Bernard Zhao
  0 siblings, 0 replies; 18+ messages in thread
From: Bernard Zhao @ 2020-08-01 12:02 UTC (permalink / raw)
  To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	Thierry Reding, Sam Ravnborg, David Airlie, Daniel Vetter,
	Linus Walleij, Jerry Han, Icenowy Zheng, Jagan Teki,
	Laurent Pinchart, Stefan Mavrodiev, Robert Chiras, dri-devel,
	linux-kernel
  Cc: opensource.kernel, Bernard Zhao

The function "int drm_panel_add(struct drm_panel *panel)"
always returns 0, this return value is meaningless.
Also, there is no need to check return value which calls
"drm_panel_add and", error branch code will never run.

Signed-off-by: Bernard Zhao <bernard@vivo.com>
---
 drivers/gpu/drm/drm_panel.c                              | 4 +---
 drivers/gpu/drm/panel/panel-arm-versatile.c              | 4 +++-
 drivers/gpu/drm/panel/panel-boe-himax8279d.c             | 4 +++-
 drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c           | 4 +++-
 drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c        | 4 +---
 drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c    | 4 +---
 drivers/gpu/drm/panel/panel-ilitek-ili9322.c             | 4 +++-
 drivers/gpu/drm/panel/panel-ilitek-ili9881c.c            | 4 +---
 drivers/gpu/drm/panel/panel-innolux-p079zca.c            | 4 +---
 drivers/gpu/drm/panel/panel-jdi-lt070me05000.c           | 4 ++--
 drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c       | 4 +++-
 drivers/gpu/drm/panel/panel-lg-lb035q02.c                | 4 +++-
 drivers/gpu/drm/panel/panel-lg-lg4573.c                  | 4 +++-
 drivers/gpu/drm/panel/panel-lvds.c                       | 4 +---
 drivers/gpu/drm/panel/panel-nec-nl8048hl11.c             | 4 +++-
 drivers/gpu/drm/panel/panel-novatek-nt35510.c            | 4 +---
 drivers/gpu/drm/panel/panel-novatek-nt39016.c            | 6 +-----
 drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c       | 4 +++-
 drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c       | 4 +++-
 drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c     | 4 +++-
 drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c    | 4 +---
 drivers/gpu/drm/panel/panel-raydium-rm67191.c            | 4 +---
 drivers/gpu/drm/panel/panel-ronbo-rb070d30.c             | 4 +---
 drivers/gpu/drm/panel/panel-samsung-ld9040.c             | 4 +++-
 drivers/gpu/drm/panel/panel-samsung-s6d16d0.c            | 4 +---
 drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c            | 4 +---
 drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c         | 4 +---
 drivers/gpu/drm/panel/panel-samsung-s6e63m0.c            | 4 +++-
 drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c | 6 +-----
 drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c            | 4 +---
 drivers/gpu/drm/panel/panel-seiko-43wvf1g.c              | 4 +---
 drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c          | 4 +++-
 drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c          | 4 +++-
 drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c          | 4 +++-
 drivers/gpu/drm/panel/panel-simple.c                     | 4 +---
 drivers/gpu/drm/panel/panel-sitronix-st7701.c            | 4 +---
 drivers/gpu/drm/panel/panel-sitronix-st7789v.c           | 4 +---
 drivers/gpu/drm/panel/panel-sony-acx424akp.c             | 4 +---
 drivers/gpu/drm/panel/panel-sony-acx565akm.c             | 7 +------
 drivers/gpu/drm/panel/panel-tpo-td028ttec1.c             | 4 +++-
 drivers/gpu/drm/panel/panel-tpo-td043mtea1.c             | 6 +-----
 drivers/gpu/drm/panel/panel-tpo-tpg110.c                 | 4 +++-
 include/drm/drm_panel.h                                  | 2 +-
 43 files changed, 80 insertions(+), 99 deletions(-)

diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
index 8c7bac85a793..fab41f63ad12 100644
--- a/drivers/gpu/drm/drm_panel.c
+++ b/drivers/gpu/drm/drm_panel.c
@@ -73,13 +73,11 @@ EXPORT_SYMBOL(drm_panel_init);
  *
  * Return: 0 on success or a negative error code on failure.
  */
-int drm_panel_add(struct drm_panel *panel)
+void drm_panel_add(struct drm_panel *panel)
 {
 	mutex_lock(&panel_lock);
 	list_add_tail(&panel->list, &panel_list);
 	mutex_unlock(&panel_lock);
-
-	return 0;
 }
 EXPORT_SYMBOL(drm_panel_add);
 
diff --git a/drivers/gpu/drm/panel/panel-arm-versatile.c b/drivers/gpu/drm/panel/panel-arm-versatile.c
index 41444a73c980..5aaee5414c40 100644
--- a/drivers/gpu/drm/panel/panel-arm-versatile.c
+++ b/drivers/gpu/drm/panel/panel-arm-versatile.c
@@ -353,7 +353,9 @@ static int versatile_panel_probe(struct platform_device *pdev)
 	drm_panel_init(&vpanel->panel, dev, &versatile_panel_drm_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	return drm_panel_add(&vpanel->panel);
+	drm_panel_add(&vpanel->panel);
+
+	return 0;
 }
 
 static const struct of_device_id versatile_panel_match[] = {
diff --git a/drivers/gpu/drm/panel/panel-boe-himax8279d.c b/drivers/gpu/drm/panel/panel-boe-himax8279d.c
index 74d58ee7d04c..e0630ce04147 100644
--- a/drivers/gpu/drm/panel/panel-boe-himax8279d.c
+++ b/drivers/gpu/drm/panel/panel-boe-himax8279d.c
@@ -896,7 +896,9 @@ static int panel_add(struct panel_info *pinfo)
 	if (ret)
 		return ret;
 
-	return drm_panel_add(&pinfo->base);
+	drm_panel_add(&pinfo->base);
+
+	return 0;
 }
 
 static int panel_probe(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
index 2649469070aa..b9379ad92546 100644
--- a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
+++ b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
@@ -792,7 +792,9 @@ static int boe_panel_add(struct boe_panel *boe)
 	boe->base.funcs = &boe_panel_funcs;
 	boe->base.dev = &boe->dsi->dev;
 
-	return drm_panel_add(&boe->base);
+	drm_panel_add(&boe->base);
+
+	return 0;
 }
 
 static int boe_panel_probe(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c b/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c
index fddbfddf6566..7f2eb54e4254 100644
--- a/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c
+++ b/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c
@@ -478,9 +478,7 @@ static int k101_im2ba02_dsi_probe(struct mipi_dsi_device *dsi)
 	if (ret)
 		return ret;
 
-	ret = drm_panel_add(&ctx->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&ctx->panel);
 
 	dsi->mode_flags = MIPI_DSI_MODE_VIDEO;
 	dsi->format = MIPI_DSI_FMT_RGB888;
diff --git a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
index 95b789ab9d29..2c168a405928 100644
--- a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
+++ b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
@@ -225,9 +225,7 @@ static int feiyang_dsi_probe(struct mipi_dsi_device *dsi)
 	if (ret)
 		return ret;
 
-	ret = drm_panel_add(&ctx->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&ctx->panel);
 
 	dsi->mode_flags = MIPI_DSI_MODE_VIDEO_BURST;
 	dsi->format = MIPI_DSI_FMT_RGB888;
diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
index 873b1c7059bd..4a41d8734cc7 100644
--- a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
+++ b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
@@ -899,7 +899,9 @@ static int ili9322_probe(struct spi_device *spi)
 	drm_panel_init(&ili->panel, dev, &ili9322_drm_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	return drm_panel_add(&ili->panel);
+	drm_panel_add(&ili->panel);
+
+	return 0;
 }
 
 static int ili9322_remove(struct spi_device *spi)
diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
index f54077c216a3..52fd6f3d4452 100644
--- a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
+++ b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
@@ -447,9 +447,7 @@ static int ili9881c_dsi_probe(struct mipi_dsi_device *dsi)
 	if (ret)
 		return ret;
 
-	ret = drm_panel_add(&ctx->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&ctx->panel);
 
 	dsi->mode_flags = MIPI_DSI_MODE_VIDEO_SYNC_PULSE;
 	dsi->format = MIPI_DSI_FMT_RGB888;
diff --git a/drivers/gpu/drm/panel/panel-innolux-p079zca.c b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
index 7419f1f0acee..cc3e07b61a6c 100644
--- a/drivers/gpu/drm/panel/panel-innolux-p079zca.c
+++ b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
@@ -477,9 +477,7 @@ static int innolux_panel_add(struct mipi_dsi_device *dsi,
 	if (err)
 		return err;
 
-	err = drm_panel_add(&innolux->base);
-	if (err < 0)
-		return err;
+	drm_panel_add(&innolux->base);
 
 	mipi_dsi_set_drvdata(dsi, innolux);
 	innolux->link = dsi;
diff --git a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
index 4bfd8c877c8e..4fc2185575a7 100644
--- a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
+++ b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
@@ -441,9 +441,9 @@ static int jdi_panel_add(struct jdi_panel *jdi)
 	drm_panel_init(&jdi->base, &jdi->dsi->dev, &jdi_panel_funcs,
 		       DRM_MODE_CONNECTOR_DSI);
 
-	ret = drm_panel_add(&jdi->base);
+	drm_panel_add(&jdi->base);
 
-	return ret;
+	return 0;
 }
 
 static void jdi_panel_del(struct jdi_panel *jdi)
diff --git a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
index bac1a2a06c92..c75790f95461 100644
--- a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
+++ b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
@@ -383,7 +383,9 @@ static int kingdisplay_panel_add(struct kingdisplay_panel *kingdisplay)
 	if (err)
 		return err;
 
-	return drm_panel_add(&kingdisplay->base);
+	drm_panel_add(&kingdisplay->base);
+
+	return 0;
 }
 
 static void kingdisplay_panel_del(struct kingdisplay_panel *kingdisplay)
diff --git a/drivers/gpu/drm/panel/panel-lg-lb035q02.c b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
index e90efeaba4ad..8cb403ed2d5f 100644
--- a/drivers/gpu/drm/panel/panel-lg-lb035q02.c
+++ b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
@@ -199,7 +199,9 @@ static int lb035q02_probe(struct spi_device *spi)
 	drm_panel_init(&lcd->panel, &lcd->spi->dev, &lb035q02_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	return drm_panel_add(&lcd->panel);
+	drm_panel_add(&lcd->panel);
+
+	return 0;
 }
 
 static int lb035q02_remove(struct spi_device *spi)
diff --git a/drivers/gpu/drm/panel/panel-lg-lg4573.c b/drivers/gpu/drm/panel/panel-lg-lg4573.c
index 5907f2503755..02e8e593ba17 100644
--- a/drivers/gpu/drm/panel/panel-lg-lg4573.c
+++ b/drivers/gpu/drm/panel/panel-lg-lg4573.c
@@ -262,7 +262,9 @@ static int lg4573_probe(struct spi_device *spi)
 	drm_panel_init(&ctx->panel, &spi->dev, &lg4573_drm_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	return drm_panel_add(&ctx->panel);
+	drm_panel_add(&ctx->panel);
+
+	return 0;
 }
 
 static int lg4573_remove(struct spi_device *spi)
diff --git a/drivers/gpu/drm/panel/panel-lvds.c b/drivers/gpu/drm/panel/panel-lvds.c
index 5ce3f4a2b7a1..41305c3dcf31 100644
--- a/drivers/gpu/drm/panel/panel-lvds.c
+++ b/drivers/gpu/drm/panel/panel-lvds.c
@@ -227,9 +227,7 @@ static int panel_lvds_probe(struct platform_device *pdev)
 	if (ret)
 		return ret;
 
-	ret = drm_panel_add(&lvds->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&lvds->panel);
 
 	dev_set_drvdata(lvds->dev, lvds);
 	return 0;
diff --git a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
index c4f83f6384e1..8217cb9a0658 100644
--- a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
+++ b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
@@ -208,7 +208,9 @@ static int nl8048_probe(struct spi_device *spi)
 	drm_panel_init(&lcd->panel, &lcd->spi->dev, &nl8048_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	return drm_panel_add(&lcd->panel);
+	drm_panel_add(&lcd->panel);
+
+	return 0;
 }
 
 static int nl8048_remove(struct spi_device *spi)
diff --git a/drivers/gpu/drm/panel/panel-novatek-nt35510.c b/drivers/gpu/drm/panel/panel-novatek-nt35510.c
index 4a8fa908a2cf..9a701a30fe04 100644
--- a/drivers/gpu/drm/panel/panel-novatek-nt35510.c
+++ b/drivers/gpu/drm/panel/panel-novatek-nt35510.c
@@ -956,9 +956,7 @@ static int nt35510_probe(struct mipi_dsi_device *dsi)
 		nt->panel.backlight = bl;
 	}
 
-	ret = drm_panel_add(&nt->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&nt->panel);
 
 	ret = mipi_dsi_attach(dsi);
 	if (ret < 0)
diff --git a/drivers/gpu/drm/panel/panel-novatek-nt39016.c b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
index 05cae8d62d56..9957b846bcff 100644
--- a/drivers/gpu/drm/panel/panel-novatek-nt39016.c
+++ b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
@@ -303,11 +303,7 @@ static int nt39016_probe(struct spi_device *spi)
 	drm_panel_init(&panel->drm_panel, dev, &nt39016_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	err = drm_panel_add(&panel->drm_panel);
-	if (err < 0) {
-		dev_err(dev, "Failed to register panel");
-		return err;
-	}
+	drm_panel_add(&panel->drm_panel);
 
 	return 0;
 }
diff --git a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
index 09deb99981a4..2edda548fffd 100644
--- a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
+++ b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
@@ -284,7 +284,9 @@ static int lcd_olinuxino_probe(struct i2c_client *client,
 	if (ret)
 		return ret;
 
-	return drm_panel_add(&lcd->panel);
+	drm_panel_add(&lcd->panel);
+
+	return 0;
 }
 
 static int lcd_olinuxino_remove(struct i2c_client *client)
diff --git a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
index 3a0229d60095..4fbf12ee858e 100644
--- a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
+++ b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
@@ -165,7 +165,9 @@ static int osd101t2587_panel_add(struct osd101t2587_panel *osd101t2587)
 	if (ret)
 		return ret;
 
-	return drm_panel_add(&osd101t2587->base);
+	drm_panel_add(&osd101t2587->base);
+
+	return 0;
 }
 
 static int osd101t2587_panel_probe(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
index 69693451462e..368722d98faf 100644
--- a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
+++ b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
@@ -207,7 +207,9 @@ static int wuxga_nt_panel_add(struct wuxga_nt_panel *wuxga_nt)
 	if (ret)
 		return ret;
 
-	return drm_panel_add(&wuxga_nt->base);
+	drm_panel_add(&wuxga_nt->base);
+
+	return 0;
 }
 
 static void wuxga_nt_panel_del(struct wuxga_nt_panel *wuxga_nt)
diff --git a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
index 8f078b7dd89e..25112e5b353b 100644
--- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
+++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
@@ -429,9 +429,7 @@ static int rpi_touchscreen_probe(struct i2c_client *i2c,
 	/* This appears last, as it's what will unblock the DSI host
 	 * driver's component bind function.
 	 */
-	ret = drm_panel_add(&ts->base);
-	if (ret)
-		return ret;
+	drm_panel_add(&ts->base);
 
 	return 0;
 
diff --git a/drivers/gpu/drm/panel/panel-raydium-rm67191.c b/drivers/gpu/drm/panel/panel-raydium-rm67191.c
index 313637d53d28..055201534bf5 100644
--- a/drivers/gpu/drm/panel/panel-raydium-rm67191.c
+++ b/drivers/gpu/drm/panel/panel-raydium-rm67191.c
@@ -610,9 +610,7 @@ static int rad_panel_probe(struct mipi_dsi_device *dsi)
 		       DRM_MODE_CONNECTOR_DSI);
 	dev_set_drvdata(dev, panel);
 
-	ret = drm_panel_add(&panel->panel);
-	if (ret)
-		return ret;
+	drm_panel_add(&panel->panel);
 
 	ret = mipi_dsi_attach(dsi);
 	if (ret)
diff --git a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
index ef18559e237e..6298051c7244 100644
--- a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
+++ b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
@@ -201,9 +201,7 @@ static int rb070d30_panel_dsi_probe(struct mipi_dsi_device *dsi)
 	if (ret)
 		return ret;
 
-	ret = drm_panel_add(&ctx->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&ctx->panel);
 
 	dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_LPM;
 	dsi->format = MIPI_DSI_FMT_RGB888;
diff --git a/drivers/gpu/drm/panel/panel-samsung-ld9040.c b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
index 9bb2e8c7934a..358168ed8355 100644
--- a/drivers/gpu/drm/panel/panel-samsung-ld9040.c
+++ b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
@@ -354,7 +354,9 @@ static int ld9040_probe(struct spi_device *spi)
 	drm_panel_init(&ctx->panel, dev, &ld9040_drm_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	return drm_panel_add(&ctx->panel);
+	drm_panel_add(&ctx->panel);
+
+	return 0;
 }
 
 static int ld9040_remove(struct spi_device *spi)
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c b/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
index 2150043dcf6b..72c26a63dbe5 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
@@ -218,9 +218,7 @@ static int s6d16d0_probe(struct mipi_dsi_device *dsi)
 	drm_panel_init(&s6->panel, dev, &s6d16d0_drm_funcs,
 		       DRM_MODE_CONNECTOR_DSI);
 
-	ret = drm_panel_add(&s6->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&s6->panel);
 
 	ret = mipi_dsi_attach(dsi);
 	if (ret < 0)
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
index 36ebd5a4ac7b..d242b2f5f2d8 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
@@ -735,9 +735,7 @@ static int s6e3ha2_probe(struct mipi_dsi_device *dsi)
 	drm_panel_init(&ctx->panel, dev, &s6e3ha2_drm_funcs,
 		       DRM_MODE_CONNECTOR_DSI);
 
-	ret = drm_panel_add(&ctx->panel);
-	if (ret < 0)
-		goto unregister_backlight;
+	drm_panel_add(&ctx->panel);
 
 	ret = mipi_dsi_attach(dsi);
 	if (ret < 0)
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
index a3570e0a90a8..0c60f61015ff 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
@@ -480,9 +480,7 @@ static int s6e63j0x03_probe(struct mipi_dsi_device *dsi)
 	ctx->bl_dev->props.brightness = DEFAULT_BRIGHTNESS;
 	ctx->bl_dev->props.power = FB_BLANK_POWERDOWN;
 
-	ret = drm_panel_add(&ctx->panel);
-	if (ret < 0)
-		goto unregister_backlight;
+	drm_panel_add(&ctx->panel);
 
 	ret = mipi_dsi_attach(dsi);
 	if (ret < 0)
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
index a5f76eb4fa25..40f2f427dc91 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
@@ -480,7 +480,9 @@ static int s6e63m0_probe(struct spi_device *spi)
 	if (ret < 0)
 		return ret;
 
-	return drm_panel_add(&ctx->panel);
+	drm_panel_add(&ctx->panel);
+
+	return 0;
 }
 
 static int s6e63m0_remove(struct spi_device *spi)
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c b/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
index 9d843fcc3a22..e17ba1d84481 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
@@ -243,11 +243,7 @@ static int s6e88a0_ams452ef01_probe(struct mipi_dsi_device *dsi)
 	drm_panel_init(&ctx->panel, dev, &s6e88a0_ams452ef01_panel_funcs,
 		       DRM_MODE_CONNECTOR_DSI);
 
-	ret = drm_panel_add(&ctx->panel);
-	if (ret < 0) {
-		dev_err(dev, "Failed to add panel: %d\n", ret);
-		return ret;
-	}
+	drm_panel_add(&ctx->panel);
 
 	ret = mipi_dsi_attach(dsi);
 	if (ret < 0) {
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
index 8a028d2bd0d6..e36cb1a25318 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
@@ -1020,9 +1020,7 @@ static int s6e8aa0_probe(struct mipi_dsi_device *dsi)
 	drm_panel_init(&ctx->panel, dev, &s6e8aa0_drm_funcs,
 		       DRM_MODE_CONNECTOR_DSI);
 
-	ret = drm_panel_add(&ctx->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&ctx->panel);
 
 	ret = mipi_dsi_attach(dsi);
 	if (ret < 0)
diff --git a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
index 40fcbbbacb2c..46428b513a5d 100644
--- a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
+++ b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
@@ -257,9 +257,7 @@ static int seiko_panel_probe(struct device *dev,
 	if (err)
 		return err;
 
-	err = drm_panel_add(&panel->base);
-	if (err < 0)
-		return err;
+	drm_panel_add(&panel->base);
 
 	dev_set_drvdata(dev, panel);
 
diff --git a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
index b5d1977221a7..9727d3748034 100644
--- a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
+++ b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
@@ -326,7 +326,9 @@ static int sharp_panel_add(struct sharp_panel *sharp)
 	if (ret)
 		return ret;
 
-	return drm_panel_add(&sharp->base);
+	drm_panel_add(&sharp->base);
+
+	return 0;
 }
 
 static void sharp_panel_del(struct sharp_panel *sharp)
diff --git a/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c b/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
index 1cf3f02435c1..be5cdadf5147 100644
--- a/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
+++ b/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
@@ -188,7 +188,9 @@ static int ls037v7dw01_probe(struct platform_device *pdev)
 	drm_panel_init(&lcd->panel, &pdev->dev, &ls037v7dw01_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	return drm_panel_add(&lcd->panel);
+	drm_panel_add(&lcd->panel);
+
+	return 0;
 }
 
 static int ls037v7dw01_remove(struct platform_device *pdev)
diff --git a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
index ce586c6d70c7..730efc3d6984 100644
--- a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
+++ b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
@@ -262,7 +262,9 @@ static int sharp_nt_panel_add(struct sharp_nt_panel *sharp_nt)
 	if (ret)
 		return ret;
 
-	return drm_panel_add(&sharp_nt->base);
+	drm_panel_add(&sharp_nt->base);
+
+	return 0;
 }
 
 static void sharp_nt_panel_del(struct sharp_nt_panel *sharp_nt)
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 4aeb960ccf15..b290b2b966c2 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -555,9 +555,7 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc)
 	if (err)
 		goto free_ddc;
 
-	err = drm_panel_add(&panel->base);
-	if (err < 0)
-		goto free_ddc;
+	drm_panel_add(&panel->base);
 
 	dev_set_drvdata(dev, panel);
 
diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7701.c b/drivers/gpu/drm/panel/panel-sitronix-st7701.c
index 4b4f2558e3b4..66030978bcf9 100644
--- a/drivers/gpu/drm/panel/panel-sitronix-st7701.c
+++ b/drivers/gpu/drm/panel/panel-sitronix-st7701.c
@@ -380,9 +380,7 @@ static int st7701_dsi_probe(struct mipi_dsi_device *dsi)
 	if (ret)
 		return ret;
 
-	ret = drm_panel_add(&st7701->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&st7701->panel);
 
 	mipi_dsi_set_drvdata(dsi, st7701);
 	st7701->dsi = dsi;
diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
index cc02c54c1b2e..6ed8c9823ee6 100644
--- a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
+++ b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
@@ -383,9 +383,7 @@ static int st7789v_probe(struct spi_device *spi)
 	if (ret)
 		return ret;
 
-	ret = drm_panel_add(&ctx->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&ctx->panel);
 
 	return 0;
 }
diff --git a/drivers/gpu/drm/panel/panel-sony-acx424akp.c b/drivers/gpu/drm/panel/panel-sony-acx424akp.c
index c91e55b2d7a3..4c46ed9b3f6d 100644
--- a/drivers/gpu/drm/panel/panel-sony-acx424akp.c
+++ b/drivers/gpu/drm/panel/panel-sony-acx424akp.c
@@ -506,9 +506,7 @@ static int acx424akp_probe(struct mipi_dsi_device *dsi)
 	acx->bl->props.brightness = 512;
 	acx->bl->props.power = FB_BLANK_POWERDOWN;
 
-	ret = drm_panel_add(&acx->panel);
-	if (ret < 0)
-		return ret;
+	drm_panel_add(&acx->panel);
 
 	ret = mipi_dsi_attach(dsi);
 	if (ret < 0) {
diff --git a/drivers/gpu/drm/panel/panel-sony-acx565akm.c b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
index 5c4b6f6e5c2d..08442104dc43 100644
--- a/drivers/gpu/drm/panel/panel-sony-acx565akm.c
+++ b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
@@ -651,12 +651,7 @@ static int acx565akm_probe(struct spi_device *spi)
 	drm_panel_init(&lcd->panel, &lcd->spi->dev, &acx565akm_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	ret = drm_panel_add(&lcd->panel);
-	if (ret < 0) {
-		if (lcd->has_bc)
-			acx565akm_backlight_cleanup(lcd);
-		return ret;
-	}
+	drm_panel_add(&lcd->panel);
 
 	return 0;
 }
diff --git a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
index aeca15dfeb3c..5f4001a21a04 100644
--- a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
+++ b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
@@ -351,7 +351,9 @@ static int td028ttec1_probe(struct spi_device *spi)
 	if (ret)
 		return ret;
 
-	return drm_panel_add(&lcd->panel);
+	drm_panel_add(&lcd->panel);
+
+	return 0;
 }
 
 static int td028ttec1_remove(struct spi_device *spi)
diff --git a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
index 75f1f1f1b6de..1d7a0df1680e 100644
--- a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
+++ b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
@@ -461,11 +461,7 @@ static int td043mtea1_probe(struct spi_device *spi)
 	drm_panel_init(&lcd->panel, &lcd->spi->dev, &td043mtea1_funcs,
 		       DRM_MODE_CONNECTOR_DPI);
 
-	ret = drm_panel_add(&lcd->panel);
-	if (ret < 0) {
-		sysfs_remove_group(&spi->dev.kobj, &td043mtea1_attr_group);
-		return ret;
-	}
+	drm_panel_add(&lcd->panel);
 
 	return 0;
 }
diff --git a/drivers/gpu/drm/panel/panel-tpo-tpg110.c b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
index 8472d018c16f..b54dfcc5b3ef 100644
--- a/drivers/gpu/drm/panel/panel-tpo-tpg110.c
+++ b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
@@ -453,7 +453,9 @@ static int tpg110_probe(struct spi_device *spi)
 
 	spi_set_drvdata(spi, tpg);
 
-	return drm_panel_add(&tpg->panel);
+	drm_panel_add(&tpg->panel);
+
+	return 0;
 }
 
 static int tpg110_remove(struct spi_device *spi)
diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
index 6193cb555acc..ff066524cb70 100644
--- a/include/drm/drm_panel.h
+++ b/include/drm/drm_panel.h
@@ -175,7 +175,7 @@ void drm_panel_init(struct drm_panel *panel, struct device *dev,
 		    const struct drm_panel_funcs *funcs,
 		    int connector_type);
 
-int drm_panel_add(struct drm_panel *panel);
+void drm_panel_add(struct drm_panel *panel);
 void drm_panel_remove(struct drm_panel *panel);
 
 int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector);
-- 
2.17.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [PATCH] drm/panel: remove return value of function drm_panel_add
  2020-08-01 12:02 ` Bernard Zhao
@ 2020-08-01 14:27   ` Linus Walleij
  -1 siblings, 0 replies; 18+ messages in thread
From: Linus Walleij @ 2020-08-01 14:27 UTC (permalink / raw)
  To: Bernard Zhao
  Cc: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	Thierry Reding, Sam Ravnborg, David Airlie, Daniel Vetter,
	Jerry Han, Icenowy Zheng, Jagan Teki, Laurent Pinchart,
	Stefan Mavrodiev, Robert Chiras, open list:DRM PANEL DRIVERS,
	linux-kernel, opensource.kernel

On Sat, Aug 1, 2020 at 2:02 PM Bernard Zhao <bernard@vivo.com> wrote:

> The function "int drm_panel_add(struct drm_panel *panel)"
> always returns 0, this return value is meaningless.
> Also, there is no need to check return value which calls
> "drm_panel_add and", error branch code will never run.
>
> Signed-off-by: Bernard Zhao <bernard@vivo.com>

Makes sense.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] drm/panel: remove return value of function drm_panel_add
@ 2020-08-01 14:27   ` Linus Walleij
  0 siblings, 0 replies; 18+ messages in thread
From: Linus Walleij @ 2020-08-01 14:27 UTC (permalink / raw)
  To: Bernard Zhao
  Cc: opensource.kernel, Laurent Pinchart, Stefan Mavrodiev,
	David Airlie, open list:DRM PANEL DRIVERS, Jerry Han,
	linux-kernel, Thierry Reding, Jagan Teki, Thomas Zimmermann,
	Robert Chiras, Sam Ravnborg, Icenowy Zheng

On Sat, Aug 1, 2020 at 2:02 PM Bernard Zhao <bernard@vivo.com> wrote:

> The function "int drm_panel_add(struct drm_panel *panel)"
> always returns 0, this return value is meaningless.
> Also, there is no need to check return value which calls
> "drm_panel_add and", error branch code will never run.
>
> Signed-off-by: Bernard Zhao <bernard@vivo.com>

Makes sense.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] drm/panel: remove return value of function drm_panel_add
  2020-08-01 12:02 ` Bernard Zhao
  (?)
  (?)
@ 2020-08-01 21:11 ` kernel test robot
  -1 siblings, 0 replies; 18+ messages in thread
From: kernel test robot @ 2020-08-01 21:11 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 7832 bytes --]

Hi Bernard,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v5.8-rc7 next-20200731]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Bernard-Zhao/drm-panel-remove-return-value-of-function-drm_panel_add/20200801-200252
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 7dc6fd0f3b8404542718039f5de19fe56e474578
config: x86_64-randconfig-a002-20200801 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 9f21947a331203ee2579db87f1d1ec22a949e20a)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All error/warnings (new ones prefixed by >>):

>> drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c:749:1: warning: unused label 'unregister_backlight' [-Wunused-label]
   unregister_backlight:
   ^~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
--
>> drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c:494:1: warning: unused label 'unregister_backlight' [-Wunused-label]
   unregister_backlight:
   ^~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
--
>> drivers/gpu/drm/panel/panel-asus-z00t-tm5p5-n35596.c:319:6: error: assigning to 'int' from incompatible type 'void'
           ret = drm_panel_add(&ctx->panel);
               ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 error generated.

vim +/unregister_backlight +749 drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c

ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  680  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  681  static int s6e3ha2_probe(struct mipi_dsi_device *dsi)
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  682  {
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  683  	struct device *dev = &dsi->dev;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  684  	struct s6e3ha2 *ctx;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  685  	int ret;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  686  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  687  	ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  688  	if (!ctx)
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  689  		return -ENOMEM;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  690  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  691  	mipi_dsi_set_drvdata(dsi, ctx);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  692  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  693  	ctx->dev = dev;
e2af12bfb0ba198 Hoegeun Kwon     2017-04-18  694  	ctx->desc = of_device_get_match_data(dev);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  695  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  696  	dsi->lanes = 4;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  697  	dsi->format = MIPI_DSI_FMT_RGB888;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  698  	dsi->mode_flags = MIPI_DSI_CLOCK_NON_CONTINUOUS;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  699  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  700  	ctx->supplies[0].supply = "vdd3";
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  701  	ctx->supplies[1].supply = "vci";
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  702  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  703  	ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(ctx->supplies),
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  704  				      ctx->supplies);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  705  	if (ret < 0) {
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  706  		dev_err(dev, "failed to get regulators: %d\n", ret);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  707  		return ret;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  708  	}
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  709  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  710  	ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  711  	if (IS_ERR(ctx->reset_gpio)) {
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  712  		dev_err(dev, "cannot get reset-gpios %ld\n",
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  713  			PTR_ERR(ctx->reset_gpio));
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  714  		return PTR_ERR(ctx->reset_gpio);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  715  	}
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  716  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  717  	ctx->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_HIGH);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  718  	if (IS_ERR(ctx->enable_gpio)) {
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  719  		dev_err(dev, "cannot get enable-gpios %ld\n",
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  720  			PTR_ERR(ctx->enable_gpio));
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  721  		return PTR_ERR(ctx->enable_gpio);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  722  	}
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  723  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  724  	ctx->bl_dev = backlight_device_register("s6e3ha2", dev, ctx,
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  725  						&s6e3ha2_bl_ops, NULL);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  726  	if (IS_ERR(ctx->bl_dev)) {
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  727  		dev_err(dev, "failed to register backlight device\n");
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  728  		return PTR_ERR(ctx->bl_dev);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  729  	}
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  730  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  731  	ctx->bl_dev->props.max_brightness = S6E3HA2_MAX_BRIGHTNESS;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  732  	ctx->bl_dev->props.brightness = S6E3HA2_DEFAULT_BRIGHTNESS;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  733  	ctx->bl_dev->props.power = FB_BLANK_POWERDOWN;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  734  
9a2654c0f62a170 Laurent Pinchart 2019-09-04  735  	drm_panel_init(&ctx->panel, dev, &s6e3ha2_drm_funcs,
9a2654c0f62a170 Laurent Pinchart 2019-09-04  736  		       DRM_MODE_CONNECTOR_DSI);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  737  
b5fd4505cdbf1b5 Bernard Zhao     2020-08-01  738  	drm_panel_add(&ctx->panel);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  739  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  740  	ret = mipi_dsi_attach(dsi);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  741  	if (ret < 0)
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  742  		goto remove_panel;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  743  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  744  	return ret;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  745  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  746  remove_panel:
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  747  	drm_panel_remove(&ctx->panel);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  748  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08 @749  unregister_backlight:
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  750  	backlight_device_unregister(ctx->bl_dev);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  751  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  752  	return ret;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  753  }
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  754  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 38299 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] drm/panel: remove return value of function drm_panel_add
  2020-08-01 12:02 ` Bernard Zhao
@ 2020-08-02  7:07   ` Sam Ravnborg
  -1 siblings, 0 replies; 18+ messages in thread
From: Sam Ravnborg @ 2020-08-02  7:07 UTC (permalink / raw)
  To: Bernard Zhao
  Cc: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	Thierry Reding, David Airlie, Daniel Vetter, Linus Walleij,
	Jerry Han, Icenowy Zheng, Jagan Teki, Laurent Pinchart,
	Stefan Mavrodiev, Robert Chiras, dri-devel, linux-kernel,
	opensource.kernel

Hi Bernard.

On Sat, Aug 01, 2020 at 08:02:13PM +0800, Bernard Zhao wrote:
> The function "int drm_panel_add(struct drm_panel *panel)"
> always returns 0, this return value is meaningless.
> Also, there is no need to check return value which calls
> "drm_panel_add and", error branch code will never run.

Thanks for this nice cleanup.
Applied to drm-misc-next - so it will appear in -next after the
upcoming merge window and will hit upstream in 5.10

While applying I did the following modifications:
- Fixed kernel-doc as the function returns a void
- Fixed one panel that was missing the conversion
- Fixed warnings due to unused labels


If you are up to another cleanup task there is drm_panel_attach()
and drm_panel_detach() which are no longer needed and all users
and the empty implementations can be dropped.

This will touch a lot of drivers so this change should be split
in one patch/driver.

bridge/* can be handled as one patch I think.
imx/* is already done, awaiting to be applied.

	Sam

> 
> Signed-off-by: Bernard Zhao <bernard@vivo.com>
> ---
>  drivers/gpu/drm/drm_panel.c                              | 4 +---
>  drivers/gpu/drm/panel/panel-arm-versatile.c              | 4 +++-
>  drivers/gpu/drm/panel/panel-boe-himax8279d.c             | 4 +++-
>  drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c           | 4 +++-
>  drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c        | 4 +---
>  drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c    | 4 +---
>  drivers/gpu/drm/panel/panel-ilitek-ili9322.c             | 4 +++-
>  drivers/gpu/drm/panel/panel-ilitek-ili9881c.c            | 4 +---
>  drivers/gpu/drm/panel/panel-innolux-p079zca.c            | 4 +---
>  drivers/gpu/drm/panel/panel-jdi-lt070me05000.c           | 4 ++--
>  drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c       | 4 +++-
>  drivers/gpu/drm/panel/panel-lg-lb035q02.c                | 4 +++-
>  drivers/gpu/drm/panel/panel-lg-lg4573.c                  | 4 +++-
>  drivers/gpu/drm/panel/panel-lvds.c                       | 4 +---
>  drivers/gpu/drm/panel/panel-nec-nl8048hl11.c             | 4 +++-
>  drivers/gpu/drm/panel/panel-novatek-nt35510.c            | 4 +---
>  drivers/gpu/drm/panel/panel-novatek-nt39016.c            | 6 +-----
>  drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c       | 4 +++-
>  drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c       | 4 +++-
>  drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c     | 4 +++-
>  drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c    | 4 +---
>  drivers/gpu/drm/panel/panel-raydium-rm67191.c            | 4 +---
>  drivers/gpu/drm/panel/panel-ronbo-rb070d30.c             | 4 +---
>  drivers/gpu/drm/panel/panel-samsung-ld9040.c             | 4 +++-
>  drivers/gpu/drm/panel/panel-samsung-s6d16d0.c            | 4 +---
>  drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c            | 4 +---
>  drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c         | 4 +---
>  drivers/gpu/drm/panel/panel-samsung-s6e63m0.c            | 4 +++-
>  drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c | 6 +-----
>  drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c            | 4 +---
>  drivers/gpu/drm/panel/panel-seiko-43wvf1g.c              | 4 +---
>  drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c          | 4 +++-
>  drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c          | 4 +++-
>  drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c          | 4 +++-
>  drivers/gpu/drm/panel/panel-simple.c                     | 4 +---
>  drivers/gpu/drm/panel/panel-sitronix-st7701.c            | 4 +---
>  drivers/gpu/drm/panel/panel-sitronix-st7789v.c           | 4 +---
>  drivers/gpu/drm/panel/panel-sony-acx424akp.c             | 4 +---
>  drivers/gpu/drm/panel/panel-sony-acx565akm.c             | 7 +------
>  drivers/gpu/drm/panel/panel-tpo-td028ttec1.c             | 4 +++-
>  drivers/gpu/drm/panel/panel-tpo-td043mtea1.c             | 6 +-----
>  drivers/gpu/drm/panel/panel-tpo-tpg110.c                 | 4 +++-
>  include/drm/drm_panel.h                                  | 2 +-
>  43 files changed, 80 insertions(+), 99 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
> index 8c7bac85a793..fab41f63ad12 100644
> --- a/drivers/gpu/drm/drm_panel.c
> +++ b/drivers/gpu/drm/drm_panel.c
> @@ -73,13 +73,11 @@ EXPORT_SYMBOL(drm_panel_init);
>   *
>   * Return: 0 on success or a negative error code on failure.
>   */
> -int drm_panel_add(struct drm_panel *panel)
> +void drm_panel_add(struct drm_panel *panel)
>  {
>  	mutex_lock(&panel_lock);
>  	list_add_tail(&panel->list, &panel_list);
>  	mutex_unlock(&panel_lock);
> -
> -	return 0;
>  }
>  EXPORT_SYMBOL(drm_panel_add);
>  
> diff --git a/drivers/gpu/drm/panel/panel-arm-versatile.c b/drivers/gpu/drm/panel/panel-arm-versatile.c
> index 41444a73c980..5aaee5414c40 100644
> --- a/drivers/gpu/drm/panel/panel-arm-versatile.c
> +++ b/drivers/gpu/drm/panel/panel-arm-versatile.c
> @@ -353,7 +353,9 @@ static int versatile_panel_probe(struct platform_device *pdev)
>  	drm_panel_init(&vpanel->panel, dev, &versatile_panel_drm_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	return drm_panel_add(&vpanel->panel);
> +	drm_panel_add(&vpanel->panel);
> +
> +	return 0;
>  }
>  
>  static const struct of_device_id versatile_panel_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-boe-himax8279d.c b/drivers/gpu/drm/panel/panel-boe-himax8279d.c
> index 74d58ee7d04c..e0630ce04147 100644
> --- a/drivers/gpu/drm/panel/panel-boe-himax8279d.c
> +++ b/drivers/gpu/drm/panel/panel-boe-himax8279d.c
> @@ -896,7 +896,9 @@ static int panel_add(struct panel_info *pinfo)
>  	if (ret)
>  		return ret;
>  
> -	return drm_panel_add(&pinfo->base);
> +	drm_panel_add(&pinfo->base);
> +
> +	return 0;
>  }
>  
>  static int panel_probe(struct mipi_dsi_device *dsi)
> diff --git a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
> index 2649469070aa..b9379ad92546 100644
> --- a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
> +++ b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
> @@ -792,7 +792,9 @@ static int boe_panel_add(struct boe_panel *boe)
>  	boe->base.funcs = &boe_panel_funcs;
>  	boe->base.dev = &boe->dsi->dev;
>  
> -	return drm_panel_add(&boe->base);
> +	drm_panel_add(&boe->base);
> +
> +	return 0;
>  }
>  
>  static int boe_panel_probe(struct mipi_dsi_device *dsi)
> diff --git a/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c b/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c
> index fddbfddf6566..7f2eb54e4254 100644
> --- a/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c
> +++ b/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c
> @@ -478,9 +478,7 @@ static int k101_im2ba02_dsi_probe(struct mipi_dsi_device *dsi)
>  	if (ret)
>  		return ret;
>  
> -	ret = drm_panel_add(&ctx->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&ctx->panel);
>  
>  	dsi->mode_flags = MIPI_DSI_MODE_VIDEO;
>  	dsi->format = MIPI_DSI_FMT_RGB888;
> diff --git a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
> index 95b789ab9d29..2c168a405928 100644
> --- a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
> +++ b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
> @@ -225,9 +225,7 @@ static int feiyang_dsi_probe(struct mipi_dsi_device *dsi)
>  	if (ret)
>  		return ret;
>  
> -	ret = drm_panel_add(&ctx->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&ctx->panel);
>  
>  	dsi->mode_flags = MIPI_DSI_MODE_VIDEO_BURST;
>  	dsi->format = MIPI_DSI_FMT_RGB888;
> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> index 873b1c7059bd..4a41d8734cc7 100644
> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> @@ -899,7 +899,9 @@ static int ili9322_probe(struct spi_device *spi)
>  	drm_panel_init(&ili->panel, dev, &ili9322_drm_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	return drm_panel_add(&ili->panel);
> +	drm_panel_add(&ili->panel);
> +
> +	return 0;
>  }
>  
>  static int ili9322_remove(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
> index f54077c216a3..52fd6f3d4452 100644
> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
> @@ -447,9 +447,7 @@ static int ili9881c_dsi_probe(struct mipi_dsi_device *dsi)
>  	if (ret)
>  		return ret;
>  
> -	ret = drm_panel_add(&ctx->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&ctx->panel);
>  
>  	dsi->mode_flags = MIPI_DSI_MODE_VIDEO_SYNC_PULSE;
>  	dsi->format = MIPI_DSI_FMT_RGB888;
> diff --git a/drivers/gpu/drm/panel/panel-innolux-p079zca.c b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
> index 7419f1f0acee..cc3e07b61a6c 100644
> --- a/drivers/gpu/drm/panel/panel-innolux-p079zca.c
> +++ b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
> @@ -477,9 +477,7 @@ static int innolux_panel_add(struct mipi_dsi_device *dsi,
>  	if (err)
>  		return err;
>  
> -	err = drm_panel_add(&innolux->base);
> -	if (err < 0)
> -		return err;
> +	drm_panel_add(&innolux->base);
>  
>  	mipi_dsi_set_drvdata(dsi, innolux);
>  	innolux->link = dsi;
> diff --git a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
> index 4bfd8c877c8e..4fc2185575a7 100644
> --- a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
> +++ b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
> @@ -441,9 +441,9 @@ static int jdi_panel_add(struct jdi_panel *jdi)
>  	drm_panel_init(&jdi->base, &jdi->dsi->dev, &jdi_panel_funcs,
>  		       DRM_MODE_CONNECTOR_DSI);
>  
> -	ret = drm_panel_add(&jdi->base);
> +	drm_panel_add(&jdi->base);
>  
> -	return ret;
> +	return 0;
>  }
>  
>  static void jdi_panel_del(struct jdi_panel *jdi)
> diff --git a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
> index bac1a2a06c92..c75790f95461 100644
> --- a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
> +++ b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
> @@ -383,7 +383,9 @@ static int kingdisplay_panel_add(struct kingdisplay_panel *kingdisplay)
>  	if (err)
>  		return err;
>  
> -	return drm_panel_add(&kingdisplay->base);
> +	drm_panel_add(&kingdisplay->base);
> +
> +	return 0;
>  }
>  
>  static void kingdisplay_panel_del(struct kingdisplay_panel *kingdisplay)
> diff --git a/drivers/gpu/drm/panel/panel-lg-lb035q02.c b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> index e90efeaba4ad..8cb403ed2d5f 100644
> --- a/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> +++ b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> @@ -199,7 +199,9 @@ static int lb035q02_probe(struct spi_device *spi)
>  	drm_panel_init(&lcd->panel, &lcd->spi->dev, &lb035q02_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	return drm_panel_add(&lcd->panel);
> +	drm_panel_add(&lcd->panel);
> +
> +	return 0;
>  }
>  
>  static int lb035q02_remove(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-lg-lg4573.c b/drivers/gpu/drm/panel/panel-lg-lg4573.c
> index 5907f2503755..02e8e593ba17 100644
> --- a/drivers/gpu/drm/panel/panel-lg-lg4573.c
> +++ b/drivers/gpu/drm/panel/panel-lg-lg4573.c
> @@ -262,7 +262,9 @@ static int lg4573_probe(struct spi_device *spi)
>  	drm_panel_init(&ctx->panel, &spi->dev, &lg4573_drm_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	return drm_panel_add(&ctx->panel);
> +	drm_panel_add(&ctx->panel);
> +
> +	return 0;
>  }
>  
>  static int lg4573_remove(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-lvds.c b/drivers/gpu/drm/panel/panel-lvds.c
> index 5ce3f4a2b7a1..41305c3dcf31 100644
> --- a/drivers/gpu/drm/panel/panel-lvds.c
> +++ b/drivers/gpu/drm/panel/panel-lvds.c
> @@ -227,9 +227,7 @@ static int panel_lvds_probe(struct platform_device *pdev)
>  	if (ret)
>  		return ret;
>  
> -	ret = drm_panel_add(&lvds->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&lvds->panel);
>  
>  	dev_set_drvdata(lvds->dev, lvds);
>  	return 0;
> diff --git a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> index c4f83f6384e1..8217cb9a0658 100644
> --- a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> +++ b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> @@ -208,7 +208,9 @@ static int nl8048_probe(struct spi_device *spi)
>  	drm_panel_init(&lcd->panel, &lcd->spi->dev, &nl8048_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	return drm_panel_add(&lcd->panel);
> +	drm_panel_add(&lcd->panel);
> +
> +	return 0;
>  }
>  
>  static int nl8048_remove(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-novatek-nt35510.c b/drivers/gpu/drm/panel/panel-novatek-nt35510.c
> index 4a8fa908a2cf..9a701a30fe04 100644
> --- a/drivers/gpu/drm/panel/panel-novatek-nt35510.c
> +++ b/drivers/gpu/drm/panel/panel-novatek-nt35510.c
> @@ -956,9 +956,7 @@ static int nt35510_probe(struct mipi_dsi_device *dsi)
>  		nt->panel.backlight = bl;
>  	}
>  
> -	ret = drm_panel_add(&nt->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&nt->panel);
>  
>  	ret = mipi_dsi_attach(dsi);
>  	if (ret < 0)
> diff --git a/drivers/gpu/drm/panel/panel-novatek-nt39016.c b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> index 05cae8d62d56..9957b846bcff 100644
> --- a/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> +++ b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> @@ -303,11 +303,7 @@ static int nt39016_probe(struct spi_device *spi)
>  	drm_panel_init(&panel->drm_panel, dev, &nt39016_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	err = drm_panel_add(&panel->drm_panel);
> -	if (err < 0) {
> -		dev_err(dev, "Failed to register panel");
> -		return err;
> -	}
> +	drm_panel_add(&panel->drm_panel);
>  
>  	return 0;
>  }
> diff --git a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
> index 09deb99981a4..2edda548fffd 100644
> --- a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
> +++ b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
> @@ -284,7 +284,9 @@ static int lcd_olinuxino_probe(struct i2c_client *client,
>  	if (ret)
>  		return ret;
>  
> -	return drm_panel_add(&lcd->panel);
> +	drm_panel_add(&lcd->panel);
> +
> +	return 0;
>  }
>  
>  static int lcd_olinuxino_remove(struct i2c_client *client)
> diff --git a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
> index 3a0229d60095..4fbf12ee858e 100644
> --- a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
> +++ b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
> @@ -165,7 +165,9 @@ static int osd101t2587_panel_add(struct osd101t2587_panel *osd101t2587)
>  	if (ret)
>  		return ret;
>  
> -	return drm_panel_add(&osd101t2587->base);
> +	drm_panel_add(&osd101t2587->base);
> +
> +	return 0;
>  }
>  
>  static int osd101t2587_panel_probe(struct mipi_dsi_device *dsi)
> diff --git a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
> index 69693451462e..368722d98faf 100644
> --- a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
> +++ b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
> @@ -207,7 +207,9 @@ static int wuxga_nt_panel_add(struct wuxga_nt_panel *wuxga_nt)
>  	if (ret)
>  		return ret;
>  
> -	return drm_panel_add(&wuxga_nt->base);
> +	drm_panel_add(&wuxga_nt->base);
> +
> +	return 0;
>  }
>  
>  static void wuxga_nt_panel_del(struct wuxga_nt_panel *wuxga_nt)
> diff --git a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
> index 8f078b7dd89e..25112e5b353b 100644
> --- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
> +++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
> @@ -429,9 +429,7 @@ static int rpi_touchscreen_probe(struct i2c_client *i2c,
>  	/* This appears last, as it's what will unblock the DSI host
>  	 * driver's component bind function.
>  	 */
> -	ret = drm_panel_add(&ts->base);
> -	if (ret)
> -		return ret;
> +	drm_panel_add(&ts->base);
>  
>  	return 0;
>  
> diff --git a/drivers/gpu/drm/panel/panel-raydium-rm67191.c b/drivers/gpu/drm/panel/panel-raydium-rm67191.c
> index 313637d53d28..055201534bf5 100644
> --- a/drivers/gpu/drm/panel/panel-raydium-rm67191.c
> +++ b/drivers/gpu/drm/panel/panel-raydium-rm67191.c
> @@ -610,9 +610,7 @@ static int rad_panel_probe(struct mipi_dsi_device *dsi)
>  		       DRM_MODE_CONNECTOR_DSI);
>  	dev_set_drvdata(dev, panel);
>  
> -	ret = drm_panel_add(&panel->panel);
> -	if (ret)
> -		return ret;
> +	drm_panel_add(&panel->panel);
>  
>  	ret = mipi_dsi_attach(dsi);
>  	if (ret)
> diff --git a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
> index ef18559e237e..6298051c7244 100644
> --- a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
> +++ b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
> @@ -201,9 +201,7 @@ static int rb070d30_panel_dsi_probe(struct mipi_dsi_device *dsi)
>  	if (ret)
>  		return ret;
>  
> -	ret = drm_panel_add(&ctx->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&ctx->panel);
>  
>  	dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_LPM;
>  	dsi->format = MIPI_DSI_FMT_RGB888;
> diff --git a/drivers/gpu/drm/panel/panel-samsung-ld9040.c b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> index 9bb2e8c7934a..358168ed8355 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> @@ -354,7 +354,9 @@ static int ld9040_probe(struct spi_device *spi)
>  	drm_panel_init(&ctx->panel, dev, &ld9040_drm_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	return drm_panel_add(&ctx->panel);
> +	drm_panel_add(&ctx->panel);
> +
> +	return 0;
>  }
>  
>  static int ld9040_remove(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c b/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
> index 2150043dcf6b..72c26a63dbe5 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
> @@ -218,9 +218,7 @@ static int s6d16d0_probe(struct mipi_dsi_device *dsi)
>  	drm_panel_init(&s6->panel, dev, &s6d16d0_drm_funcs,
>  		       DRM_MODE_CONNECTOR_DSI);
>  
> -	ret = drm_panel_add(&s6->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&s6->panel);
>  
>  	ret = mipi_dsi_attach(dsi);
>  	if (ret < 0)
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
> index 36ebd5a4ac7b..d242b2f5f2d8 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
> @@ -735,9 +735,7 @@ static int s6e3ha2_probe(struct mipi_dsi_device *dsi)
>  	drm_panel_init(&ctx->panel, dev, &s6e3ha2_drm_funcs,
>  		       DRM_MODE_CONNECTOR_DSI);
>  
> -	ret = drm_panel_add(&ctx->panel);
> -	if (ret < 0)
> -		goto unregister_backlight;
> +	drm_panel_add(&ctx->panel);
>  
>  	ret = mipi_dsi_attach(dsi);
>  	if (ret < 0)
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
> index a3570e0a90a8..0c60f61015ff 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
> @@ -480,9 +480,7 @@ static int s6e63j0x03_probe(struct mipi_dsi_device *dsi)
>  	ctx->bl_dev->props.brightness = DEFAULT_BRIGHTNESS;
>  	ctx->bl_dev->props.power = FB_BLANK_POWERDOWN;
>  
> -	ret = drm_panel_add(&ctx->panel);
> -	if (ret < 0)
> -		goto unregister_backlight;
> +	drm_panel_add(&ctx->panel);
>  
>  	ret = mipi_dsi_attach(dsi);
>  	if (ret < 0)
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
> index a5f76eb4fa25..40f2f427dc91 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
> @@ -480,7 +480,9 @@ static int s6e63m0_probe(struct spi_device *spi)
>  	if (ret < 0)
>  		return ret;
>  
> -	return drm_panel_add(&ctx->panel);
> +	drm_panel_add(&ctx->panel);
> +
> +	return 0;
>  }
>  
>  static int s6e63m0_remove(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c b/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
> index 9d843fcc3a22..e17ba1d84481 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
> @@ -243,11 +243,7 @@ static int s6e88a0_ams452ef01_probe(struct mipi_dsi_device *dsi)
>  	drm_panel_init(&ctx->panel, dev, &s6e88a0_ams452ef01_panel_funcs,
>  		       DRM_MODE_CONNECTOR_DSI);
>  
> -	ret = drm_panel_add(&ctx->panel);
> -	if (ret < 0) {
> -		dev_err(dev, "Failed to add panel: %d\n", ret);
> -		return ret;
> -	}
> +	drm_panel_add(&ctx->panel);
>  
>  	ret = mipi_dsi_attach(dsi);
>  	if (ret < 0) {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
> index 8a028d2bd0d6..e36cb1a25318 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
> @@ -1020,9 +1020,7 @@ static int s6e8aa0_probe(struct mipi_dsi_device *dsi)
>  	drm_panel_init(&ctx->panel, dev, &s6e8aa0_drm_funcs,
>  		       DRM_MODE_CONNECTOR_DSI);
>  
> -	ret = drm_panel_add(&ctx->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&ctx->panel);
>  
>  	ret = mipi_dsi_attach(dsi);
>  	if (ret < 0)
> diff --git a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
> index 40fcbbbacb2c..46428b513a5d 100644
> --- a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
> +++ b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
> @@ -257,9 +257,7 @@ static int seiko_panel_probe(struct device *dev,
>  	if (err)
>  		return err;
>  
> -	err = drm_panel_add(&panel->base);
> -	if (err < 0)
> -		return err;
> +	drm_panel_add(&panel->base);
>  
>  	dev_set_drvdata(dev, panel);
>  
> diff --git a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
> index b5d1977221a7..9727d3748034 100644
> --- a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
> +++ b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
> @@ -326,7 +326,9 @@ static int sharp_panel_add(struct sharp_panel *sharp)
>  	if (ret)
>  		return ret;
>  
> -	return drm_panel_add(&sharp->base);
> +	drm_panel_add(&sharp->base);
> +
> +	return 0;
>  }
>  
>  static void sharp_panel_del(struct sharp_panel *sharp)
> diff --git a/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c b/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
> index 1cf3f02435c1..be5cdadf5147 100644
> --- a/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
> +++ b/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
> @@ -188,7 +188,9 @@ static int ls037v7dw01_probe(struct platform_device *pdev)
>  	drm_panel_init(&lcd->panel, &pdev->dev, &ls037v7dw01_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	return drm_panel_add(&lcd->panel);
> +	drm_panel_add(&lcd->panel);
> +
> +	return 0;
>  }
>  
>  static int ls037v7dw01_remove(struct platform_device *pdev)
> diff --git a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
> index ce586c6d70c7..730efc3d6984 100644
> --- a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
> +++ b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
> @@ -262,7 +262,9 @@ static int sharp_nt_panel_add(struct sharp_nt_panel *sharp_nt)
>  	if (ret)
>  		return ret;
>  
> -	return drm_panel_add(&sharp_nt->base);
> +	drm_panel_add(&sharp_nt->base);
> +
> +	return 0;
>  }
>  
>  static void sharp_nt_panel_del(struct sharp_nt_panel *sharp_nt)
> diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> index 4aeb960ccf15..b290b2b966c2 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -555,9 +555,7 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc)
>  	if (err)
>  		goto free_ddc;
>  
> -	err = drm_panel_add(&panel->base);
> -	if (err < 0)
> -		goto free_ddc;
> +	drm_panel_add(&panel->base);
>  
>  	dev_set_drvdata(dev, panel);
>  
> diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7701.c b/drivers/gpu/drm/panel/panel-sitronix-st7701.c
> index 4b4f2558e3b4..66030978bcf9 100644
> --- a/drivers/gpu/drm/panel/panel-sitronix-st7701.c
> +++ b/drivers/gpu/drm/panel/panel-sitronix-st7701.c
> @@ -380,9 +380,7 @@ static int st7701_dsi_probe(struct mipi_dsi_device *dsi)
>  	if (ret)
>  		return ret;
>  
> -	ret = drm_panel_add(&st7701->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&st7701->panel);
>  
>  	mipi_dsi_set_drvdata(dsi, st7701);
>  	st7701->dsi = dsi;
> diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> index cc02c54c1b2e..6ed8c9823ee6 100644
> --- a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> +++ b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> @@ -383,9 +383,7 @@ static int st7789v_probe(struct spi_device *spi)
>  	if (ret)
>  		return ret;
>  
> -	ret = drm_panel_add(&ctx->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&ctx->panel);
>  
>  	return 0;
>  }
> diff --git a/drivers/gpu/drm/panel/panel-sony-acx424akp.c b/drivers/gpu/drm/panel/panel-sony-acx424akp.c
> index c91e55b2d7a3..4c46ed9b3f6d 100644
> --- a/drivers/gpu/drm/panel/panel-sony-acx424akp.c
> +++ b/drivers/gpu/drm/panel/panel-sony-acx424akp.c
> @@ -506,9 +506,7 @@ static int acx424akp_probe(struct mipi_dsi_device *dsi)
>  	acx->bl->props.brightness = 512;
>  	acx->bl->props.power = FB_BLANK_POWERDOWN;
>  
> -	ret = drm_panel_add(&acx->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&acx->panel);
>  
>  	ret = mipi_dsi_attach(dsi);
>  	if (ret < 0) {
> diff --git a/drivers/gpu/drm/panel/panel-sony-acx565akm.c b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> index 5c4b6f6e5c2d..08442104dc43 100644
> --- a/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> +++ b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> @@ -651,12 +651,7 @@ static int acx565akm_probe(struct spi_device *spi)
>  	drm_panel_init(&lcd->panel, &lcd->spi->dev, &acx565akm_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	ret = drm_panel_add(&lcd->panel);
> -	if (ret < 0) {
> -		if (lcd->has_bc)
> -			acx565akm_backlight_cleanup(lcd);
> -		return ret;
> -	}
> +	drm_panel_add(&lcd->panel);
>  
>  	return 0;
>  }
> diff --git a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> index aeca15dfeb3c..5f4001a21a04 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> @@ -351,7 +351,9 @@ static int td028ttec1_probe(struct spi_device *spi)
>  	if (ret)
>  		return ret;
>  
> -	return drm_panel_add(&lcd->panel);
> +	drm_panel_add(&lcd->panel);
> +
> +	return 0;
>  }
>  
>  static int td028ttec1_remove(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> index 75f1f1f1b6de..1d7a0df1680e 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> @@ -461,11 +461,7 @@ static int td043mtea1_probe(struct spi_device *spi)
>  	drm_panel_init(&lcd->panel, &lcd->spi->dev, &td043mtea1_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	ret = drm_panel_add(&lcd->panel);
> -	if (ret < 0) {
> -		sysfs_remove_group(&spi->dev.kobj, &td043mtea1_attr_group);
> -		return ret;
> -	}
> +	drm_panel_add(&lcd->panel);
>  
>  	return 0;
>  }
> diff --git a/drivers/gpu/drm/panel/panel-tpo-tpg110.c b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> index 8472d018c16f..b54dfcc5b3ef 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> @@ -453,7 +453,9 @@ static int tpg110_probe(struct spi_device *spi)
>  
>  	spi_set_drvdata(spi, tpg);
>  
> -	return drm_panel_add(&tpg->panel);
> +	drm_panel_add(&tpg->panel);
> +
> +	return 0;
>  }
>  
>  static int tpg110_remove(struct spi_device *spi)
> diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
> index 6193cb555acc..ff066524cb70 100644
> --- a/include/drm/drm_panel.h
> +++ b/include/drm/drm_panel.h
> @@ -175,7 +175,7 @@ void drm_panel_init(struct drm_panel *panel, struct device *dev,
>  		    const struct drm_panel_funcs *funcs,
>  		    int connector_type);
>  
> -int drm_panel_add(struct drm_panel *panel);
> +void drm_panel_add(struct drm_panel *panel);
>  void drm_panel_remove(struct drm_panel *panel);
>  
>  int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector);
> -- 
> 2.17.1

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] drm/panel: remove return value of function drm_panel_add
@ 2020-08-02  7:07   ` Sam Ravnborg
  0 siblings, 0 replies; 18+ messages in thread
From: Sam Ravnborg @ 2020-08-02  7:07 UTC (permalink / raw)
  To: Bernard Zhao
  Cc: dri-devel, opensource.kernel, Laurent Pinchart,
	Thomas Zimmermann, Stefan Mavrodiev, David Airlie, Jerry Han,
	linux-kernel, Thierry Reding, Jagan Teki, Robert Chiras,
	Icenowy Zheng

Hi Bernard.

On Sat, Aug 01, 2020 at 08:02:13PM +0800, Bernard Zhao wrote:
> The function "int drm_panel_add(struct drm_panel *panel)"
> always returns 0, this return value is meaningless.
> Also, there is no need to check return value which calls
> "drm_panel_add and", error branch code will never run.

Thanks for this nice cleanup.
Applied to drm-misc-next - so it will appear in -next after the
upcoming merge window and will hit upstream in 5.10

While applying I did the following modifications:
- Fixed kernel-doc as the function returns a void
- Fixed one panel that was missing the conversion
- Fixed warnings due to unused labels


If you are up to another cleanup task there is drm_panel_attach()
and drm_panel_detach() which are no longer needed and all users
and the empty implementations can be dropped.

This will touch a lot of drivers so this change should be split
in one patch/driver.

bridge/* can be handled as one patch I think.
imx/* is already done, awaiting to be applied.

	Sam

> 
> Signed-off-by: Bernard Zhao <bernard@vivo.com>
> ---
>  drivers/gpu/drm/drm_panel.c                              | 4 +---
>  drivers/gpu/drm/panel/panel-arm-versatile.c              | 4 +++-
>  drivers/gpu/drm/panel/panel-boe-himax8279d.c             | 4 +++-
>  drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c           | 4 +++-
>  drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c        | 4 +---
>  drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c    | 4 +---
>  drivers/gpu/drm/panel/panel-ilitek-ili9322.c             | 4 +++-
>  drivers/gpu/drm/panel/panel-ilitek-ili9881c.c            | 4 +---
>  drivers/gpu/drm/panel/panel-innolux-p079zca.c            | 4 +---
>  drivers/gpu/drm/panel/panel-jdi-lt070me05000.c           | 4 ++--
>  drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c       | 4 +++-
>  drivers/gpu/drm/panel/panel-lg-lb035q02.c                | 4 +++-
>  drivers/gpu/drm/panel/panel-lg-lg4573.c                  | 4 +++-
>  drivers/gpu/drm/panel/panel-lvds.c                       | 4 +---
>  drivers/gpu/drm/panel/panel-nec-nl8048hl11.c             | 4 +++-
>  drivers/gpu/drm/panel/panel-novatek-nt35510.c            | 4 +---
>  drivers/gpu/drm/panel/panel-novatek-nt39016.c            | 6 +-----
>  drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c       | 4 +++-
>  drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c       | 4 +++-
>  drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c     | 4 +++-
>  drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c    | 4 +---
>  drivers/gpu/drm/panel/panel-raydium-rm67191.c            | 4 +---
>  drivers/gpu/drm/panel/panel-ronbo-rb070d30.c             | 4 +---
>  drivers/gpu/drm/panel/panel-samsung-ld9040.c             | 4 +++-
>  drivers/gpu/drm/panel/panel-samsung-s6d16d0.c            | 4 +---
>  drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c            | 4 +---
>  drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c         | 4 +---
>  drivers/gpu/drm/panel/panel-samsung-s6e63m0.c            | 4 +++-
>  drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c | 6 +-----
>  drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c            | 4 +---
>  drivers/gpu/drm/panel/panel-seiko-43wvf1g.c              | 4 +---
>  drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c          | 4 +++-
>  drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c          | 4 +++-
>  drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c          | 4 +++-
>  drivers/gpu/drm/panel/panel-simple.c                     | 4 +---
>  drivers/gpu/drm/panel/panel-sitronix-st7701.c            | 4 +---
>  drivers/gpu/drm/panel/panel-sitronix-st7789v.c           | 4 +---
>  drivers/gpu/drm/panel/panel-sony-acx424akp.c             | 4 +---
>  drivers/gpu/drm/panel/panel-sony-acx565akm.c             | 7 +------
>  drivers/gpu/drm/panel/panel-tpo-td028ttec1.c             | 4 +++-
>  drivers/gpu/drm/panel/panel-tpo-td043mtea1.c             | 6 +-----
>  drivers/gpu/drm/panel/panel-tpo-tpg110.c                 | 4 +++-
>  include/drm/drm_panel.h                                  | 2 +-
>  43 files changed, 80 insertions(+), 99 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
> index 8c7bac85a793..fab41f63ad12 100644
> --- a/drivers/gpu/drm/drm_panel.c
> +++ b/drivers/gpu/drm/drm_panel.c
> @@ -73,13 +73,11 @@ EXPORT_SYMBOL(drm_panel_init);
>   *
>   * Return: 0 on success or a negative error code on failure.
>   */
> -int drm_panel_add(struct drm_panel *panel)
> +void drm_panel_add(struct drm_panel *panel)
>  {
>  	mutex_lock(&panel_lock);
>  	list_add_tail(&panel->list, &panel_list);
>  	mutex_unlock(&panel_lock);
> -
> -	return 0;
>  }
>  EXPORT_SYMBOL(drm_panel_add);
>  
> diff --git a/drivers/gpu/drm/panel/panel-arm-versatile.c b/drivers/gpu/drm/panel/panel-arm-versatile.c
> index 41444a73c980..5aaee5414c40 100644
> --- a/drivers/gpu/drm/panel/panel-arm-versatile.c
> +++ b/drivers/gpu/drm/panel/panel-arm-versatile.c
> @@ -353,7 +353,9 @@ static int versatile_panel_probe(struct platform_device *pdev)
>  	drm_panel_init(&vpanel->panel, dev, &versatile_panel_drm_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	return drm_panel_add(&vpanel->panel);
> +	drm_panel_add(&vpanel->panel);
> +
> +	return 0;
>  }
>  
>  static const struct of_device_id versatile_panel_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-boe-himax8279d.c b/drivers/gpu/drm/panel/panel-boe-himax8279d.c
> index 74d58ee7d04c..e0630ce04147 100644
> --- a/drivers/gpu/drm/panel/panel-boe-himax8279d.c
> +++ b/drivers/gpu/drm/panel/panel-boe-himax8279d.c
> @@ -896,7 +896,9 @@ static int panel_add(struct panel_info *pinfo)
>  	if (ret)
>  		return ret;
>  
> -	return drm_panel_add(&pinfo->base);
> +	drm_panel_add(&pinfo->base);
> +
> +	return 0;
>  }
>  
>  static int panel_probe(struct mipi_dsi_device *dsi)
> diff --git a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
> index 2649469070aa..b9379ad92546 100644
> --- a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
> +++ b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
> @@ -792,7 +792,9 @@ static int boe_panel_add(struct boe_panel *boe)
>  	boe->base.funcs = &boe_panel_funcs;
>  	boe->base.dev = &boe->dsi->dev;
>  
> -	return drm_panel_add(&boe->base);
> +	drm_panel_add(&boe->base);
> +
> +	return 0;
>  }
>  
>  static int boe_panel_probe(struct mipi_dsi_device *dsi)
> diff --git a/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c b/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c
> index fddbfddf6566..7f2eb54e4254 100644
> --- a/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c
> +++ b/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c
> @@ -478,9 +478,7 @@ static int k101_im2ba02_dsi_probe(struct mipi_dsi_device *dsi)
>  	if (ret)
>  		return ret;
>  
> -	ret = drm_panel_add(&ctx->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&ctx->panel);
>  
>  	dsi->mode_flags = MIPI_DSI_MODE_VIDEO;
>  	dsi->format = MIPI_DSI_FMT_RGB888;
> diff --git a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
> index 95b789ab9d29..2c168a405928 100644
> --- a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
> +++ b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
> @@ -225,9 +225,7 @@ static int feiyang_dsi_probe(struct mipi_dsi_device *dsi)
>  	if (ret)
>  		return ret;
>  
> -	ret = drm_panel_add(&ctx->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&ctx->panel);
>  
>  	dsi->mode_flags = MIPI_DSI_MODE_VIDEO_BURST;
>  	dsi->format = MIPI_DSI_FMT_RGB888;
> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> index 873b1c7059bd..4a41d8734cc7 100644
> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> @@ -899,7 +899,9 @@ static int ili9322_probe(struct spi_device *spi)
>  	drm_panel_init(&ili->panel, dev, &ili9322_drm_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	return drm_panel_add(&ili->panel);
> +	drm_panel_add(&ili->panel);
> +
> +	return 0;
>  }
>  
>  static int ili9322_remove(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
> index f54077c216a3..52fd6f3d4452 100644
> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
> @@ -447,9 +447,7 @@ static int ili9881c_dsi_probe(struct mipi_dsi_device *dsi)
>  	if (ret)
>  		return ret;
>  
> -	ret = drm_panel_add(&ctx->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&ctx->panel);
>  
>  	dsi->mode_flags = MIPI_DSI_MODE_VIDEO_SYNC_PULSE;
>  	dsi->format = MIPI_DSI_FMT_RGB888;
> diff --git a/drivers/gpu/drm/panel/panel-innolux-p079zca.c b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
> index 7419f1f0acee..cc3e07b61a6c 100644
> --- a/drivers/gpu/drm/panel/panel-innolux-p079zca.c
> +++ b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
> @@ -477,9 +477,7 @@ static int innolux_panel_add(struct mipi_dsi_device *dsi,
>  	if (err)
>  		return err;
>  
> -	err = drm_panel_add(&innolux->base);
> -	if (err < 0)
> -		return err;
> +	drm_panel_add(&innolux->base);
>  
>  	mipi_dsi_set_drvdata(dsi, innolux);
>  	innolux->link = dsi;
> diff --git a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
> index 4bfd8c877c8e..4fc2185575a7 100644
> --- a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
> +++ b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
> @@ -441,9 +441,9 @@ static int jdi_panel_add(struct jdi_panel *jdi)
>  	drm_panel_init(&jdi->base, &jdi->dsi->dev, &jdi_panel_funcs,
>  		       DRM_MODE_CONNECTOR_DSI);
>  
> -	ret = drm_panel_add(&jdi->base);
> +	drm_panel_add(&jdi->base);
>  
> -	return ret;
> +	return 0;
>  }
>  
>  static void jdi_panel_del(struct jdi_panel *jdi)
> diff --git a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
> index bac1a2a06c92..c75790f95461 100644
> --- a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
> +++ b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
> @@ -383,7 +383,9 @@ static int kingdisplay_panel_add(struct kingdisplay_panel *kingdisplay)
>  	if (err)
>  		return err;
>  
> -	return drm_panel_add(&kingdisplay->base);
> +	drm_panel_add(&kingdisplay->base);
> +
> +	return 0;
>  }
>  
>  static void kingdisplay_panel_del(struct kingdisplay_panel *kingdisplay)
> diff --git a/drivers/gpu/drm/panel/panel-lg-lb035q02.c b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> index e90efeaba4ad..8cb403ed2d5f 100644
> --- a/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> +++ b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> @@ -199,7 +199,9 @@ static int lb035q02_probe(struct spi_device *spi)
>  	drm_panel_init(&lcd->panel, &lcd->spi->dev, &lb035q02_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	return drm_panel_add(&lcd->panel);
> +	drm_panel_add(&lcd->panel);
> +
> +	return 0;
>  }
>  
>  static int lb035q02_remove(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-lg-lg4573.c b/drivers/gpu/drm/panel/panel-lg-lg4573.c
> index 5907f2503755..02e8e593ba17 100644
> --- a/drivers/gpu/drm/panel/panel-lg-lg4573.c
> +++ b/drivers/gpu/drm/panel/panel-lg-lg4573.c
> @@ -262,7 +262,9 @@ static int lg4573_probe(struct spi_device *spi)
>  	drm_panel_init(&ctx->panel, &spi->dev, &lg4573_drm_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	return drm_panel_add(&ctx->panel);
> +	drm_panel_add(&ctx->panel);
> +
> +	return 0;
>  }
>  
>  static int lg4573_remove(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-lvds.c b/drivers/gpu/drm/panel/panel-lvds.c
> index 5ce3f4a2b7a1..41305c3dcf31 100644
> --- a/drivers/gpu/drm/panel/panel-lvds.c
> +++ b/drivers/gpu/drm/panel/panel-lvds.c
> @@ -227,9 +227,7 @@ static int panel_lvds_probe(struct platform_device *pdev)
>  	if (ret)
>  		return ret;
>  
> -	ret = drm_panel_add(&lvds->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&lvds->panel);
>  
>  	dev_set_drvdata(lvds->dev, lvds);
>  	return 0;
> diff --git a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> index c4f83f6384e1..8217cb9a0658 100644
> --- a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> +++ b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> @@ -208,7 +208,9 @@ static int nl8048_probe(struct spi_device *spi)
>  	drm_panel_init(&lcd->panel, &lcd->spi->dev, &nl8048_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	return drm_panel_add(&lcd->panel);
> +	drm_panel_add(&lcd->panel);
> +
> +	return 0;
>  }
>  
>  static int nl8048_remove(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-novatek-nt35510.c b/drivers/gpu/drm/panel/panel-novatek-nt35510.c
> index 4a8fa908a2cf..9a701a30fe04 100644
> --- a/drivers/gpu/drm/panel/panel-novatek-nt35510.c
> +++ b/drivers/gpu/drm/panel/panel-novatek-nt35510.c
> @@ -956,9 +956,7 @@ static int nt35510_probe(struct mipi_dsi_device *dsi)
>  		nt->panel.backlight = bl;
>  	}
>  
> -	ret = drm_panel_add(&nt->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&nt->panel);
>  
>  	ret = mipi_dsi_attach(dsi);
>  	if (ret < 0)
> diff --git a/drivers/gpu/drm/panel/panel-novatek-nt39016.c b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> index 05cae8d62d56..9957b846bcff 100644
> --- a/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> +++ b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> @@ -303,11 +303,7 @@ static int nt39016_probe(struct spi_device *spi)
>  	drm_panel_init(&panel->drm_panel, dev, &nt39016_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	err = drm_panel_add(&panel->drm_panel);
> -	if (err < 0) {
> -		dev_err(dev, "Failed to register panel");
> -		return err;
> -	}
> +	drm_panel_add(&panel->drm_panel);
>  
>  	return 0;
>  }
> diff --git a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
> index 09deb99981a4..2edda548fffd 100644
> --- a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
> +++ b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
> @@ -284,7 +284,9 @@ static int lcd_olinuxino_probe(struct i2c_client *client,
>  	if (ret)
>  		return ret;
>  
> -	return drm_panel_add(&lcd->panel);
> +	drm_panel_add(&lcd->panel);
> +
> +	return 0;
>  }
>  
>  static int lcd_olinuxino_remove(struct i2c_client *client)
> diff --git a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
> index 3a0229d60095..4fbf12ee858e 100644
> --- a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
> +++ b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
> @@ -165,7 +165,9 @@ static int osd101t2587_panel_add(struct osd101t2587_panel *osd101t2587)
>  	if (ret)
>  		return ret;
>  
> -	return drm_panel_add(&osd101t2587->base);
> +	drm_panel_add(&osd101t2587->base);
> +
> +	return 0;
>  }
>  
>  static int osd101t2587_panel_probe(struct mipi_dsi_device *dsi)
> diff --git a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
> index 69693451462e..368722d98faf 100644
> --- a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
> +++ b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
> @@ -207,7 +207,9 @@ static int wuxga_nt_panel_add(struct wuxga_nt_panel *wuxga_nt)
>  	if (ret)
>  		return ret;
>  
> -	return drm_panel_add(&wuxga_nt->base);
> +	drm_panel_add(&wuxga_nt->base);
> +
> +	return 0;
>  }
>  
>  static void wuxga_nt_panel_del(struct wuxga_nt_panel *wuxga_nt)
> diff --git a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
> index 8f078b7dd89e..25112e5b353b 100644
> --- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
> +++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
> @@ -429,9 +429,7 @@ static int rpi_touchscreen_probe(struct i2c_client *i2c,
>  	/* This appears last, as it's what will unblock the DSI host
>  	 * driver's component bind function.
>  	 */
> -	ret = drm_panel_add(&ts->base);
> -	if (ret)
> -		return ret;
> +	drm_panel_add(&ts->base);
>  
>  	return 0;
>  
> diff --git a/drivers/gpu/drm/panel/panel-raydium-rm67191.c b/drivers/gpu/drm/panel/panel-raydium-rm67191.c
> index 313637d53d28..055201534bf5 100644
> --- a/drivers/gpu/drm/panel/panel-raydium-rm67191.c
> +++ b/drivers/gpu/drm/panel/panel-raydium-rm67191.c
> @@ -610,9 +610,7 @@ static int rad_panel_probe(struct mipi_dsi_device *dsi)
>  		       DRM_MODE_CONNECTOR_DSI);
>  	dev_set_drvdata(dev, panel);
>  
> -	ret = drm_panel_add(&panel->panel);
> -	if (ret)
> -		return ret;
> +	drm_panel_add(&panel->panel);
>  
>  	ret = mipi_dsi_attach(dsi);
>  	if (ret)
> diff --git a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
> index ef18559e237e..6298051c7244 100644
> --- a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
> +++ b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
> @@ -201,9 +201,7 @@ static int rb070d30_panel_dsi_probe(struct mipi_dsi_device *dsi)
>  	if (ret)
>  		return ret;
>  
> -	ret = drm_panel_add(&ctx->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&ctx->panel);
>  
>  	dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_LPM;
>  	dsi->format = MIPI_DSI_FMT_RGB888;
> diff --git a/drivers/gpu/drm/panel/panel-samsung-ld9040.c b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> index 9bb2e8c7934a..358168ed8355 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> @@ -354,7 +354,9 @@ static int ld9040_probe(struct spi_device *spi)
>  	drm_panel_init(&ctx->panel, dev, &ld9040_drm_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	return drm_panel_add(&ctx->panel);
> +	drm_panel_add(&ctx->panel);
> +
> +	return 0;
>  }
>  
>  static int ld9040_remove(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c b/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
> index 2150043dcf6b..72c26a63dbe5 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
> @@ -218,9 +218,7 @@ static int s6d16d0_probe(struct mipi_dsi_device *dsi)
>  	drm_panel_init(&s6->panel, dev, &s6d16d0_drm_funcs,
>  		       DRM_MODE_CONNECTOR_DSI);
>  
> -	ret = drm_panel_add(&s6->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&s6->panel);
>  
>  	ret = mipi_dsi_attach(dsi);
>  	if (ret < 0)
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
> index 36ebd5a4ac7b..d242b2f5f2d8 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
> @@ -735,9 +735,7 @@ static int s6e3ha2_probe(struct mipi_dsi_device *dsi)
>  	drm_panel_init(&ctx->panel, dev, &s6e3ha2_drm_funcs,
>  		       DRM_MODE_CONNECTOR_DSI);
>  
> -	ret = drm_panel_add(&ctx->panel);
> -	if (ret < 0)
> -		goto unregister_backlight;
> +	drm_panel_add(&ctx->panel);
>  
>  	ret = mipi_dsi_attach(dsi);
>  	if (ret < 0)
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
> index a3570e0a90a8..0c60f61015ff 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
> @@ -480,9 +480,7 @@ static int s6e63j0x03_probe(struct mipi_dsi_device *dsi)
>  	ctx->bl_dev->props.brightness = DEFAULT_BRIGHTNESS;
>  	ctx->bl_dev->props.power = FB_BLANK_POWERDOWN;
>  
> -	ret = drm_panel_add(&ctx->panel);
> -	if (ret < 0)
> -		goto unregister_backlight;
> +	drm_panel_add(&ctx->panel);
>  
>  	ret = mipi_dsi_attach(dsi);
>  	if (ret < 0)
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
> index a5f76eb4fa25..40f2f427dc91 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
> @@ -480,7 +480,9 @@ static int s6e63m0_probe(struct spi_device *spi)
>  	if (ret < 0)
>  		return ret;
>  
> -	return drm_panel_add(&ctx->panel);
> +	drm_panel_add(&ctx->panel);
> +
> +	return 0;
>  }
>  
>  static int s6e63m0_remove(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c b/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
> index 9d843fcc3a22..e17ba1d84481 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
> @@ -243,11 +243,7 @@ static int s6e88a0_ams452ef01_probe(struct mipi_dsi_device *dsi)
>  	drm_panel_init(&ctx->panel, dev, &s6e88a0_ams452ef01_panel_funcs,
>  		       DRM_MODE_CONNECTOR_DSI);
>  
> -	ret = drm_panel_add(&ctx->panel);
> -	if (ret < 0) {
> -		dev_err(dev, "Failed to add panel: %d\n", ret);
> -		return ret;
> -	}
> +	drm_panel_add(&ctx->panel);
>  
>  	ret = mipi_dsi_attach(dsi);
>  	if (ret < 0) {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
> index 8a028d2bd0d6..e36cb1a25318 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
> @@ -1020,9 +1020,7 @@ static int s6e8aa0_probe(struct mipi_dsi_device *dsi)
>  	drm_panel_init(&ctx->panel, dev, &s6e8aa0_drm_funcs,
>  		       DRM_MODE_CONNECTOR_DSI);
>  
> -	ret = drm_panel_add(&ctx->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&ctx->panel);
>  
>  	ret = mipi_dsi_attach(dsi);
>  	if (ret < 0)
> diff --git a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
> index 40fcbbbacb2c..46428b513a5d 100644
> --- a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
> +++ b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
> @@ -257,9 +257,7 @@ static int seiko_panel_probe(struct device *dev,
>  	if (err)
>  		return err;
>  
> -	err = drm_panel_add(&panel->base);
> -	if (err < 0)
> -		return err;
> +	drm_panel_add(&panel->base);
>  
>  	dev_set_drvdata(dev, panel);
>  
> diff --git a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
> index b5d1977221a7..9727d3748034 100644
> --- a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
> +++ b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
> @@ -326,7 +326,9 @@ static int sharp_panel_add(struct sharp_panel *sharp)
>  	if (ret)
>  		return ret;
>  
> -	return drm_panel_add(&sharp->base);
> +	drm_panel_add(&sharp->base);
> +
> +	return 0;
>  }
>  
>  static void sharp_panel_del(struct sharp_panel *sharp)
> diff --git a/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c b/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
> index 1cf3f02435c1..be5cdadf5147 100644
> --- a/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
> +++ b/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
> @@ -188,7 +188,9 @@ static int ls037v7dw01_probe(struct platform_device *pdev)
>  	drm_panel_init(&lcd->panel, &pdev->dev, &ls037v7dw01_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	return drm_panel_add(&lcd->panel);
> +	drm_panel_add(&lcd->panel);
> +
> +	return 0;
>  }
>  
>  static int ls037v7dw01_remove(struct platform_device *pdev)
> diff --git a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
> index ce586c6d70c7..730efc3d6984 100644
> --- a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
> +++ b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
> @@ -262,7 +262,9 @@ static int sharp_nt_panel_add(struct sharp_nt_panel *sharp_nt)
>  	if (ret)
>  		return ret;
>  
> -	return drm_panel_add(&sharp_nt->base);
> +	drm_panel_add(&sharp_nt->base);
> +
> +	return 0;
>  }
>  
>  static void sharp_nt_panel_del(struct sharp_nt_panel *sharp_nt)
> diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> index 4aeb960ccf15..b290b2b966c2 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -555,9 +555,7 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc)
>  	if (err)
>  		goto free_ddc;
>  
> -	err = drm_panel_add(&panel->base);
> -	if (err < 0)
> -		goto free_ddc;
> +	drm_panel_add(&panel->base);
>  
>  	dev_set_drvdata(dev, panel);
>  
> diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7701.c b/drivers/gpu/drm/panel/panel-sitronix-st7701.c
> index 4b4f2558e3b4..66030978bcf9 100644
> --- a/drivers/gpu/drm/panel/panel-sitronix-st7701.c
> +++ b/drivers/gpu/drm/panel/panel-sitronix-st7701.c
> @@ -380,9 +380,7 @@ static int st7701_dsi_probe(struct mipi_dsi_device *dsi)
>  	if (ret)
>  		return ret;
>  
> -	ret = drm_panel_add(&st7701->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&st7701->panel);
>  
>  	mipi_dsi_set_drvdata(dsi, st7701);
>  	st7701->dsi = dsi;
> diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> index cc02c54c1b2e..6ed8c9823ee6 100644
> --- a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> +++ b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> @@ -383,9 +383,7 @@ static int st7789v_probe(struct spi_device *spi)
>  	if (ret)
>  		return ret;
>  
> -	ret = drm_panel_add(&ctx->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&ctx->panel);
>  
>  	return 0;
>  }
> diff --git a/drivers/gpu/drm/panel/panel-sony-acx424akp.c b/drivers/gpu/drm/panel/panel-sony-acx424akp.c
> index c91e55b2d7a3..4c46ed9b3f6d 100644
> --- a/drivers/gpu/drm/panel/panel-sony-acx424akp.c
> +++ b/drivers/gpu/drm/panel/panel-sony-acx424akp.c
> @@ -506,9 +506,7 @@ static int acx424akp_probe(struct mipi_dsi_device *dsi)
>  	acx->bl->props.brightness = 512;
>  	acx->bl->props.power = FB_BLANK_POWERDOWN;
>  
> -	ret = drm_panel_add(&acx->panel);
> -	if (ret < 0)
> -		return ret;
> +	drm_panel_add(&acx->panel);
>  
>  	ret = mipi_dsi_attach(dsi);
>  	if (ret < 0) {
> diff --git a/drivers/gpu/drm/panel/panel-sony-acx565akm.c b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> index 5c4b6f6e5c2d..08442104dc43 100644
> --- a/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> +++ b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> @@ -651,12 +651,7 @@ static int acx565akm_probe(struct spi_device *spi)
>  	drm_panel_init(&lcd->panel, &lcd->spi->dev, &acx565akm_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	ret = drm_panel_add(&lcd->panel);
> -	if (ret < 0) {
> -		if (lcd->has_bc)
> -			acx565akm_backlight_cleanup(lcd);
> -		return ret;
> -	}
> +	drm_panel_add(&lcd->panel);
>  
>  	return 0;
>  }
> diff --git a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> index aeca15dfeb3c..5f4001a21a04 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> @@ -351,7 +351,9 @@ static int td028ttec1_probe(struct spi_device *spi)
>  	if (ret)
>  		return ret;
>  
> -	return drm_panel_add(&lcd->panel);
> +	drm_panel_add(&lcd->panel);
> +
> +	return 0;
>  }
>  
>  static int td028ttec1_remove(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> index 75f1f1f1b6de..1d7a0df1680e 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> @@ -461,11 +461,7 @@ static int td043mtea1_probe(struct spi_device *spi)
>  	drm_panel_init(&lcd->panel, &lcd->spi->dev, &td043mtea1_funcs,
>  		       DRM_MODE_CONNECTOR_DPI);
>  
> -	ret = drm_panel_add(&lcd->panel);
> -	if (ret < 0) {
> -		sysfs_remove_group(&spi->dev.kobj, &td043mtea1_attr_group);
> -		return ret;
> -	}
> +	drm_panel_add(&lcd->panel);
>  
>  	return 0;
>  }
> diff --git a/drivers/gpu/drm/panel/panel-tpo-tpg110.c b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> index 8472d018c16f..b54dfcc5b3ef 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> @@ -453,7 +453,9 @@ static int tpg110_probe(struct spi_device *spi)
>  
>  	spi_set_drvdata(spi, tpg);
>  
> -	return drm_panel_add(&tpg->panel);
> +	drm_panel_add(&tpg->panel);
> +
> +	return 0;
>  }
>  
>  static int tpg110_remove(struct spi_device *spi)
> diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
> index 6193cb555acc..ff066524cb70 100644
> --- a/include/drm/drm_panel.h
> +++ b/include/drm/drm_panel.h
> @@ -175,7 +175,7 @@ void drm_panel_init(struct drm_panel *panel, struct device *dev,
>  		    const struct drm_panel_funcs *funcs,
>  		    int connector_type);
>  
> -int drm_panel_add(struct drm_panel *panel);
> +void drm_panel_add(struct drm_panel *panel);
>  void drm_panel_remove(struct drm_panel *panel);
>  
>  int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector);
> -- 
> 2.17.1
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] drm: Remove unnecessary drm_panel_attach and drm_panel_detach
  2020-08-02  7:07   ` Sam Ravnborg
@ 2020-08-02  8:00     ` Joe Perches
  -1 siblings, 0 replies; 18+ messages in thread
From: Joe Perches @ 2020-08-02  8:00 UTC (permalink / raw)
  To: Sam Ravnborg, Bernard Zhao
  Cc: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	Thierry Reding, David Airlie, Daniel Vetter, Linus Walleij,
	Jerry Han, Icenowy Zheng, Jagan Teki, Laurent Pinchart,
	Stefan Mavrodiev, Robert Chiras, dri-devel, linux-kernel,
	opensource.kernel

These functions are now empty and no longer
useful so remove the functions and their uses.

Signed-off-by: Joe Perches <joe@perches.com>
---

It's too tedious to break apart into multiple patches.
Done with coccinelle and typing.

Compiled allyesconfig x86-64 only.

 drivers/gpu/drm/bridge/analogix/analogix-anx6345.c | 12 --------
 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  9 ------
 drivers/gpu/drm/bridge/nxp-ptn3460.c               |  3 --
 drivers/gpu/drm/bridge/panel.c                     |  7 -----
 drivers/gpu/drm/bridge/parade-ps8622.c             |  3 --
 drivers/gpu/drm/bridge/tc358764.c                  |  2 --
 drivers/gpu/drm/bridge/tc358767.c                  |  3 --
 drivers/gpu/drm/bridge/ti-sn65dsi86.c              |  3 --
 drivers/gpu/drm/drm_panel.c                        | 36 ----------------------
 drivers/gpu/drm/exynos/exynos_drm_dpi.c            |  6 ----
 drivers/gpu/drm/exynos/exynos_drm_dsi.c            |  7 ++---
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c          |  7 -----
 drivers/gpu/drm/imx/imx-ldb.c                      | 10 ------
 drivers/gpu/drm/imx/parallel-display.c             |  6 ----
 .../gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c    |  7 +----
 drivers/gpu/drm/msm/dsi/dsi_manager.c              |  1 -
 drivers/gpu/drm/mxsfb/mxsfb_drv.c                  |  7 +----
 drivers/gpu/drm/mxsfb/mxsfb_out.c                  |  6 ----
 drivers/gpu/drm/omapdrm/omap_drv.c                 | 15 ---------
 drivers/gpu/drm/rcar-du/rcar_lvds.c                |  6 +---
 drivers/gpu/drm/rockchip/rockchip_lvds.c           |  9 ------
 drivers/gpu/drm/sti/sti_dvo.c                      |  2 --
 drivers/gpu/drm/sun4i/sun4i_lvds.c                 |  7 -----
 drivers/gpu/drm/sun4i/sun4i_rgb.c                  |  7 -----
 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c             |  2 --
 drivers/gpu/drm/tegra/dsi.c                        |  4 +--
 drivers/gpu/drm/tegra/output.c                     | 10 ------
 include/drm/drm_panel.h                            |  3 --
 28 files changed, 6 insertions(+), 194 deletions(-)

diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
index f082b4ed4878..d9164fab044d 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
@@ -507,10 +507,6 @@ static const struct drm_connector_helper_funcs anx6345_connector_helper_funcs =
 static void
 anx6345_connector_destroy(struct drm_connector *connector)
 {
-	struct anx6345 *anx6345 = connector_to_anx6345(connector);
-
-	if (anx6345->panel)
-		drm_panel_detach(anx6345->panel);
 	drm_connector_cleanup(connector);
 }
 
@@ -575,14 +571,6 @@ static int anx6345_bridge_attach(struct drm_bridge *bridge,
 		return err;
 	}
 
-	if (anx6345->panel) {
-		err = drm_panel_attach(anx6345->panel, &anx6345->connector);
-		if (err) {
-			DRM_ERROR("Failed to attach panel: %d\n", err);
-			return err;
-		}
-	}
-
 	return 0;
 }
 
diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
index 76736fb8ed94..aa1bb86293fd 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
@@ -1265,14 +1265,6 @@ static int analogix_dp_bridge_attach(struct drm_bridge *bridge,
 		}
 	}
 
-	if (dp->plat_data->panel) {
-		ret = drm_panel_attach(dp->plat_data->panel, &dp->connector);
-		if (ret) {
-			DRM_ERROR("Failed to attach panel\n");
-			return ret;
-		}
-	}
-
 	return 0;
 }
 
@@ -1803,7 +1795,6 @@ void analogix_dp_unbind(struct analogix_dp_device *dp)
 	if (dp->plat_data->panel) {
 		if (drm_panel_unprepare(dp->plat_data->panel))
 			DRM_ERROR("failed to turnoff the panel\n");
-		drm_panel_detach(dp->plat_data->panel);
 	}
 
 	drm_dp_aux_unregister(&dp->aux);
diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c
index 438e566ce0a4..d433902d97e5 100644
--- a/drivers/gpu/drm/bridge/nxp-ptn3460.c
+++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c
@@ -265,9 +265,6 @@ static int ptn3460_bridge_attach(struct drm_bridge *bridge,
 	drm_connector_attach_encoder(&ptn_bridge->connector,
 							bridge->encoder);
 
-	if (ptn_bridge->panel)
-		drm_panel_attach(ptn_bridge->panel, &ptn_bridge->connector);
-
 	drm_helper_hpd_irq_event(ptn_bridge->connector.dev);
 
 	return ret;
diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c
index 1e63ed6b18aa..0ddc37551194 100644
--- a/drivers/gpu/drm/bridge/panel.c
+++ b/drivers/gpu/drm/bridge/panel.c
@@ -82,18 +82,11 @@ static int panel_bridge_attach(struct drm_bridge *bridge,
 	drm_connector_attach_encoder(&panel_bridge->connector,
 					  bridge->encoder);
 
-	ret = drm_panel_attach(panel_bridge->panel, &panel_bridge->connector);
-	if (ret < 0)
-		return ret;
-
 	return 0;
 }
 
 static void panel_bridge_detach(struct drm_bridge *bridge)
 {
-	struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
-
-	drm_panel_detach(panel_bridge->panel);
 }
 
 static void panel_bridge_pre_enable(struct drm_bridge *bridge)
diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c
index d789ea2a7fb9..c13ec77d858b 100644
--- a/drivers/gpu/drm/bridge/parade-ps8622.c
+++ b/drivers/gpu/drm/bridge/parade-ps8622.c
@@ -505,9 +505,6 @@ static int ps8622_attach(struct drm_bridge *bridge,
 	drm_connector_attach_encoder(&ps8622->connector,
 							bridge->encoder);
 
-	if (ps8622->panel)
-		drm_panel_attach(ps8622->panel, &ps8622->connector);
-
 	drm_helper_hpd_irq_event(ps8622->connector.dev);
 
 	return ret;
diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c
index 5ac1430fab04..c1e35bdf9232 100644
--- a/drivers/gpu/drm/bridge/tc358764.c
+++ b/drivers/gpu/drm/bridge/tc358764.c
@@ -373,7 +373,6 @@ static int tc358764_attach(struct drm_bridge *bridge,
 	drm_connector_helper_add(&ctx->connector,
 				 &tc358764_connector_helper_funcs);
 	drm_connector_attach_encoder(&ctx->connector, bridge->encoder);
-	drm_panel_attach(ctx->panel, &ctx->connector);
 	ctx->connector.funcs->reset(&ctx->connector);
 	drm_connector_register(&ctx->connector);
 
@@ -385,7 +384,6 @@ static void tc358764_detach(struct drm_bridge *bridge)
 	struct tc358764 *ctx = bridge_to_tc358764(bridge);
 
 	drm_connector_unregister(&ctx->connector);
-	drm_panel_detach(ctx->panel);
 	ctx->panel = NULL;
 	drm_connector_put(&ctx->connector);
 }
diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
index c2777b226c75..0746462ba0f6 100644
--- a/drivers/gpu/drm/bridge/tc358767.c
+++ b/drivers/gpu/drm/bridge/tc358767.c
@@ -1435,9 +1435,6 @@ static int tc_bridge_attach(struct drm_bridge *bridge,
 					       DRM_CONNECTOR_POLL_DISCONNECT;
 	}
 
-	if (tc->panel)
-		drm_panel_attach(tc->panel, &tc->connector);
-
 	drm_display_info_set_bus_formats(&tc->connector.display_info,
 					 &bus_format, 1);
 	tc->connector.display_info.bus_flags =
diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
index 86b9f0f87a14..454544e0da7d 100644
--- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
+++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
@@ -394,9 +394,6 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge,
 	}
 	pdata->dsi = dsi;
 
-	/* attach panel to bridge */
-	drm_panel_attach(pdata->panel, &pdata->connector);
-
 	return 0;
 
 err_dsi_attach:
diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
index 8c7bac85a793..7804b9947fe8 100644
--- a/drivers/gpu/drm/drm_panel.c
+++ b/drivers/gpu/drm/drm_panel.c
@@ -97,42 +97,6 @@ void drm_panel_remove(struct drm_panel *panel)
 }
 EXPORT_SYMBOL(drm_panel_remove);
 
-/**
- * drm_panel_attach - attach a panel to a connector
- * @panel: DRM panel
- * @connector: DRM connector
- *
- * After obtaining a pointer to a DRM panel a display driver calls this
- * function to attach a panel to a connector.
- *
- * An error is returned if the panel is already attached to another connector.
- *
- * When unloading, the driver should detach from the panel by calling
- * drm_panel_detach().
- *
- * Return: 0 on success or a negative error code on failure.
- */
-int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector)
-{
-	return 0;
-}
-EXPORT_SYMBOL(drm_panel_attach);
-
-/**
- * drm_panel_detach - detach a panel from a connector
- * @panel: DRM panel
- *
- * Detaches a panel from the connector it is attached to. If a panel is not
- * attached to any connector this is effectively a no-op.
- *
- * This function should not be called by the panel device itself. It
- * is only for the drm device that called drm_panel_attach().
- */
-void drm_panel_detach(struct drm_panel *panel)
-{
-}
-EXPORT_SYMBOL(drm_panel_detach);
-
 /**
  * drm_panel_prepare - power on a panel
  * @panel: DRM panel
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
index 7ba5354e7d94..5f5ba64fc1ff 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
@@ -44,9 +44,6 @@ exynos_dpi_detect(struct drm_connector *connector, bool force)
 {
 	struct exynos_dpi *ctx = connector_to_dpi(connector);
 
-	if (ctx->panel)
-		drm_panel_attach(ctx->panel, &ctx->connector);
-
 	return connector_status_connected;
 }
 
@@ -249,8 +246,5 @@ int exynos_dpi_remove(struct drm_encoder *encoder)
 
 	exynos_dpi_disable(&ctx->encoder);
 
-	if (ctx->panel)
-		drm_panel_detach(ctx->panel);
-
 	return 0;
 }
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
index 7a6f6df5e954..843dfcefc46a 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
@@ -1551,12 +1551,10 @@ static int exynos_dsi_host_attach(struct mipi_dsi_host *host,
 		}
 
 		dsi->panel = of_drm_find_panel(device->dev.of_node);
-		if (IS_ERR(dsi->panel)) {
+		if (IS_ERR(dsi->panel))
 			dsi->panel = NULL;
-		} else {
-			drm_panel_attach(dsi->panel, &dsi->connector);
+		else
 			dsi->connector.status = connector_status_connected;
-		}
 	}
 
 	/*
@@ -1596,7 +1594,6 @@ static int exynos_dsi_host_detach(struct mipi_dsi_host *host,
 	if (dsi->panel) {
 		mutex_lock(&drm->mode_config.mutex);
 		exynos_dsi_disable(&dsi->encoder);
-		drm_panel_detach(dsi->panel);
 		dsi->panel = NULL;
 		dsi->connector.status = connector_status_disconnected;
 		mutex_unlock(&drm->mode_config.mutex);
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
index 9b0c4736c21a..0a7071827533 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
@@ -43,7 +43,6 @@ static void fsl_dcu_drm_connector_destroy(struct drm_connector *connector)
 	struct fsl_dcu_drm_connector *fsl_con = to_fsl_dcu_connector(connector);
 
 	drm_connector_unregister(connector);
-	drm_panel_detach(fsl_con->panel);
 	drm_connector_cleanup(connector);
 }
 
@@ -101,12 +100,6 @@ static int fsl_dcu_attach_panel(struct fsl_dcu_drm_device *fsl_dev,
 	if (ret < 0)
 		goto err_sysfs;
 
-	ret = drm_panel_attach(panel, connector);
-	if (ret) {
-		dev_err(fsl_dev->dev, "failed to attach panel\n");
-		goto err_sysfs;
-	}
-
 	return 0;
 
 err_sysfs:
diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
index 8791d60be92e..af757d1e21fe 100644
--- a/drivers/gpu/drm/imx/imx-ldb.c
+++ b/drivers/gpu/drm/imx/imx-ldb.c
@@ -455,13 +455,6 @@ static int imx_ldb_register(struct drm_device *drm,
 		drm_connector_attach_encoder(&imx_ldb_ch->connector, encoder);
 	}
 
-	if (imx_ldb_ch->panel) {
-		ret = drm_panel_attach(imx_ldb_ch->panel,
-				       &imx_ldb_ch->connector);
-		if (ret)
-			return ret;
-	}
-
 	return 0;
 }
 
@@ -702,9 +695,6 @@ static void imx_ldb_unbind(struct device *dev, struct device *master,
 	for (i = 0; i < 2; i++) {
 		struct imx_ldb_channel *channel = &imx_ldb->channel[i];
 
-		if (channel->panel)
-			drm_panel_detach(channel->panel);
-
 		kfree(channel->edid);
 		i2c_put_adapter(channel->ddc);
 	}
diff --git a/drivers/gpu/drm/imx/parallel-display.c b/drivers/gpu/drm/imx/parallel-display.c
index a831b5bd1613..8232f512b9ed 100644
--- a/drivers/gpu/drm/imx/parallel-display.c
+++ b/drivers/gpu/drm/imx/parallel-display.c
@@ -289,9 +289,6 @@ static int imx_pd_register(struct drm_device *drm,
 				   DRM_MODE_CONNECTOR_DPI);
 	}
 
-	if (imxpd->panel)
-		drm_panel_attach(imxpd->panel, &imxpd->connector);
-
 	if (imxpd->next_bridge) {
 		ret = drm_bridge_attach(encoder, imxpd->next_bridge,
 					&imxpd->bridge, 0);
@@ -357,9 +354,6 @@ static void imx_pd_unbind(struct device *dev, struct device *master,
 {
 	struct imx_parallel_display *imxpd = dev_get_drvdata(dev);
 
-	if (imxpd->panel)
-		drm_panel_detach(imxpd->panel);
-
 	kfree(imxpd->edid);
 }
 
diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
index c7df71e2fafc..7288041dd86a 100644
--- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
+++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
@@ -50,14 +50,9 @@ static int mdp4_lvds_connector_get_modes(struct drm_connector *connector)
 	struct drm_panel *panel = mdp4_lvds_connector->panel;
 	int ret = 0;
 
-	if (panel) {
-		drm_panel_attach(panel, connector);
-
+	if (panel)
 		ret = drm_panel_get_modes(panel, connector);
 
-		drm_panel_detach(panel);
-	}
-
 	return ret;
 }
 
diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
index 4b363bd7ddff..1d28dfba2c9b 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
@@ -328,7 +328,6 @@ static int dsi_mgr_connector_get_modes(struct drm_connector *connector)
 	 * In dual DSI mode, we have one connector that can be
 	 * attached to the drm_panel.
 	 */
-	drm_panel_attach(panel, connector);
 	num = drm_panel_get_modes(panel, connector);
 	if (!num)
 		return 0;
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
index 508764fccd27..51da0e3de587 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -265,11 +265,7 @@ static int mxsfb_load(struct drm_device *drm)
 	 */
 
 	if (mxsfb->panel) {
-		ret = drm_panel_attach(mxsfb->panel, mxsfb->connector);
-		if (ret) {
-			dev_err(drm->dev, "Cannot connect panel: %d\n", ret);
-			goto err_vblank;
-		}
+		;
 	} else if (mxsfb->bridge) {
 		ret = drm_simple_display_pipe_attach_bridge(&mxsfb->pipe,
 							    mxsfb->bridge);
@@ -306,7 +302,6 @@ static int mxsfb_load(struct drm_device *drm)
 	return 0;
 
 err_irq:
-	drm_panel_detach(mxsfb->panel);
 err_vblank:
 	pm_runtime_disable(drm->dev);
 
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c b/drivers/gpu/drm/mxsfb/mxsfb_out.c
index 9eca1605d11d..f93e7a4d4c15 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_out.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c
@@ -55,12 +55,6 @@ mxsfb_panel_connector_detect(struct drm_connector *connector, bool force)
 
 static void mxsfb_panel_connector_destroy(struct drm_connector *connector)
 {
-	struct mxsfb_drm_private *mxsfb =
-			drm_connector_to_mxsfb_drm_private(connector);
-
-	if (mxsfb->panel)
-		drm_panel_detach(mxsfb->panel);
-
 	drm_connector_unregister(connector);
 	drm_connector_cleanup(connector);
 }
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
index 4526967978b7..db8106afd91f 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -349,13 +349,6 @@ static int omap_modeset_init(struct drm_device *dev)
 
 		drm_connector_attach_encoder(pipe->connector, encoder);
 
-		if (pipe->output->panel) {
-			ret = drm_panel_attach(pipe->output->panel,
-					       pipe->connector);
-			if (ret < 0)
-				return ret;
-		}
-
 		crtc = omap_crtc_init(dev, pipe, priv->planes[i]);
 		if (IS_ERR(crtc))
 			return PTR_ERR(crtc);
@@ -395,17 +388,9 @@ static int omap_modeset_init(struct drm_device *dev)
 static void omap_modeset_fini(struct drm_device *ddev)
 {
 	struct omap_drm_private *priv = ddev->dev_private;
-	unsigned int i;
 
 	omap_drm_irq_uninstall(ddev);
 
-	for (i = 0; i < priv->num_pipes; i++) {
-		struct omap_drm_pipeline *pipe = &priv->pipes[i];
-
-		if (pipe->output->panel)
-			drm_panel_detach(pipe->output->panel);
-	}
-
 	drm_mode_config_cleanup(ddev);
 }
 
diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/rcar-du/rcar_lvds.c
index ab0d49618cf9..bced729a96fe 100644
--- a/drivers/gpu/drm/rcar-du/rcar_lvds.c
+++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c
@@ -677,15 +677,11 @@ static int rcar_lvds_attach(struct drm_bridge *bridge,
 	if (ret < 0)
 		return ret;
 
-	return drm_panel_attach(lvds->panel, connector);
+	return 0;
 }
 
 static void rcar_lvds_detach(struct drm_bridge *bridge)
 {
-	struct rcar_lvds *lvds = bridge_to_rcar_lvds(bridge);
-
-	if (lvds->panel)
-		drm_panel_detach(lvds->panel);
 }
 
 static const struct drm_bridge_funcs rcar_lvds_bridge_ops = {
diff --git a/drivers/gpu/drm/rockchip/rockchip_lvds.c b/drivers/gpu/drm/rockchip/rockchip_lvds.c
index 63f967902c2d..f292c6a6e20f 100644
--- a/drivers/gpu/drm/rockchip/rockchip_lvds.c
+++ b/drivers/gpu/drm/rockchip/rockchip_lvds.c
@@ -634,13 +634,6 @@ static int rockchip_lvds_bind(struct device *dev, struct device *master,
 				      "failed to attach encoder: %d\n", ret);
 			goto err_free_connector;
 		}
-
-		ret = drm_panel_attach(lvds->panel, connector);
-		if (ret < 0) {
-			DRM_DEV_ERROR(drm_dev->dev,
-				      "failed to attach panel: %d\n", ret);
-			goto err_free_connector;
-		}
 	} else {
 		ret = drm_bridge_attach(encoder, lvds->bridge, NULL, 0);
 		if (ret) {
@@ -676,8 +669,6 @@ static void rockchip_lvds_unbind(struct device *dev, struct device *master,
 
 	encoder_funcs = lvds->soc_data->helper_funcs;
 	encoder_funcs->disable(&lvds->encoder);
-	if (lvds->panel)
-		drm_panel_detach(lvds->panel);
 	pm_runtime_disable(dev);
 	drm_connector_cleanup(&lvds->connector);
 	drm_encoder_cleanup(&lvds->encoder);
diff --git a/drivers/gpu/drm/sti/sti_dvo.c b/drivers/gpu/drm/sti/sti_dvo.c
index de4af7735c46..ddb4184f0726 100644
--- a/drivers/gpu/drm/sti/sti_dvo.c
+++ b/drivers/gpu/drm/sti/sti_dvo.c
@@ -389,8 +389,6 @@ sti_dvo_connector_detect(struct drm_connector *connector, bool force)
 		dvo->panel = of_drm_find_panel(dvo->panel_node);
 		if (IS_ERR(dvo->panel))
 			dvo->panel = NULL;
-		else
-			drm_panel_attach(dvo->panel, connector);
 	}
 
 	if (dvo->panel)
diff --git a/drivers/gpu/drm/sun4i/sun4i_lvds.c b/drivers/gpu/drm/sun4i/sun4i_lvds.c
index ffda3184aa12..f8a1ff4bf1bb 100644
--- a/drivers/gpu/drm/sun4i/sun4i_lvds.c
+++ b/drivers/gpu/drm/sun4i/sun4i_lvds.c
@@ -56,7 +56,6 @@ sun4i_lvds_connector_destroy(struct drm_connector *connector)
 {
 	struct sun4i_lvds *lvds = drm_connector_to_sun4i_lvds(connector);
 
-	drm_panel_detach(lvds->panel);
 	drm_connector_cleanup(connector);
 }
 
@@ -141,12 +140,6 @@ int sun4i_lvds_init(struct drm_device *drm, struct sun4i_tcon *tcon)
 
 		drm_connector_attach_encoder(&lvds->connector,
 						  &lvds->encoder);
-
-		ret = drm_panel_attach(lvds->panel, &lvds->connector);
-		if (ret) {
-			dev_err(drm->dev, "Couldn't attach our panel\n");
-			goto err_cleanup_connector;
-		}
 	}
 
 	if (bridge) {
diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c b/drivers/gpu/drm/sun4i/sun4i_rgb.c
index 5a7d43939ae6..e08afdffef50 100644
--- a/drivers/gpu/drm/sun4i/sun4i_rgb.c
+++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c
@@ -147,7 +147,6 @@ sun4i_rgb_connector_destroy(struct drm_connector *connector)
 {
 	struct sun4i_rgb *rgb = drm_connector_to_sun4i_rgb(connector);
 
-	drm_panel_detach(rgb->panel);
 	drm_connector_cleanup(connector);
 }
 
@@ -233,12 +232,6 @@ int sun4i_rgb_init(struct drm_device *drm, struct sun4i_tcon *tcon)
 
 		drm_connector_attach_encoder(&rgb->connector,
 						  &rgb->encoder);
-
-		ret = drm_panel_attach(rgb->panel, &rgb->connector);
-		if (ret) {
-			dev_err(drm->dev, "Couldn't attach our panel\n");
-			goto err_cleanup_connector;
-		}
 	}
 
 	if (rgb->bridge) {
diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
index aa67cb037e9d..128471b65f64 100644
--- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
+++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
@@ -973,7 +973,6 @@ static int sun6i_dsi_attach(struct mipi_dsi_host *host,
 	dsi->panel = panel;
 	dsi->device = device;
 
-	drm_panel_attach(dsi->panel, &dsi->connector);
 	drm_kms_helper_hotplug_event(dsi->drm);
 
 	dev_info(host->dev, "Attached device %s\n", device->name);
@@ -990,7 +989,6 @@ static int sun6i_dsi_detach(struct mipi_dsi_host *host,
 	dsi->panel = NULL;
 	dsi->device = NULL;
 
-	drm_panel_detach(panel);
 	drm_kms_helper_hotplug_event(dsi->drm);
 
 	return 0;
diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
index 3820e8dff14b..3387de79718b 100644
--- a/drivers/gpu/drm/tegra/dsi.c
+++ b/drivers/gpu/drm/tegra/dsi.c
@@ -1498,10 +1498,8 @@ static int tegra_dsi_host_attach(struct mipi_dsi_host *host,
 		if (IS_ERR(output->panel))
 			output->panel = NULL;
 
-		if (output->panel && output->connector.dev) {
-			drm_panel_attach(output->panel, &output->connector);
+		if (output->panel && output->connector.dev)
 			drm_helper_hpd_irq_event(output->connector.dev);
-		}
 	}
 
 	return 0;
diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c
index e36e5e7c2f69..a3adb9e4debf 100644
--- a/drivers/gpu/drm/tegra/output.c
+++ b/drivers/gpu/drm/tegra/output.c
@@ -179,13 +179,6 @@ void tegra_output_remove(struct tegra_output *output)
 int tegra_output_init(struct drm_device *drm, struct tegra_output *output)
 {
 	int connector_type;
-	int err;
-
-	if (output->panel) {
-		err = drm_panel_attach(output->panel, &output->connector);
-		if (err < 0)
-			return err;
-	}
 
 	/*
 	 * The connector is now registered and ready to receive hotplug events
@@ -220,9 +213,6 @@ void tegra_output_exit(struct tegra_output *output)
 	 */
 	if (output->hpd_gpio)
 		disable_irq(output->hpd_irq);
-
-	if (output->panel)
-		drm_panel_detach(output->panel);
 }
 
 void tegra_output_find_possible_crtcs(struct tegra_output *output,
diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
index 6193cb555acc..9b374f88fb76 100644
--- a/include/drm/drm_panel.h
+++ b/include/drm/drm_panel.h
@@ -178,9 +178,6 @@ void drm_panel_init(struct drm_panel *panel, struct device *dev,
 int drm_panel_add(struct drm_panel *panel);
 void drm_panel_remove(struct drm_panel *panel);
 
-int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector);
-void drm_panel_detach(struct drm_panel *panel);
-
 int drm_panel_prepare(struct drm_panel *panel);
 int drm_panel_unprepare(struct drm_panel *panel);
 


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH] drm: Remove unnecessary drm_panel_attach and drm_panel_detach
@ 2020-08-02  8:00     ` Joe Perches
  0 siblings, 0 replies; 18+ messages in thread
From: Joe Perches @ 2020-08-02  8:00 UTC (permalink / raw)
  To: Sam Ravnborg, Bernard Zhao
  Cc: dri-devel, opensource.kernel, Laurent Pinchart,
	Thomas Zimmermann, Stefan Mavrodiev, David Airlie, Jerry Han,
	linux-kernel, Thierry Reding, Jagan Teki, Robert Chiras,
	Icenowy Zheng

These functions are now empty and no longer
useful so remove the functions and their uses.

Signed-off-by: Joe Perches <joe@perches.com>
---

It's too tedious to break apart into multiple patches.
Done with coccinelle and typing.

Compiled allyesconfig x86-64 only.

 drivers/gpu/drm/bridge/analogix/analogix-anx6345.c | 12 --------
 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  9 ------
 drivers/gpu/drm/bridge/nxp-ptn3460.c               |  3 --
 drivers/gpu/drm/bridge/panel.c                     |  7 -----
 drivers/gpu/drm/bridge/parade-ps8622.c             |  3 --
 drivers/gpu/drm/bridge/tc358764.c                  |  2 --
 drivers/gpu/drm/bridge/tc358767.c                  |  3 --
 drivers/gpu/drm/bridge/ti-sn65dsi86.c              |  3 --
 drivers/gpu/drm/drm_panel.c                        | 36 ----------------------
 drivers/gpu/drm/exynos/exynos_drm_dpi.c            |  6 ----
 drivers/gpu/drm/exynos/exynos_drm_dsi.c            |  7 ++---
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c          |  7 -----
 drivers/gpu/drm/imx/imx-ldb.c                      | 10 ------
 drivers/gpu/drm/imx/parallel-display.c             |  6 ----
 .../gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c    |  7 +----
 drivers/gpu/drm/msm/dsi/dsi_manager.c              |  1 -
 drivers/gpu/drm/mxsfb/mxsfb_drv.c                  |  7 +----
 drivers/gpu/drm/mxsfb/mxsfb_out.c                  |  6 ----
 drivers/gpu/drm/omapdrm/omap_drv.c                 | 15 ---------
 drivers/gpu/drm/rcar-du/rcar_lvds.c                |  6 +---
 drivers/gpu/drm/rockchip/rockchip_lvds.c           |  9 ------
 drivers/gpu/drm/sti/sti_dvo.c                      |  2 --
 drivers/gpu/drm/sun4i/sun4i_lvds.c                 |  7 -----
 drivers/gpu/drm/sun4i/sun4i_rgb.c                  |  7 -----
 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c             |  2 --
 drivers/gpu/drm/tegra/dsi.c                        |  4 +--
 drivers/gpu/drm/tegra/output.c                     | 10 ------
 include/drm/drm_panel.h                            |  3 --
 28 files changed, 6 insertions(+), 194 deletions(-)

diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
index f082b4ed4878..d9164fab044d 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
@@ -507,10 +507,6 @@ static const struct drm_connector_helper_funcs anx6345_connector_helper_funcs =
 static void
 anx6345_connector_destroy(struct drm_connector *connector)
 {
-	struct anx6345 *anx6345 = connector_to_anx6345(connector);
-
-	if (anx6345->panel)
-		drm_panel_detach(anx6345->panel);
 	drm_connector_cleanup(connector);
 }
 
@@ -575,14 +571,6 @@ static int anx6345_bridge_attach(struct drm_bridge *bridge,
 		return err;
 	}
 
-	if (anx6345->panel) {
-		err = drm_panel_attach(anx6345->panel, &anx6345->connector);
-		if (err) {
-			DRM_ERROR("Failed to attach panel: %d\n", err);
-			return err;
-		}
-	}
-
 	return 0;
 }
 
diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
index 76736fb8ed94..aa1bb86293fd 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
@@ -1265,14 +1265,6 @@ static int analogix_dp_bridge_attach(struct drm_bridge *bridge,
 		}
 	}
 
-	if (dp->plat_data->panel) {
-		ret = drm_panel_attach(dp->plat_data->panel, &dp->connector);
-		if (ret) {
-			DRM_ERROR("Failed to attach panel\n");
-			return ret;
-		}
-	}
-
 	return 0;
 }
 
@@ -1803,7 +1795,6 @@ void analogix_dp_unbind(struct analogix_dp_device *dp)
 	if (dp->plat_data->panel) {
 		if (drm_panel_unprepare(dp->plat_data->panel))
 			DRM_ERROR("failed to turnoff the panel\n");
-		drm_panel_detach(dp->plat_data->panel);
 	}
 
 	drm_dp_aux_unregister(&dp->aux);
diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c
index 438e566ce0a4..d433902d97e5 100644
--- a/drivers/gpu/drm/bridge/nxp-ptn3460.c
+++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c
@@ -265,9 +265,6 @@ static int ptn3460_bridge_attach(struct drm_bridge *bridge,
 	drm_connector_attach_encoder(&ptn_bridge->connector,
 							bridge->encoder);
 
-	if (ptn_bridge->panel)
-		drm_panel_attach(ptn_bridge->panel, &ptn_bridge->connector);
-
 	drm_helper_hpd_irq_event(ptn_bridge->connector.dev);
 
 	return ret;
diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c
index 1e63ed6b18aa..0ddc37551194 100644
--- a/drivers/gpu/drm/bridge/panel.c
+++ b/drivers/gpu/drm/bridge/panel.c
@@ -82,18 +82,11 @@ static int panel_bridge_attach(struct drm_bridge *bridge,
 	drm_connector_attach_encoder(&panel_bridge->connector,
 					  bridge->encoder);
 
-	ret = drm_panel_attach(panel_bridge->panel, &panel_bridge->connector);
-	if (ret < 0)
-		return ret;
-
 	return 0;
 }
 
 static void panel_bridge_detach(struct drm_bridge *bridge)
 {
-	struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
-
-	drm_panel_detach(panel_bridge->panel);
 }
 
 static void panel_bridge_pre_enable(struct drm_bridge *bridge)
diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c
index d789ea2a7fb9..c13ec77d858b 100644
--- a/drivers/gpu/drm/bridge/parade-ps8622.c
+++ b/drivers/gpu/drm/bridge/parade-ps8622.c
@@ -505,9 +505,6 @@ static int ps8622_attach(struct drm_bridge *bridge,
 	drm_connector_attach_encoder(&ps8622->connector,
 							bridge->encoder);
 
-	if (ps8622->panel)
-		drm_panel_attach(ps8622->panel, &ps8622->connector);
-
 	drm_helper_hpd_irq_event(ps8622->connector.dev);
 
 	return ret;
diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c
index 5ac1430fab04..c1e35bdf9232 100644
--- a/drivers/gpu/drm/bridge/tc358764.c
+++ b/drivers/gpu/drm/bridge/tc358764.c
@@ -373,7 +373,6 @@ static int tc358764_attach(struct drm_bridge *bridge,
 	drm_connector_helper_add(&ctx->connector,
 				 &tc358764_connector_helper_funcs);
 	drm_connector_attach_encoder(&ctx->connector, bridge->encoder);
-	drm_panel_attach(ctx->panel, &ctx->connector);
 	ctx->connector.funcs->reset(&ctx->connector);
 	drm_connector_register(&ctx->connector);
 
@@ -385,7 +384,6 @@ static void tc358764_detach(struct drm_bridge *bridge)
 	struct tc358764 *ctx = bridge_to_tc358764(bridge);
 
 	drm_connector_unregister(&ctx->connector);
-	drm_panel_detach(ctx->panel);
 	ctx->panel = NULL;
 	drm_connector_put(&ctx->connector);
 }
diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
index c2777b226c75..0746462ba0f6 100644
--- a/drivers/gpu/drm/bridge/tc358767.c
+++ b/drivers/gpu/drm/bridge/tc358767.c
@@ -1435,9 +1435,6 @@ static int tc_bridge_attach(struct drm_bridge *bridge,
 					       DRM_CONNECTOR_POLL_DISCONNECT;
 	}
 
-	if (tc->panel)
-		drm_panel_attach(tc->panel, &tc->connector);
-
 	drm_display_info_set_bus_formats(&tc->connector.display_info,
 					 &bus_format, 1);
 	tc->connector.display_info.bus_flags =
diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
index 86b9f0f87a14..454544e0da7d 100644
--- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
+++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
@@ -394,9 +394,6 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge,
 	}
 	pdata->dsi = dsi;
 
-	/* attach panel to bridge */
-	drm_panel_attach(pdata->panel, &pdata->connector);
-
 	return 0;
 
 err_dsi_attach:
diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
index 8c7bac85a793..7804b9947fe8 100644
--- a/drivers/gpu/drm/drm_panel.c
+++ b/drivers/gpu/drm/drm_panel.c
@@ -97,42 +97,6 @@ void drm_panel_remove(struct drm_panel *panel)
 }
 EXPORT_SYMBOL(drm_panel_remove);
 
-/**
- * drm_panel_attach - attach a panel to a connector
- * @panel: DRM panel
- * @connector: DRM connector
- *
- * After obtaining a pointer to a DRM panel a display driver calls this
- * function to attach a panel to a connector.
- *
- * An error is returned if the panel is already attached to another connector.
- *
- * When unloading, the driver should detach from the panel by calling
- * drm_panel_detach().
- *
- * Return: 0 on success or a negative error code on failure.
- */
-int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector)
-{
-	return 0;
-}
-EXPORT_SYMBOL(drm_panel_attach);
-
-/**
- * drm_panel_detach - detach a panel from a connector
- * @panel: DRM panel
- *
- * Detaches a panel from the connector it is attached to. If a panel is not
- * attached to any connector this is effectively a no-op.
- *
- * This function should not be called by the panel device itself. It
- * is only for the drm device that called drm_panel_attach().
- */
-void drm_panel_detach(struct drm_panel *panel)
-{
-}
-EXPORT_SYMBOL(drm_panel_detach);
-
 /**
  * drm_panel_prepare - power on a panel
  * @panel: DRM panel
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
index 7ba5354e7d94..5f5ba64fc1ff 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
@@ -44,9 +44,6 @@ exynos_dpi_detect(struct drm_connector *connector, bool force)
 {
 	struct exynos_dpi *ctx = connector_to_dpi(connector);
 
-	if (ctx->panel)
-		drm_panel_attach(ctx->panel, &ctx->connector);
-
 	return connector_status_connected;
 }
 
@@ -249,8 +246,5 @@ int exynos_dpi_remove(struct drm_encoder *encoder)
 
 	exynos_dpi_disable(&ctx->encoder);
 
-	if (ctx->panel)
-		drm_panel_detach(ctx->panel);
-
 	return 0;
 }
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
index 7a6f6df5e954..843dfcefc46a 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
@@ -1551,12 +1551,10 @@ static int exynos_dsi_host_attach(struct mipi_dsi_host *host,
 		}
 
 		dsi->panel = of_drm_find_panel(device->dev.of_node);
-		if (IS_ERR(dsi->panel)) {
+		if (IS_ERR(dsi->panel))
 			dsi->panel = NULL;
-		} else {
-			drm_panel_attach(dsi->panel, &dsi->connector);
+		else
 			dsi->connector.status = connector_status_connected;
-		}
 	}
 
 	/*
@@ -1596,7 +1594,6 @@ static int exynos_dsi_host_detach(struct mipi_dsi_host *host,
 	if (dsi->panel) {
 		mutex_lock(&drm->mode_config.mutex);
 		exynos_dsi_disable(&dsi->encoder);
-		drm_panel_detach(dsi->panel);
 		dsi->panel = NULL;
 		dsi->connector.status = connector_status_disconnected;
 		mutex_unlock(&drm->mode_config.mutex);
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
index 9b0c4736c21a..0a7071827533 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
@@ -43,7 +43,6 @@ static void fsl_dcu_drm_connector_destroy(struct drm_connector *connector)
 	struct fsl_dcu_drm_connector *fsl_con = to_fsl_dcu_connector(connector);
 
 	drm_connector_unregister(connector);
-	drm_panel_detach(fsl_con->panel);
 	drm_connector_cleanup(connector);
 }
 
@@ -101,12 +100,6 @@ static int fsl_dcu_attach_panel(struct fsl_dcu_drm_device *fsl_dev,
 	if (ret < 0)
 		goto err_sysfs;
 
-	ret = drm_panel_attach(panel, connector);
-	if (ret) {
-		dev_err(fsl_dev->dev, "failed to attach panel\n");
-		goto err_sysfs;
-	}
-
 	return 0;
 
 err_sysfs:
diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
index 8791d60be92e..af757d1e21fe 100644
--- a/drivers/gpu/drm/imx/imx-ldb.c
+++ b/drivers/gpu/drm/imx/imx-ldb.c
@@ -455,13 +455,6 @@ static int imx_ldb_register(struct drm_device *drm,
 		drm_connector_attach_encoder(&imx_ldb_ch->connector, encoder);
 	}
 
-	if (imx_ldb_ch->panel) {
-		ret = drm_panel_attach(imx_ldb_ch->panel,
-				       &imx_ldb_ch->connector);
-		if (ret)
-			return ret;
-	}
-
 	return 0;
 }
 
@@ -702,9 +695,6 @@ static void imx_ldb_unbind(struct device *dev, struct device *master,
 	for (i = 0; i < 2; i++) {
 		struct imx_ldb_channel *channel = &imx_ldb->channel[i];
 
-		if (channel->panel)
-			drm_panel_detach(channel->panel);
-
 		kfree(channel->edid);
 		i2c_put_adapter(channel->ddc);
 	}
diff --git a/drivers/gpu/drm/imx/parallel-display.c b/drivers/gpu/drm/imx/parallel-display.c
index a831b5bd1613..8232f512b9ed 100644
--- a/drivers/gpu/drm/imx/parallel-display.c
+++ b/drivers/gpu/drm/imx/parallel-display.c
@@ -289,9 +289,6 @@ static int imx_pd_register(struct drm_device *drm,
 				   DRM_MODE_CONNECTOR_DPI);
 	}
 
-	if (imxpd->panel)
-		drm_panel_attach(imxpd->panel, &imxpd->connector);
-
 	if (imxpd->next_bridge) {
 		ret = drm_bridge_attach(encoder, imxpd->next_bridge,
 					&imxpd->bridge, 0);
@@ -357,9 +354,6 @@ static void imx_pd_unbind(struct device *dev, struct device *master,
 {
 	struct imx_parallel_display *imxpd = dev_get_drvdata(dev);
 
-	if (imxpd->panel)
-		drm_panel_detach(imxpd->panel);
-
 	kfree(imxpd->edid);
 }
 
diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
index c7df71e2fafc..7288041dd86a 100644
--- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
+++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
@@ -50,14 +50,9 @@ static int mdp4_lvds_connector_get_modes(struct drm_connector *connector)
 	struct drm_panel *panel = mdp4_lvds_connector->panel;
 	int ret = 0;
 
-	if (panel) {
-		drm_panel_attach(panel, connector);
-
+	if (panel)
 		ret = drm_panel_get_modes(panel, connector);
 
-		drm_panel_detach(panel);
-	}
-
 	return ret;
 }
 
diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
index 4b363bd7ddff..1d28dfba2c9b 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
@@ -328,7 +328,6 @@ static int dsi_mgr_connector_get_modes(struct drm_connector *connector)
 	 * In dual DSI mode, we have one connector that can be
 	 * attached to the drm_panel.
 	 */
-	drm_panel_attach(panel, connector);
 	num = drm_panel_get_modes(panel, connector);
 	if (!num)
 		return 0;
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
index 508764fccd27..51da0e3de587 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -265,11 +265,7 @@ static int mxsfb_load(struct drm_device *drm)
 	 */
 
 	if (mxsfb->panel) {
-		ret = drm_panel_attach(mxsfb->panel, mxsfb->connector);
-		if (ret) {
-			dev_err(drm->dev, "Cannot connect panel: %d\n", ret);
-			goto err_vblank;
-		}
+		;
 	} else if (mxsfb->bridge) {
 		ret = drm_simple_display_pipe_attach_bridge(&mxsfb->pipe,
 							    mxsfb->bridge);
@@ -306,7 +302,6 @@ static int mxsfb_load(struct drm_device *drm)
 	return 0;
 
 err_irq:
-	drm_panel_detach(mxsfb->panel);
 err_vblank:
 	pm_runtime_disable(drm->dev);
 
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c b/drivers/gpu/drm/mxsfb/mxsfb_out.c
index 9eca1605d11d..f93e7a4d4c15 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_out.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c
@@ -55,12 +55,6 @@ mxsfb_panel_connector_detect(struct drm_connector *connector, bool force)
 
 static void mxsfb_panel_connector_destroy(struct drm_connector *connector)
 {
-	struct mxsfb_drm_private *mxsfb =
-			drm_connector_to_mxsfb_drm_private(connector);
-
-	if (mxsfb->panel)
-		drm_panel_detach(mxsfb->panel);
-
 	drm_connector_unregister(connector);
 	drm_connector_cleanup(connector);
 }
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
index 4526967978b7..db8106afd91f 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -349,13 +349,6 @@ static int omap_modeset_init(struct drm_device *dev)
 
 		drm_connector_attach_encoder(pipe->connector, encoder);
 
-		if (pipe->output->panel) {
-			ret = drm_panel_attach(pipe->output->panel,
-					       pipe->connector);
-			if (ret < 0)
-				return ret;
-		}
-
 		crtc = omap_crtc_init(dev, pipe, priv->planes[i]);
 		if (IS_ERR(crtc))
 			return PTR_ERR(crtc);
@@ -395,17 +388,9 @@ static int omap_modeset_init(struct drm_device *dev)
 static void omap_modeset_fini(struct drm_device *ddev)
 {
 	struct omap_drm_private *priv = ddev->dev_private;
-	unsigned int i;
 
 	omap_drm_irq_uninstall(ddev);
 
-	for (i = 0; i < priv->num_pipes; i++) {
-		struct omap_drm_pipeline *pipe = &priv->pipes[i];
-
-		if (pipe->output->panel)
-			drm_panel_detach(pipe->output->panel);
-	}
-
 	drm_mode_config_cleanup(ddev);
 }
 
diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/rcar-du/rcar_lvds.c
index ab0d49618cf9..bced729a96fe 100644
--- a/drivers/gpu/drm/rcar-du/rcar_lvds.c
+++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c
@@ -677,15 +677,11 @@ static int rcar_lvds_attach(struct drm_bridge *bridge,
 	if (ret < 0)
 		return ret;
 
-	return drm_panel_attach(lvds->panel, connector);
+	return 0;
 }
 
 static void rcar_lvds_detach(struct drm_bridge *bridge)
 {
-	struct rcar_lvds *lvds = bridge_to_rcar_lvds(bridge);
-
-	if (lvds->panel)
-		drm_panel_detach(lvds->panel);
 }
 
 static const struct drm_bridge_funcs rcar_lvds_bridge_ops = {
diff --git a/drivers/gpu/drm/rockchip/rockchip_lvds.c b/drivers/gpu/drm/rockchip/rockchip_lvds.c
index 63f967902c2d..f292c6a6e20f 100644
--- a/drivers/gpu/drm/rockchip/rockchip_lvds.c
+++ b/drivers/gpu/drm/rockchip/rockchip_lvds.c
@@ -634,13 +634,6 @@ static int rockchip_lvds_bind(struct device *dev, struct device *master,
 				      "failed to attach encoder: %d\n", ret);
 			goto err_free_connector;
 		}
-
-		ret = drm_panel_attach(lvds->panel, connector);
-		if (ret < 0) {
-			DRM_DEV_ERROR(drm_dev->dev,
-				      "failed to attach panel: %d\n", ret);
-			goto err_free_connector;
-		}
 	} else {
 		ret = drm_bridge_attach(encoder, lvds->bridge, NULL, 0);
 		if (ret) {
@@ -676,8 +669,6 @@ static void rockchip_lvds_unbind(struct device *dev, struct device *master,
 
 	encoder_funcs = lvds->soc_data->helper_funcs;
 	encoder_funcs->disable(&lvds->encoder);
-	if (lvds->panel)
-		drm_panel_detach(lvds->panel);
 	pm_runtime_disable(dev);
 	drm_connector_cleanup(&lvds->connector);
 	drm_encoder_cleanup(&lvds->encoder);
diff --git a/drivers/gpu/drm/sti/sti_dvo.c b/drivers/gpu/drm/sti/sti_dvo.c
index de4af7735c46..ddb4184f0726 100644
--- a/drivers/gpu/drm/sti/sti_dvo.c
+++ b/drivers/gpu/drm/sti/sti_dvo.c
@@ -389,8 +389,6 @@ sti_dvo_connector_detect(struct drm_connector *connector, bool force)
 		dvo->panel = of_drm_find_panel(dvo->panel_node);
 		if (IS_ERR(dvo->panel))
 			dvo->panel = NULL;
-		else
-			drm_panel_attach(dvo->panel, connector);
 	}
 
 	if (dvo->panel)
diff --git a/drivers/gpu/drm/sun4i/sun4i_lvds.c b/drivers/gpu/drm/sun4i/sun4i_lvds.c
index ffda3184aa12..f8a1ff4bf1bb 100644
--- a/drivers/gpu/drm/sun4i/sun4i_lvds.c
+++ b/drivers/gpu/drm/sun4i/sun4i_lvds.c
@@ -56,7 +56,6 @@ sun4i_lvds_connector_destroy(struct drm_connector *connector)
 {
 	struct sun4i_lvds *lvds = drm_connector_to_sun4i_lvds(connector);
 
-	drm_panel_detach(lvds->panel);
 	drm_connector_cleanup(connector);
 }
 
@@ -141,12 +140,6 @@ int sun4i_lvds_init(struct drm_device *drm, struct sun4i_tcon *tcon)
 
 		drm_connector_attach_encoder(&lvds->connector,
 						  &lvds->encoder);
-
-		ret = drm_panel_attach(lvds->panel, &lvds->connector);
-		if (ret) {
-			dev_err(drm->dev, "Couldn't attach our panel\n");
-			goto err_cleanup_connector;
-		}
 	}
 
 	if (bridge) {
diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c b/drivers/gpu/drm/sun4i/sun4i_rgb.c
index 5a7d43939ae6..e08afdffef50 100644
--- a/drivers/gpu/drm/sun4i/sun4i_rgb.c
+++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c
@@ -147,7 +147,6 @@ sun4i_rgb_connector_destroy(struct drm_connector *connector)
 {
 	struct sun4i_rgb *rgb = drm_connector_to_sun4i_rgb(connector);
 
-	drm_panel_detach(rgb->panel);
 	drm_connector_cleanup(connector);
 }
 
@@ -233,12 +232,6 @@ int sun4i_rgb_init(struct drm_device *drm, struct sun4i_tcon *tcon)
 
 		drm_connector_attach_encoder(&rgb->connector,
 						  &rgb->encoder);
-
-		ret = drm_panel_attach(rgb->panel, &rgb->connector);
-		if (ret) {
-			dev_err(drm->dev, "Couldn't attach our panel\n");
-			goto err_cleanup_connector;
-		}
 	}
 
 	if (rgb->bridge) {
diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
index aa67cb037e9d..128471b65f64 100644
--- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
+++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
@@ -973,7 +973,6 @@ static int sun6i_dsi_attach(struct mipi_dsi_host *host,
 	dsi->panel = panel;
 	dsi->device = device;
 
-	drm_panel_attach(dsi->panel, &dsi->connector);
 	drm_kms_helper_hotplug_event(dsi->drm);
 
 	dev_info(host->dev, "Attached device %s\n", device->name);
@@ -990,7 +989,6 @@ static int sun6i_dsi_detach(struct mipi_dsi_host *host,
 	dsi->panel = NULL;
 	dsi->device = NULL;
 
-	drm_panel_detach(panel);
 	drm_kms_helper_hotplug_event(dsi->drm);
 
 	return 0;
diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
index 3820e8dff14b..3387de79718b 100644
--- a/drivers/gpu/drm/tegra/dsi.c
+++ b/drivers/gpu/drm/tegra/dsi.c
@@ -1498,10 +1498,8 @@ static int tegra_dsi_host_attach(struct mipi_dsi_host *host,
 		if (IS_ERR(output->panel))
 			output->panel = NULL;
 
-		if (output->panel && output->connector.dev) {
-			drm_panel_attach(output->panel, &output->connector);
+		if (output->panel && output->connector.dev)
 			drm_helper_hpd_irq_event(output->connector.dev);
-		}
 	}
 
 	return 0;
diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c
index e36e5e7c2f69..a3adb9e4debf 100644
--- a/drivers/gpu/drm/tegra/output.c
+++ b/drivers/gpu/drm/tegra/output.c
@@ -179,13 +179,6 @@ void tegra_output_remove(struct tegra_output *output)
 int tegra_output_init(struct drm_device *drm, struct tegra_output *output)
 {
 	int connector_type;
-	int err;
-
-	if (output->panel) {
-		err = drm_panel_attach(output->panel, &output->connector);
-		if (err < 0)
-			return err;
-	}
 
 	/*
 	 * The connector is now registered and ready to receive hotplug events
@@ -220,9 +213,6 @@ void tegra_output_exit(struct tegra_output *output)
 	 */
 	if (output->hpd_gpio)
 		disable_irq(output->hpd_irq);
-
-	if (output->panel)
-		drm_panel_detach(output->panel);
 }
 
 void tegra_output_find_possible_crtcs(struct tegra_output *output,
diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
index 6193cb555acc..9b374f88fb76 100644
--- a/include/drm/drm_panel.h
+++ b/include/drm/drm_panel.h
@@ -178,9 +178,6 @@ void drm_panel_init(struct drm_panel *panel, struct device *dev,
 int drm_panel_add(struct drm_panel *panel);
 void drm_panel_remove(struct drm_panel *panel);
 
-int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector);
-void drm_panel_detach(struct drm_panel *panel);
-
 int drm_panel_prepare(struct drm_panel *panel);
 int drm_panel_unprepare(struct drm_panel *panel);
 

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [PATCH] drm: Remove unnecessary drm_panel_attach and drm_panel_detach
  2020-08-02  8:00     ` Joe Perches
@ 2020-08-02  8:44       ` Sam Ravnborg
  -1 siblings, 0 replies; 18+ messages in thread
From: Sam Ravnborg @ 2020-08-02  8:44 UTC (permalink / raw)
  To: Joe Perches
  Cc: Bernard Zhao, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Thierry Reding, David Airlie, Daniel Vetter,
	Linus Walleij, Jerry Han, Icenowy Zheng, Jagan Teki,
	Laurent Pinchart, Stefan Mavrodiev, Robert Chiras, dri-devel,
	linux-kernel, opensource.kernel

Hi Joe.

On Sun, Aug 02, 2020 at 01:00:11AM -0700, Joe Perches wrote:
> These functions are now empty and no longer
> useful so remove the functions and their uses.
> 
> Signed-off-by: Joe Perches <joe@perches.com>
> ---
> 
> It's too tedious to break apart into multiple patches.
> Done with coccinelle and typing.
> 
> Compiled allyesconfig x86-64 only.

Thanks for doing this.
But patch fails to apply for drm-misc-next where we put this kind of
changes. I managed to apply it with some rejects.

There is several warnings like these when building for arm.
I did not build it all as my build failed too.

drivers/gpu/drm/omapdrm/omap_drv.c: In function ‘omap_modeset_fini’:
drivers/gpu/drm/omapdrm/omap_drv.c:390:27: warning: unused variable ‘priv’ [-Wunused-variable]
  struct omap_drm_private *priv = ddev->dev_private;

drivers/gpu/drm/exynos/exynos_drm_dpi.c: In function ‘exynos_dpi_detect’:
drivers/gpu/drm/exynos/exynos_drm_dpi.c:45:21: warning: unused variable ‘ctx’ [-Wunused-variable]
  struct exynos_dpi *ctx = connector_to_dpi(connector);
                     ^~~
drivers/gpu/drm/sun4i/sun4i_lvds.c: In function ‘sun4i_lvds_connector_destroy’:
drivers/gpu/drm/sun4i/sun4i_lvds.c:57:21: warning: unused variable ‘lvds’ [-Wunused-variable]
  struct sun4i_lvds *lvds = drm_connector_to_sun4i_lvds(connector);
                     ^~~~

I know you can do better than this. Care to give it an extra spin?

	Sam
> 
>  drivers/gpu/drm/bridge/analogix/analogix-anx6345.c | 12 --------
>  drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  9 ------
>  drivers/gpu/drm/bridge/nxp-ptn3460.c               |  3 --
>  drivers/gpu/drm/bridge/panel.c                     |  7 -----
>  drivers/gpu/drm/bridge/parade-ps8622.c             |  3 --
>  drivers/gpu/drm/bridge/tc358764.c                  |  2 --
>  drivers/gpu/drm/bridge/tc358767.c                  |  3 --
>  drivers/gpu/drm/bridge/ti-sn65dsi86.c              |  3 --
>  drivers/gpu/drm/drm_panel.c                        | 36 ----------------------
>  drivers/gpu/drm/exynos/exynos_drm_dpi.c            |  6 ----
>  drivers/gpu/drm/exynos/exynos_drm_dsi.c            |  7 ++---
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c          |  7 -----
>  drivers/gpu/drm/imx/imx-ldb.c                      | 10 ------
>  drivers/gpu/drm/imx/parallel-display.c             |  6 ----
>  .../gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c    |  7 +----
>  drivers/gpu/drm/msm/dsi/dsi_manager.c              |  1 -
>  drivers/gpu/drm/mxsfb/mxsfb_drv.c                  |  7 +----
>  drivers/gpu/drm/mxsfb/mxsfb_out.c                  |  6 ----
>  drivers/gpu/drm/omapdrm/omap_drv.c                 | 15 ---------
>  drivers/gpu/drm/rcar-du/rcar_lvds.c                |  6 +---
>  drivers/gpu/drm/rockchip/rockchip_lvds.c           |  9 ------
>  drivers/gpu/drm/sti/sti_dvo.c                      |  2 --
>  drivers/gpu/drm/sun4i/sun4i_lvds.c                 |  7 -----
>  drivers/gpu/drm/sun4i/sun4i_rgb.c                  |  7 -----
>  drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c             |  2 --
>  drivers/gpu/drm/tegra/dsi.c                        |  4 +--
>  drivers/gpu/drm/tegra/output.c                     | 10 ------
>  include/drm/drm_panel.h                            |  3 --
>  28 files changed, 6 insertions(+), 194 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
> index f082b4ed4878..d9164fab044d 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
> @@ -507,10 +507,6 @@ static const struct drm_connector_helper_funcs anx6345_connector_helper_funcs =
>  static void
>  anx6345_connector_destroy(struct drm_connector *connector)
>  {
> -	struct anx6345 *anx6345 = connector_to_anx6345(connector);
> -
> -	if (anx6345->panel)
> -		drm_panel_detach(anx6345->panel);
>  	drm_connector_cleanup(connector);
>  }
>  
> @@ -575,14 +571,6 @@ static int anx6345_bridge_attach(struct drm_bridge *bridge,
>  		return err;
>  	}
>  
> -	if (anx6345->panel) {
> -		err = drm_panel_attach(anx6345->panel, &anx6345->connector);
> -		if (err) {
> -			DRM_ERROR("Failed to attach panel: %d\n", err);
> -			return err;
> -		}
> -	}
> -
>  	return 0;
>  }
>  
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> index 76736fb8ed94..aa1bb86293fd 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> @@ -1265,14 +1265,6 @@ static int analogix_dp_bridge_attach(struct drm_bridge *bridge,
>  		}
>  	}
>  
> -	if (dp->plat_data->panel) {
> -		ret = drm_panel_attach(dp->plat_data->panel, &dp->connector);
> -		if (ret) {
> -			DRM_ERROR("Failed to attach panel\n");
> -			return ret;
> -		}
> -	}
> -
>  	return 0;
>  }
>  
> @@ -1803,7 +1795,6 @@ void analogix_dp_unbind(struct analogix_dp_device *dp)
>  	if (dp->plat_data->panel) {
>  		if (drm_panel_unprepare(dp->plat_data->panel))
>  			DRM_ERROR("failed to turnoff the panel\n");
> -		drm_panel_detach(dp->plat_data->panel);
>  	}
>  
>  	drm_dp_aux_unregister(&dp->aux);
> diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c
> index 438e566ce0a4..d433902d97e5 100644
> --- a/drivers/gpu/drm/bridge/nxp-ptn3460.c
> +++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c
> @@ -265,9 +265,6 @@ static int ptn3460_bridge_attach(struct drm_bridge *bridge,
>  	drm_connector_attach_encoder(&ptn_bridge->connector,
>  							bridge->encoder);
>  
> -	if (ptn_bridge->panel)
> -		drm_panel_attach(ptn_bridge->panel, &ptn_bridge->connector);
> -
>  	drm_helper_hpd_irq_event(ptn_bridge->connector.dev);
>  
>  	return ret;
> diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c
> index 1e63ed6b18aa..0ddc37551194 100644
> --- a/drivers/gpu/drm/bridge/panel.c
> +++ b/drivers/gpu/drm/bridge/panel.c
> @@ -82,18 +82,11 @@ static int panel_bridge_attach(struct drm_bridge *bridge,
>  	drm_connector_attach_encoder(&panel_bridge->connector,
>  					  bridge->encoder);
>  
> -	ret = drm_panel_attach(panel_bridge->panel, &panel_bridge->connector);
> -	if (ret < 0)
> -		return ret;
> -
>  	return 0;
>  }
>  
>  static void panel_bridge_detach(struct drm_bridge *bridge)
>  {
> -	struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
> -
> -	drm_panel_detach(panel_bridge->panel);
>  }
>  
>  static void panel_bridge_pre_enable(struct drm_bridge *bridge)
> diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c
> index d789ea2a7fb9..c13ec77d858b 100644
> --- a/drivers/gpu/drm/bridge/parade-ps8622.c
> +++ b/drivers/gpu/drm/bridge/parade-ps8622.c
> @@ -505,9 +505,6 @@ static int ps8622_attach(struct drm_bridge *bridge,
>  	drm_connector_attach_encoder(&ps8622->connector,
>  							bridge->encoder);
>  
> -	if (ps8622->panel)
> -		drm_panel_attach(ps8622->panel, &ps8622->connector);
> -
>  	drm_helper_hpd_irq_event(ps8622->connector.dev);
>  
>  	return ret;
> diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c
> index 5ac1430fab04..c1e35bdf9232 100644
> --- a/drivers/gpu/drm/bridge/tc358764.c
> +++ b/drivers/gpu/drm/bridge/tc358764.c
> @@ -373,7 +373,6 @@ static int tc358764_attach(struct drm_bridge *bridge,
>  	drm_connector_helper_add(&ctx->connector,
>  				 &tc358764_connector_helper_funcs);
>  	drm_connector_attach_encoder(&ctx->connector, bridge->encoder);
> -	drm_panel_attach(ctx->panel, &ctx->connector);
>  	ctx->connector.funcs->reset(&ctx->connector);
>  	drm_connector_register(&ctx->connector);
>  
> @@ -385,7 +384,6 @@ static void tc358764_detach(struct drm_bridge *bridge)
>  	struct tc358764 *ctx = bridge_to_tc358764(bridge);
>  
>  	drm_connector_unregister(&ctx->connector);
> -	drm_panel_detach(ctx->panel);
>  	ctx->panel = NULL;
>  	drm_connector_put(&ctx->connector);
>  }
> diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
> index c2777b226c75..0746462ba0f6 100644
> --- a/drivers/gpu/drm/bridge/tc358767.c
> +++ b/drivers/gpu/drm/bridge/tc358767.c
> @@ -1435,9 +1435,6 @@ static int tc_bridge_attach(struct drm_bridge *bridge,
>  					       DRM_CONNECTOR_POLL_DISCONNECT;
>  	}
>  
> -	if (tc->panel)
> -		drm_panel_attach(tc->panel, &tc->connector);
> -
>  	drm_display_info_set_bus_formats(&tc->connector.display_info,
>  					 &bus_format, 1);
>  	tc->connector.display_info.bus_flags =
> diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> index 86b9f0f87a14..454544e0da7d 100644
> --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> @@ -394,9 +394,6 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge,
>  	}
>  	pdata->dsi = dsi;
>  
> -	/* attach panel to bridge */
> -	drm_panel_attach(pdata->panel, &pdata->connector);
> -
>  	return 0;
>  
>  err_dsi_attach:
> diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
> index 8c7bac85a793..7804b9947fe8 100644
> --- a/drivers/gpu/drm/drm_panel.c
> +++ b/drivers/gpu/drm/drm_panel.c
> @@ -97,42 +97,6 @@ void drm_panel_remove(struct drm_panel *panel)
>  }
>  EXPORT_SYMBOL(drm_panel_remove);
>  
> -/**
> - * drm_panel_attach - attach a panel to a connector
> - * @panel: DRM panel
> - * @connector: DRM connector
> - *
> - * After obtaining a pointer to a DRM panel a display driver calls this
> - * function to attach a panel to a connector.
> - *
> - * An error is returned if the panel is already attached to another connector.
> - *
> - * When unloading, the driver should detach from the panel by calling
> - * drm_panel_detach().
> - *
> - * Return: 0 on success or a negative error code on failure.
> - */
> -int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector)
> -{
> -	return 0;
> -}
> -EXPORT_SYMBOL(drm_panel_attach);
> -
> -/**
> - * drm_panel_detach - detach a panel from a connector
> - * @panel: DRM panel
> - *
> - * Detaches a panel from the connector it is attached to. If a panel is not
> - * attached to any connector this is effectively a no-op.
> - *
> - * This function should not be called by the panel device itself. It
> - * is only for the drm device that called drm_panel_attach().
> - */
> -void drm_panel_detach(struct drm_panel *panel)
> -{
> -}
> -EXPORT_SYMBOL(drm_panel_detach);
> -
>  /**
>   * drm_panel_prepare - power on a panel
>   * @panel: DRM panel
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> index 7ba5354e7d94..5f5ba64fc1ff 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> @@ -44,9 +44,6 @@ exynos_dpi_detect(struct drm_connector *connector, bool force)
>  {
>  	struct exynos_dpi *ctx = connector_to_dpi(connector);
>  
> -	if (ctx->panel)
> -		drm_panel_attach(ctx->panel, &ctx->connector);
> -
>  	return connector_status_connected;
>  }
>  
> @@ -249,8 +246,5 @@ int exynos_dpi_remove(struct drm_encoder *encoder)
>  
>  	exynos_dpi_disable(&ctx->encoder);
>  
> -	if (ctx->panel)
> -		drm_panel_detach(ctx->panel);
> -
>  	return 0;
>  }
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> index 7a6f6df5e954..843dfcefc46a 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> @@ -1551,12 +1551,10 @@ static int exynos_dsi_host_attach(struct mipi_dsi_host *host,
>  		}
>  
>  		dsi->panel = of_drm_find_panel(device->dev.of_node);
> -		if (IS_ERR(dsi->panel)) {
> +		if (IS_ERR(dsi->panel))
>  			dsi->panel = NULL;
> -		} else {
> -			drm_panel_attach(dsi->panel, &dsi->connector);
> +		else
>  			dsi->connector.status = connector_status_connected;
> -		}
>  	}
>  
>  	/*
> @@ -1596,7 +1594,6 @@ static int exynos_dsi_host_detach(struct mipi_dsi_host *host,
>  	if (dsi->panel) {
>  		mutex_lock(&drm->mode_config.mutex);
>  		exynos_dsi_disable(&dsi->encoder);
> -		drm_panel_detach(dsi->panel);
>  		dsi->panel = NULL;
>  		dsi->connector.status = connector_status_disconnected;
>  		mutex_unlock(&drm->mode_config.mutex);
> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> index 9b0c4736c21a..0a7071827533 100644
> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> @@ -43,7 +43,6 @@ static void fsl_dcu_drm_connector_destroy(struct drm_connector *connector)
>  	struct fsl_dcu_drm_connector *fsl_con = to_fsl_dcu_connector(connector);
>  
>  	drm_connector_unregister(connector);
> -	drm_panel_detach(fsl_con->panel);
>  	drm_connector_cleanup(connector);
>  }
>  
> @@ -101,12 +100,6 @@ static int fsl_dcu_attach_panel(struct fsl_dcu_drm_device *fsl_dev,
>  	if (ret < 0)
>  		goto err_sysfs;
>  
> -	ret = drm_panel_attach(panel, connector);
> -	if (ret) {
> -		dev_err(fsl_dev->dev, "failed to attach panel\n");
> -		goto err_sysfs;
> -	}
> -
>  	return 0;
>  
>  err_sysfs:
> diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
> index 8791d60be92e..af757d1e21fe 100644
> --- a/drivers/gpu/drm/imx/imx-ldb.c
> +++ b/drivers/gpu/drm/imx/imx-ldb.c
> @@ -455,13 +455,6 @@ static int imx_ldb_register(struct drm_device *drm,
>  		drm_connector_attach_encoder(&imx_ldb_ch->connector, encoder);
>  	}
>  
> -	if (imx_ldb_ch->panel) {
> -		ret = drm_panel_attach(imx_ldb_ch->panel,
> -				       &imx_ldb_ch->connector);
> -		if (ret)
> -			return ret;
> -	}
> -
>  	return 0;
>  }
>  
> @@ -702,9 +695,6 @@ static void imx_ldb_unbind(struct device *dev, struct device *master,
>  	for (i = 0; i < 2; i++) {
>  		struct imx_ldb_channel *channel = &imx_ldb->channel[i];
>  
> -		if (channel->panel)
> -			drm_panel_detach(channel->panel);
> -
>  		kfree(channel->edid);
>  		i2c_put_adapter(channel->ddc);
>  	}
> diff --git a/drivers/gpu/drm/imx/parallel-display.c b/drivers/gpu/drm/imx/parallel-display.c
> index a831b5bd1613..8232f512b9ed 100644
> --- a/drivers/gpu/drm/imx/parallel-display.c
> +++ b/drivers/gpu/drm/imx/parallel-display.c
> @@ -289,9 +289,6 @@ static int imx_pd_register(struct drm_device *drm,
>  				   DRM_MODE_CONNECTOR_DPI);
>  	}
>  
> -	if (imxpd->panel)
> -		drm_panel_attach(imxpd->panel, &imxpd->connector);
> -
>  	if (imxpd->next_bridge) {
>  		ret = drm_bridge_attach(encoder, imxpd->next_bridge,
>  					&imxpd->bridge, 0);
> @@ -357,9 +354,6 @@ static void imx_pd_unbind(struct device *dev, struct device *master,
>  {
>  	struct imx_parallel_display *imxpd = dev_get_drvdata(dev);
>  
> -	if (imxpd->panel)
> -		drm_panel_detach(imxpd->panel);
> -
>  	kfree(imxpd->edid);
>  }
>  
> diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
> index c7df71e2fafc..7288041dd86a 100644
> --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
> +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
> @@ -50,14 +50,9 @@ static int mdp4_lvds_connector_get_modes(struct drm_connector *connector)
>  	struct drm_panel *panel = mdp4_lvds_connector->panel;
>  	int ret = 0;
>  
> -	if (panel) {
> -		drm_panel_attach(panel, connector);
> -
> +	if (panel)
>  		ret = drm_panel_get_modes(panel, connector);
>  
> -		drm_panel_detach(panel);
> -	}
> -
>  	return ret;
>  }
>  
> diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
> index 4b363bd7ddff..1d28dfba2c9b 100644
> --- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
> +++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
> @@ -328,7 +328,6 @@ static int dsi_mgr_connector_get_modes(struct drm_connector *connector)
>  	 * In dual DSI mode, we have one connector that can be
>  	 * attached to the drm_panel.
>  	 */
> -	drm_panel_attach(panel, connector);
>  	num = drm_panel_get_modes(panel, connector);
>  	if (!num)
>  		return 0;
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> index 508764fccd27..51da0e3de587 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> @@ -265,11 +265,7 @@ static int mxsfb_load(struct drm_device *drm)
>  	 */
>  
>  	if (mxsfb->panel) {
> -		ret = drm_panel_attach(mxsfb->panel, mxsfb->connector);
> -		if (ret) {
> -			dev_err(drm->dev, "Cannot connect panel: %d\n", ret);
> -			goto err_vblank;
> -		}
> +		;
>  	} else if (mxsfb->bridge) {
>  		ret = drm_simple_display_pipe_attach_bridge(&mxsfb->pipe,
>  							    mxsfb->bridge);
> @@ -306,7 +302,6 @@ static int mxsfb_load(struct drm_device *drm)
>  	return 0;
>  
>  err_irq:
> -	drm_panel_detach(mxsfb->panel);
>  err_vblank:
>  	pm_runtime_disable(drm->dev);
>  
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> index 9eca1605d11d..f93e7a4d4c15 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_out.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> @@ -55,12 +55,6 @@ mxsfb_panel_connector_detect(struct drm_connector *connector, bool force)
>  
>  static void mxsfb_panel_connector_destroy(struct drm_connector *connector)
>  {
> -	struct mxsfb_drm_private *mxsfb =
> -			drm_connector_to_mxsfb_drm_private(connector);
> -
> -	if (mxsfb->panel)
> -		drm_panel_detach(mxsfb->panel);
> -
>  	drm_connector_unregister(connector);
>  	drm_connector_cleanup(connector);
>  }
> diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
> index 4526967978b7..db8106afd91f 100644
> --- a/drivers/gpu/drm/omapdrm/omap_drv.c
> +++ b/drivers/gpu/drm/omapdrm/omap_drv.c
> @@ -349,13 +349,6 @@ static int omap_modeset_init(struct drm_device *dev)
>  
>  		drm_connector_attach_encoder(pipe->connector, encoder);
>  
> -		if (pipe->output->panel) {
> -			ret = drm_panel_attach(pipe->output->panel,
> -					       pipe->connector);
> -			if (ret < 0)
> -				return ret;
> -		}
> -
>  		crtc = omap_crtc_init(dev, pipe, priv->planes[i]);
>  		if (IS_ERR(crtc))
>  			return PTR_ERR(crtc);
> @@ -395,17 +388,9 @@ static int omap_modeset_init(struct drm_device *dev)
>  static void omap_modeset_fini(struct drm_device *ddev)
>  {
>  	struct omap_drm_private *priv = ddev->dev_private;
> -	unsigned int i;
>  
>  	omap_drm_irq_uninstall(ddev);
>  
> -	for (i = 0; i < priv->num_pipes; i++) {
> -		struct omap_drm_pipeline *pipe = &priv->pipes[i];
> -
> -		if (pipe->output->panel)
> -			drm_panel_detach(pipe->output->panel);
> -	}
> -
>  	drm_mode_config_cleanup(ddev);
>  }
>  
> diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/rcar-du/rcar_lvds.c
> index ab0d49618cf9..bced729a96fe 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_lvds.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c
> @@ -677,15 +677,11 @@ static int rcar_lvds_attach(struct drm_bridge *bridge,
>  	if (ret < 0)
>  		return ret;
>  
> -	return drm_panel_attach(lvds->panel, connector);
> +	return 0;
>  }
>  
>  static void rcar_lvds_detach(struct drm_bridge *bridge)
>  {
> -	struct rcar_lvds *lvds = bridge_to_rcar_lvds(bridge);
> -
> -	if (lvds->panel)
> -		drm_panel_detach(lvds->panel);
>  }
>  
>  static const struct drm_bridge_funcs rcar_lvds_bridge_ops = {
> diff --git a/drivers/gpu/drm/rockchip/rockchip_lvds.c b/drivers/gpu/drm/rockchip/rockchip_lvds.c
> index 63f967902c2d..f292c6a6e20f 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_lvds.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_lvds.c
> @@ -634,13 +634,6 @@ static int rockchip_lvds_bind(struct device *dev, struct device *master,
>  				      "failed to attach encoder: %d\n", ret);
>  			goto err_free_connector;
>  		}
> -
> -		ret = drm_panel_attach(lvds->panel, connector);
> -		if (ret < 0) {
> -			DRM_DEV_ERROR(drm_dev->dev,
> -				      "failed to attach panel: %d\n", ret);
> -			goto err_free_connector;
> -		}
>  	} else {
>  		ret = drm_bridge_attach(encoder, lvds->bridge, NULL, 0);
>  		if (ret) {
> @@ -676,8 +669,6 @@ static void rockchip_lvds_unbind(struct device *dev, struct device *master,
>  
>  	encoder_funcs = lvds->soc_data->helper_funcs;
>  	encoder_funcs->disable(&lvds->encoder);
> -	if (lvds->panel)
> -		drm_panel_detach(lvds->panel);
>  	pm_runtime_disable(dev);
>  	drm_connector_cleanup(&lvds->connector);
>  	drm_encoder_cleanup(&lvds->encoder);
> diff --git a/drivers/gpu/drm/sti/sti_dvo.c b/drivers/gpu/drm/sti/sti_dvo.c
> index de4af7735c46..ddb4184f0726 100644
> --- a/drivers/gpu/drm/sti/sti_dvo.c
> +++ b/drivers/gpu/drm/sti/sti_dvo.c
> @@ -389,8 +389,6 @@ sti_dvo_connector_detect(struct drm_connector *connector, bool force)
>  		dvo->panel = of_drm_find_panel(dvo->panel_node);
>  		if (IS_ERR(dvo->panel))
>  			dvo->panel = NULL;
> -		else
> -			drm_panel_attach(dvo->panel, connector);
>  	}
>  
>  	if (dvo->panel)
> diff --git a/drivers/gpu/drm/sun4i/sun4i_lvds.c b/drivers/gpu/drm/sun4i/sun4i_lvds.c
> index ffda3184aa12..f8a1ff4bf1bb 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_lvds.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_lvds.c
> @@ -56,7 +56,6 @@ sun4i_lvds_connector_destroy(struct drm_connector *connector)
>  {
>  	struct sun4i_lvds *lvds = drm_connector_to_sun4i_lvds(connector);
>  
> -	drm_panel_detach(lvds->panel);
>  	drm_connector_cleanup(connector);
>  }
>  
> @@ -141,12 +140,6 @@ int sun4i_lvds_init(struct drm_device *drm, struct sun4i_tcon *tcon)
>  
>  		drm_connector_attach_encoder(&lvds->connector,
>  						  &lvds->encoder);
> -
> -		ret = drm_panel_attach(lvds->panel, &lvds->connector);
> -		if (ret) {
> -			dev_err(drm->dev, "Couldn't attach our panel\n");
> -			goto err_cleanup_connector;
> -		}
>  	}
>  
>  	if (bridge) {
> diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c b/drivers/gpu/drm/sun4i/sun4i_rgb.c
> index 5a7d43939ae6..e08afdffef50 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_rgb.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c
> @@ -147,7 +147,6 @@ sun4i_rgb_connector_destroy(struct drm_connector *connector)
>  {
>  	struct sun4i_rgb *rgb = drm_connector_to_sun4i_rgb(connector);
>  
> -	drm_panel_detach(rgb->panel);
>  	drm_connector_cleanup(connector);
>  }
>  
> @@ -233,12 +232,6 @@ int sun4i_rgb_init(struct drm_device *drm, struct sun4i_tcon *tcon)
>  
>  		drm_connector_attach_encoder(&rgb->connector,
>  						  &rgb->encoder);
> -
> -		ret = drm_panel_attach(rgb->panel, &rgb->connector);
> -		if (ret) {
> -			dev_err(drm->dev, "Couldn't attach our panel\n");
> -			goto err_cleanup_connector;
> -		}
>  	}
>  
>  	if (rgb->bridge) {
> diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> index aa67cb037e9d..128471b65f64 100644
> --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> @@ -973,7 +973,6 @@ static int sun6i_dsi_attach(struct mipi_dsi_host *host,
>  	dsi->panel = panel;
>  	dsi->device = device;
>  
> -	drm_panel_attach(dsi->panel, &dsi->connector);
>  	drm_kms_helper_hotplug_event(dsi->drm);
>  
>  	dev_info(host->dev, "Attached device %s\n", device->name);
> @@ -990,7 +989,6 @@ static int sun6i_dsi_detach(struct mipi_dsi_host *host,
>  	dsi->panel = NULL;
>  	dsi->device = NULL;
>  
> -	drm_panel_detach(panel);
>  	drm_kms_helper_hotplug_event(dsi->drm);
>  
>  	return 0;
> diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
> index 3820e8dff14b..3387de79718b 100644
> --- a/drivers/gpu/drm/tegra/dsi.c
> +++ b/drivers/gpu/drm/tegra/dsi.c
> @@ -1498,10 +1498,8 @@ static int tegra_dsi_host_attach(struct mipi_dsi_host *host,
>  		if (IS_ERR(output->panel))
>  			output->panel = NULL;
>  
> -		if (output->panel && output->connector.dev) {
> -			drm_panel_attach(output->panel, &output->connector);
> +		if (output->panel && output->connector.dev)
>  			drm_helper_hpd_irq_event(output->connector.dev);
> -		}
>  	}
>  
>  	return 0;
> diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c
> index e36e5e7c2f69..a3adb9e4debf 100644
> --- a/drivers/gpu/drm/tegra/output.c
> +++ b/drivers/gpu/drm/tegra/output.c
> @@ -179,13 +179,6 @@ void tegra_output_remove(struct tegra_output *output)
>  int tegra_output_init(struct drm_device *drm, struct tegra_output *output)
>  {
>  	int connector_type;
> -	int err;
> -
> -	if (output->panel) {
> -		err = drm_panel_attach(output->panel, &output->connector);
> -		if (err < 0)
> -			return err;
> -	}
>  
>  	/*
>  	 * The connector is now registered and ready to receive hotplug events
> @@ -220,9 +213,6 @@ void tegra_output_exit(struct tegra_output *output)
>  	 */
>  	if (output->hpd_gpio)
>  		disable_irq(output->hpd_irq);
> -
> -	if (output->panel)
> -		drm_panel_detach(output->panel);
>  }
>  
>  void tegra_output_find_possible_crtcs(struct tegra_output *output,
> diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
> index 6193cb555acc..9b374f88fb76 100644
> --- a/include/drm/drm_panel.h
> +++ b/include/drm/drm_panel.h
> @@ -178,9 +178,6 @@ void drm_panel_init(struct drm_panel *panel, struct device *dev,
>  int drm_panel_add(struct drm_panel *panel);
>  void drm_panel_remove(struct drm_panel *panel);
>  
> -int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector);
> -void drm_panel_detach(struct drm_panel *panel);
> -
>  int drm_panel_prepare(struct drm_panel *panel);
>  int drm_panel_unprepare(struct drm_panel *panel);
>  

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] drm: Remove unnecessary drm_panel_attach and drm_panel_detach
@ 2020-08-02  8:44       ` Sam Ravnborg
  0 siblings, 0 replies; 18+ messages in thread
From: Sam Ravnborg @ 2020-08-02  8:44 UTC (permalink / raw)
  To: Joe Perches
  Cc: dri-devel, opensource.kernel, Laurent Pinchart, Stefan Mavrodiev,
	David Airlie, Bernard Zhao, Jerry Han, linux-kernel,
	Thierry Reding, Jagan Teki, Thomas Zimmermann, Robert Chiras,
	Icenowy Zheng

Hi Joe.

On Sun, Aug 02, 2020 at 01:00:11AM -0700, Joe Perches wrote:
> These functions are now empty and no longer
> useful so remove the functions and their uses.
> 
> Signed-off-by: Joe Perches <joe@perches.com>
> ---
> 
> It's too tedious to break apart into multiple patches.
> Done with coccinelle and typing.
> 
> Compiled allyesconfig x86-64 only.

Thanks for doing this.
But patch fails to apply for drm-misc-next where we put this kind of
changes. I managed to apply it with some rejects.

There is several warnings like these when building for arm.
I did not build it all as my build failed too.

drivers/gpu/drm/omapdrm/omap_drv.c: In function ‘omap_modeset_fini’:
drivers/gpu/drm/omapdrm/omap_drv.c:390:27: warning: unused variable ‘priv’ [-Wunused-variable]
  struct omap_drm_private *priv = ddev->dev_private;

drivers/gpu/drm/exynos/exynos_drm_dpi.c: In function ‘exynos_dpi_detect’:
drivers/gpu/drm/exynos/exynos_drm_dpi.c:45:21: warning: unused variable ‘ctx’ [-Wunused-variable]
  struct exynos_dpi *ctx = connector_to_dpi(connector);
                     ^~~
drivers/gpu/drm/sun4i/sun4i_lvds.c: In function ‘sun4i_lvds_connector_destroy’:
drivers/gpu/drm/sun4i/sun4i_lvds.c:57:21: warning: unused variable ‘lvds’ [-Wunused-variable]
  struct sun4i_lvds *lvds = drm_connector_to_sun4i_lvds(connector);
                     ^~~~

I know you can do better than this. Care to give it an extra spin?

	Sam
> 
>  drivers/gpu/drm/bridge/analogix/analogix-anx6345.c | 12 --------
>  drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  9 ------
>  drivers/gpu/drm/bridge/nxp-ptn3460.c               |  3 --
>  drivers/gpu/drm/bridge/panel.c                     |  7 -----
>  drivers/gpu/drm/bridge/parade-ps8622.c             |  3 --
>  drivers/gpu/drm/bridge/tc358764.c                  |  2 --
>  drivers/gpu/drm/bridge/tc358767.c                  |  3 --
>  drivers/gpu/drm/bridge/ti-sn65dsi86.c              |  3 --
>  drivers/gpu/drm/drm_panel.c                        | 36 ----------------------
>  drivers/gpu/drm/exynos/exynos_drm_dpi.c            |  6 ----
>  drivers/gpu/drm/exynos/exynos_drm_dsi.c            |  7 ++---
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c          |  7 -----
>  drivers/gpu/drm/imx/imx-ldb.c                      | 10 ------
>  drivers/gpu/drm/imx/parallel-display.c             |  6 ----
>  .../gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c    |  7 +----
>  drivers/gpu/drm/msm/dsi/dsi_manager.c              |  1 -
>  drivers/gpu/drm/mxsfb/mxsfb_drv.c                  |  7 +----
>  drivers/gpu/drm/mxsfb/mxsfb_out.c                  |  6 ----
>  drivers/gpu/drm/omapdrm/omap_drv.c                 | 15 ---------
>  drivers/gpu/drm/rcar-du/rcar_lvds.c                |  6 +---
>  drivers/gpu/drm/rockchip/rockchip_lvds.c           |  9 ------
>  drivers/gpu/drm/sti/sti_dvo.c                      |  2 --
>  drivers/gpu/drm/sun4i/sun4i_lvds.c                 |  7 -----
>  drivers/gpu/drm/sun4i/sun4i_rgb.c                  |  7 -----
>  drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c             |  2 --
>  drivers/gpu/drm/tegra/dsi.c                        |  4 +--
>  drivers/gpu/drm/tegra/output.c                     | 10 ------
>  include/drm/drm_panel.h                            |  3 --
>  28 files changed, 6 insertions(+), 194 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
> index f082b4ed4878..d9164fab044d 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
> @@ -507,10 +507,6 @@ static const struct drm_connector_helper_funcs anx6345_connector_helper_funcs =
>  static void
>  anx6345_connector_destroy(struct drm_connector *connector)
>  {
> -	struct anx6345 *anx6345 = connector_to_anx6345(connector);
> -
> -	if (anx6345->panel)
> -		drm_panel_detach(anx6345->panel);
>  	drm_connector_cleanup(connector);
>  }
>  
> @@ -575,14 +571,6 @@ static int anx6345_bridge_attach(struct drm_bridge *bridge,
>  		return err;
>  	}
>  
> -	if (anx6345->panel) {
> -		err = drm_panel_attach(anx6345->panel, &anx6345->connector);
> -		if (err) {
> -			DRM_ERROR("Failed to attach panel: %d\n", err);
> -			return err;
> -		}
> -	}
> -
>  	return 0;
>  }
>  
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> index 76736fb8ed94..aa1bb86293fd 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> @@ -1265,14 +1265,6 @@ static int analogix_dp_bridge_attach(struct drm_bridge *bridge,
>  		}
>  	}
>  
> -	if (dp->plat_data->panel) {
> -		ret = drm_panel_attach(dp->plat_data->panel, &dp->connector);
> -		if (ret) {
> -			DRM_ERROR("Failed to attach panel\n");
> -			return ret;
> -		}
> -	}
> -
>  	return 0;
>  }
>  
> @@ -1803,7 +1795,6 @@ void analogix_dp_unbind(struct analogix_dp_device *dp)
>  	if (dp->plat_data->panel) {
>  		if (drm_panel_unprepare(dp->plat_data->panel))
>  			DRM_ERROR("failed to turnoff the panel\n");
> -		drm_panel_detach(dp->plat_data->panel);
>  	}
>  
>  	drm_dp_aux_unregister(&dp->aux);
> diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c
> index 438e566ce0a4..d433902d97e5 100644
> --- a/drivers/gpu/drm/bridge/nxp-ptn3460.c
> +++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c
> @@ -265,9 +265,6 @@ static int ptn3460_bridge_attach(struct drm_bridge *bridge,
>  	drm_connector_attach_encoder(&ptn_bridge->connector,
>  							bridge->encoder);
>  
> -	if (ptn_bridge->panel)
> -		drm_panel_attach(ptn_bridge->panel, &ptn_bridge->connector);
> -
>  	drm_helper_hpd_irq_event(ptn_bridge->connector.dev);
>  
>  	return ret;
> diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c
> index 1e63ed6b18aa..0ddc37551194 100644
> --- a/drivers/gpu/drm/bridge/panel.c
> +++ b/drivers/gpu/drm/bridge/panel.c
> @@ -82,18 +82,11 @@ static int panel_bridge_attach(struct drm_bridge *bridge,
>  	drm_connector_attach_encoder(&panel_bridge->connector,
>  					  bridge->encoder);
>  
> -	ret = drm_panel_attach(panel_bridge->panel, &panel_bridge->connector);
> -	if (ret < 0)
> -		return ret;
> -
>  	return 0;
>  }
>  
>  static void panel_bridge_detach(struct drm_bridge *bridge)
>  {
> -	struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
> -
> -	drm_panel_detach(panel_bridge->panel);
>  }
>  
>  static void panel_bridge_pre_enable(struct drm_bridge *bridge)
> diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c
> index d789ea2a7fb9..c13ec77d858b 100644
> --- a/drivers/gpu/drm/bridge/parade-ps8622.c
> +++ b/drivers/gpu/drm/bridge/parade-ps8622.c
> @@ -505,9 +505,6 @@ static int ps8622_attach(struct drm_bridge *bridge,
>  	drm_connector_attach_encoder(&ps8622->connector,
>  							bridge->encoder);
>  
> -	if (ps8622->panel)
> -		drm_panel_attach(ps8622->panel, &ps8622->connector);
> -
>  	drm_helper_hpd_irq_event(ps8622->connector.dev);
>  
>  	return ret;
> diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c
> index 5ac1430fab04..c1e35bdf9232 100644
> --- a/drivers/gpu/drm/bridge/tc358764.c
> +++ b/drivers/gpu/drm/bridge/tc358764.c
> @@ -373,7 +373,6 @@ static int tc358764_attach(struct drm_bridge *bridge,
>  	drm_connector_helper_add(&ctx->connector,
>  				 &tc358764_connector_helper_funcs);
>  	drm_connector_attach_encoder(&ctx->connector, bridge->encoder);
> -	drm_panel_attach(ctx->panel, &ctx->connector);
>  	ctx->connector.funcs->reset(&ctx->connector);
>  	drm_connector_register(&ctx->connector);
>  
> @@ -385,7 +384,6 @@ static void tc358764_detach(struct drm_bridge *bridge)
>  	struct tc358764 *ctx = bridge_to_tc358764(bridge);
>  
>  	drm_connector_unregister(&ctx->connector);
> -	drm_panel_detach(ctx->panel);
>  	ctx->panel = NULL;
>  	drm_connector_put(&ctx->connector);
>  }
> diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
> index c2777b226c75..0746462ba0f6 100644
> --- a/drivers/gpu/drm/bridge/tc358767.c
> +++ b/drivers/gpu/drm/bridge/tc358767.c
> @@ -1435,9 +1435,6 @@ static int tc_bridge_attach(struct drm_bridge *bridge,
>  					       DRM_CONNECTOR_POLL_DISCONNECT;
>  	}
>  
> -	if (tc->panel)
> -		drm_panel_attach(tc->panel, &tc->connector);
> -
>  	drm_display_info_set_bus_formats(&tc->connector.display_info,
>  					 &bus_format, 1);
>  	tc->connector.display_info.bus_flags =
> diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> index 86b9f0f87a14..454544e0da7d 100644
> --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> @@ -394,9 +394,6 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge,
>  	}
>  	pdata->dsi = dsi;
>  
> -	/* attach panel to bridge */
> -	drm_panel_attach(pdata->panel, &pdata->connector);
> -
>  	return 0;
>  
>  err_dsi_attach:
> diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
> index 8c7bac85a793..7804b9947fe8 100644
> --- a/drivers/gpu/drm/drm_panel.c
> +++ b/drivers/gpu/drm/drm_panel.c
> @@ -97,42 +97,6 @@ void drm_panel_remove(struct drm_panel *panel)
>  }
>  EXPORT_SYMBOL(drm_panel_remove);
>  
> -/**
> - * drm_panel_attach - attach a panel to a connector
> - * @panel: DRM panel
> - * @connector: DRM connector
> - *
> - * After obtaining a pointer to a DRM panel a display driver calls this
> - * function to attach a panel to a connector.
> - *
> - * An error is returned if the panel is already attached to another connector.
> - *
> - * When unloading, the driver should detach from the panel by calling
> - * drm_panel_detach().
> - *
> - * Return: 0 on success or a negative error code on failure.
> - */
> -int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector)
> -{
> -	return 0;
> -}
> -EXPORT_SYMBOL(drm_panel_attach);
> -
> -/**
> - * drm_panel_detach - detach a panel from a connector
> - * @panel: DRM panel
> - *
> - * Detaches a panel from the connector it is attached to. If a panel is not
> - * attached to any connector this is effectively a no-op.
> - *
> - * This function should not be called by the panel device itself. It
> - * is only for the drm device that called drm_panel_attach().
> - */
> -void drm_panel_detach(struct drm_panel *panel)
> -{
> -}
> -EXPORT_SYMBOL(drm_panel_detach);
> -
>  /**
>   * drm_panel_prepare - power on a panel
>   * @panel: DRM panel
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> index 7ba5354e7d94..5f5ba64fc1ff 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> @@ -44,9 +44,6 @@ exynos_dpi_detect(struct drm_connector *connector, bool force)
>  {
>  	struct exynos_dpi *ctx = connector_to_dpi(connector);
>  
> -	if (ctx->panel)
> -		drm_panel_attach(ctx->panel, &ctx->connector);
> -
>  	return connector_status_connected;
>  }
>  
> @@ -249,8 +246,5 @@ int exynos_dpi_remove(struct drm_encoder *encoder)
>  
>  	exynos_dpi_disable(&ctx->encoder);
>  
> -	if (ctx->panel)
> -		drm_panel_detach(ctx->panel);
> -
>  	return 0;
>  }
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> index 7a6f6df5e954..843dfcefc46a 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> @@ -1551,12 +1551,10 @@ static int exynos_dsi_host_attach(struct mipi_dsi_host *host,
>  		}
>  
>  		dsi->panel = of_drm_find_panel(device->dev.of_node);
> -		if (IS_ERR(dsi->panel)) {
> +		if (IS_ERR(dsi->panel))
>  			dsi->panel = NULL;
> -		} else {
> -			drm_panel_attach(dsi->panel, &dsi->connector);
> +		else
>  			dsi->connector.status = connector_status_connected;
> -		}
>  	}
>  
>  	/*
> @@ -1596,7 +1594,6 @@ static int exynos_dsi_host_detach(struct mipi_dsi_host *host,
>  	if (dsi->panel) {
>  		mutex_lock(&drm->mode_config.mutex);
>  		exynos_dsi_disable(&dsi->encoder);
> -		drm_panel_detach(dsi->panel);
>  		dsi->panel = NULL;
>  		dsi->connector.status = connector_status_disconnected;
>  		mutex_unlock(&drm->mode_config.mutex);
> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> index 9b0c4736c21a..0a7071827533 100644
> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> @@ -43,7 +43,6 @@ static void fsl_dcu_drm_connector_destroy(struct drm_connector *connector)
>  	struct fsl_dcu_drm_connector *fsl_con = to_fsl_dcu_connector(connector);
>  
>  	drm_connector_unregister(connector);
> -	drm_panel_detach(fsl_con->panel);
>  	drm_connector_cleanup(connector);
>  }
>  
> @@ -101,12 +100,6 @@ static int fsl_dcu_attach_panel(struct fsl_dcu_drm_device *fsl_dev,
>  	if (ret < 0)
>  		goto err_sysfs;
>  
> -	ret = drm_panel_attach(panel, connector);
> -	if (ret) {
> -		dev_err(fsl_dev->dev, "failed to attach panel\n");
> -		goto err_sysfs;
> -	}
> -
>  	return 0;
>  
>  err_sysfs:
> diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
> index 8791d60be92e..af757d1e21fe 100644
> --- a/drivers/gpu/drm/imx/imx-ldb.c
> +++ b/drivers/gpu/drm/imx/imx-ldb.c
> @@ -455,13 +455,6 @@ static int imx_ldb_register(struct drm_device *drm,
>  		drm_connector_attach_encoder(&imx_ldb_ch->connector, encoder);
>  	}
>  
> -	if (imx_ldb_ch->panel) {
> -		ret = drm_panel_attach(imx_ldb_ch->panel,
> -				       &imx_ldb_ch->connector);
> -		if (ret)
> -			return ret;
> -	}
> -
>  	return 0;
>  }
>  
> @@ -702,9 +695,6 @@ static void imx_ldb_unbind(struct device *dev, struct device *master,
>  	for (i = 0; i < 2; i++) {
>  		struct imx_ldb_channel *channel = &imx_ldb->channel[i];
>  
> -		if (channel->panel)
> -			drm_panel_detach(channel->panel);
> -
>  		kfree(channel->edid);
>  		i2c_put_adapter(channel->ddc);
>  	}
> diff --git a/drivers/gpu/drm/imx/parallel-display.c b/drivers/gpu/drm/imx/parallel-display.c
> index a831b5bd1613..8232f512b9ed 100644
> --- a/drivers/gpu/drm/imx/parallel-display.c
> +++ b/drivers/gpu/drm/imx/parallel-display.c
> @@ -289,9 +289,6 @@ static int imx_pd_register(struct drm_device *drm,
>  				   DRM_MODE_CONNECTOR_DPI);
>  	}
>  
> -	if (imxpd->panel)
> -		drm_panel_attach(imxpd->panel, &imxpd->connector);
> -
>  	if (imxpd->next_bridge) {
>  		ret = drm_bridge_attach(encoder, imxpd->next_bridge,
>  					&imxpd->bridge, 0);
> @@ -357,9 +354,6 @@ static void imx_pd_unbind(struct device *dev, struct device *master,
>  {
>  	struct imx_parallel_display *imxpd = dev_get_drvdata(dev);
>  
> -	if (imxpd->panel)
> -		drm_panel_detach(imxpd->panel);
> -
>  	kfree(imxpd->edid);
>  }
>  
> diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
> index c7df71e2fafc..7288041dd86a 100644
> --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
> +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
> @@ -50,14 +50,9 @@ static int mdp4_lvds_connector_get_modes(struct drm_connector *connector)
>  	struct drm_panel *panel = mdp4_lvds_connector->panel;
>  	int ret = 0;
>  
> -	if (panel) {
> -		drm_panel_attach(panel, connector);
> -
> +	if (panel)
>  		ret = drm_panel_get_modes(panel, connector);
>  
> -		drm_panel_detach(panel);
> -	}
> -
>  	return ret;
>  }
>  
> diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
> index 4b363bd7ddff..1d28dfba2c9b 100644
> --- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
> +++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
> @@ -328,7 +328,6 @@ static int dsi_mgr_connector_get_modes(struct drm_connector *connector)
>  	 * In dual DSI mode, we have one connector that can be
>  	 * attached to the drm_panel.
>  	 */
> -	drm_panel_attach(panel, connector);
>  	num = drm_panel_get_modes(panel, connector);
>  	if (!num)
>  		return 0;
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> index 508764fccd27..51da0e3de587 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> @@ -265,11 +265,7 @@ static int mxsfb_load(struct drm_device *drm)
>  	 */
>  
>  	if (mxsfb->panel) {
> -		ret = drm_panel_attach(mxsfb->panel, mxsfb->connector);
> -		if (ret) {
> -			dev_err(drm->dev, "Cannot connect panel: %d\n", ret);
> -			goto err_vblank;
> -		}
> +		;
>  	} else if (mxsfb->bridge) {
>  		ret = drm_simple_display_pipe_attach_bridge(&mxsfb->pipe,
>  							    mxsfb->bridge);
> @@ -306,7 +302,6 @@ static int mxsfb_load(struct drm_device *drm)
>  	return 0;
>  
>  err_irq:
> -	drm_panel_detach(mxsfb->panel);
>  err_vblank:
>  	pm_runtime_disable(drm->dev);
>  
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> index 9eca1605d11d..f93e7a4d4c15 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_out.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> @@ -55,12 +55,6 @@ mxsfb_panel_connector_detect(struct drm_connector *connector, bool force)
>  
>  static void mxsfb_panel_connector_destroy(struct drm_connector *connector)
>  {
> -	struct mxsfb_drm_private *mxsfb =
> -			drm_connector_to_mxsfb_drm_private(connector);
> -
> -	if (mxsfb->panel)
> -		drm_panel_detach(mxsfb->panel);
> -
>  	drm_connector_unregister(connector);
>  	drm_connector_cleanup(connector);
>  }
> diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
> index 4526967978b7..db8106afd91f 100644
> --- a/drivers/gpu/drm/omapdrm/omap_drv.c
> +++ b/drivers/gpu/drm/omapdrm/omap_drv.c
> @@ -349,13 +349,6 @@ static int omap_modeset_init(struct drm_device *dev)
>  
>  		drm_connector_attach_encoder(pipe->connector, encoder);
>  
> -		if (pipe->output->panel) {
> -			ret = drm_panel_attach(pipe->output->panel,
> -					       pipe->connector);
> -			if (ret < 0)
> -				return ret;
> -		}
> -
>  		crtc = omap_crtc_init(dev, pipe, priv->planes[i]);
>  		if (IS_ERR(crtc))
>  			return PTR_ERR(crtc);
> @@ -395,17 +388,9 @@ static int omap_modeset_init(struct drm_device *dev)
>  static void omap_modeset_fini(struct drm_device *ddev)
>  {
>  	struct omap_drm_private *priv = ddev->dev_private;
> -	unsigned int i;
>  
>  	omap_drm_irq_uninstall(ddev);
>  
> -	for (i = 0; i < priv->num_pipes; i++) {
> -		struct omap_drm_pipeline *pipe = &priv->pipes[i];
> -
> -		if (pipe->output->panel)
> -			drm_panel_detach(pipe->output->panel);
> -	}
> -
>  	drm_mode_config_cleanup(ddev);
>  }
>  
> diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/rcar-du/rcar_lvds.c
> index ab0d49618cf9..bced729a96fe 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_lvds.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c
> @@ -677,15 +677,11 @@ static int rcar_lvds_attach(struct drm_bridge *bridge,
>  	if (ret < 0)
>  		return ret;
>  
> -	return drm_panel_attach(lvds->panel, connector);
> +	return 0;
>  }
>  
>  static void rcar_lvds_detach(struct drm_bridge *bridge)
>  {
> -	struct rcar_lvds *lvds = bridge_to_rcar_lvds(bridge);
> -
> -	if (lvds->panel)
> -		drm_panel_detach(lvds->panel);
>  }
>  
>  static const struct drm_bridge_funcs rcar_lvds_bridge_ops = {
> diff --git a/drivers/gpu/drm/rockchip/rockchip_lvds.c b/drivers/gpu/drm/rockchip/rockchip_lvds.c
> index 63f967902c2d..f292c6a6e20f 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_lvds.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_lvds.c
> @@ -634,13 +634,6 @@ static int rockchip_lvds_bind(struct device *dev, struct device *master,
>  				      "failed to attach encoder: %d\n", ret);
>  			goto err_free_connector;
>  		}
> -
> -		ret = drm_panel_attach(lvds->panel, connector);
> -		if (ret < 0) {
> -			DRM_DEV_ERROR(drm_dev->dev,
> -				      "failed to attach panel: %d\n", ret);
> -			goto err_free_connector;
> -		}
>  	} else {
>  		ret = drm_bridge_attach(encoder, lvds->bridge, NULL, 0);
>  		if (ret) {
> @@ -676,8 +669,6 @@ static void rockchip_lvds_unbind(struct device *dev, struct device *master,
>  
>  	encoder_funcs = lvds->soc_data->helper_funcs;
>  	encoder_funcs->disable(&lvds->encoder);
> -	if (lvds->panel)
> -		drm_panel_detach(lvds->panel);
>  	pm_runtime_disable(dev);
>  	drm_connector_cleanup(&lvds->connector);
>  	drm_encoder_cleanup(&lvds->encoder);
> diff --git a/drivers/gpu/drm/sti/sti_dvo.c b/drivers/gpu/drm/sti/sti_dvo.c
> index de4af7735c46..ddb4184f0726 100644
> --- a/drivers/gpu/drm/sti/sti_dvo.c
> +++ b/drivers/gpu/drm/sti/sti_dvo.c
> @@ -389,8 +389,6 @@ sti_dvo_connector_detect(struct drm_connector *connector, bool force)
>  		dvo->panel = of_drm_find_panel(dvo->panel_node);
>  		if (IS_ERR(dvo->panel))
>  			dvo->panel = NULL;
> -		else
> -			drm_panel_attach(dvo->panel, connector);
>  	}
>  
>  	if (dvo->panel)
> diff --git a/drivers/gpu/drm/sun4i/sun4i_lvds.c b/drivers/gpu/drm/sun4i/sun4i_lvds.c
> index ffda3184aa12..f8a1ff4bf1bb 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_lvds.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_lvds.c
> @@ -56,7 +56,6 @@ sun4i_lvds_connector_destroy(struct drm_connector *connector)
>  {
>  	struct sun4i_lvds *lvds = drm_connector_to_sun4i_lvds(connector);
>  
> -	drm_panel_detach(lvds->panel);
>  	drm_connector_cleanup(connector);
>  }
>  
> @@ -141,12 +140,6 @@ int sun4i_lvds_init(struct drm_device *drm, struct sun4i_tcon *tcon)
>  
>  		drm_connector_attach_encoder(&lvds->connector,
>  						  &lvds->encoder);
> -
> -		ret = drm_panel_attach(lvds->panel, &lvds->connector);
> -		if (ret) {
> -			dev_err(drm->dev, "Couldn't attach our panel\n");
> -			goto err_cleanup_connector;
> -		}
>  	}
>  
>  	if (bridge) {
> diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c b/drivers/gpu/drm/sun4i/sun4i_rgb.c
> index 5a7d43939ae6..e08afdffef50 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_rgb.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c
> @@ -147,7 +147,6 @@ sun4i_rgb_connector_destroy(struct drm_connector *connector)
>  {
>  	struct sun4i_rgb *rgb = drm_connector_to_sun4i_rgb(connector);
>  
> -	drm_panel_detach(rgb->panel);
>  	drm_connector_cleanup(connector);
>  }
>  
> @@ -233,12 +232,6 @@ int sun4i_rgb_init(struct drm_device *drm, struct sun4i_tcon *tcon)
>  
>  		drm_connector_attach_encoder(&rgb->connector,
>  						  &rgb->encoder);
> -
> -		ret = drm_panel_attach(rgb->panel, &rgb->connector);
> -		if (ret) {
> -			dev_err(drm->dev, "Couldn't attach our panel\n");
> -			goto err_cleanup_connector;
> -		}
>  	}
>  
>  	if (rgb->bridge) {
> diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> index aa67cb037e9d..128471b65f64 100644
> --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> @@ -973,7 +973,6 @@ static int sun6i_dsi_attach(struct mipi_dsi_host *host,
>  	dsi->panel = panel;
>  	dsi->device = device;
>  
> -	drm_panel_attach(dsi->panel, &dsi->connector);
>  	drm_kms_helper_hotplug_event(dsi->drm);
>  
>  	dev_info(host->dev, "Attached device %s\n", device->name);
> @@ -990,7 +989,6 @@ static int sun6i_dsi_detach(struct mipi_dsi_host *host,
>  	dsi->panel = NULL;
>  	dsi->device = NULL;
>  
> -	drm_panel_detach(panel);
>  	drm_kms_helper_hotplug_event(dsi->drm);
>  
>  	return 0;
> diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
> index 3820e8dff14b..3387de79718b 100644
> --- a/drivers/gpu/drm/tegra/dsi.c
> +++ b/drivers/gpu/drm/tegra/dsi.c
> @@ -1498,10 +1498,8 @@ static int tegra_dsi_host_attach(struct mipi_dsi_host *host,
>  		if (IS_ERR(output->panel))
>  			output->panel = NULL;
>  
> -		if (output->panel && output->connector.dev) {
> -			drm_panel_attach(output->panel, &output->connector);
> +		if (output->panel && output->connector.dev)
>  			drm_helper_hpd_irq_event(output->connector.dev);
> -		}
>  	}
>  
>  	return 0;
> diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c
> index e36e5e7c2f69..a3adb9e4debf 100644
> --- a/drivers/gpu/drm/tegra/output.c
> +++ b/drivers/gpu/drm/tegra/output.c
> @@ -179,13 +179,6 @@ void tegra_output_remove(struct tegra_output *output)
>  int tegra_output_init(struct drm_device *drm, struct tegra_output *output)
>  {
>  	int connector_type;
> -	int err;
> -
> -	if (output->panel) {
> -		err = drm_panel_attach(output->panel, &output->connector);
> -		if (err < 0)
> -			return err;
> -	}
>  
>  	/*
>  	 * The connector is now registered and ready to receive hotplug events
> @@ -220,9 +213,6 @@ void tegra_output_exit(struct tegra_output *output)
>  	 */
>  	if (output->hpd_gpio)
>  		disable_irq(output->hpd_irq);
> -
> -	if (output->panel)
> -		drm_panel_detach(output->panel);
>  }
>  
>  void tegra_output_find_possible_crtcs(struct tegra_output *output,
> diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
> index 6193cb555acc..9b374f88fb76 100644
> --- a/include/drm/drm_panel.h
> +++ b/include/drm/drm_panel.h
> @@ -178,9 +178,6 @@ void drm_panel_init(struct drm_panel *panel, struct device *dev,
>  int drm_panel_add(struct drm_panel *panel);
>  void drm_panel_remove(struct drm_panel *panel);
>  
> -int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector);
> -void drm_panel_detach(struct drm_panel *panel);
> -
>  int drm_panel_prepare(struct drm_panel *panel);
>  int drm_panel_unprepare(struct drm_panel *panel);
>  
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH V2] drm: Remove unnecessary drm_panel_attach and drm_panel_detach
  2020-08-02  8:44       ` Sam Ravnborg
@ 2020-08-02 16:43         ` Joe Perches
  -1 siblings, 0 replies; 18+ messages in thread
From: Joe Perches @ 2020-08-02 16:43 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Bernard Zhao, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Thierry Reding, David Airlie, Daniel Vetter,
	Linus Walleij, Jerry Han, Icenowy Zheng, Jagan Teki,
	Laurent Pinchart, Stefan Mavrodiev, Robert Chiras, dri-devel,
	linux-kernel, opensource.kernel

These functions are now empty and no longer
useful so remove the functions and their uses.

Signed-off-by: Joe Perches <joe@perches.com>
---

> > It's too tedious to break apart into multiple patches.
> > Done with coccinelle and typing.
> > 
> > Compiled allyesconfig x86-64 only.

V2: Removed 3 additional lines

drivers/gpu/drm/omapdrm/omap_drv.c:390:27: warning: unused variable ‘priv’ [-Wunused-variable]
drivers/gpu/drm/exynos/exynos_drm_dpi.c:45:21: warning: unused variable ‘ctx’ [-Wunused-variable]
drivers/gpu/drm/sun4i/sun4i_lvds.c:57:21: warning: unused variable ‘lvds’ [-Wunused-variable]

 drivers/gpu/drm/bridge/analogix/analogix-anx6345.c | 12 --------
 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  9 ------
 drivers/gpu/drm/bridge/nxp-ptn3460.c               |  3 --
 drivers/gpu/drm/bridge/panel.c                     |  7 -----
 drivers/gpu/drm/bridge/parade-ps8622.c             |  3 --
 drivers/gpu/drm/bridge/tc358764.c                  |  2 --
 drivers/gpu/drm/bridge/tc358767.c                  |  3 --
 drivers/gpu/drm/bridge/ti-sn65dsi86.c              |  3 --
 drivers/gpu/drm/drm_panel.c                        | 36 ----------------------
 drivers/gpu/drm/exynos/exynos_drm_dpi.c            |  8 -----
 drivers/gpu/drm/exynos/exynos_drm_dsi.c            |  7 ++---
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c          |  7 -----
 drivers/gpu/drm/imx/imx-ldb.c                      | 10 ------
 drivers/gpu/drm/imx/parallel-display.c             |  6 ----
 .../gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c    |  7 +----
 drivers/gpu/drm/msm/dsi/dsi_manager.c              |  1 -
 drivers/gpu/drm/mxsfb/mxsfb_drv.c                  |  7 +----
 drivers/gpu/drm/mxsfb/mxsfb_out.c                  |  6 ----
 drivers/gpu/drm/omapdrm/omap_drv.c                 | 17 ----------
 drivers/gpu/drm/rcar-du/rcar_lvds.c                |  6 +---
 drivers/gpu/drm/rockchip/rockchip_lvds.c           |  9 ------
 drivers/gpu/drm/sti/sti_dvo.c                      |  2 --
 drivers/gpu/drm/sun4i/sun4i_lvds.c                 |  9 ------
 drivers/gpu/drm/sun4i/sun4i_rgb.c                  |  7 -----
 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c             |  2 --
 drivers/gpu/drm/tegra/dsi.c                        |  4 +--
 drivers/gpu/drm/tegra/output.c                     | 10 ------
 include/drm/drm_panel.h                            |  3 --
 28 files changed, 6 insertions(+), 200 deletions(-)

diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
index f082b4ed4878..d9164fab044d 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
@@ -507,10 +507,6 @@ static const struct drm_connector_helper_funcs anx6345_connector_helper_funcs =
 static void
 anx6345_connector_destroy(struct drm_connector *connector)
 {
-	struct anx6345 *anx6345 = connector_to_anx6345(connector);
-
-	if (anx6345->panel)
-		drm_panel_detach(anx6345->panel);
 	drm_connector_cleanup(connector);
 }
 
@@ -575,14 +571,6 @@ static int anx6345_bridge_attach(struct drm_bridge *bridge,
 		return err;
 	}
 
-	if (anx6345->panel) {
-		err = drm_panel_attach(anx6345->panel, &anx6345->connector);
-		if (err) {
-			DRM_ERROR("Failed to attach panel: %d\n", err);
-			return err;
-		}
-	}
-
 	return 0;
 }
 
diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
index 76736fb8ed94..aa1bb86293fd 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
@@ -1265,14 +1265,6 @@ static int analogix_dp_bridge_attach(struct drm_bridge *bridge,
 		}
 	}
 
-	if (dp->plat_data->panel) {
-		ret = drm_panel_attach(dp->plat_data->panel, &dp->connector);
-		if (ret) {
-			DRM_ERROR("Failed to attach panel\n");
-			return ret;
-		}
-	}
-
 	return 0;
 }
 
@@ -1803,7 +1795,6 @@ void analogix_dp_unbind(struct analogix_dp_device *dp)
 	if (dp->plat_data->panel) {
 		if (drm_panel_unprepare(dp->plat_data->panel))
 			DRM_ERROR("failed to turnoff the panel\n");
-		drm_panel_detach(dp->plat_data->panel);
 	}
 
 	drm_dp_aux_unregister(&dp->aux);
diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c
index 438e566ce0a4..d433902d97e5 100644
--- a/drivers/gpu/drm/bridge/nxp-ptn3460.c
+++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c
@@ -265,9 +265,6 @@ static int ptn3460_bridge_attach(struct drm_bridge *bridge,
 	drm_connector_attach_encoder(&ptn_bridge->connector,
 							bridge->encoder);
 
-	if (ptn_bridge->panel)
-		drm_panel_attach(ptn_bridge->panel, &ptn_bridge->connector);
-
 	drm_helper_hpd_irq_event(ptn_bridge->connector.dev);
 
 	return ret;
diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c
index 1e63ed6b18aa..0ddc37551194 100644
--- a/drivers/gpu/drm/bridge/panel.c
+++ b/drivers/gpu/drm/bridge/panel.c
@@ -82,18 +82,11 @@ static int panel_bridge_attach(struct drm_bridge *bridge,
 	drm_connector_attach_encoder(&panel_bridge->connector,
 					  bridge->encoder);
 
-	ret = drm_panel_attach(panel_bridge->panel, &panel_bridge->connector);
-	if (ret < 0)
-		return ret;
-
 	return 0;
 }
 
 static void panel_bridge_detach(struct drm_bridge *bridge)
 {
-	struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
-
-	drm_panel_detach(panel_bridge->panel);
 }
 
 static void panel_bridge_pre_enable(struct drm_bridge *bridge)
diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c
index d789ea2a7fb9..c13ec77d858b 100644
--- a/drivers/gpu/drm/bridge/parade-ps8622.c
+++ b/drivers/gpu/drm/bridge/parade-ps8622.c
@@ -505,9 +505,6 @@ static int ps8622_attach(struct drm_bridge *bridge,
 	drm_connector_attach_encoder(&ps8622->connector,
 							bridge->encoder);
 
-	if (ps8622->panel)
-		drm_panel_attach(ps8622->panel, &ps8622->connector);
-
 	drm_helper_hpd_irq_event(ps8622->connector.dev);
 
 	return ret;
diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c
index 5ac1430fab04..c1e35bdf9232 100644
--- a/drivers/gpu/drm/bridge/tc358764.c
+++ b/drivers/gpu/drm/bridge/tc358764.c
@@ -373,7 +373,6 @@ static int tc358764_attach(struct drm_bridge *bridge,
 	drm_connector_helper_add(&ctx->connector,
 				 &tc358764_connector_helper_funcs);
 	drm_connector_attach_encoder(&ctx->connector, bridge->encoder);
-	drm_panel_attach(ctx->panel, &ctx->connector);
 	ctx->connector.funcs->reset(&ctx->connector);
 	drm_connector_register(&ctx->connector);
 
@@ -385,7 +384,6 @@ static void tc358764_detach(struct drm_bridge *bridge)
 	struct tc358764 *ctx = bridge_to_tc358764(bridge);
 
 	drm_connector_unregister(&ctx->connector);
-	drm_panel_detach(ctx->panel);
 	ctx->panel = NULL;
 	drm_connector_put(&ctx->connector);
 }
diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
index c2777b226c75..0746462ba0f6 100644
--- a/drivers/gpu/drm/bridge/tc358767.c
+++ b/drivers/gpu/drm/bridge/tc358767.c
@@ -1435,9 +1435,6 @@ static int tc_bridge_attach(struct drm_bridge *bridge,
 					       DRM_CONNECTOR_POLL_DISCONNECT;
 	}
 
-	if (tc->panel)
-		drm_panel_attach(tc->panel, &tc->connector);
-
 	drm_display_info_set_bus_formats(&tc->connector.display_info,
 					 &bus_format, 1);
 	tc->connector.display_info.bus_flags =
diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
index 86b9f0f87a14..454544e0da7d 100644
--- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
+++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
@@ -394,9 +394,6 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge,
 	}
 	pdata->dsi = dsi;
 
-	/* attach panel to bridge */
-	drm_panel_attach(pdata->panel, &pdata->connector);
-
 	return 0;
 
 err_dsi_attach:
diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
index 8c7bac85a793..7804b9947fe8 100644
--- a/drivers/gpu/drm/drm_panel.c
+++ b/drivers/gpu/drm/drm_panel.c
@@ -97,42 +97,6 @@ void drm_panel_remove(struct drm_panel *panel)
 }
 EXPORT_SYMBOL(drm_panel_remove);
 
-/**
- * drm_panel_attach - attach a panel to a connector
- * @panel: DRM panel
- * @connector: DRM connector
- *
- * After obtaining a pointer to a DRM panel a display driver calls this
- * function to attach a panel to a connector.
- *
- * An error is returned if the panel is already attached to another connector.
- *
- * When unloading, the driver should detach from the panel by calling
- * drm_panel_detach().
- *
- * Return: 0 on success or a negative error code on failure.
- */
-int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector)
-{
-	return 0;
-}
-EXPORT_SYMBOL(drm_panel_attach);
-
-/**
- * drm_panel_detach - detach a panel from a connector
- * @panel: DRM panel
- *
- * Detaches a panel from the connector it is attached to. If a panel is not
- * attached to any connector this is effectively a no-op.
- *
- * This function should not be called by the panel device itself. It
- * is only for the drm device that called drm_panel_attach().
- */
-void drm_panel_detach(struct drm_panel *panel)
-{
-}
-EXPORT_SYMBOL(drm_panel_detach);
-
 /**
  * drm_panel_prepare - power on a panel
  * @panel: DRM panel
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
index 7ba5354e7d94..741323a2e6c3 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
@@ -42,11 +42,6 @@ static inline struct exynos_dpi *encoder_to_dpi(struct drm_encoder *e)
 static enum drm_connector_status
 exynos_dpi_detect(struct drm_connector *connector, bool force)
 {
-	struct exynos_dpi *ctx = connector_to_dpi(connector);
-
-	if (ctx->panel)
-		drm_panel_attach(ctx->panel, &ctx->connector);
-
 	return connector_status_connected;
 }
 
@@ -249,8 +244,5 @@ int exynos_dpi_remove(struct drm_encoder *encoder)
 
 	exynos_dpi_disable(&ctx->encoder);
 
-	if (ctx->panel)
-		drm_panel_detach(ctx->panel);
-
 	return 0;
 }
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
index 7a6f6df5e954..843dfcefc46a 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
@@ -1551,12 +1551,10 @@ static int exynos_dsi_host_attach(struct mipi_dsi_host *host,
 		}
 
 		dsi->panel = of_drm_find_panel(device->dev.of_node);
-		if (IS_ERR(dsi->panel)) {
+		if (IS_ERR(dsi->panel))
 			dsi->panel = NULL;
-		} else {
-			drm_panel_attach(dsi->panel, &dsi->connector);
+		else
 			dsi->connector.status = connector_status_connected;
-		}
 	}
 
 	/*
@@ -1596,7 +1594,6 @@ static int exynos_dsi_host_detach(struct mipi_dsi_host *host,
 	if (dsi->panel) {
 		mutex_lock(&drm->mode_config.mutex);
 		exynos_dsi_disable(&dsi->encoder);
-		drm_panel_detach(dsi->panel);
 		dsi->panel = NULL;
 		dsi->connector.status = connector_status_disconnected;
 		mutex_unlock(&drm->mode_config.mutex);
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
index 9b0c4736c21a..0a7071827533 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
@@ -43,7 +43,6 @@ static void fsl_dcu_drm_connector_destroy(struct drm_connector *connector)
 	struct fsl_dcu_drm_connector *fsl_con = to_fsl_dcu_connector(connector);
 
 	drm_connector_unregister(connector);
-	drm_panel_detach(fsl_con->panel);
 	drm_connector_cleanup(connector);
 }
 
@@ -101,12 +100,6 @@ static int fsl_dcu_attach_panel(struct fsl_dcu_drm_device *fsl_dev,
 	if (ret < 0)
 		goto err_sysfs;
 
-	ret = drm_panel_attach(panel, connector);
-	if (ret) {
-		dev_err(fsl_dev->dev, "failed to attach panel\n");
-		goto err_sysfs;
-	}
-
 	return 0;
 
 err_sysfs:
diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
index 8791d60be92e..af757d1e21fe 100644
--- a/drivers/gpu/drm/imx/imx-ldb.c
+++ b/drivers/gpu/drm/imx/imx-ldb.c
@@ -455,13 +455,6 @@ static int imx_ldb_register(struct drm_device *drm,
 		drm_connector_attach_encoder(&imx_ldb_ch->connector, encoder);
 	}
 
-	if (imx_ldb_ch->panel) {
-		ret = drm_panel_attach(imx_ldb_ch->panel,
-				       &imx_ldb_ch->connector);
-		if (ret)
-			return ret;
-	}
-
 	return 0;
 }
 
@@ -702,9 +695,6 @@ static void imx_ldb_unbind(struct device *dev, struct device *master,
 	for (i = 0; i < 2; i++) {
 		struct imx_ldb_channel *channel = &imx_ldb->channel[i];
 
-		if (channel->panel)
-			drm_panel_detach(channel->panel);
-
 		kfree(channel->edid);
 		i2c_put_adapter(channel->ddc);
 	}
diff --git a/drivers/gpu/drm/imx/parallel-display.c b/drivers/gpu/drm/imx/parallel-display.c
index a831b5bd1613..8232f512b9ed 100644
--- a/drivers/gpu/drm/imx/parallel-display.c
+++ b/drivers/gpu/drm/imx/parallel-display.c
@@ -289,9 +289,6 @@ static int imx_pd_register(struct drm_device *drm,
 				   DRM_MODE_CONNECTOR_DPI);
 	}
 
-	if (imxpd->panel)
-		drm_panel_attach(imxpd->panel, &imxpd->connector);
-
 	if (imxpd->next_bridge) {
 		ret = drm_bridge_attach(encoder, imxpd->next_bridge,
 					&imxpd->bridge, 0);
@@ -357,9 +354,6 @@ static void imx_pd_unbind(struct device *dev, struct device *master,
 {
 	struct imx_parallel_display *imxpd = dev_get_drvdata(dev);
 
-	if (imxpd->panel)
-		drm_panel_detach(imxpd->panel);
-
 	kfree(imxpd->edid);
 }
 
diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
index c7df71e2fafc..7288041dd86a 100644
--- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
+++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
@@ -50,14 +50,9 @@ static int mdp4_lvds_connector_get_modes(struct drm_connector *connector)
 	struct drm_panel *panel = mdp4_lvds_connector->panel;
 	int ret = 0;
 
-	if (panel) {
-		drm_panel_attach(panel, connector);
-
+	if (panel)
 		ret = drm_panel_get_modes(panel, connector);
 
-		drm_panel_detach(panel);
-	}
-
 	return ret;
 }
 
diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
index 4b363bd7ddff..1d28dfba2c9b 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
@@ -328,7 +328,6 @@ static int dsi_mgr_connector_get_modes(struct drm_connector *connector)
 	 * In dual DSI mode, we have one connector that can be
 	 * attached to the drm_panel.
 	 */
-	drm_panel_attach(panel, connector);
 	num = drm_panel_get_modes(panel, connector);
 	if (!num)
 		return 0;
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
index 508764fccd27..51da0e3de587 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -265,11 +265,7 @@ static int mxsfb_load(struct drm_device *drm)
 	 */
 
 	if (mxsfb->panel) {
-		ret = drm_panel_attach(mxsfb->panel, mxsfb->connector);
-		if (ret) {
-			dev_err(drm->dev, "Cannot connect panel: %d\n", ret);
-			goto err_vblank;
-		}
+		;
 	} else if (mxsfb->bridge) {
 		ret = drm_simple_display_pipe_attach_bridge(&mxsfb->pipe,
 							    mxsfb->bridge);
@@ -306,7 +302,6 @@ static int mxsfb_load(struct drm_device *drm)
 	return 0;
 
 err_irq:
-	drm_panel_detach(mxsfb->panel);
 err_vblank:
 	pm_runtime_disable(drm->dev);
 
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c b/drivers/gpu/drm/mxsfb/mxsfb_out.c
index 9eca1605d11d..f93e7a4d4c15 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_out.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c
@@ -55,12 +55,6 @@ mxsfb_panel_connector_detect(struct drm_connector *connector, bool force)
 
 static void mxsfb_panel_connector_destroy(struct drm_connector *connector)
 {
-	struct mxsfb_drm_private *mxsfb =
-			drm_connector_to_mxsfb_drm_private(connector);
-
-	if (mxsfb->panel)
-		drm_panel_detach(mxsfb->panel);
-
 	drm_connector_unregister(connector);
 	drm_connector_cleanup(connector);
 }
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
index 4526967978b7..53d5e184ee77 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -349,13 +349,6 @@ static int omap_modeset_init(struct drm_device *dev)
 
 		drm_connector_attach_encoder(pipe->connector, encoder);
 
-		if (pipe->output->panel) {
-			ret = drm_panel_attach(pipe->output->panel,
-					       pipe->connector);
-			if (ret < 0)
-				return ret;
-		}
-
 		crtc = omap_crtc_init(dev, pipe, priv->planes[i]);
 		if (IS_ERR(crtc))
 			return PTR_ERR(crtc);
@@ -394,18 +387,8 @@ static int omap_modeset_init(struct drm_device *dev)
 
 static void omap_modeset_fini(struct drm_device *ddev)
 {
-	struct omap_drm_private *priv = ddev->dev_private;
-	unsigned int i;
-
 	omap_drm_irq_uninstall(ddev);
 
-	for (i = 0; i < priv->num_pipes; i++) {
-		struct omap_drm_pipeline *pipe = &priv->pipes[i];
-
-		if (pipe->output->panel)
-			drm_panel_detach(pipe->output->panel);
-	}
-
 	drm_mode_config_cleanup(ddev);
 }
 
diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/rcar-du/rcar_lvds.c
index ab0d49618cf9..bced729a96fe 100644
--- a/drivers/gpu/drm/rcar-du/rcar_lvds.c
+++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c
@@ -677,15 +677,11 @@ static int rcar_lvds_attach(struct drm_bridge *bridge,
 	if (ret < 0)
 		return ret;
 
-	return drm_panel_attach(lvds->panel, connector);
+	return 0;
 }
 
 static void rcar_lvds_detach(struct drm_bridge *bridge)
 {
-	struct rcar_lvds *lvds = bridge_to_rcar_lvds(bridge);
-
-	if (lvds->panel)
-		drm_panel_detach(lvds->panel);
 }
 
 static const struct drm_bridge_funcs rcar_lvds_bridge_ops = {
diff --git a/drivers/gpu/drm/rockchip/rockchip_lvds.c b/drivers/gpu/drm/rockchip/rockchip_lvds.c
index 63f967902c2d..f292c6a6e20f 100644
--- a/drivers/gpu/drm/rockchip/rockchip_lvds.c
+++ b/drivers/gpu/drm/rockchip/rockchip_lvds.c
@@ -634,13 +634,6 @@ static int rockchip_lvds_bind(struct device *dev, struct device *master,
 				      "failed to attach encoder: %d\n", ret);
 			goto err_free_connector;
 		}
-
-		ret = drm_panel_attach(lvds->panel, connector);
-		if (ret < 0) {
-			DRM_DEV_ERROR(drm_dev->dev,
-				      "failed to attach panel: %d\n", ret);
-			goto err_free_connector;
-		}
 	} else {
 		ret = drm_bridge_attach(encoder, lvds->bridge, NULL, 0);
 		if (ret) {
@@ -676,8 +669,6 @@ static void rockchip_lvds_unbind(struct device *dev, struct device *master,
 
 	encoder_funcs = lvds->soc_data->helper_funcs;
 	encoder_funcs->disable(&lvds->encoder);
-	if (lvds->panel)
-		drm_panel_detach(lvds->panel);
 	pm_runtime_disable(dev);
 	drm_connector_cleanup(&lvds->connector);
 	drm_encoder_cleanup(&lvds->encoder);
diff --git a/drivers/gpu/drm/sti/sti_dvo.c b/drivers/gpu/drm/sti/sti_dvo.c
index de4af7735c46..ddb4184f0726 100644
--- a/drivers/gpu/drm/sti/sti_dvo.c
+++ b/drivers/gpu/drm/sti/sti_dvo.c
@@ -389,8 +389,6 @@ sti_dvo_connector_detect(struct drm_connector *connector, bool force)
 		dvo->panel = of_drm_find_panel(dvo->panel_node);
 		if (IS_ERR(dvo->panel))
 			dvo->panel = NULL;
-		else
-			drm_panel_attach(dvo->panel, connector);
 	}
 
 	if (dvo->panel)
diff --git a/drivers/gpu/drm/sun4i/sun4i_lvds.c b/drivers/gpu/drm/sun4i/sun4i_lvds.c
index ffda3184aa12..d06dd313d3c0 100644
--- a/drivers/gpu/drm/sun4i/sun4i_lvds.c
+++ b/drivers/gpu/drm/sun4i/sun4i_lvds.c
@@ -54,9 +54,6 @@ static struct drm_connector_helper_funcs sun4i_lvds_con_helper_funcs = {
 static void
 sun4i_lvds_connector_destroy(struct drm_connector *connector)
 {
-	struct sun4i_lvds *lvds = drm_connector_to_sun4i_lvds(connector);
-
-	drm_panel_detach(lvds->panel);
 	drm_connector_cleanup(connector);
 }
 
@@ -141,12 +138,6 @@ int sun4i_lvds_init(struct drm_device *drm, struct sun4i_tcon *tcon)
 
 		drm_connector_attach_encoder(&lvds->connector,
 						  &lvds->encoder);
-
-		ret = drm_panel_attach(lvds->panel, &lvds->connector);
-		if (ret) {
-			dev_err(drm->dev, "Couldn't attach our panel\n");
-			goto err_cleanup_connector;
-		}
 	}
 
 	if (bridge) {
diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c b/drivers/gpu/drm/sun4i/sun4i_rgb.c
index 5a7d43939ae6..e08afdffef50 100644
--- a/drivers/gpu/drm/sun4i/sun4i_rgb.c
+++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c
@@ -147,7 +147,6 @@ sun4i_rgb_connector_destroy(struct drm_connector *connector)
 {
 	struct sun4i_rgb *rgb = drm_connector_to_sun4i_rgb(connector);
 
-	drm_panel_detach(rgb->panel);
 	drm_connector_cleanup(connector);
 }
 
@@ -233,12 +232,6 @@ int sun4i_rgb_init(struct drm_device *drm, struct sun4i_tcon *tcon)
 
 		drm_connector_attach_encoder(&rgb->connector,
 						  &rgb->encoder);
-
-		ret = drm_panel_attach(rgb->panel, &rgb->connector);
-		if (ret) {
-			dev_err(drm->dev, "Couldn't attach our panel\n");
-			goto err_cleanup_connector;
-		}
 	}
 
 	if (rgb->bridge) {
diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
index aa67cb037e9d..128471b65f64 100644
--- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
+++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
@@ -973,7 +973,6 @@ static int sun6i_dsi_attach(struct mipi_dsi_host *host,
 	dsi->panel = panel;
 	dsi->device = device;
 
-	drm_panel_attach(dsi->panel, &dsi->connector);
 	drm_kms_helper_hotplug_event(dsi->drm);
 
 	dev_info(host->dev, "Attached device %s\n", device->name);
@@ -990,7 +989,6 @@ static int sun6i_dsi_detach(struct mipi_dsi_host *host,
 	dsi->panel = NULL;
 	dsi->device = NULL;
 
-	drm_panel_detach(panel);
 	drm_kms_helper_hotplug_event(dsi->drm);
 
 	return 0;
diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
index 3820e8dff14b..3387de79718b 100644
--- a/drivers/gpu/drm/tegra/dsi.c
+++ b/drivers/gpu/drm/tegra/dsi.c
@@ -1498,10 +1498,8 @@ static int tegra_dsi_host_attach(struct mipi_dsi_host *host,
 		if (IS_ERR(output->panel))
 			output->panel = NULL;
 
-		if (output->panel && output->connector.dev) {
-			drm_panel_attach(output->panel, &output->connector);
+		if (output->panel && output->connector.dev)
 			drm_helper_hpd_irq_event(output->connector.dev);
-		}
 	}
 
 	return 0;
diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c
index e36e5e7c2f69..a3adb9e4debf 100644
--- a/drivers/gpu/drm/tegra/output.c
+++ b/drivers/gpu/drm/tegra/output.c
@@ -179,13 +179,6 @@ void tegra_output_remove(struct tegra_output *output)
 int tegra_output_init(struct drm_device *drm, struct tegra_output *output)
 {
 	int connector_type;
-	int err;
-
-	if (output->panel) {
-		err = drm_panel_attach(output->panel, &output->connector);
-		if (err < 0)
-			return err;
-	}
 
 	/*
 	 * The connector is now registered and ready to receive hotplug events
@@ -220,9 +213,6 @@ void tegra_output_exit(struct tegra_output *output)
 	 */
 	if (output->hpd_gpio)
 		disable_irq(output->hpd_irq);
-
-	if (output->panel)
-		drm_panel_detach(output->panel);
 }
 
 void tegra_output_find_possible_crtcs(struct tegra_output *output,
diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
index 6193cb555acc..9b374f88fb76 100644
--- a/include/drm/drm_panel.h
+++ b/include/drm/drm_panel.h
@@ -178,9 +178,6 @@ void drm_panel_init(struct drm_panel *panel, struct device *dev,
 int drm_panel_add(struct drm_panel *panel);
 void drm_panel_remove(struct drm_panel *panel);
 
-int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector);
-void drm_panel_detach(struct drm_panel *panel);
-
 int drm_panel_prepare(struct drm_panel *panel);
 int drm_panel_unprepare(struct drm_panel *panel);
 


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH V2] drm: Remove unnecessary drm_panel_attach and drm_panel_detach
@ 2020-08-02 16:43         ` Joe Perches
  0 siblings, 0 replies; 18+ messages in thread
From: Joe Perches @ 2020-08-02 16:43 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: dri-devel, opensource.kernel, Laurent Pinchart, Stefan Mavrodiev,
	David Airlie, Bernard Zhao, Jerry Han, linux-kernel,
	Thierry Reding, Jagan Teki, Thomas Zimmermann, Robert Chiras,
	Icenowy Zheng

These functions are now empty and no longer
useful so remove the functions and their uses.

Signed-off-by: Joe Perches <joe@perches.com>
---

> > It's too tedious to break apart into multiple patches.
> > Done with coccinelle and typing.
> > 
> > Compiled allyesconfig x86-64 only.

V2: Removed 3 additional lines

drivers/gpu/drm/omapdrm/omap_drv.c:390:27: warning: unused variable ‘priv’ [-Wunused-variable]
drivers/gpu/drm/exynos/exynos_drm_dpi.c:45:21: warning: unused variable ‘ctx’ [-Wunused-variable]
drivers/gpu/drm/sun4i/sun4i_lvds.c:57:21: warning: unused variable ‘lvds’ [-Wunused-variable]

 drivers/gpu/drm/bridge/analogix/analogix-anx6345.c | 12 --------
 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  9 ------
 drivers/gpu/drm/bridge/nxp-ptn3460.c               |  3 --
 drivers/gpu/drm/bridge/panel.c                     |  7 -----
 drivers/gpu/drm/bridge/parade-ps8622.c             |  3 --
 drivers/gpu/drm/bridge/tc358764.c                  |  2 --
 drivers/gpu/drm/bridge/tc358767.c                  |  3 --
 drivers/gpu/drm/bridge/ti-sn65dsi86.c              |  3 --
 drivers/gpu/drm/drm_panel.c                        | 36 ----------------------
 drivers/gpu/drm/exynos/exynos_drm_dpi.c            |  8 -----
 drivers/gpu/drm/exynos/exynos_drm_dsi.c            |  7 ++---
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c          |  7 -----
 drivers/gpu/drm/imx/imx-ldb.c                      | 10 ------
 drivers/gpu/drm/imx/parallel-display.c             |  6 ----
 .../gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c    |  7 +----
 drivers/gpu/drm/msm/dsi/dsi_manager.c              |  1 -
 drivers/gpu/drm/mxsfb/mxsfb_drv.c                  |  7 +----
 drivers/gpu/drm/mxsfb/mxsfb_out.c                  |  6 ----
 drivers/gpu/drm/omapdrm/omap_drv.c                 | 17 ----------
 drivers/gpu/drm/rcar-du/rcar_lvds.c                |  6 +---
 drivers/gpu/drm/rockchip/rockchip_lvds.c           |  9 ------
 drivers/gpu/drm/sti/sti_dvo.c                      |  2 --
 drivers/gpu/drm/sun4i/sun4i_lvds.c                 |  9 ------
 drivers/gpu/drm/sun4i/sun4i_rgb.c                  |  7 -----
 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c             |  2 --
 drivers/gpu/drm/tegra/dsi.c                        |  4 +--
 drivers/gpu/drm/tegra/output.c                     | 10 ------
 include/drm/drm_panel.h                            |  3 --
 28 files changed, 6 insertions(+), 200 deletions(-)

diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
index f082b4ed4878..d9164fab044d 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
@@ -507,10 +507,6 @@ static const struct drm_connector_helper_funcs anx6345_connector_helper_funcs =
 static void
 anx6345_connector_destroy(struct drm_connector *connector)
 {
-	struct anx6345 *anx6345 = connector_to_anx6345(connector);
-
-	if (anx6345->panel)
-		drm_panel_detach(anx6345->panel);
 	drm_connector_cleanup(connector);
 }
 
@@ -575,14 +571,6 @@ static int anx6345_bridge_attach(struct drm_bridge *bridge,
 		return err;
 	}
 
-	if (anx6345->panel) {
-		err = drm_panel_attach(anx6345->panel, &anx6345->connector);
-		if (err) {
-			DRM_ERROR("Failed to attach panel: %d\n", err);
-			return err;
-		}
-	}
-
 	return 0;
 }
 
diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
index 76736fb8ed94..aa1bb86293fd 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
@@ -1265,14 +1265,6 @@ static int analogix_dp_bridge_attach(struct drm_bridge *bridge,
 		}
 	}
 
-	if (dp->plat_data->panel) {
-		ret = drm_panel_attach(dp->plat_data->panel, &dp->connector);
-		if (ret) {
-			DRM_ERROR("Failed to attach panel\n");
-			return ret;
-		}
-	}
-
 	return 0;
 }
 
@@ -1803,7 +1795,6 @@ void analogix_dp_unbind(struct analogix_dp_device *dp)
 	if (dp->plat_data->panel) {
 		if (drm_panel_unprepare(dp->plat_data->panel))
 			DRM_ERROR("failed to turnoff the panel\n");
-		drm_panel_detach(dp->plat_data->panel);
 	}
 
 	drm_dp_aux_unregister(&dp->aux);
diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c
index 438e566ce0a4..d433902d97e5 100644
--- a/drivers/gpu/drm/bridge/nxp-ptn3460.c
+++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c
@@ -265,9 +265,6 @@ static int ptn3460_bridge_attach(struct drm_bridge *bridge,
 	drm_connector_attach_encoder(&ptn_bridge->connector,
 							bridge->encoder);
 
-	if (ptn_bridge->panel)
-		drm_panel_attach(ptn_bridge->panel, &ptn_bridge->connector);
-
 	drm_helper_hpd_irq_event(ptn_bridge->connector.dev);
 
 	return ret;
diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c
index 1e63ed6b18aa..0ddc37551194 100644
--- a/drivers/gpu/drm/bridge/panel.c
+++ b/drivers/gpu/drm/bridge/panel.c
@@ -82,18 +82,11 @@ static int panel_bridge_attach(struct drm_bridge *bridge,
 	drm_connector_attach_encoder(&panel_bridge->connector,
 					  bridge->encoder);
 
-	ret = drm_panel_attach(panel_bridge->panel, &panel_bridge->connector);
-	if (ret < 0)
-		return ret;
-
 	return 0;
 }
 
 static void panel_bridge_detach(struct drm_bridge *bridge)
 {
-	struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
-
-	drm_panel_detach(panel_bridge->panel);
 }
 
 static void panel_bridge_pre_enable(struct drm_bridge *bridge)
diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c
index d789ea2a7fb9..c13ec77d858b 100644
--- a/drivers/gpu/drm/bridge/parade-ps8622.c
+++ b/drivers/gpu/drm/bridge/parade-ps8622.c
@@ -505,9 +505,6 @@ static int ps8622_attach(struct drm_bridge *bridge,
 	drm_connector_attach_encoder(&ps8622->connector,
 							bridge->encoder);
 
-	if (ps8622->panel)
-		drm_panel_attach(ps8622->panel, &ps8622->connector);
-
 	drm_helper_hpd_irq_event(ps8622->connector.dev);
 
 	return ret;
diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c
index 5ac1430fab04..c1e35bdf9232 100644
--- a/drivers/gpu/drm/bridge/tc358764.c
+++ b/drivers/gpu/drm/bridge/tc358764.c
@@ -373,7 +373,6 @@ static int tc358764_attach(struct drm_bridge *bridge,
 	drm_connector_helper_add(&ctx->connector,
 				 &tc358764_connector_helper_funcs);
 	drm_connector_attach_encoder(&ctx->connector, bridge->encoder);
-	drm_panel_attach(ctx->panel, &ctx->connector);
 	ctx->connector.funcs->reset(&ctx->connector);
 	drm_connector_register(&ctx->connector);
 
@@ -385,7 +384,6 @@ static void tc358764_detach(struct drm_bridge *bridge)
 	struct tc358764 *ctx = bridge_to_tc358764(bridge);
 
 	drm_connector_unregister(&ctx->connector);
-	drm_panel_detach(ctx->panel);
 	ctx->panel = NULL;
 	drm_connector_put(&ctx->connector);
 }
diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
index c2777b226c75..0746462ba0f6 100644
--- a/drivers/gpu/drm/bridge/tc358767.c
+++ b/drivers/gpu/drm/bridge/tc358767.c
@@ -1435,9 +1435,6 @@ static int tc_bridge_attach(struct drm_bridge *bridge,
 					       DRM_CONNECTOR_POLL_DISCONNECT;
 	}
 
-	if (tc->panel)
-		drm_panel_attach(tc->panel, &tc->connector);
-
 	drm_display_info_set_bus_formats(&tc->connector.display_info,
 					 &bus_format, 1);
 	tc->connector.display_info.bus_flags =
diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
index 86b9f0f87a14..454544e0da7d 100644
--- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
+++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
@@ -394,9 +394,6 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge,
 	}
 	pdata->dsi = dsi;
 
-	/* attach panel to bridge */
-	drm_panel_attach(pdata->panel, &pdata->connector);
-
 	return 0;
 
 err_dsi_attach:
diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
index 8c7bac85a793..7804b9947fe8 100644
--- a/drivers/gpu/drm/drm_panel.c
+++ b/drivers/gpu/drm/drm_panel.c
@@ -97,42 +97,6 @@ void drm_panel_remove(struct drm_panel *panel)
 }
 EXPORT_SYMBOL(drm_panel_remove);
 
-/**
- * drm_panel_attach - attach a panel to a connector
- * @panel: DRM panel
- * @connector: DRM connector
- *
- * After obtaining a pointer to a DRM panel a display driver calls this
- * function to attach a panel to a connector.
- *
- * An error is returned if the panel is already attached to another connector.
- *
- * When unloading, the driver should detach from the panel by calling
- * drm_panel_detach().
- *
- * Return: 0 on success or a negative error code on failure.
- */
-int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector)
-{
-	return 0;
-}
-EXPORT_SYMBOL(drm_panel_attach);
-
-/**
- * drm_panel_detach - detach a panel from a connector
- * @panel: DRM panel
- *
- * Detaches a panel from the connector it is attached to. If a panel is not
- * attached to any connector this is effectively a no-op.
- *
- * This function should not be called by the panel device itself. It
- * is only for the drm device that called drm_panel_attach().
- */
-void drm_panel_detach(struct drm_panel *panel)
-{
-}
-EXPORT_SYMBOL(drm_panel_detach);
-
 /**
  * drm_panel_prepare - power on a panel
  * @panel: DRM panel
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
index 7ba5354e7d94..741323a2e6c3 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
@@ -42,11 +42,6 @@ static inline struct exynos_dpi *encoder_to_dpi(struct drm_encoder *e)
 static enum drm_connector_status
 exynos_dpi_detect(struct drm_connector *connector, bool force)
 {
-	struct exynos_dpi *ctx = connector_to_dpi(connector);
-
-	if (ctx->panel)
-		drm_panel_attach(ctx->panel, &ctx->connector);
-
 	return connector_status_connected;
 }
 
@@ -249,8 +244,5 @@ int exynos_dpi_remove(struct drm_encoder *encoder)
 
 	exynos_dpi_disable(&ctx->encoder);
 
-	if (ctx->panel)
-		drm_panel_detach(ctx->panel);
-
 	return 0;
 }
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
index 7a6f6df5e954..843dfcefc46a 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
@@ -1551,12 +1551,10 @@ static int exynos_dsi_host_attach(struct mipi_dsi_host *host,
 		}
 
 		dsi->panel = of_drm_find_panel(device->dev.of_node);
-		if (IS_ERR(dsi->panel)) {
+		if (IS_ERR(dsi->panel))
 			dsi->panel = NULL;
-		} else {
-			drm_panel_attach(dsi->panel, &dsi->connector);
+		else
 			dsi->connector.status = connector_status_connected;
-		}
 	}
 
 	/*
@@ -1596,7 +1594,6 @@ static int exynos_dsi_host_detach(struct mipi_dsi_host *host,
 	if (dsi->panel) {
 		mutex_lock(&drm->mode_config.mutex);
 		exynos_dsi_disable(&dsi->encoder);
-		drm_panel_detach(dsi->panel);
 		dsi->panel = NULL;
 		dsi->connector.status = connector_status_disconnected;
 		mutex_unlock(&drm->mode_config.mutex);
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
index 9b0c4736c21a..0a7071827533 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
@@ -43,7 +43,6 @@ static void fsl_dcu_drm_connector_destroy(struct drm_connector *connector)
 	struct fsl_dcu_drm_connector *fsl_con = to_fsl_dcu_connector(connector);
 
 	drm_connector_unregister(connector);
-	drm_panel_detach(fsl_con->panel);
 	drm_connector_cleanup(connector);
 }
 
@@ -101,12 +100,6 @@ static int fsl_dcu_attach_panel(struct fsl_dcu_drm_device *fsl_dev,
 	if (ret < 0)
 		goto err_sysfs;
 
-	ret = drm_panel_attach(panel, connector);
-	if (ret) {
-		dev_err(fsl_dev->dev, "failed to attach panel\n");
-		goto err_sysfs;
-	}
-
 	return 0;
 
 err_sysfs:
diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
index 8791d60be92e..af757d1e21fe 100644
--- a/drivers/gpu/drm/imx/imx-ldb.c
+++ b/drivers/gpu/drm/imx/imx-ldb.c
@@ -455,13 +455,6 @@ static int imx_ldb_register(struct drm_device *drm,
 		drm_connector_attach_encoder(&imx_ldb_ch->connector, encoder);
 	}
 
-	if (imx_ldb_ch->panel) {
-		ret = drm_panel_attach(imx_ldb_ch->panel,
-				       &imx_ldb_ch->connector);
-		if (ret)
-			return ret;
-	}
-
 	return 0;
 }
 
@@ -702,9 +695,6 @@ static void imx_ldb_unbind(struct device *dev, struct device *master,
 	for (i = 0; i < 2; i++) {
 		struct imx_ldb_channel *channel = &imx_ldb->channel[i];
 
-		if (channel->panel)
-			drm_panel_detach(channel->panel);
-
 		kfree(channel->edid);
 		i2c_put_adapter(channel->ddc);
 	}
diff --git a/drivers/gpu/drm/imx/parallel-display.c b/drivers/gpu/drm/imx/parallel-display.c
index a831b5bd1613..8232f512b9ed 100644
--- a/drivers/gpu/drm/imx/parallel-display.c
+++ b/drivers/gpu/drm/imx/parallel-display.c
@@ -289,9 +289,6 @@ static int imx_pd_register(struct drm_device *drm,
 				   DRM_MODE_CONNECTOR_DPI);
 	}
 
-	if (imxpd->panel)
-		drm_panel_attach(imxpd->panel, &imxpd->connector);
-
 	if (imxpd->next_bridge) {
 		ret = drm_bridge_attach(encoder, imxpd->next_bridge,
 					&imxpd->bridge, 0);
@@ -357,9 +354,6 @@ static void imx_pd_unbind(struct device *dev, struct device *master,
 {
 	struct imx_parallel_display *imxpd = dev_get_drvdata(dev);
 
-	if (imxpd->panel)
-		drm_panel_detach(imxpd->panel);
-
 	kfree(imxpd->edid);
 }
 
diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
index c7df71e2fafc..7288041dd86a 100644
--- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
+++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
@@ -50,14 +50,9 @@ static int mdp4_lvds_connector_get_modes(struct drm_connector *connector)
 	struct drm_panel *panel = mdp4_lvds_connector->panel;
 	int ret = 0;
 
-	if (panel) {
-		drm_panel_attach(panel, connector);
-
+	if (panel)
 		ret = drm_panel_get_modes(panel, connector);
 
-		drm_panel_detach(panel);
-	}
-
 	return ret;
 }
 
diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
index 4b363bd7ddff..1d28dfba2c9b 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
@@ -328,7 +328,6 @@ static int dsi_mgr_connector_get_modes(struct drm_connector *connector)
 	 * In dual DSI mode, we have one connector that can be
 	 * attached to the drm_panel.
 	 */
-	drm_panel_attach(panel, connector);
 	num = drm_panel_get_modes(panel, connector);
 	if (!num)
 		return 0;
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
index 508764fccd27..51da0e3de587 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -265,11 +265,7 @@ static int mxsfb_load(struct drm_device *drm)
 	 */
 
 	if (mxsfb->panel) {
-		ret = drm_panel_attach(mxsfb->panel, mxsfb->connector);
-		if (ret) {
-			dev_err(drm->dev, "Cannot connect panel: %d\n", ret);
-			goto err_vblank;
-		}
+		;
 	} else if (mxsfb->bridge) {
 		ret = drm_simple_display_pipe_attach_bridge(&mxsfb->pipe,
 							    mxsfb->bridge);
@@ -306,7 +302,6 @@ static int mxsfb_load(struct drm_device *drm)
 	return 0;
 
 err_irq:
-	drm_panel_detach(mxsfb->panel);
 err_vblank:
 	pm_runtime_disable(drm->dev);
 
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c b/drivers/gpu/drm/mxsfb/mxsfb_out.c
index 9eca1605d11d..f93e7a4d4c15 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_out.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c
@@ -55,12 +55,6 @@ mxsfb_panel_connector_detect(struct drm_connector *connector, bool force)
 
 static void mxsfb_panel_connector_destroy(struct drm_connector *connector)
 {
-	struct mxsfb_drm_private *mxsfb =
-			drm_connector_to_mxsfb_drm_private(connector);
-
-	if (mxsfb->panel)
-		drm_panel_detach(mxsfb->panel);
-
 	drm_connector_unregister(connector);
 	drm_connector_cleanup(connector);
 }
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
index 4526967978b7..53d5e184ee77 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -349,13 +349,6 @@ static int omap_modeset_init(struct drm_device *dev)
 
 		drm_connector_attach_encoder(pipe->connector, encoder);
 
-		if (pipe->output->panel) {
-			ret = drm_panel_attach(pipe->output->panel,
-					       pipe->connector);
-			if (ret < 0)
-				return ret;
-		}
-
 		crtc = omap_crtc_init(dev, pipe, priv->planes[i]);
 		if (IS_ERR(crtc))
 			return PTR_ERR(crtc);
@@ -394,18 +387,8 @@ static int omap_modeset_init(struct drm_device *dev)
 
 static void omap_modeset_fini(struct drm_device *ddev)
 {
-	struct omap_drm_private *priv = ddev->dev_private;
-	unsigned int i;
-
 	omap_drm_irq_uninstall(ddev);
 
-	for (i = 0; i < priv->num_pipes; i++) {
-		struct omap_drm_pipeline *pipe = &priv->pipes[i];
-
-		if (pipe->output->panel)
-			drm_panel_detach(pipe->output->panel);
-	}
-
 	drm_mode_config_cleanup(ddev);
 }
 
diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/rcar-du/rcar_lvds.c
index ab0d49618cf9..bced729a96fe 100644
--- a/drivers/gpu/drm/rcar-du/rcar_lvds.c
+++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c
@@ -677,15 +677,11 @@ static int rcar_lvds_attach(struct drm_bridge *bridge,
 	if (ret < 0)
 		return ret;
 
-	return drm_panel_attach(lvds->panel, connector);
+	return 0;
 }
 
 static void rcar_lvds_detach(struct drm_bridge *bridge)
 {
-	struct rcar_lvds *lvds = bridge_to_rcar_lvds(bridge);
-
-	if (lvds->panel)
-		drm_panel_detach(lvds->panel);
 }
 
 static const struct drm_bridge_funcs rcar_lvds_bridge_ops = {
diff --git a/drivers/gpu/drm/rockchip/rockchip_lvds.c b/drivers/gpu/drm/rockchip/rockchip_lvds.c
index 63f967902c2d..f292c6a6e20f 100644
--- a/drivers/gpu/drm/rockchip/rockchip_lvds.c
+++ b/drivers/gpu/drm/rockchip/rockchip_lvds.c
@@ -634,13 +634,6 @@ static int rockchip_lvds_bind(struct device *dev, struct device *master,
 				      "failed to attach encoder: %d\n", ret);
 			goto err_free_connector;
 		}
-
-		ret = drm_panel_attach(lvds->panel, connector);
-		if (ret < 0) {
-			DRM_DEV_ERROR(drm_dev->dev,
-				      "failed to attach panel: %d\n", ret);
-			goto err_free_connector;
-		}
 	} else {
 		ret = drm_bridge_attach(encoder, lvds->bridge, NULL, 0);
 		if (ret) {
@@ -676,8 +669,6 @@ static void rockchip_lvds_unbind(struct device *dev, struct device *master,
 
 	encoder_funcs = lvds->soc_data->helper_funcs;
 	encoder_funcs->disable(&lvds->encoder);
-	if (lvds->panel)
-		drm_panel_detach(lvds->panel);
 	pm_runtime_disable(dev);
 	drm_connector_cleanup(&lvds->connector);
 	drm_encoder_cleanup(&lvds->encoder);
diff --git a/drivers/gpu/drm/sti/sti_dvo.c b/drivers/gpu/drm/sti/sti_dvo.c
index de4af7735c46..ddb4184f0726 100644
--- a/drivers/gpu/drm/sti/sti_dvo.c
+++ b/drivers/gpu/drm/sti/sti_dvo.c
@@ -389,8 +389,6 @@ sti_dvo_connector_detect(struct drm_connector *connector, bool force)
 		dvo->panel = of_drm_find_panel(dvo->panel_node);
 		if (IS_ERR(dvo->panel))
 			dvo->panel = NULL;
-		else
-			drm_panel_attach(dvo->panel, connector);
 	}
 
 	if (dvo->panel)
diff --git a/drivers/gpu/drm/sun4i/sun4i_lvds.c b/drivers/gpu/drm/sun4i/sun4i_lvds.c
index ffda3184aa12..d06dd313d3c0 100644
--- a/drivers/gpu/drm/sun4i/sun4i_lvds.c
+++ b/drivers/gpu/drm/sun4i/sun4i_lvds.c
@@ -54,9 +54,6 @@ static struct drm_connector_helper_funcs sun4i_lvds_con_helper_funcs = {
 static void
 sun4i_lvds_connector_destroy(struct drm_connector *connector)
 {
-	struct sun4i_lvds *lvds = drm_connector_to_sun4i_lvds(connector);
-
-	drm_panel_detach(lvds->panel);
 	drm_connector_cleanup(connector);
 }
 
@@ -141,12 +138,6 @@ int sun4i_lvds_init(struct drm_device *drm, struct sun4i_tcon *tcon)
 
 		drm_connector_attach_encoder(&lvds->connector,
 						  &lvds->encoder);
-
-		ret = drm_panel_attach(lvds->panel, &lvds->connector);
-		if (ret) {
-			dev_err(drm->dev, "Couldn't attach our panel\n");
-			goto err_cleanup_connector;
-		}
 	}
 
 	if (bridge) {
diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c b/drivers/gpu/drm/sun4i/sun4i_rgb.c
index 5a7d43939ae6..e08afdffef50 100644
--- a/drivers/gpu/drm/sun4i/sun4i_rgb.c
+++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c
@@ -147,7 +147,6 @@ sun4i_rgb_connector_destroy(struct drm_connector *connector)
 {
 	struct sun4i_rgb *rgb = drm_connector_to_sun4i_rgb(connector);
 
-	drm_panel_detach(rgb->panel);
 	drm_connector_cleanup(connector);
 }
 
@@ -233,12 +232,6 @@ int sun4i_rgb_init(struct drm_device *drm, struct sun4i_tcon *tcon)
 
 		drm_connector_attach_encoder(&rgb->connector,
 						  &rgb->encoder);
-
-		ret = drm_panel_attach(rgb->panel, &rgb->connector);
-		if (ret) {
-			dev_err(drm->dev, "Couldn't attach our panel\n");
-			goto err_cleanup_connector;
-		}
 	}
 
 	if (rgb->bridge) {
diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
index aa67cb037e9d..128471b65f64 100644
--- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
+++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
@@ -973,7 +973,6 @@ static int sun6i_dsi_attach(struct mipi_dsi_host *host,
 	dsi->panel = panel;
 	dsi->device = device;
 
-	drm_panel_attach(dsi->panel, &dsi->connector);
 	drm_kms_helper_hotplug_event(dsi->drm);
 
 	dev_info(host->dev, "Attached device %s\n", device->name);
@@ -990,7 +989,6 @@ static int sun6i_dsi_detach(struct mipi_dsi_host *host,
 	dsi->panel = NULL;
 	dsi->device = NULL;
 
-	drm_panel_detach(panel);
 	drm_kms_helper_hotplug_event(dsi->drm);
 
 	return 0;
diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
index 3820e8dff14b..3387de79718b 100644
--- a/drivers/gpu/drm/tegra/dsi.c
+++ b/drivers/gpu/drm/tegra/dsi.c
@@ -1498,10 +1498,8 @@ static int tegra_dsi_host_attach(struct mipi_dsi_host *host,
 		if (IS_ERR(output->panel))
 			output->panel = NULL;
 
-		if (output->panel && output->connector.dev) {
-			drm_panel_attach(output->panel, &output->connector);
+		if (output->panel && output->connector.dev)
 			drm_helper_hpd_irq_event(output->connector.dev);
-		}
 	}
 
 	return 0;
diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c
index e36e5e7c2f69..a3adb9e4debf 100644
--- a/drivers/gpu/drm/tegra/output.c
+++ b/drivers/gpu/drm/tegra/output.c
@@ -179,13 +179,6 @@ void tegra_output_remove(struct tegra_output *output)
 int tegra_output_init(struct drm_device *drm, struct tegra_output *output)
 {
 	int connector_type;
-	int err;
-
-	if (output->panel) {
-		err = drm_panel_attach(output->panel, &output->connector);
-		if (err < 0)
-			return err;
-	}
 
 	/*
 	 * The connector is now registered and ready to receive hotplug events
@@ -220,9 +213,6 @@ void tegra_output_exit(struct tegra_output *output)
 	 */
 	if (output->hpd_gpio)
 		disable_irq(output->hpd_irq);
-
-	if (output->panel)
-		drm_panel_detach(output->panel);
 }
 
 void tegra_output_find_possible_crtcs(struct tegra_output *output,
diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
index 6193cb555acc..9b374f88fb76 100644
--- a/include/drm/drm_panel.h
+++ b/include/drm/drm_panel.h
@@ -178,9 +178,6 @@ void drm_panel_init(struct drm_panel *panel, struct device *dev,
 int drm_panel_add(struct drm_panel *panel);
 void drm_panel_remove(struct drm_panel *panel);
 
-int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector);
-void drm_panel_detach(struct drm_panel *panel);
-
 int drm_panel_prepare(struct drm_panel *panel);
 int drm_panel_unprepare(struct drm_panel *panel);
 

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [PATCH V2] drm: Remove unnecessary drm_panel_attach and drm_panel_detach
  2020-08-02 16:43         ` Joe Perches
@ 2020-08-02 17:34           ` Sam Ravnborg
  -1 siblings, 0 replies; 18+ messages in thread
From: Sam Ravnborg @ 2020-08-02 17:34 UTC (permalink / raw)
  To: Joe Perches
  Cc: Bernard Zhao, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Thierry Reding, David Airlie, Daniel Vetter,
	Linus Walleij, Jerry Han, Icenowy Zheng, Jagan Teki,
	Laurent Pinchart, Stefan Mavrodiev, Robert Chiras, dri-devel,
	linux-kernel, opensource.kernel

Hi Joe.

On Sun, Aug 02, 2020 at 09:43:59AM -0700, Joe Perches wrote:
> These functions are now empty and no longer
> useful so remove the functions and their uses.
> 
> Signed-off-by: Joe Perches <joe@perches.com>
> ---
> 
> > > It's too tedious to break apart into multiple patches.
> > > Done with coccinelle and typing.
> > > 
> > > Compiled allyesconfig x86-64 only.
> 
> V2: Removed 3 additional lines
> 
> drivers/gpu/drm/omapdrm/omap_drv.c:390:27: warning: unused variable ‘priv’ [-Wunused-variable]
> drivers/gpu/drm/exynos/exynos_drm_dpi.c:45:21: warning: unused variable ‘ctx’ [-Wunused-variable]
> drivers/gpu/drm/sun4i/sun4i_lvds.c:57:21: warning: unused variable ‘lvds’ [-Wunused-variable]

Thanks, better now.

I had to fix a few warnings and a build error to get it going on
drm-misc-next. I will keep it locally just to let anyone speak up.
I you do not see any mail from me until friday that it is applied please
ping me.

	Sam

> 
>  drivers/gpu/drm/bridge/analogix/analogix-anx6345.c | 12 --------
>  drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  9 ------
>  drivers/gpu/drm/bridge/nxp-ptn3460.c               |  3 --
>  drivers/gpu/drm/bridge/panel.c                     |  7 -----
>  drivers/gpu/drm/bridge/parade-ps8622.c             |  3 --
>  drivers/gpu/drm/bridge/tc358764.c                  |  2 --
>  drivers/gpu/drm/bridge/tc358767.c                  |  3 --
>  drivers/gpu/drm/bridge/ti-sn65dsi86.c              |  3 --
>  drivers/gpu/drm/drm_panel.c                        | 36 ----------------------
>  drivers/gpu/drm/exynos/exynos_drm_dpi.c            |  8 -----
>  drivers/gpu/drm/exynos/exynos_drm_dsi.c            |  7 ++---
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c          |  7 -----
>  drivers/gpu/drm/imx/imx-ldb.c                      | 10 ------
>  drivers/gpu/drm/imx/parallel-display.c             |  6 ----
>  .../gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c    |  7 +----
>  drivers/gpu/drm/msm/dsi/dsi_manager.c              |  1 -
>  drivers/gpu/drm/mxsfb/mxsfb_drv.c                  |  7 +----
>  drivers/gpu/drm/mxsfb/mxsfb_out.c                  |  6 ----
>  drivers/gpu/drm/omapdrm/omap_drv.c                 | 17 ----------
>  drivers/gpu/drm/rcar-du/rcar_lvds.c                |  6 +---
>  drivers/gpu/drm/rockchip/rockchip_lvds.c           |  9 ------
>  drivers/gpu/drm/sti/sti_dvo.c                      |  2 --
>  drivers/gpu/drm/sun4i/sun4i_lvds.c                 |  9 ------
>  drivers/gpu/drm/sun4i/sun4i_rgb.c                  |  7 -----
>  drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c             |  2 --
>  drivers/gpu/drm/tegra/dsi.c                        |  4 +--
>  drivers/gpu/drm/tegra/output.c                     | 10 ------
>  include/drm/drm_panel.h                            |  3 --
>  28 files changed, 6 insertions(+), 200 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
> index f082b4ed4878..d9164fab044d 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
> @@ -507,10 +507,6 @@ static const struct drm_connector_helper_funcs anx6345_connector_helper_funcs =
>  static void
>  anx6345_connector_destroy(struct drm_connector *connector)
>  {
> -	struct anx6345 *anx6345 = connector_to_anx6345(connector);
> -
> -	if (anx6345->panel)
> -		drm_panel_detach(anx6345->panel);
>  	drm_connector_cleanup(connector);
>  }
>  
> @@ -575,14 +571,6 @@ static int anx6345_bridge_attach(struct drm_bridge *bridge,
>  		return err;
>  	}
>  
> -	if (anx6345->panel) {
> -		err = drm_panel_attach(anx6345->panel, &anx6345->connector);
> -		if (err) {
> -			DRM_ERROR("Failed to attach panel: %d\n", err);
> -			return err;
> -		}
> -	}
> -
>  	return 0;
>  }
>  
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> index 76736fb8ed94..aa1bb86293fd 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> @@ -1265,14 +1265,6 @@ static int analogix_dp_bridge_attach(struct drm_bridge *bridge,
>  		}
>  	}
>  
> -	if (dp->plat_data->panel) {
> -		ret = drm_panel_attach(dp->plat_data->panel, &dp->connector);
> -		if (ret) {
> -			DRM_ERROR("Failed to attach panel\n");
> -			return ret;
> -		}
> -	}
> -
>  	return 0;
>  }
>  
> @@ -1803,7 +1795,6 @@ void analogix_dp_unbind(struct analogix_dp_device *dp)
>  	if (dp->plat_data->panel) {
>  		if (drm_panel_unprepare(dp->plat_data->panel))
>  			DRM_ERROR("failed to turnoff the panel\n");
> -		drm_panel_detach(dp->plat_data->panel);
>  	}
>  
>  	drm_dp_aux_unregister(&dp->aux);
> diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c
> index 438e566ce0a4..d433902d97e5 100644
> --- a/drivers/gpu/drm/bridge/nxp-ptn3460.c
> +++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c
> @@ -265,9 +265,6 @@ static int ptn3460_bridge_attach(struct drm_bridge *bridge,
>  	drm_connector_attach_encoder(&ptn_bridge->connector,
>  							bridge->encoder);
>  
> -	if (ptn_bridge->panel)
> -		drm_panel_attach(ptn_bridge->panel, &ptn_bridge->connector);
> -
>  	drm_helper_hpd_irq_event(ptn_bridge->connector.dev);
>  
>  	return ret;
> diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c
> index 1e63ed6b18aa..0ddc37551194 100644
> --- a/drivers/gpu/drm/bridge/panel.c
> +++ b/drivers/gpu/drm/bridge/panel.c
> @@ -82,18 +82,11 @@ static int panel_bridge_attach(struct drm_bridge *bridge,
>  	drm_connector_attach_encoder(&panel_bridge->connector,
>  					  bridge->encoder);
>  
> -	ret = drm_panel_attach(panel_bridge->panel, &panel_bridge->connector);
> -	if (ret < 0)
> -		return ret;
> -
>  	return 0;
>  }
>  
>  static void panel_bridge_detach(struct drm_bridge *bridge)
>  {
> -	struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
> -
> -	drm_panel_detach(panel_bridge->panel);
>  }
>  
>  static void panel_bridge_pre_enable(struct drm_bridge *bridge)
> diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c
> index d789ea2a7fb9..c13ec77d858b 100644
> --- a/drivers/gpu/drm/bridge/parade-ps8622.c
> +++ b/drivers/gpu/drm/bridge/parade-ps8622.c
> @@ -505,9 +505,6 @@ static int ps8622_attach(struct drm_bridge *bridge,
>  	drm_connector_attach_encoder(&ps8622->connector,
>  							bridge->encoder);
>  
> -	if (ps8622->panel)
> -		drm_panel_attach(ps8622->panel, &ps8622->connector);
> -
>  	drm_helper_hpd_irq_event(ps8622->connector.dev);
>  
>  	return ret;
> diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c
> index 5ac1430fab04..c1e35bdf9232 100644
> --- a/drivers/gpu/drm/bridge/tc358764.c
> +++ b/drivers/gpu/drm/bridge/tc358764.c
> @@ -373,7 +373,6 @@ static int tc358764_attach(struct drm_bridge *bridge,
>  	drm_connector_helper_add(&ctx->connector,
>  				 &tc358764_connector_helper_funcs);
>  	drm_connector_attach_encoder(&ctx->connector, bridge->encoder);
> -	drm_panel_attach(ctx->panel, &ctx->connector);
>  	ctx->connector.funcs->reset(&ctx->connector);
>  	drm_connector_register(&ctx->connector);
>  
> @@ -385,7 +384,6 @@ static void tc358764_detach(struct drm_bridge *bridge)
>  	struct tc358764 *ctx = bridge_to_tc358764(bridge);
>  
>  	drm_connector_unregister(&ctx->connector);
> -	drm_panel_detach(ctx->panel);
>  	ctx->panel = NULL;
>  	drm_connector_put(&ctx->connector);
>  }
> diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
> index c2777b226c75..0746462ba0f6 100644
> --- a/drivers/gpu/drm/bridge/tc358767.c
> +++ b/drivers/gpu/drm/bridge/tc358767.c
> @@ -1435,9 +1435,6 @@ static int tc_bridge_attach(struct drm_bridge *bridge,
>  					       DRM_CONNECTOR_POLL_DISCONNECT;
>  	}
>  
> -	if (tc->panel)
> -		drm_panel_attach(tc->panel, &tc->connector);
> -
>  	drm_display_info_set_bus_formats(&tc->connector.display_info,
>  					 &bus_format, 1);
>  	tc->connector.display_info.bus_flags =
> diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> index 86b9f0f87a14..454544e0da7d 100644
> --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> @@ -394,9 +394,6 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge,
>  	}
>  	pdata->dsi = dsi;
>  
> -	/* attach panel to bridge */
> -	drm_panel_attach(pdata->panel, &pdata->connector);
> -
>  	return 0;
>  
>  err_dsi_attach:
> diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
> index 8c7bac85a793..7804b9947fe8 100644
> --- a/drivers/gpu/drm/drm_panel.c
> +++ b/drivers/gpu/drm/drm_panel.c
> @@ -97,42 +97,6 @@ void drm_panel_remove(struct drm_panel *panel)
>  }
>  EXPORT_SYMBOL(drm_panel_remove);
>  
> -/**
> - * drm_panel_attach - attach a panel to a connector
> - * @panel: DRM panel
> - * @connector: DRM connector
> - *
> - * After obtaining a pointer to a DRM panel a display driver calls this
> - * function to attach a panel to a connector.
> - *
> - * An error is returned if the panel is already attached to another connector.
> - *
> - * When unloading, the driver should detach from the panel by calling
> - * drm_panel_detach().
> - *
> - * Return: 0 on success or a negative error code on failure.
> - */
> -int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector)
> -{
> -	return 0;
> -}
> -EXPORT_SYMBOL(drm_panel_attach);
> -
> -/**
> - * drm_panel_detach - detach a panel from a connector
> - * @panel: DRM panel
> - *
> - * Detaches a panel from the connector it is attached to. If a panel is not
> - * attached to any connector this is effectively a no-op.
> - *
> - * This function should not be called by the panel device itself. It
> - * is only for the drm device that called drm_panel_attach().
> - */
> -void drm_panel_detach(struct drm_panel *panel)
> -{
> -}
> -EXPORT_SYMBOL(drm_panel_detach);
> -
>  /**
>   * drm_panel_prepare - power on a panel
>   * @panel: DRM panel
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> index 7ba5354e7d94..741323a2e6c3 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> @@ -42,11 +42,6 @@ static inline struct exynos_dpi *encoder_to_dpi(struct drm_encoder *e)
>  static enum drm_connector_status
>  exynos_dpi_detect(struct drm_connector *connector, bool force)
>  {
> -	struct exynos_dpi *ctx = connector_to_dpi(connector);
> -
> -	if (ctx->panel)
> -		drm_panel_attach(ctx->panel, &ctx->connector);
> -
>  	return connector_status_connected;
>  }
>  
> @@ -249,8 +244,5 @@ int exynos_dpi_remove(struct drm_encoder *encoder)
>  
>  	exynos_dpi_disable(&ctx->encoder);
>  
> -	if (ctx->panel)
> -		drm_panel_detach(ctx->panel);
> -
>  	return 0;
>  }
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> index 7a6f6df5e954..843dfcefc46a 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> @@ -1551,12 +1551,10 @@ static int exynos_dsi_host_attach(struct mipi_dsi_host *host,
>  		}
>  
>  		dsi->panel = of_drm_find_panel(device->dev.of_node);
> -		if (IS_ERR(dsi->panel)) {
> +		if (IS_ERR(dsi->panel))
>  			dsi->panel = NULL;
> -		} else {
> -			drm_panel_attach(dsi->panel, &dsi->connector);
> +		else
>  			dsi->connector.status = connector_status_connected;
> -		}
>  	}
>  
>  	/*
> @@ -1596,7 +1594,6 @@ static int exynos_dsi_host_detach(struct mipi_dsi_host *host,
>  	if (dsi->panel) {
>  		mutex_lock(&drm->mode_config.mutex);
>  		exynos_dsi_disable(&dsi->encoder);
> -		drm_panel_detach(dsi->panel);
>  		dsi->panel = NULL;
>  		dsi->connector.status = connector_status_disconnected;
>  		mutex_unlock(&drm->mode_config.mutex);
> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> index 9b0c4736c21a..0a7071827533 100644
> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> @@ -43,7 +43,6 @@ static void fsl_dcu_drm_connector_destroy(struct drm_connector *connector)
>  	struct fsl_dcu_drm_connector *fsl_con = to_fsl_dcu_connector(connector);
>  
>  	drm_connector_unregister(connector);
> -	drm_panel_detach(fsl_con->panel);
>  	drm_connector_cleanup(connector);
>  }
>  
> @@ -101,12 +100,6 @@ static int fsl_dcu_attach_panel(struct fsl_dcu_drm_device *fsl_dev,
>  	if (ret < 0)
>  		goto err_sysfs;
>  
> -	ret = drm_panel_attach(panel, connector);
> -	if (ret) {
> -		dev_err(fsl_dev->dev, "failed to attach panel\n");
> -		goto err_sysfs;
> -	}
> -
>  	return 0;
>  
>  err_sysfs:
> diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
> index 8791d60be92e..af757d1e21fe 100644
> --- a/drivers/gpu/drm/imx/imx-ldb.c
> +++ b/drivers/gpu/drm/imx/imx-ldb.c
> @@ -455,13 +455,6 @@ static int imx_ldb_register(struct drm_device *drm,
>  		drm_connector_attach_encoder(&imx_ldb_ch->connector, encoder);
>  	}
>  
> -	if (imx_ldb_ch->panel) {
> -		ret = drm_panel_attach(imx_ldb_ch->panel,
> -				       &imx_ldb_ch->connector);
> -		if (ret)
> -			return ret;
> -	}
> -
>  	return 0;
>  }
>  
> @@ -702,9 +695,6 @@ static void imx_ldb_unbind(struct device *dev, struct device *master,
>  	for (i = 0; i < 2; i++) {
>  		struct imx_ldb_channel *channel = &imx_ldb->channel[i];
>  
> -		if (channel->panel)
> -			drm_panel_detach(channel->panel);
> -
>  		kfree(channel->edid);
>  		i2c_put_adapter(channel->ddc);
>  	}
> diff --git a/drivers/gpu/drm/imx/parallel-display.c b/drivers/gpu/drm/imx/parallel-display.c
> index a831b5bd1613..8232f512b9ed 100644
> --- a/drivers/gpu/drm/imx/parallel-display.c
> +++ b/drivers/gpu/drm/imx/parallel-display.c
> @@ -289,9 +289,6 @@ static int imx_pd_register(struct drm_device *drm,
>  				   DRM_MODE_CONNECTOR_DPI);
>  	}
>  
> -	if (imxpd->panel)
> -		drm_panel_attach(imxpd->panel, &imxpd->connector);
> -
>  	if (imxpd->next_bridge) {
>  		ret = drm_bridge_attach(encoder, imxpd->next_bridge,
>  					&imxpd->bridge, 0);
> @@ -357,9 +354,6 @@ static void imx_pd_unbind(struct device *dev, struct device *master,
>  {
>  	struct imx_parallel_display *imxpd = dev_get_drvdata(dev);
>  
> -	if (imxpd->panel)
> -		drm_panel_detach(imxpd->panel);
> -
>  	kfree(imxpd->edid);
>  }
>  
> diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
> index c7df71e2fafc..7288041dd86a 100644
> --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
> +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
> @@ -50,14 +50,9 @@ static int mdp4_lvds_connector_get_modes(struct drm_connector *connector)
>  	struct drm_panel *panel = mdp4_lvds_connector->panel;
>  	int ret = 0;
>  
> -	if (panel) {
> -		drm_panel_attach(panel, connector);
> -
> +	if (panel)
>  		ret = drm_panel_get_modes(panel, connector);
>  
> -		drm_panel_detach(panel);
> -	}
> -
>  	return ret;
>  }
>  
> diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
> index 4b363bd7ddff..1d28dfba2c9b 100644
> --- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
> +++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
> @@ -328,7 +328,6 @@ static int dsi_mgr_connector_get_modes(struct drm_connector *connector)
>  	 * In dual DSI mode, we have one connector that can be
>  	 * attached to the drm_panel.
>  	 */
> -	drm_panel_attach(panel, connector);
>  	num = drm_panel_get_modes(panel, connector);
>  	if (!num)
>  		return 0;
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> index 508764fccd27..51da0e3de587 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> @@ -265,11 +265,7 @@ static int mxsfb_load(struct drm_device *drm)
>  	 */
>  
>  	if (mxsfb->panel) {
> -		ret = drm_panel_attach(mxsfb->panel, mxsfb->connector);
> -		if (ret) {
> -			dev_err(drm->dev, "Cannot connect panel: %d\n", ret);
> -			goto err_vblank;
> -		}
> +		;
>  	} else if (mxsfb->bridge) {
>  		ret = drm_simple_display_pipe_attach_bridge(&mxsfb->pipe,
>  							    mxsfb->bridge);
> @@ -306,7 +302,6 @@ static int mxsfb_load(struct drm_device *drm)
>  	return 0;
>  
>  err_irq:
> -	drm_panel_detach(mxsfb->panel);
>  err_vblank:
>  	pm_runtime_disable(drm->dev);
>  
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> index 9eca1605d11d..f93e7a4d4c15 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_out.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> @@ -55,12 +55,6 @@ mxsfb_panel_connector_detect(struct drm_connector *connector, bool force)
>  
>  static void mxsfb_panel_connector_destroy(struct drm_connector *connector)
>  {
> -	struct mxsfb_drm_private *mxsfb =
> -			drm_connector_to_mxsfb_drm_private(connector);
> -
> -	if (mxsfb->panel)
> -		drm_panel_detach(mxsfb->panel);
> -
>  	drm_connector_unregister(connector);
>  	drm_connector_cleanup(connector);
>  }
> diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
> index 4526967978b7..53d5e184ee77 100644
> --- a/drivers/gpu/drm/omapdrm/omap_drv.c
> +++ b/drivers/gpu/drm/omapdrm/omap_drv.c
> @@ -349,13 +349,6 @@ static int omap_modeset_init(struct drm_device *dev)
>  
>  		drm_connector_attach_encoder(pipe->connector, encoder);
>  
> -		if (pipe->output->panel) {
> -			ret = drm_panel_attach(pipe->output->panel,
> -					       pipe->connector);
> -			if (ret < 0)
> -				return ret;
> -		}
> -
>  		crtc = omap_crtc_init(dev, pipe, priv->planes[i]);
>  		if (IS_ERR(crtc))
>  			return PTR_ERR(crtc);
> @@ -394,18 +387,8 @@ static int omap_modeset_init(struct drm_device *dev)
>  
>  static void omap_modeset_fini(struct drm_device *ddev)
>  {
> -	struct omap_drm_private *priv = ddev->dev_private;
> -	unsigned int i;
> -
>  	omap_drm_irq_uninstall(ddev);
>  
> -	for (i = 0; i < priv->num_pipes; i++) {
> -		struct omap_drm_pipeline *pipe = &priv->pipes[i];
> -
> -		if (pipe->output->panel)
> -			drm_panel_detach(pipe->output->panel);
> -	}
> -
>  	drm_mode_config_cleanup(ddev);
>  }
>  
> diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/rcar-du/rcar_lvds.c
> index ab0d49618cf9..bced729a96fe 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_lvds.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c
> @@ -677,15 +677,11 @@ static int rcar_lvds_attach(struct drm_bridge *bridge,
>  	if (ret < 0)
>  		return ret;
>  
> -	return drm_panel_attach(lvds->panel, connector);
> +	return 0;
>  }
>  
>  static void rcar_lvds_detach(struct drm_bridge *bridge)
>  {
> -	struct rcar_lvds *lvds = bridge_to_rcar_lvds(bridge);
> -
> -	if (lvds->panel)
> -		drm_panel_detach(lvds->panel);
>  }
>  
>  static const struct drm_bridge_funcs rcar_lvds_bridge_ops = {
> diff --git a/drivers/gpu/drm/rockchip/rockchip_lvds.c b/drivers/gpu/drm/rockchip/rockchip_lvds.c
> index 63f967902c2d..f292c6a6e20f 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_lvds.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_lvds.c
> @@ -634,13 +634,6 @@ static int rockchip_lvds_bind(struct device *dev, struct device *master,
>  				      "failed to attach encoder: %d\n", ret);
>  			goto err_free_connector;
>  		}
> -
> -		ret = drm_panel_attach(lvds->panel, connector);
> -		if (ret < 0) {
> -			DRM_DEV_ERROR(drm_dev->dev,
> -				      "failed to attach panel: %d\n", ret);
> -			goto err_free_connector;
> -		}
>  	} else {
>  		ret = drm_bridge_attach(encoder, lvds->bridge, NULL, 0);
>  		if (ret) {
> @@ -676,8 +669,6 @@ static void rockchip_lvds_unbind(struct device *dev, struct device *master,
>  
>  	encoder_funcs = lvds->soc_data->helper_funcs;
>  	encoder_funcs->disable(&lvds->encoder);
> -	if (lvds->panel)
> -		drm_panel_detach(lvds->panel);
>  	pm_runtime_disable(dev);
>  	drm_connector_cleanup(&lvds->connector);
>  	drm_encoder_cleanup(&lvds->encoder);
> diff --git a/drivers/gpu/drm/sti/sti_dvo.c b/drivers/gpu/drm/sti/sti_dvo.c
> index de4af7735c46..ddb4184f0726 100644
> --- a/drivers/gpu/drm/sti/sti_dvo.c
> +++ b/drivers/gpu/drm/sti/sti_dvo.c
> @@ -389,8 +389,6 @@ sti_dvo_connector_detect(struct drm_connector *connector, bool force)
>  		dvo->panel = of_drm_find_panel(dvo->panel_node);
>  		if (IS_ERR(dvo->panel))
>  			dvo->panel = NULL;
> -		else
> -			drm_panel_attach(dvo->panel, connector);
>  	}
>  
>  	if (dvo->panel)
> diff --git a/drivers/gpu/drm/sun4i/sun4i_lvds.c b/drivers/gpu/drm/sun4i/sun4i_lvds.c
> index ffda3184aa12..d06dd313d3c0 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_lvds.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_lvds.c
> @@ -54,9 +54,6 @@ static struct drm_connector_helper_funcs sun4i_lvds_con_helper_funcs = {
>  static void
>  sun4i_lvds_connector_destroy(struct drm_connector *connector)
>  {
> -	struct sun4i_lvds *lvds = drm_connector_to_sun4i_lvds(connector);
> -
> -	drm_panel_detach(lvds->panel);
>  	drm_connector_cleanup(connector);
>  }
>  
> @@ -141,12 +138,6 @@ int sun4i_lvds_init(struct drm_device *drm, struct sun4i_tcon *tcon)
>  
>  		drm_connector_attach_encoder(&lvds->connector,
>  						  &lvds->encoder);
> -
> -		ret = drm_panel_attach(lvds->panel, &lvds->connector);
> -		if (ret) {
> -			dev_err(drm->dev, "Couldn't attach our panel\n");
> -			goto err_cleanup_connector;
> -		}
>  	}
>  
>  	if (bridge) {
> diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c b/drivers/gpu/drm/sun4i/sun4i_rgb.c
> index 5a7d43939ae6..e08afdffef50 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_rgb.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c
> @@ -147,7 +147,6 @@ sun4i_rgb_connector_destroy(struct drm_connector *connector)
>  {
>  	struct sun4i_rgb *rgb = drm_connector_to_sun4i_rgb(connector);
>  
> -	drm_panel_detach(rgb->panel);
>  	drm_connector_cleanup(connector);
>  }
>  
> @@ -233,12 +232,6 @@ int sun4i_rgb_init(struct drm_device *drm, struct sun4i_tcon *tcon)
>  
>  		drm_connector_attach_encoder(&rgb->connector,
>  						  &rgb->encoder);
> -
> -		ret = drm_panel_attach(rgb->panel, &rgb->connector);
> -		if (ret) {
> -			dev_err(drm->dev, "Couldn't attach our panel\n");
> -			goto err_cleanup_connector;
> -		}
>  	}
>  
>  	if (rgb->bridge) {
> diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> index aa67cb037e9d..128471b65f64 100644
> --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> @@ -973,7 +973,6 @@ static int sun6i_dsi_attach(struct mipi_dsi_host *host,
>  	dsi->panel = panel;
>  	dsi->device = device;
>  
> -	drm_panel_attach(dsi->panel, &dsi->connector);
>  	drm_kms_helper_hotplug_event(dsi->drm);
>  
>  	dev_info(host->dev, "Attached device %s\n", device->name);
> @@ -990,7 +989,6 @@ static int sun6i_dsi_detach(struct mipi_dsi_host *host,
>  	dsi->panel = NULL;
>  	dsi->device = NULL;
>  
> -	drm_panel_detach(panel);
>  	drm_kms_helper_hotplug_event(dsi->drm);
>  
>  	return 0;
> diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
> index 3820e8dff14b..3387de79718b 100644
> --- a/drivers/gpu/drm/tegra/dsi.c
> +++ b/drivers/gpu/drm/tegra/dsi.c
> @@ -1498,10 +1498,8 @@ static int tegra_dsi_host_attach(struct mipi_dsi_host *host,
>  		if (IS_ERR(output->panel))
>  			output->panel = NULL;
>  
> -		if (output->panel && output->connector.dev) {
> -			drm_panel_attach(output->panel, &output->connector);
> +		if (output->panel && output->connector.dev)
>  			drm_helper_hpd_irq_event(output->connector.dev);
> -		}
>  	}
>  
>  	return 0;
> diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c
> index e36e5e7c2f69..a3adb9e4debf 100644
> --- a/drivers/gpu/drm/tegra/output.c
> +++ b/drivers/gpu/drm/tegra/output.c
> @@ -179,13 +179,6 @@ void tegra_output_remove(struct tegra_output *output)
>  int tegra_output_init(struct drm_device *drm, struct tegra_output *output)
>  {
>  	int connector_type;
> -	int err;
> -
> -	if (output->panel) {
> -		err = drm_panel_attach(output->panel, &output->connector);
> -		if (err < 0)
> -			return err;
> -	}
>  
>  	/*
>  	 * The connector is now registered and ready to receive hotplug events
> @@ -220,9 +213,6 @@ void tegra_output_exit(struct tegra_output *output)
>  	 */
>  	if (output->hpd_gpio)
>  		disable_irq(output->hpd_irq);
> -
> -	if (output->panel)
> -		drm_panel_detach(output->panel);
>  }
>  
>  void tegra_output_find_possible_crtcs(struct tegra_output *output,
> diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
> index 6193cb555acc..9b374f88fb76 100644
> --- a/include/drm/drm_panel.h
> +++ b/include/drm/drm_panel.h
> @@ -178,9 +178,6 @@ void drm_panel_init(struct drm_panel *panel, struct device *dev,
>  int drm_panel_add(struct drm_panel *panel);
>  void drm_panel_remove(struct drm_panel *panel);
>  
> -int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector);
> -void drm_panel_detach(struct drm_panel *panel);
> -
>  int drm_panel_prepare(struct drm_panel *panel);
>  int drm_panel_unprepare(struct drm_panel *panel);
>  

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH V2] drm: Remove unnecessary drm_panel_attach and drm_panel_detach
@ 2020-08-02 17:34           ` Sam Ravnborg
  0 siblings, 0 replies; 18+ messages in thread
From: Sam Ravnborg @ 2020-08-02 17:34 UTC (permalink / raw)
  To: Joe Perches
  Cc: dri-devel, opensource.kernel, Laurent Pinchart, Stefan Mavrodiev,
	David Airlie, Bernard Zhao, Jerry Han, linux-kernel,
	Thierry Reding, Jagan Teki, Thomas Zimmermann, Robert Chiras,
	Icenowy Zheng

Hi Joe.

On Sun, Aug 02, 2020 at 09:43:59AM -0700, Joe Perches wrote:
> These functions are now empty and no longer
> useful so remove the functions and their uses.
> 
> Signed-off-by: Joe Perches <joe@perches.com>
> ---
> 
> > > It's too tedious to break apart into multiple patches.
> > > Done with coccinelle and typing.
> > > 
> > > Compiled allyesconfig x86-64 only.
> 
> V2: Removed 3 additional lines
> 
> drivers/gpu/drm/omapdrm/omap_drv.c:390:27: warning: unused variable ‘priv’ [-Wunused-variable]
> drivers/gpu/drm/exynos/exynos_drm_dpi.c:45:21: warning: unused variable ‘ctx’ [-Wunused-variable]
> drivers/gpu/drm/sun4i/sun4i_lvds.c:57:21: warning: unused variable ‘lvds’ [-Wunused-variable]

Thanks, better now.

I had to fix a few warnings and a build error to get it going on
drm-misc-next. I will keep it locally just to let anyone speak up.
I you do not see any mail from me until friday that it is applied please
ping me.

	Sam

> 
>  drivers/gpu/drm/bridge/analogix/analogix-anx6345.c | 12 --------
>  drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  9 ------
>  drivers/gpu/drm/bridge/nxp-ptn3460.c               |  3 --
>  drivers/gpu/drm/bridge/panel.c                     |  7 -----
>  drivers/gpu/drm/bridge/parade-ps8622.c             |  3 --
>  drivers/gpu/drm/bridge/tc358764.c                  |  2 --
>  drivers/gpu/drm/bridge/tc358767.c                  |  3 --
>  drivers/gpu/drm/bridge/ti-sn65dsi86.c              |  3 --
>  drivers/gpu/drm/drm_panel.c                        | 36 ----------------------
>  drivers/gpu/drm/exynos/exynos_drm_dpi.c            |  8 -----
>  drivers/gpu/drm/exynos/exynos_drm_dsi.c            |  7 ++---
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c          |  7 -----
>  drivers/gpu/drm/imx/imx-ldb.c                      | 10 ------
>  drivers/gpu/drm/imx/parallel-display.c             |  6 ----
>  .../gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c    |  7 +----
>  drivers/gpu/drm/msm/dsi/dsi_manager.c              |  1 -
>  drivers/gpu/drm/mxsfb/mxsfb_drv.c                  |  7 +----
>  drivers/gpu/drm/mxsfb/mxsfb_out.c                  |  6 ----
>  drivers/gpu/drm/omapdrm/omap_drv.c                 | 17 ----------
>  drivers/gpu/drm/rcar-du/rcar_lvds.c                |  6 +---
>  drivers/gpu/drm/rockchip/rockchip_lvds.c           |  9 ------
>  drivers/gpu/drm/sti/sti_dvo.c                      |  2 --
>  drivers/gpu/drm/sun4i/sun4i_lvds.c                 |  9 ------
>  drivers/gpu/drm/sun4i/sun4i_rgb.c                  |  7 -----
>  drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c             |  2 --
>  drivers/gpu/drm/tegra/dsi.c                        |  4 +--
>  drivers/gpu/drm/tegra/output.c                     | 10 ------
>  include/drm/drm_panel.h                            |  3 --
>  28 files changed, 6 insertions(+), 200 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
> index f082b4ed4878..d9164fab044d 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
> @@ -507,10 +507,6 @@ static const struct drm_connector_helper_funcs anx6345_connector_helper_funcs =
>  static void
>  anx6345_connector_destroy(struct drm_connector *connector)
>  {
> -	struct anx6345 *anx6345 = connector_to_anx6345(connector);
> -
> -	if (anx6345->panel)
> -		drm_panel_detach(anx6345->panel);
>  	drm_connector_cleanup(connector);
>  }
>  
> @@ -575,14 +571,6 @@ static int anx6345_bridge_attach(struct drm_bridge *bridge,
>  		return err;
>  	}
>  
> -	if (anx6345->panel) {
> -		err = drm_panel_attach(anx6345->panel, &anx6345->connector);
> -		if (err) {
> -			DRM_ERROR("Failed to attach panel: %d\n", err);
> -			return err;
> -		}
> -	}
> -
>  	return 0;
>  }
>  
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> index 76736fb8ed94..aa1bb86293fd 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> @@ -1265,14 +1265,6 @@ static int analogix_dp_bridge_attach(struct drm_bridge *bridge,
>  		}
>  	}
>  
> -	if (dp->plat_data->panel) {
> -		ret = drm_panel_attach(dp->plat_data->panel, &dp->connector);
> -		if (ret) {
> -			DRM_ERROR("Failed to attach panel\n");
> -			return ret;
> -		}
> -	}
> -
>  	return 0;
>  }
>  
> @@ -1803,7 +1795,6 @@ void analogix_dp_unbind(struct analogix_dp_device *dp)
>  	if (dp->plat_data->panel) {
>  		if (drm_panel_unprepare(dp->plat_data->panel))
>  			DRM_ERROR("failed to turnoff the panel\n");
> -		drm_panel_detach(dp->plat_data->panel);
>  	}
>  
>  	drm_dp_aux_unregister(&dp->aux);
> diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c
> index 438e566ce0a4..d433902d97e5 100644
> --- a/drivers/gpu/drm/bridge/nxp-ptn3460.c
> +++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c
> @@ -265,9 +265,6 @@ static int ptn3460_bridge_attach(struct drm_bridge *bridge,
>  	drm_connector_attach_encoder(&ptn_bridge->connector,
>  							bridge->encoder);
>  
> -	if (ptn_bridge->panel)
> -		drm_panel_attach(ptn_bridge->panel, &ptn_bridge->connector);
> -
>  	drm_helper_hpd_irq_event(ptn_bridge->connector.dev);
>  
>  	return ret;
> diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c
> index 1e63ed6b18aa..0ddc37551194 100644
> --- a/drivers/gpu/drm/bridge/panel.c
> +++ b/drivers/gpu/drm/bridge/panel.c
> @@ -82,18 +82,11 @@ static int panel_bridge_attach(struct drm_bridge *bridge,
>  	drm_connector_attach_encoder(&panel_bridge->connector,
>  					  bridge->encoder);
>  
> -	ret = drm_panel_attach(panel_bridge->panel, &panel_bridge->connector);
> -	if (ret < 0)
> -		return ret;
> -
>  	return 0;
>  }
>  
>  static void panel_bridge_detach(struct drm_bridge *bridge)
>  {
> -	struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
> -
> -	drm_panel_detach(panel_bridge->panel);
>  }
>  
>  static void panel_bridge_pre_enable(struct drm_bridge *bridge)
> diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c
> index d789ea2a7fb9..c13ec77d858b 100644
> --- a/drivers/gpu/drm/bridge/parade-ps8622.c
> +++ b/drivers/gpu/drm/bridge/parade-ps8622.c
> @@ -505,9 +505,6 @@ static int ps8622_attach(struct drm_bridge *bridge,
>  	drm_connector_attach_encoder(&ps8622->connector,
>  							bridge->encoder);
>  
> -	if (ps8622->panel)
> -		drm_panel_attach(ps8622->panel, &ps8622->connector);
> -
>  	drm_helper_hpd_irq_event(ps8622->connector.dev);
>  
>  	return ret;
> diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c
> index 5ac1430fab04..c1e35bdf9232 100644
> --- a/drivers/gpu/drm/bridge/tc358764.c
> +++ b/drivers/gpu/drm/bridge/tc358764.c
> @@ -373,7 +373,6 @@ static int tc358764_attach(struct drm_bridge *bridge,
>  	drm_connector_helper_add(&ctx->connector,
>  				 &tc358764_connector_helper_funcs);
>  	drm_connector_attach_encoder(&ctx->connector, bridge->encoder);
> -	drm_panel_attach(ctx->panel, &ctx->connector);
>  	ctx->connector.funcs->reset(&ctx->connector);
>  	drm_connector_register(&ctx->connector);
>  
> @@ -385,7 +384,6 @@ static void tc358764_detach(struct drm_bridge *bridge)
>  	struct tc358764 *ctx = bridge_to_tc358764(bridge);
>  
>  	drm_connector_unregister(&ctx->connector);
> -	drm_panel_detach(ctx->panel);
>  	ctx->panel = NULL;
>  	drm_connector_put(&ctx->connector);
>  }
> diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
> index c2777b226c75..0746462ba0f6 100644
> --- a/drivers/gpu/drm/bridge/tc358767.c
> +++ b/drivers/gpu/drm/bridge/tc358767.c
> @@ -1435,9 +1435,6 @@ static int tc_bridge_attach(struct drm_bridge *bridge,
>  					       DRM_CONNECTOR_POLL_DISCONNECT;
>  	}
>  
> -	if (tc->panel)
> -		drm_panel_attach(tc->panel, &tc->connector);
> -
>  	drm_display_info_set_bus_formats(&tc->connector.display_info,
>  					 &bus_format, 1);
>  	tc->connector.display_info.bus_flags =
> diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> index 86b9f0f87a14..454544e0da7d 100644
> --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> @@ -394,9 +394,6 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge,
>  	}
>  	pdata->dsi = dsi;
>  
> -	/* attach panel to bridge */
> -	drm_panel_attach(pdata->panel, &pdata->connector);
> -
>  	return 0;
>  
>  err_dsi_attach:
> diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
> index 8c7bac85a793..7804b9947fe8 100644
> --- a/drivers/gpu/drm/drm_panel.c
> +++ b/drivers/gpu/drm/drm_panel.c
> @@ -97,42 +97,6 @@ void drm_panel_remove(struct drm_panel *panel)
>  }
>  EXPORT_SYMBOL(drm_panel_remove);
>  
> -/**
> - * drm_panel_attach - attach a panel to a connector
> - * @panel: DRM panel
> - * @connector: DRM connector
> - *
> - * After obtaining a pointer to a DRM panel a display driver calls this
> - * function to attach a panel to a connector.
> - *
> - * An error is returned if the panel is already attached to another connector.
> - *
> - * When unloading, the driver should detach from the panel by calling
> - * drm_panel_detach().
> - *
> - * Return: 0 on success or a negative error code on failure.
> - */
> -int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector)
> -{
> -	return 0;
> -}
> -EXPORT_SYMBOL(drm_panel_attach);
> -
> -/**
> - * drm_panel_detach - detach a panel from a connector
> - * @panel: DRM panel
> - *
> - * Detaches a panel from the connector it is attached to. If a panel is not
> - * attached to any connector this is effectively a no-op.
> - *
> - * This function should not be called by the panel device itself. It
> - * is only for the drm device that called drm_panel_attach().
> - */
> -void drm_panel_detach(struct drm_panel *panel)
> -{
> -}
> -EXPORT_SYMBOL(drm_panel_detach);
> -
>  /**
>   * drm_panel_prepare - power on a panel
>   * @panel: DRM panel
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> index 7ba5354e7d94..741323a2e6c3 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> @@ -42,11 +42,6 @@ static inline struct exynos_dpi *encoder_to_dpi(struct drm_encoder *e)
>  static enum drm_connector_status
>  exynos_dpi_detect(struct drm_connector *connector, bool force)
>  {
> -	struct exynos_dpi *ctx = connector_to_dpi(connector);
> -
> -	if (ctx->panel)
> -		drm_panel_attach(ctx->panel, &ctx->connector);
> -
>  	return connector_status_connected;
>  }
>  
> @@ -249,8 +244,5 @@ int exynos_dpi_remove(struct drm_encoder *encoder)
>  
>  	exynos_dpi_disable(&ctx->encoder);
>  
> -	if (ctx->panel)
> -		drm_panel_detach(ctx->panel);
> -
>  	return 0;
>  }
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> index 7a6f6df5e954..843dfcefc46a 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> @@ -1551,12 +1551,10 @@ static int exynos_dsi_host_attach(struct mipi_dsi_host *host,
>  		}
>  
>  		dsi->panel = of_drm_find_panel(device->dev.of_node);
> -		if (IS_ERR(dsi->panel)) {
> +		if (IS_ERR(dsi->panel))
>  			dsi->panel = NULL;
> -		} else {
> -			drm_panel_attach(dsi->panel, &dsi->connector);
> +		else
>  			dsi->connector.status = connector_status_connected;
> -		}
>  	}
>  
>  	/*
> @@ -1596,7 +1594,6 @@ static int exynos_dsi_host_detach(struct mipi_dsi_host *host,
>  	if (dsi->panel) {
>  		mutex_lock(&drm->mode_config.mutex);
>  		exynos_dsi_disable(&dsi->encoder);
> -		drm_panel_detach(dsi->panel);
>  		dsi->panel = NULL;
>  		dsi->connector.status = connector_status_disconnected;
>  		mutex_unlock(&drm->mode_config.mutex);
> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> index 9b0c4736c21a..0a7071827533 100644
> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> @@ -43,7 +43,6 @@ static void fsl_dcu_drm_connector_destroy(struct drm_connector *connector)
>  	struct fsl_dcu_drm_connector *fsl_con = to_fsl_dcu_connector(connector);
>  
>  	drm_connector_unregister(connector);
> -	drm_panel_detach(fsl_con->panel);
>  	drm_connector_cleanup(connector);
>  }
>  
> @@ -101,12 +100,6 @@ static int fsl_dcu_attach_panel(struct fsl_dcu_drm_device *fsl_dev,
>  	if (ret < 0)
>  		goto err_sysfs;
>  
> -	ret = drm_panel_attach(panel, connector);
> -	if (ret) {
> -		dev_err(fsl_dev->dev, "failed to attach panel\n");
> -		goto err_sysfs;
> -	}
> -
>  	return 0;
>  
>  err_sysfs:
> diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
> index 8791d60be92e..af757d1e21fe 100644
> --- a/drivers/gpu/drm/imx/imx-ldb.c
> +++ b/drivers/gpu/drm/imx/imx-ldb.c
> @@ -455,13 +455,6 @@ static int imx_ldb_register(struct drm_device *drm,
>  		drm_connector_attach_encoder(&imx_ldb_ch->connector, encoder);
>  	}
>  
> -	if (imx_ldb_ch->panel) {
> -		ret = drm_panel_attach(imx_ldb_ch->panel,
> -				       &imx_ldb_ch->connector);
> -		if (ret)
> -			return ret;
> -	}
> -
>  	return 0;
>  }
>  
> @@ -702,9 +695,6 @@ static void imx_ldb_unbind(struct device *dev, struct device *master,
>  	for (i = 0; i < 2; i++) {
>  		struct imx_ldb_channel *channel = &imx_ldb->channel[i];
>  
> -		if (channel->panel)
> -			drm_panel_detach(channel->panel);
> -
>  		kfree(channel->edid);
>  		i2c_put_adapter(channel->ddc);
>  	}
> diff --git a/drivers/gpu/drm/imx/parallel-display.c b/drivers/gpu/drm/imx/parallel-display.c
> index a831b5bd1613..8232f512b9ed 100644
> --- a/drivers/gpu/drm/imx/parallel-display.c
> +++ b/drivers/gpu/drm/imx/parallel-display.c
> @@ -289,9 +289,6 @@ static int imx_pd_register(struct drm_device *drm,
>  				   DRM_MODE_CONNECTOR_DPI);
>  	}
>  
> -	if (imxpd->panel)
> -		drm_panel_attach(imxpd->panel, &imxpd->connector);
> -
>  	if (imxpd->next_bridge) {
>  		ret = drm_bridge_attach(encoder, imxpd->next_bridge,
>  					&imxpd->bridge, 0);
> @@ -357,9 +354,6 @@ static void imx_pd_unbind(struct device *dev, struct device *master,
>  {
>  	struct imx_parallel_display *imxpd = dev_get_drvdata(dev);
>  
> -	if (imxpd->panel)
> -		drm_panel_detach(imxpd->panel);
> -
>  	kfree(imxpd->edid);
>  }
>  
> diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
> index c7df71e2fafc..7288041dd86a 100644
> --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
> +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
> @@ -50,14 +50,9 @@ static int mdp4_lvds_connector_get_modes(struct drm_connector *connector)
>  	struct drm_panel *panel = mdp4_lvds_connector->panel;
>  	int ret = 0;
>  
> -	if (panel) {
> -		drm_panel_attach(panel, connector);
> -
> +	if (panel)
>  		ret = drm_panel_get_modes(panel, connector);
>  
> -		drm_panel_detach(panel);
> -	}
> -
>  	return ret;
>  }
>  
> diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
> index 4b363bd7ddff..1d28dfba2c9b 100644
> --- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
> +++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
> @@ -328,7 +328,6 @@ static int dsi_mgr_connector_get_modes(struct drm_connector *connector)
>  	 * In dual DSI mode, we have one connector that can be
>  	 * attached to the drm_panel.
>  	 */
> -	drm_panel_attach(panel, connector);
>  	num = drm_panel_get_modes(panel, connector);
>  	if (!num)
>  		return 0;
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> index 508764fccd27..51da0e3de587 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> @@ -265,11 +265,7 @@ static int mxsfb_load(struct drm_device *drm)
>  	 */
>  
>  	if (mxsfb->panel) {
> -		ret = drm_panel_attach(mxsfb->panel, mxsfb->connector);
> -		if (ret) {
> -			dev_err(drm->dev, "Cannot connect panel: %d\n", ret);
> -			goto err_vblank;
> -		}
> +		;
>  	} else if (mxsfb->bridge) {
>  		ret = drm_simple_display_pipe_attach_bridge(&mxsfb->pipe,
>  							    mxsfb->bridge);
> @@ -306,7 +302,6 @@ static int mxsfb_load(struct drm_device *drm)
>  	return 0;
>  
>  err_irq:
> -	drm_panel_detach(mxsfb->panel);
>  err_vblank:
>  	pm_runtime_disable(drm->dev);
>  
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> index 9eca1605d11d..f93e7a4d4c15 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_out.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> @@ -55,12 +55,6 @@ mxsfb_panel_connector_detect(struct drm_connector *connector, bool force)
>  
>  static void mxsfb_panel_connector_destroy(struct drm_connector *connector)
>  {
> -	struct mxsfb_drm_private *mxsfb =
> -			drm_connector_to_mxsfb_drm_private(connector);
> -
> -	if (mxsfb->panel)
> -		drm_panel_detach(mxsfb->panel);
> -
>  	drm_connector_unregister(connector);
>  	drm_connector_cleanup(connector);
>  }
> diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
> index 4526967978b7..53d5e184ee77 100644
> --- a/drivers/gpu/drm/omapdrm/omap_drv.c
> +++ b/drivers/gpu/drm/omapdrm/omap_drv.c
> @@ -349,13 +349,6 @@ static int omap_modeset_init(struct drm_device *dev)
>  
>  		drm_connector_attach_encoder(pipe->connector, encoder);
>  
> -		if (pipe->output->panel) {
> -			ret = drm_panel_attach(pipe->output->panel,
> -					       pipe->connector);
> -			if (ret < 0)
> -				return ret;
> -		}
> -
>  		crtc = omap_crtc_init(dev, pipe, priv->planes[i]);
>  		if (IS_ERR(crtc))
>  			return PTR_ERR(crtc);
> @@ -394,18 +387,8 @@ static int omap_modeset_init(struct drm_device *dev)
>  
>  static void omap_modeset_fini(struct drm_device *ddev)
>  {
> -	struct omap_drm_private *priv = ddev->dev_private;
> -	unsigned int i;
> -
>  	omap_drm_irq_uninstall(ddev);
>  
> -	for (i = 0; i < priv->num_pipes; i++) {
> -		struct omap_drm_pipeline *pipe = &priv->pipes[i];
> -
> -		if (pipe->output->panel)
> -			drm_panel_detach(pipe->output->panel);
> -	}
> -
>  	drm_mode_config_cleanup(ddev);
>  }
>  
> diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/rcar-du/rcar_lvds.c
> index ab0d49618cf9..bced729a96fe 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_lvds.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c
> @@ -677,15 +677,11 @@ static int rcar_lvds_attach(struct drm_bridge *bridge,
>  	if (ret < 0)
>  		return ret;
>  
> -	return drm_panel_attach(lvds->panel, connector);
> +	return 0;
>  }
>  
>  static void rcar_lvds_detach(struct drm_bridge *bridge)
>  {
> -	struct rcar_lvds *lvds = bridge_to_rcar_lvds(bridge);
> -
> -	if (lvds->panel)
> -		drm_panel_detach(lvds->panel);
>  }
>  
>  static const struct drm_bridge_funcs rcar_lvds_bridge_ops = {
> diff --git a/drivers/gpu/drm/rockchip/rockchip_lvds.c b/drivers/gpu/drm/rockchip/rockchip_lvds.c
> index 63f967902c2d..f292c6a6e20f 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_lvds.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_lvds.c
> @@ -634,13 +634,6 @@ static int rockchip_lvds_bind(struct device *dev, struct device *master,
>  				      "failed to attach encoder: %d\n", ret);
>  			goto err_free_connector;
>  		}
> -
> -		ret = drm_panel_attach(lvds->panel, connector);
> -		if (ret < 0) {
> -			DRM_DEV_ERROR(drm_dev->dev,
> -				      "failed to attach panel: %d\n", ret);
> -			goto err_free_connector;
> -		}
>  	} else {
>  		ret = drm_bridge_attach(encoder, lvds->bridge, NULL, 0);
>  		if (ret) {
> @@ -676,8 +669,6 @@ static void rockchip_lvds_unbind(struct device *dev, struct device *master,
>  
>  	encoder_funcs = lvds->soc_data->helper_funcs;
>  	encoder_funcs->disable(&lvds->encoder);
> -	if (lvds->panel)
> -		drm_panel_detach(lvds->panel);
>  	pm_runtime_disable(dev);
>  	drm_connector_cleanup(&lvds->connector);
>  	drm_encoder_cleanup(&lvds->encoder);
> diff --git a/drivers/gpu/drm/sti/sti_dvo.c b/drivers/gpu/drm/sti/sti_dvo.c
> index de4af7735c46..ddb4184f0726 100644
> --- a/drivers/gpu/drm/sti/sti_dvo.c
> +++ b/drivers/gpu/drm/sti/sti_dvo.c
> @@ -389,8 +389,6 @@ sti_dvo_connector_detect(struct drm_connector *connector, bool force)
>  		dvo->panel = of_drm_find_panel(dvo->panel_node);
>  		if (IS_ERR(dvo->panel))
>  			dvo->panel = NULL;
> -		else
> -			drm_panel_attach(dvo->panel, connector);
>  	}
>  
>  	if (dvo->panel)
> diff --git a/drivers/gpu/drm/sun4i/sun4i_lvds.c b/drivers/gpu/drm/sun4i/sun4i_lvds.c
> index ffda3184aa12..d06dd313d3c0 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_lvds.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_lvds.c
> @@ -54,9 +54,6 @@ static struct drm_connector_helper_funcs sun4i_lvds_con_helper_funcs = {
>  static void
>  sun4i_lvds_connector_destroy(struct drm_connector *connector)
>  {
> -	struct sun4i_lvds *lvds = drm_connector_to_sun4i_lvds(connector);
> -
> -	drm_panel_detach(lvds->panel);
>  	drm_connector_cleanup(connector);
>  }
>  
> @@ -141,12 +138,6 @@ int sun4i_lvds_init(struct drm_device *drm, struct sun4i_tcon *tcon)
>  
>  		drm_connector_attach_encoder(&lvds->connector,
>  						  &lvds->encoder);
> -
> -		ret = drm_panel_attach(lvds->panel, &lvds->connector);
> -		if (ret) {
> -			dev_err(drm->dev, "Couldn't attach our panel\n");
> -			goto err_cleanup_connector;
> -		}
>  	}
>  
>  	if (bridge) {
> diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c b/drivers/gpu/drm/sun4i/sun4i_rgb.c
> index 5a7d43939ae6..e08afdffef50 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_rgb.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c
> @@ -147,7 +147,6 @@ sun4i_rgb_connector_destroy(struct drm_connector *connector)
>  {
>  	struct sun4i_rgb *rgb = drm_connector_to_sun4i_rgb(connector);
>  
> -	drm_panel_detach(rgb->panel);
>  	drm_connector_cleanup(connector);
>  }
>  
> @@ -233,12 +232,6 @@ int sun4i_rgb_init(struct drm_device *drm, struct sun4i_tcon *tcon)
>  
>  		drm_connector_attach_encoder(&rgb->connector,
>  						  &rgb->encoder);
> -
> -		ret = drm_panel_attach(rgb->panel, &rgb->connector);
> -		if (ret) {
> -			dev_err(drm->dev, "Couldn't attach our panel\n");
> -			goto err_cleanup_connector;
> -		}
>  	}
>  
>  	if (rgb->bridge) {
> diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> index aa67cb037e9d..128471b65f64 100644
> --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> @@ -973,7 +973,6 @@ static int sun6i_dsi_attach(struct mipi_dsi_host *host,
>  	dsi->panel = panel;
>  	dsi->device = device;
>  
> -	drm_panel_attach(dsi->panel, &dsi->connector);
>  	drm_kms_helper_hotplug_event(dsi->drm);
>  
>  	dev_info(host->dev, "Attached device %s\n", device->name);
> @@ -990,7 +989,6 @@ static int sun6i_dsi_detach(struct mipi_dsi_host *host,
>  	dsi->panel = NULL;
>  	dsi->device = NULL;
>  
> -	drm_panel_detach(panel);
>  	drm_kms_helper_hotplug_event(dsi->drm);
>  
>  	return 0;
> diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
> index 3820e8dff14b..3387de79718b 100644
> --- a/drivers/gpu/drm/tegra/dsi.c
> +++ b/drivers/gpu/drm/tegra/dsi.c
> @@ -1498,10 +1498,8 @@ static int tegra_dsi_host_attach(struct mipi_dsi_host *host,
>  		if (IS_ERR(output->panel))
>  			output->panel = NULL;
>  
> -		if (output->panel && output->connector.dev) {
> -			drm_panel_attach(output->panel, &output->connector);
> +		if (output->panel && output->connector.dev)
>  			drm_helper_hpd_irq_event(output->connector.dev);
> -		}
>  	}
>  
>  	return 0;
> diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c
> index e36e5e7c2f69..a3adb9e4debf 100644
> --- a/drivers/gpu/drm/tegra/output.c
> +++ b/drivers/gpu/drm/tegra/output.c
> @@ -179,13 +179,6 @@ void tegra_output_remove(struct tegra_output *output)
>  int tegra_output_init(struct drm_device *drm, struct tegra_output *output)
>  {
>  	int connector_type;
> -	int err;
> -
> -	if (output->panel) {
> -		err = drm_panel_attach(output->panel, &output->connector);
> -		if (err < 0)
> -			return err;
> -	}
>  
>  	/*
>  	 * The connector is now registered and ready to receive hotplug events
> @@ -220,9 +213,6 @@ void tegra_output_exit(struct tegra_output *output)
>  	 */
>  	if (output->hpd_gpio)
>  		disable_irq(output->hpd_irq);
> -
> -	if (output->panel)
> -		drm_panel_detach(output->panel);
>  }
>  
>  void tegra_output_find_possible_crtcs(struct tegra_output *output,
> diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
> index 6193cb555acc..9b374f88fb76 100644
> --- a/include/drm/drm_panel.h
> +++ b/include/drm/drm_panel.h
> @@ -178,9 +178,6 @@ void drm_panel_init(struct drm_panel *panel, struct device *dev,
>  int drm_panel_add(struct drm_panel *panel);
>  void drm_panel_remove(struct drm_panel *panel);
>  
> -int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector);
> -void drm_panel_detach(struct drm_panel *panel);
> -
>  int drm_panel_prepare(struct drm_panel *panel);
>  int drm_panel_unprepare(struct drm_panel *panel);
>  
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH V2] drm: Remove unnecessary drm_panel_attach and drm_panel_detach
  2020-08-02 17:34           ` Sam Ravnborg
@ 2020-08-08  8:10             ` Sam Ravnborg
  -1 siblings, 0 replies; 18+ messages in thread
From: Sam Ravnborg @ 2020-08-08  8:10 UTC (permalink / raw)
  To: Joe Perches
  Cc: dri-devel, opensource.kernel, Laurent Pinchart, Stefan Mavrodiev,
	David Airlie, Bernard Zhao, Jerry Han, linux-kernel,
	Thierry Reding, Jagan Teki, Thomas Zimmermann, Robert Chiras,
	Icenowy Zheng

Hi Joe.

On Sun, Aug 02, 2020 at 07:34:13PM +0200, Sam Ravnborg wrote:
> Hi Joe.
> 
> On Sun, Aug 02, 2020 at 09:43:59AM -0700, Joe Perches wrote:
> > These functions are now empty and no longer
> > useful so remove the functions and their uses.
> > 
> > Signed-off-by: Joe Perches <joe@perches.com>
> > ---
> > 
> > > > It's too tedious to break apart into multiple patches.
> > > > Done with coccinelle and typing.
> > > > 
> > > > Compiled allyesconfig x86-64 only.
> > 
> > V2: Removed 3 additional lines
> > 
> > drivers/gpu/drm/omapdrm/omap_drv.c:390:27: warning: unused variable ‘priv’ [-Wunused-variable]
> > drivers/gpu/drm/exynos/exynos_drm_dpi.c:45:21: warning: unused variable ‘ctx’ [-Wunused-variable]
> > drivers/gpu/drm/sun4i/sun4i_lvds.c:57:21: warning: unused variable ‘lvds’ [-Wunused-variable]
> 
> Thanks, better now.
> 
> I had to fix a few warnings and a build error to get it going on
> drm-misc-next. I will keep it locally just to let anyone speak up.
> I you do not see any mail from me until friday that it is applied please
> ping me.
Thanks, Now applied to drm-misc-next. Will show up in -next sometimes after the
current merge window closes.

	Sam

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH V2] drm: Remove unnecessary drm_panel_attach and drm_panel_detach
@ 2020-08-08  8:10             ` Sam Ravnborg
  0 siblings, 0 replies; 18+ messages in thread
From: Sam Ravnborg @ 2020-08-08  8:10 UTC (permalink / raw)
  To: Joe Perches
  Cc: opensource.kernel, Stefan Mavrodiev, David Airlie, Bernard Zhao,
	Jerry Han, linux-kernel, dri-devel, Thierry Reding,
	Laurent Pinchart, Thomas Zimmermann, Robert Chiras,
	Icenowy Zheng, Jagan Teki

Hi Joe.

On Sun, Aug 02, 2020 at 07:34:13PM +0200, Sam Ravnborg wrote:
> Hi Joe.
> 
> On Sun, Aug 02, 2020 at 09:43:59AM -0700, Joe Perches wrote:
> > These functions are now empty and no longer
> > useful so remove the functions and their uses.
> > 
> > Signed-off-by: Joe Perches <joe@perches.com>
> > ---
> > 
> > > > It's too tedious to break apart into multiple patches.
> > > > Done with coccinelle and typing.
> > > > 
> > > > Compiled allyesconfig x86-64 only.
> > 
> > V2: Removed 3 additional lines
> > 
> > drivers/gpu/drm/omapdrm/omap_drv.c:390:27: warning: unused variable ‘priv’ [-Wunused-variable]
> > drivers/gpu/drm/exynos/exynos_drm_dpi.c:45:21: warning: unused variable ‘ctx’ [-Wunused-variable]
> > drivers/gpu/drm/sun4i/sun4i_lvds.c:57:21: warning: unused variable ‘lvds’ [-Wunused-variable]
> 
> Thanks, better now.
> 
> I had to fix a few warnings and a build error to get it going on
> drm-misc-next. I will keep it locally just to let anyone speak up.
> I you do not see any mail from me until friday that it is applied please
> ping me.
Thanks, Now applied to drm-misc-next. Will show up in -next sometimes after the
current merge window closes.

	Sam
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] drm/panel: remove return value of function drm_panel_add
@ 2020-08-01 19:01 kernel test robot
  0 siblings, 0 replies; 18+ messages in thread
From: kernel test robot @ 2020-08-01 19:01 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 8209 bytes --]

CC: kbuild-all(a)lists.01.org
In-Reply-To: <20200801120216.8488-1-bernard@vivo.com>
References: <20200801120216.8488-1-bernard@vivo.com>
TO: Bernard Zhao <bernard@vivo.com>
TO: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
TO: Maxime Ripard <mripard@kernel.org>
TO: Thomas Zimmermann <tzimmermann@suse.de>
TO: Thierry Reding <thierry.reding@gmail.com>
TO: Sam Ravnborg <sam@ravnborg.org>
TO: David Airlie <airlied@linux.ie>
TO: Daniel Vetter <daniel@ffwll.ch>
TO: Linus Walleij <linus.walleij@linaro.org>
TO: Jerry Han <hanxu5@huaqin.corp-partner.google.com>
TO: Icenowy Zheng <icenowy@aosc.io>

Hi Bernard,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.8-rc7 next-20200731]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Bernard-Zhao/drm-panel-remove-return-value-of-function-drm_panel_add/20200801-200252
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 7dc6fd0f3b8404542718039f5de19fe56e474578
:::::: branch date: 7 hours ago
:::::: commit date: 7 hours ago
config: i386-randconfig-s032-20200801 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.2-115-g5fc204f2-dirty
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)

>> drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c:749:1: sparse: sparse: unused label 'unregister_backlight'
   drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c:218:15: sparse: sparse: symbol 'vint_table' was not declared. Should it be static?
--
>> drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c:494:1: sparse: sparse: unused label 'unregister_backlight'

# https://github.com/0day-ci/linux/commit/b5fd4505cdbf1b5d3fedb35fdea9a3a629d5e71c
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout b5fd4505cdbf1b5d3fedb35fdea9a3a629d5e71c
vim +/unregister_backlight +749 drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c

ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  680  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  681  static int s6e3ha2_probe(struct mipi_dsi_device *dsi)
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  682  {
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  683  	struct device *dev = &dsi->dev;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  684  	struct s6e3ha2 *ctx;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  685  	int ret;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  686  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  687  	ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  688  	if (!ctx)
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  689  		return -ENOMEM;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  690  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  691  	mipi_dsi_set_drvdata(dsi, ctx);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  692  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  693  	ctx->dev = dev;
e2af12bfb0ba198 Hoegeun Kwon     2017-04-18  694  	ctx->desc = of_device_get_match_data(dev);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  695  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  696  	dsi->lanes = 4;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  697  	dsi->format = MIPI_DSI_FMT_RGB888;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  698  	dsi->mode_flags = MIPI_DSI_CLOCK_NON_CONTINUOUS;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  699  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  700  	ctx->supplies[0].supply = "vdd3";
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  701  	ctx->supplies[1].supply = "vci";
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  702  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  703  	ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(ctx->supplies),
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  704  				      ctx->supplies);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  705  	if (ret < 0) {
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  706  		dev_err(dev, "failed to get regulators: %d\n", ret);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  707  		return ret;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  708  	}
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  709  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  710  	ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  711  	if (IS_ERR(ctx->reset_gpio)) {
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  712  		dev_err(dev, "cannot get reset-gpios %ld\n",
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  713  			PTR_ERR(ctx->reset_gpio));
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  714  		return PTR_ERR(ctx->reset_gpio);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  715  	}
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  716  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  717  	ctx->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_HIGH);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  718  	if (IS_ERR(ctx->enable_gpio)) {
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  719  		dev_err(dev, "cannot get enable-gpios %ld\n",
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  720  			PTR_ERR(ctx->enable_gpio));
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  721  		return PTR_ERR(ctx->enable_gpio);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  722  	}
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  723  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  724  	ctx->bl_dev = backlight_device_register("s6e3ha2", dev, ctx,
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  725  						&s6e3ha2_bl_ops, NULL);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  726  	if (IS_ERR(ctx->bl_dev)) {
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  727  		dev_err(dev, "failed to register backlight device\n");
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  728  		return PTR_ERR(ctx->bl_dev);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  729  	}
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  730  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  731  	ctx->bl_dev->props.max_brightness = S6E3HA2_MAX_BRIGHTNESS;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  732  	ctx->bl_dev->props.brightness = S6E3HA2_DEFAULT_BRIGHTNESS;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  733  	ctx->bl_dev->props.power = FB_BLANK_POWERDOWN;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  734  
9a2654c0f62a170 Laurent Pinchart 2019-09-04  735  	drm_panel_init(&ctx->panel, dev, &s6e3ha2_drm_funcs,
9a2654c0f62a170 Laurent Pinchart 2019-09-04  736  		       DRM_MODE_CONNECTOR_DSI);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  737  
b5fd4505cdbf1b5 Bernard Zhao     2020-08-01  738  	drm_panel_add(&ctx->panel);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  739  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  740  	ret = mipi_dsi_attach(dsi);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  741  	if (ret < 0)
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  742  		goto remove_panel;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  743  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  744  	return ret;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  745  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  746  remove_panel:
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  747  	drm_panel_remove(&ctx->panel);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  748  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08 @749  unregister_backlight:
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  750  	backlight_device_unregister(ctx->bl_dev);
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  751  
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  752  	return ret;
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  753  }
ed29f9426d9bf1b Hoegeun Kwon     2017-03-08  754  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 45675 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2020-08-08  8:10 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-01 12:02 [PATCH] drm/panel: remove return value of function drm_panel_add Bernard Zhao
2020-08-01 12:02 ` Bernard Zhao
2020-08-01 14:27 ` Linus Walleij
2020-08-01 14:27   ` Linus Walleij
2020-08-01 21:11 ` kernel test robot
2020-08-02  7:07 ` Sam Ravnborg
2020-08-02  7:07   ` Sam Ravnborg
2020-08-02  8:00   ` [PATCH] drm: Remove unnecessary drm_panel_attach and drm_panel_detach Joe Perches
2020-08-02  8:00     ` Joe Perches
2020-08-02  8:44     ` Sam Ravnborg
2020-08-02  8:44       ` Sam Ravnborg
2020-08-02 16:43       ` [PATCH V2] " Joe Perches
2020-08-02 16:43         ` Joe Perches
2020-08-02 17:34         ` Sam Ravnborg
2020-08-02 17:34           ` Sam Ravnborg
2020-08-08  8:10           ` Sam Ravnborg
2020-08-08  8:10             ` Sam Ravnborg
2020-08-01 19:01 [PATCH] drm/panel: remove return value of function drm_panel_add kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.