mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v9 0/2] Add displays support for bsh-smm-s2/pro boards
@ 2023-12-18  8:43 Dario Binacchi
  2023-12-18  8:43 ` [PATCH v9 1/2] drm: bridge: samsung-dsim: enter display mode in the enable() callback Dario Binacchi
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Dario Binacchi @ 2023-12-18  8:43 UTC (permalink / raw)
  To: linux-kernel
  Cc: michael, Amarula patchwork, Dario Binacchi, Andrzej Hajda,
	Daniel Vetter, David Airlie, Inki Dae, Jagan Teki,
	Jernej Skrabec, Jonas Karlman, Laurent Pinchart,
	Maarten Lankhorst, Marek Szyprowski, Maxime Ripard,
	Neil Armstrong, Robert Foss, Thomas Zimmermann, dri-devel


The series adds drivers for the displays used by bsh-smm-s2/pro boards.
This required applying some patches to the samsung-dsim driver and the
drm_bridge.c module.

Changes in v9:
- Updated commit message
- Drop [3/3] arm64: dts: imx8mn-bsh-smm-s2/pro: add display setup
  because applied.

Changes in v8:
- Move the 'status' property to the end of the list of nodes:
  - pwm1
  - lcdif
  - mipi_dsi
- Add a newline between properties and child node (mipi_dsi_out).
- Sort the iomuxc node alphabetically
- Rename pwm1grp to blgrp

Changes in v7:
- Drop [3/4] dt-bindings: display: panel: Add synaptics r63353 panel controller
  because applied.

Changes in v6:
- Drop patches:
  - [06/10] drm/panel: Add Synaptics R63353 panel driver
  - [07/10] dt-bindings: display: panel: Add Ilitek ili9805 panel controller
  - [08/10] drm/panel: Add Ilitek ILI9805 panel driver
  - [09/10] drm/panel: ilitek-ili9805: add support for Tianma TM041XDHG01 panel
  Because applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next)
  Drop patches:
  - [01/10] drm/bridge: Fix bridge disable logic
  - [02/10] drm/bridge: Fix a use case in the bridge disable logic
  Because they are wrong

Changes in v3:
- Replace "synaptics,r63353" compatible with "syna,r63353", as
  required by vendor-prefixes.yaml.
- Squash patch [09/11] dt-bindings: ili9805: add compatible string for Tianma TM041XDHG01
  into [07/11] dt-bindings: display: panel: Add Ilitek ili9805 panel controller.

Changes in v2:
- Adjust the mipi_dsi node based on the latest patches merged into
  the mainline in the dtsi files it includes.
- Added to the series the following patches:
  - 0001 drm/bridge: Fix bridge disable logic
  - 0002 drm/bridge: Fix a use case in the bridge disable logic
  - 0003 samsung-dsim: enter display mode in the enable() callback
  - 0004 drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting

Dario Binacchi (2):
  drm: bridge: samsung-dsim: enter display mode in the enable() callback
  drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting

 drivers/gpu/drm/bridge/samsung-dsim.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

-- 
2.43.0


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

* [PATCH v9 1/2] drm: bridge: samsung-dsim: enter display mode in the enable() callback
  2023-12-18  8:43 [PATCH v9 0/2] Add displays support for bsh-smm-s2/pro boards Dario Binacchi
@ 2023-12-18  8:43 ` Dario Binacchi
  2023-12-18  8:43 ` [PATCH v9 2/2] drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting Dario Binacchi
  2024-01-22 15:11 ` [PATCH v9 0/2] Add displays support for bsh-smm-s2/pro boards Robert Foss
  2 siblings, 0 replies; 4+ messages in thread
From: Dario Binacchi @ 2023-12-18  8:43 UTC (permalink / raw)
  To: linux-kernel
  Cc: michael, Amarula patchwork, Dario Binacchi, Andrzej Hajda,
	Daniel Vetter, David Airlie, Inki Dae, Jagan Teki,
	Jernej Skrabec, Jonas Karlman, Laurent Pinchart,
	Maarten Lankhorst, Marek Szyprowski, Maxime Ripard,
	Neil Armstrong, Robert Foss, Thomas Zimmermann, dri-devel

The synaptics-r63353 (panel-bridge) can only be configured in command mode.
So, samsung-dsim (bridge) must not be in display mode during the
prepare()/unprepare() of the panel-bridge. Setting the
"pre_enable_prev_first" flag to true allows the prepare() of the
panel-bridge to be called between the pre_enabled() and enabled() of the
bridge. So, the bridge can enter display mode only in the enabled().
The unprepare() of the panel-bridge is instead called between the disable()
and post_disable() of the bridge. So, the disable() must exit the display
mode (i .e. enter command mode) to allow the panel-bridge to receive DSI
commands.

samsung_dsim_atomic_pre_enable   -> command mode
r63353_panel_prepare             -> send DSI commands
samsung_dsim_atomic_enable       -> enter display mode

samsung_dsim_atomic_disable      -> exit display mode (command mode)
r63353_panel_unprepare           -> send DSI commands
samsung_dsim_atomic_post_disable

Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---

(no changes since v1)

 drivers/gpu/drm/bridge/samsung-dsim.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c
index be5914caa17d..15bf05b2bbe4 100644
--- a/drivers/gpu/drm/bridge/samsung-dsim.c
+++ b/drivers/gpu/drm/bridge/samsung-dsim.c
@@ -1494,7 +1494,6 @@ static void samsung_dsim_atomic_pre_enable(struct drm_bridge *bridge,
 			return;
 
 		samsung_dsim_set_display_mode(dsi);
-		samsung_dsim_set_display_enable(dsi, true);
 	}
 }
 
@@ -1507,6 +1506,7 @@ static void samsung_dsim_atomic_enable(struct drm_bridge *bridge,
 		samsung_dsim_set_display_mode(dsi);
 		samsung_dsim_set_display_enable(dsi, true);
 	} else {
+		samsung_dsim_set_display_enable(dsi, true);
 		samsung_dsim_set_stop_state(dsi, false);
 	}
 
@@ -1524,6 +1524,8 @@ static void samsung_dsim_atomic_disable(struct drm_bridge *bridge,
 	if (!samsung_dsim_hw_is_exynos(dsi->plat_data->hw_type))
 		samsung_dsim_set_stop_state(dsi, true);
 
+	samsung_dsim_set_display_enable(dsi, false);
+
 	dsi->state &= ~DSIM_STATE_VIDOUT_AVAILABLE;
 }
 
@@ -1532,7 +1534,8 @@ static void samsung_dsim_atomic_post_disable(struct drm_bridge *bridge,
 {
 	struct samsung_dsim *dsi = bridge_to_dsi(bridge);
 
-	samsung_dsim_set_display_enable(dsi, false);
+	if (!samsung_dsim_hw_is_exynos(dsi->plat_data->hw_type))
+		samsung_dsim_set_stop_state(dsi, true);
 
 	dsi->state &= ~DSIM_STATE_ENABLED;
 	pm_runtime_put_sync(dsi->dev);
-- 
2.43.0


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

* [PATCH v9 2/2] drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting
  2023-12-18  8:43 [PATCH v9 0/2] Add displays support for bsh-smm-s2/pro boards Dario Binacchi
  2023-12-18  8:43 ` [PATCH v9 1/2] drm: bridge: samsung-dsim: enter display mode in the enable() callback Dario Binacchi
@ 2023-12-18  8:43 ` Dario Binacchi
  2024-01-22 15:11 ` [PATCH v9 0/2] Add displays support for bsh-smm-s2/pro boards Robert Foss
  2 siblings, 0 replies; 4+ messages in thread
From: Dario Binacchi @ 2023-12-18  8:43 UTC (permalink / raw)
  To: linux-kernel
  Cc: michael, Amarula patchwork, Dario Binacchi, Andrzej Hajda,
	Daniel Vetter, David Airlie, Inki Dae, Jagan Teki,
	Jernej Skrabec, Jonas Karlman, Laurent Pinchart,
	Maarten Lankhorst, Marek Szyprowski, Maxime Ripard,
	Neil Armstrong, Robert Foss, Thomas Zimmermann, dri-devel

The patch completes the setting of CLKLANE_STOP for the imx8m{m,n,p}
platforms (i. e. not exynos).

Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>

---

Changes in v9:
- Updated commit message
- Drop [3/3] arm64: dts: imx8mn-bsh-smm-s2/pro: add display setup
  because applied.

Changes in v8:
- Move the 'status' property to the end of the list of nodes:
  - pwm1
  - lcdif
  - mipi_dsi
- Add a newline between properties and child node (mipi_dsi_out).
- Sort the iomuxc node alphabetically
- Rename pwm1grp to blgrp

Changes in v7:
- Drop [3/4] dt-bindings: display: panel: Add synaptics r63353 panel controller
  because applied.

Changes in v6:
- Drop patches:
  - [06/10] drm/panel: Add Synaptics R63353 panel driver
  - [07/10] dt-bindings: display: panel: Add Ilitek ili9805 panel controller
  - [08/10] drm/panel: Add Ilitek ILI9805 panel driver
  - [09/10] drm/panel: ilitek-ili9805: add support for Tianma TM041XDHG01 panel
  Because applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next)
  Drop patches:
  - [01/10] drm/bridge: Fix bridge disable logic
  - [02/10] drm/bridge: Fix a use case in the bridge disable logic
  Because they are wrong

Changes in v3:
- Replace "synaptics,r63353" compatible with "syna,r63353", as
  required by vendor-prefixes.yaml.
- Squash patch [09/11] dt-bindings: ili9805: add compatible string for Tianma TM041XDHG01
  into [07/11] dt-bindings: display: panel: Add Ilitek ili9805 panel controller.

Changes in v2:
- Adjust the mipi_dsi node based on the latest patches merged into
  the mainline in the dtsi files it includes.
- Added to the series the following patches:
  - 0001 drm/bridge: Fix bridge disable logic
  - 0002 drm/bridge: Fix a use case in the bridge disable logic
  - 0003 samsung-dsim: enter display mode in the enable() callback
  - 0004 drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting

 drivers/gpu/drm/bridge/samsung-dsim.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c
index 15bf05b2bbe4..13f181c99d7e 100644
--- a/drivers/gpu/drm/bridge/samsung-dsim.c
+++ b/drivers/gpu/drm/bridge/samsung-dsim.c
@@ -96,6 +96,7 @@
 #define DSIM_MFLUSH_VS			BIT(29)
 /* This flag is valid only for exynos3250/3472/5260/5430 */
 #define DSIM_CLKLANE_STOP		BIT(30)
+#define DSIM_NON_CONTINUOUS_CLKLANE	BIT(31)
 
 /* DSIM_ESCMODE */
 #define DSIM_TX_TRIGGER_RST		BIT(4)
@@ -945,8 +946,12 @@ static int samsung_dsim_init_link(struct samsung_dsim *dsi)
 	 * power consumption.
 	 */
 	if (driver_data->has_clklane_stop &&
-	    dsi->mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS)
+	    dsi->mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS) {
+		if (!samsung_dsim_hw_is_exynos(dsi->plat_data->hw_type))
+			reg |= DSIM_NON_CONTINUOUS_CLKLANE;
+
 		reg |= DSIM_CLKLANE_STOP;
+	}
 	samsung_dsim_write(dsi, DSIM_CONFIG_REG, reg);
 
 	lanes_mask = BIT(dsi->lanes) - 1;
-- 
2.43.0


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

* Re: [PATCH v9 0/2] Add displays support for bsh-smm-s2/pro boards
  2023-12-18  8:43 [PATCH v9 0/2] Add displays support for bsh-smm-s2/pro boards Dario Binacchi
  2023-12-18  8:43 ` [PATCH v9 1/2] drm: bridge: samsung-dsim: enter display mode in the enable() callback Dario Binacchi
  2023-12-18  8:43 ` [PATCH v9 2/2] drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting Dario Binacchi
@ 2024-01-22 15:11 ` Robert Foss
  2 siblings, 0 replies; 4+ messages in thread
From: Robert Foss @ 2024-01-22 15:11 UTC (permalink / raw)
  To: linux-kernel, Dario Binacchi
  Cc: Laurent Pinchart, Inki Dae, Maarten Lankhorst, Thomas Zimmermann,
	michael, Jonas Karlman, Marek Szyprowski, Andrzej Hajda,
	Jagan Teki, Jernej Skrabec, Daniel Vetter, David Airlie,
	Amarula patchwork, Maxime Ripard, dri-devel, Neil Armstrong

On Mon, 18 Dec 2023 09:43:36 +0100, Dario Binacchi wrote:
> The series adds drivers for the displays used by bsh-smm-s2/pro boards.
> This required applying some patches to the samsung-dsim driver and the
> drm_bridge.c module.
> 
> Changes in v9:
> - Updated commit message
> - Drop [3/3] arm64: dts: imx8mn-bsh-smm-s2/pro: add display setup
>   because applied.
> 
> [...]

Applied, thanks!

[1/2] drm: bridge: samsung-dsim: enter display mode in the enable() callback
      https://cgit.freedesktop.org/drm/drm-misc/commit/?id=b2fe2292624a
[2/2] drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting
      https://cgit.freedesktop.org/drm/drm-misc/commit/?id=72a0cfdc3ad7



Rob


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

end of thread, other threads:[~2024-01-22 15:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-18  8:43 [PATCH v9 0/2] Add displays support for bsh-smm-s2/pro boards Dario Binacchi
2023-12-18  8:43 ` [PATCH v9 1/2] drm: bridge: samsung-dsim: enter display mode in the enable() callback Dario Binacchi
2023-12-18  8:43 ` [PATCH v9 2/2] drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting Dario Binacchi
2024-01-22 15:11 ` [PATCH v9 0/2] Add displays support for bsh-smm-s2/pro boards Robert Foss

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

all inboxes | Powered by JetHome®