* [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®