Linux Samsung SOC development
 help / color / mirror / Atom feed
* [PATCH v10 0/3] drm: exynos: dsi: Restore the bridge chain
@ 2022-12-12 14:55 Jagan Teki
  2022-12-12 14:55 ` [PATCH v10 1/3] drm: panel: Enable prepare_prev_first flag for samsung-s6e panels Jagan Teki
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Jagan Teki @ 2022-12-12 14:55 UTC (permalink / raw)
  To: Marek Szyprowski, Inki Dae, Seung-Woo Kim, Kyungmin Park,
	Neil Armstrong, Robert Foss, Andrzej Hajda, Sam Ravnborg
  Cc: Marek Vasut, linux-samsung-soc, dri-devel, linux-amarula,
	Jagan Teki

Split the Exynos DSI bridge chain update patches from Samsung DSIM
bridge driver for easy to apply.

Changes for v10:
- collect Marek.V Review tag

Any inputs?
Jagan.

Jagan Teki (1):
  drm: panel: Enable prepare_prev_first flag for samsung-s6e panels

Marek Szyprowski (2):
  drm/bridge: tc358764: Enable pre_enable_prev_first flag
  drm: exynos: dsi: Restore proper bridge chain order

 drivers/gpu/drm/bridge/tc358764.c                | 1 +
 drivers/gpu/drm/exynos/exynos_drm_dsi.c          | 8 ++++++--
 drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c    | 1 +
 drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c | 1 +
 drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c    | 1 +
 5 files changed, 10 insertions(+), 2 deletions(-)

-- 
2.25.1


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

* [PATCH v10 1/3] drm: panel: Enable prepare_prev_first flag for samsung-s6e panels
  2022-12-12 14:55 [PATCH v10 0/3] drm: exynos: dsi: Restore the bridge chain Jagan Teki
@ 2022-12-12 14:55 ` Jagan Teki
  2022-12-12 14:55 ` [PATCH v10 2/3] drm/bridge: tc358764: Enable pre_enable_prev_first flag Jagan Teki
  2022-12-12 14:55 ` [PATCH v10 3/3] drm: exynos: dsi: Restore proper bridge chain order Jagan Teki
  2 siblings, 0 replies; 4+ messages in thread
From: Jagan Teki @ 2022-12-12 14:55 UTC (permalink / raw)
  To: Marek Szyprowski, Inki Dae, Seung-Woo Kim, Kyungmin Park,
	Neil Armstrong, Robert Foss, Andrzej Hajda, Sam Ravnborg
  Cc: Marek Vasut, linux-samsung-soc, dri-devel, linux-amarula,
	Jagan Teki

Enable the drm panel prepare_prev_first flag so-that the previous
controller should be prepared first before the prepare for the
panel is called.
   
samsung-s6e3ha2, samsung-s6e63j0x03 and samsung-s6e8aa0 are the
effected samsung-s6e panels for this change.
   
This makes sure that the previous controller, likely to be a DSI
host controller should be initialized to LP-11 before the panel
is powered up.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
Changes for v10:
- none

 drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c    | 1 +
 drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c | 1 +
 drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c    | 1 +
 3 files changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
index 5c621b15e84c..1355b2c27932 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
@@ -731,6 +731,7 @@ static int s6e3ha2_probe(struct mipi_dsi_device *dsi)
 
 	drm_panel_init(&ctx->panel, dev, &s6e3ha2_drm_funcs,
 		       DRM_MODE_CONNECTOR_DSI);
+	ctx->panel.prepare_prev_first = true;
 
 	drm_panel_add(&ctx->panel);
 
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
index e06fd35de814..3223a9d06a50 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
@@ -462,6 +462,7 @@ static int s6e63j0x03_probe(struct mipi_dsi_device *dsi)
 
 	drm_panel_init(&ctx->panel, dev, &s6e63j0x03_funcs,
 		       DRM_MODE_CONNECTOR_DSI);
+	ctx->panel.prepare_prev_first = true;
 
 	ctx->bl_dev = backlight_device_register("s6e63j0x03", dev, ctx,
 						&s6e63j0x03_bl_ops, NULL);
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
index 54213beafaf5..362eb10f10ce 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
@@ -1018,6 +1018,7 @@ static int s6e8aa0_probe(struct mipi_dsi_device *dsi)
 
 	drm_panel_init(&ctx->panel, dev, &s6e8aa0_drm_funcs,
 		       DRM_MODE_CONNECTOR_DSI);
+	ctx->panel.prepare_prev_first = true;
 
 	drm_panel_add(&ctx->panel);
 
-- 
2.25.1


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

* [PATCH v10 2/3] drm/bridge: tc358764: Enable pre_enable_prev_first flag
  2022-12-12 14:55 [PATCH v10 0/3] drm: exynos: dsi: Restore the bridge chain Jagan Teki
  2022-12-12 14:55 ` [PATCH v10 1/3] drm: panel: Enable prepare_prev_first flag for samsung-s6e panels Jagan Teki
@ 2022-12-12 14:55 ` Jagan Teki
  2022-12-12 14:55 ` [PATCH v10 3/3] drm: exynos: dsi: Restore proper bridge chain order Jagan Teki
  2 siblings, 0 replies; 4+ messages in thread
From: Jagan Teki @ 2022-12-12 14:55 UTC (permalink / raw)
  To: Marek Szyprowski, Inki Dae, Seung-Woo Kim, Kyungmin Park,
	Neil Armstrong, Robert Foss, Andrzej Hajda, Sam Ravnborg
  Cc: Marek Vasut, linux-samsung-soc, dri-devel, linux-amarula,
	Jagan Teki

From: Marek Szyprowski <m.szyprowski@samsung.com>

Enable the drm bridge pre_enable_prev_first flag so that the
previous bridge pre_enable should be called first before the
pre_enable for the tc358764 bridge is called.

This makes sure that the previous bridge should be initialized
properly before the tc358764 bridge is powered up.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
Changes for v10:
- none

 drivers/gpu/drm/bridge/tc358764.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c
index 53259c12d777..f85654f1b104 100644
--- a/drivers/gpu/drm/bridge/tc358764.c
+++ b/drivers/gpu/drm/bridge/tc358764.c
@@ -369,6 +369,7 @@ static int tc358764_probe(struct mipi_dsi_device *dsi)
 
 	ctx->bridge.funcs = &tc358764_bridge_funcs;
 	ctx->bridge.of_node = dev->of_node;
+	ctx->bridge.pre_enable_prev_first = true;
 
 	drm_bridge_add(&ctx->bridge);
 
-- 
2.25.1


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

* [PATCH v10 3/3] drm: exynos: dsi: Restore proper bridge chain order
  2022-12-12 14:55 [PATCH v10 0/3] drm: exynos: dsi: Restore the bridge chain Jagan Teki
  2022-12-12 14:55 ` [PATCH v10 1/3] drm: panel: Enable prepare_prev_first flag for samsung-s6e panels Jagan Teki
  2022-12-12 14:55 ` [PATCH v10 2/3] drm/bridge: tc358764: Enable pre_enable_prev_first flag Jagan Teki
@ 2022-12-12 14:55 ` Jagan Teki
  2 siblings, 0 replies; 4+ messages in thread
From: Jagan Teki @ 2022-12-12 14:55 UTC (permalink / raw)
  To: Marek Szyprowski, Inki Dae, Seung-Woo Kim, Kyungmin Park,
	Neil Armstrong, Robert Foss, Andrzej Hajda, Sam Ravnborg
  Cc: Marek Vasut, linux-samsung-soc, dri-devel, linux-amarula,
	Jagan Teki

From: Marek Szyprowski <m.szyprowski@samsung.com>

Restore the proper bridge chain by finding the previous bridge
in the chain instead of passing NULL.

This establishes a proper bridge chain while attaching downstream
bridges.

Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
Changes for v10:
- collect Marek review tag

 drivers/gpu/drm/exynos/exynos_drm_dsi.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
index ec673223d6b7..e5b1540c4ae4 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
@@ -1428,7 +1428,8 @@ static int exynos_dsi_attach(struct drm_bridge *bridge,
 {
 	struct exynos_dsi *dsi = bridge_to_dsi(bridge);
 
-	return drm_bridge_attach(bridge->encoder, dsi->out_bridge, NULL, flags);
+	return drm_bridge_attach(bridge->encoder, dsi->out_bridge, bridge,
+				 flags);
 }
 
 static const struct drm_bridge_funcs exynos_dsi_bridge_funcs = {
@@ -1474,7 +1475,10 @@ static int exynos_dsi_host_attach(struct mipi_dsi_host *host,
 
 	drm_bridge_add(&dsi->bridge);
 
-	drm_bridge_attach(encoder, &dsi->bridge, NULL, 0);
+	drm_bridge_attach(encoder, &dsi->bridge,
+			  list_first_entry_or_null(&encoder->bridge_chain,
+						   struct drm_bridge,
+						   chain_node), 0);
 
 	/*
 	 * This is a temporary solution and should be made by more generic way.
-- 
2.25.1


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

end of thread, other threads:[~2022-12-12 14:55 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-12-12 14:55 [PATCH v10 0/3] drm: exynos: dsi: Restore the bridge chain Jagan Teki
2022-12-12 14:55 ` [PATCH v10 1/3] drm: panel: Enable prepare_prev_first flag for samsung-s6e panels Jagan Teki
2022-12-12 14:55 ` [PATCH v10 2/3] drm/bridge: tc358764: Enable pre_enable_prev_first flag Jagan Teki
2022-12-12 14:55 ` [PATCH v10 3/3] drm: exynos: dsi: Restore proper bridge chain order Jagan Teki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox