* [PATCH v2 00/37] drm/bridge: Convert all bridges to atomic
@ 2026-07-07 15:11 Maxime Ripard
2026-07-07 15:11 ` [PATCH v2 28/37] drm/mediatek: dpi: Switch to atomic bridge callbacks Maxime Ripard
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Maxime Ripard @ 2026-07-07 15:11 UTC (permalink / raw)
To: Andrzej Hajda, Neil Armstrong, Robert Foss, Maarten Lankhorst,
Thomas Zimmermann, David Airlie, Simona Vetter
Cc: Laurent Pinchart, Jonas Karlman, Jernej Skrabec, Luca Ceresoli,
dri-devel, Maxime Ripard, Joshua Peisach, Sasha Finkelstein,
Janne Grunau, asahi, Benson Leung, Guenter Roeck, chrome-platform,
Francesco Dolcini, Francesco Dolcini, Laurent Pinchart, Ian Ray,
Peter Senna Tschudin, Martyn Welch, Manikandan Muralidharan,
Dharma Balasubiramani, Russell King, Inki Dae, Seung-Woo Kim,
Kyungmin Park, Krzysztof Kozlowski, Alim Akhtar, linux-arm-kernel,
linux-samsung-soc, Linus Walleij, Chun-Kuang Hu, Philipp Zabel,
Matthias Brugger, AngeloGioacchino Del Regno, linux-mediatek,
Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, freedreno, Tomi Valkeinen,
Alain Volmat, Raphael Gallais-Pou, Ian Ray
Hi,
Over the years, most of the bridges have been converted to atomic
modesetting and hooks, but not all of them. This forces us to maintain
two different code path in quite a few places, which is pretty
bothersome. The switch to atomic modesetting for legacy bridges though
is pretty trivial, and we don't have a lot of drivers still using the
legacy path.
This series converts all bridges to atomic modesetting and drops the
legacy codepaths where relevant.
Let me know what you think,
Maxime
Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Changes in v2:
- Rebase on top of current drm-misc-next
- Improve commit messages
- Fix the references in the doc
- Link to v1: https://lore.kernel.org/r/20260617-drm-all-atomic-bridges-v1-0-b63e6316166b@kernel.org
---
Maxime Ripard (37):
drm/adp: mipi: Add atomic bridge state handlers
drm/bridge: analogix-anx6345: Switch to atomic bridge callbacks
drm/bridge: analogix-anx78xx: Switch to atomic bridge callbacks
drm/bridge: aux-bridge: Add atomic bridge state handlers
drm/bridge: aux-hpd-bridge: Add atomic bridge state handlers
drm/bridge: chrontel-ch7033: Switch to atomic bridge callbacks
drm/bridge: cros-ec-anx7688: Add atomic bridge state handlers
drm/bridge: lontium-lt8713sx: Add atomic bridge state handlers
drm/bridge: lontium-lt8912b: Switch to atomic bridge callbacks
drm/bridge: lontium-lt9611uxc: Add atomic bridge state handlers
drm/bridge: lvds-codec: Switch to atomic bridge callbacks
drm/bridge: megachips-stdpxxxx-ge-b850v3-fw: Add atomic bridge state handlers
drm/bridge: microchip-lvds: Add atomic bridge state handlers
drm/bridge: nxp-ptn3460: Switch to atomic bridge callbacks
drm/bridge: of-display-mode-bridge: Add atomic bridge state handlers
drm/bridge: parade-ps8622: Switch to atomic bridge callbacks
drm/bridge: sii9234: Add atomic bridge state handlers
drm/bridge: sil-sii8620: Add atomic bridge state handlers
drm/bridge: simple-bridge: Switch to atomic bridge callbacks
drm/bridge: tc358764: Switch to atomic bridge callbacks
drm/bridge: tda998x: Switch to atomic bridge callbacks
drm/bridge: ti-tfp410: Switch to atomic bridge callbacks
drm/bridge: ti-tpd12s015: Add atomic bridge state handlers
drm/bridge: thc63lvd1024: Switch to atomic bridge callbacks
drm/bridge: waveshare-dsi: Switch to atomic bridge callbacks
drm/exynos: mic: Switch to atomic bridge callbacks
drm/mcde: dsi: Add atomic bridge state handlers
drm/mediatek: dpi: Switch to atomic bridge callbacks
drm/msm: dsi: Switch to atomic bridge callbacks
drm/omap: dpi: Switch to atomic bridge callbacks
drm/omap: dsi: Switch to atomic bridge callbacks
drm/omap: sdi: Switch to atomic bridge callbacks
drm/omap: venc: Switch to atomic bridge callbacks
drm/sti: dvo: Switch to atomic bridge callbacks
drm/sti: hda: Switch to atomic bridge callbacks
drm/sti: hdmi: Switch to atomic bridge callbacks
drm/bridge: Remove legacy bridge callback support
drivers/gpu/drm/adp/adp-mipi.c | 4 +
drivers/gpu/drm/bridge/analogix/analogix-anx6345.c | 13 ++-
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c | 13 ++-
drivers/gpu/drm/bridge/aux-bridge.c | 4 +
drivers/gpu/drm/bridge/aux-hpd-bridge.c | 4 +
drivers/gpu/drm/bridge/chrontel-ch7033.c | 13 ++-
drivers/gpu/drm/bridge/cros-ec-anx7688.c | 4 +
drivers/gpu/drm/bridge/lontium-lt8713sx.c | 4 +
drivers/gpu/drm/bridge/lontium-lt8912b.c | 8 +-
drivers/gpu/drm/bridge/lontium-lt9611uxc.c | 3 +
drivers/gpu/drm/bridge/lvds-codec.c | 10 +-
.../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 3 +
drivers/gpu/drm/bridge/microchip-lvds.c | 3 +
drivers/gpu/drm/bridge/nxp-ptn3460.c | 17 ++--
drivers/gpu/drm/bridge/of-display-mode-bridge.c | 4 +
drivers/gpu/drm/bridge/parade-ps8622.c | 18 ++--
drivers/gpu/drm/bridge/sii9234.c | 4 +
drivers/gpu/drm/bridge/sil-sii8620.c | 4 +
drivers/gpu/drm/bridge/simple-bridge.c | 13 ++-
drivers/gpu/drm/bridge/tc358764.c | 13 ++-
drivers/gpu/drm/bridge/tda998x_drv.c | 13 ++-
drivers/gpu/drm/bridge/thc63lvd1024.c | 14 ++-
drivers/gpu/drm/bridge/ti-tfp410.c | 10 +-
drivers/gpu/drm/bridge/ti-tpd12s015.c | 4 +
drivers/gpu/drm/bridge/waveshare-dsi.c | 14 ++-
drivers/gpu/drm/drm_bridge.c | 61 ++++--------
drivers/gpu/drm/exynos/exynos_drm_mic.c | 14 ++-
drivers/gpu/drm/mcde/mcde_dsi.c | 3 +
drivers/gpu/drm/mediatek/mtk_dpi.c | 10 +-
drivers/gpu/drm/msm/dsi/dsi_manager.c | 13 ++-
drivers/gpu/drm/omapdrm/dss/dpi.c | 14 ++-
drivers/gpu/drm/omapdrm/dss/dsi.c | 14 ++-
drivers/gpu/drm/omapdrm/dss/sdi.c | 14 ++-
drivers/gpu/drm/omapdrm/dss/venc.c | 14 ++-
drivers/gpu/drm/sti/sti_dvo.c | 20 ++--
drivers/gpu/drm/sti/sti_hda.c | 20 ++--
drivers/gpu/drm/sti/sti_hdmi.c | 20 ++--
drivers/gpu/drm/tests/drm_bridge_test.c | 104 ---------------------
include/drm/drm_bridge.h | 103 --------------------
39 files changed, 287 insertions(+), 351 deletions(-)
---
base-commit: 928e01b05e0a147db8df1152f95acbb801630308
change-id: 20260615-drm-all-atomic-bridges-4da4fe7df58f
Best regards,
--
Maxime Ripard <mripard@kernel.org>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 28/37] drm/mediatek: dpi: Switch to atomic bridge callbacks
2026-07-07 15:11 [PATCH v2 00/37] drm/bridge: Convert all bridges to atomic Maxime Ripard
@ 2026-07-07 15:11 ` Maxime Ripard
2026-07-08 17:12 ` [PATCH v2 00/37] drm/bridge: Convert all bridges to atomic Luca Ceresoli
2026-07-15 7:50 ` Maxime Ripard
2 siblings, 0 replies; 4+ messages in thread
From: Maxime Ripard @ 2026-07-07 15:11 UTC (permalink / raw)
To: Andrzej Hajda, Neil Armstrong, Robert Foss, Maarten Lankhorst,
Thomas Zimmermann, David Airlie, Simona Vetter
Cc: Laurent Pinchart, Jonas Karlman, Jernej Skrabec, Luca Ceresoli,
dri-devel, Maxime Ripard, Chun-Kuang Hu, Philipp Zabel,
Matthias Brugger, AngeloGioacchino Del Regno, linux-mediatek,
linux-arm-kernel
The dpi bridge uses the legacy non-atomic enable and disable bridge
callbacks.
In order to remove the legacy bridge callback support from the DRM
bridge core, switch to their atomic counterparts and add the bridge
atomic state handlers.
Generated by the following Coccinelle script:
@ is_bridge @
identifier funcs;
@@
struct drm_bridge_funcs funcs = {
...,
};
@ has_create_state depends on is_bridge @
identifier funcs, f;
@@
struct drm_bridge_funcs funcs = {
...,
.atomic_create_state = f,
...,
};
@ update_struct depends on (is_bridge && !has_create_state) @
identifier is_bridge.funcs;
identifier f;
@@
struct drm_bridge_funcs funcs = {
+ .atomic_create_state = drm_atomic_helper_bridge_create_state,
+ .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state,
+ .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,
...,
};
@ update_pre_enable_struct depends on is_bridge @
identifier is_bridge.funcs;
identifier f;
@@
struct drm_bridge_funcs funcs = {
...,
- .pre_enable = f,
+ .atomic_pre_enable = f,
...,
};
@ update_pre_enable_impl depends on update_pre_enable_struct @
identifier update_pre_enable_struct.f;
identifier b;
@@
-void f(struct drm_bridge *b)
+void f(struct drm_bridge *b, struct drm_atomic_commit *commit)
{
...
}
@ update_enable_struct depends on is_bridge @
identifier is_bridge.funcs;
identifier f;
@@
struct drm_bridge_funcs funcs = {
...,
- .enable = f,
+ .atomic_enable = f,
...,
};
@ update_enable_impl depends on update_enable_struct @
identifier update_enable_struct.f;
identifier b;
@@
-void f(struct drm_bridge *b)
+void f(struct drm_bridge *b, struct drm_atomic_commit *commit)
{
...
}
@ update_disable_struct depends on is_bridge @
identifier is_bridge.funcs;
identifier f;
@@
struct drm_bridge_funcs funcs = {
...,
- .disable = f,
+ .atomic_disable = f,
...,
};
@ update_disable_impl depends on update_disable_struct @
identifier update_disable_struct.f;
identifier b;
@@
-void f(struct drm_bridge *b)
+void f(struct drm_bridge *b, struct drm_atomic_commit *commit)
{
...
}
@ update_post_disable_struct depends on is_bridge @
identifier is_bridge.funcs;
identifier f;
@@
struct drm_bridge_funcs funcs = {
...,
- .post_disable = f,
+ .atomic_post_disable = f,
...,
};
@ update_post_disable_impl depends on update_post_disable_struct @
identifier update_post_disable_struct.f;
identifier b;
@@
-void f(struct drm_bridge *b)
+void f(struct drm_bridge *b, struct drm_atomic_commit *commit)
{
...
}
Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
To: Chun-Kuang Hu <chunkuang.hu@kernel.org>
To: Philipp Zabel <p.zabel@pengutronix.de>
To: Matthias Brugger <matthias.bgg@gmail.com>
To: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Cc: linux-mediatek@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
---
drivers/gpu/drm/mediatek/mtk_dpi.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/mediatek/mtk_dpi.c
index 959c994eef24..0e4f430de983 100644
--- a/drivers/gpu/drm/mediatek/mtk_dpi.c
+++ b/drivers/gpu/drm/mediatek/mtk_dpi.c
@@ -848,21 +848,23 @@ static void mtk_dpi_bridge_mode_set(struct drm_bridge *bridge,
struct mtk_dpi *dpi = bridge_to_dpi(bridge);
drm_mode_copy(&dpi->mode, adjusted_mode);
}
-static void mtk_dpi_bridge_disable(struct drm_bridge *bridge)
+static void mtk_dpi_bridge_disable(struct drm_bridge *bridge,
+ struct drm_atomic_commit *commit)
{
struct mtk_dpi *dpi = bridge_to_dpi(bridge);
mtk_dpi_power_off(dpi);
if (dpi->pinctrl && dpi->pins_gpio)
pinctrl_select_state(dpi->pinctrl, dpi->pins_gpio);
}
-static void mtk_dpi_bridge_enable(struct drm_bridge *bridge)
+static void mtk_dpi_bridge_enable(struct drm_bridge *bridge,
+ struct drm_atomic_commit *commit)
{
struct mtk_dpi *dpi = bridge_to_dpi(bridge);
if (dpi->pinctrl && dpi->pins_dpi)
pinctrl_select_state(dpi->pinctrl, dpi->pins_dpi);
@@ -980,12 +982,12 @@ static void mtk_dpi_debugfs_init(struct drm_bridge *bridge, struct dentry *root)
static const struct drm_bridge_funcs mtk_dpi_bridge_funcs = {
.attach = mtk_dpi_bridge_attach,
.mode_set = mtk_dpi_bridge_mode_set,
.mode_valid = mtk_dpi_bridge_mode_valid,
- .disable = mtk_dpi_bridge_disable,
- .enable = mtk_dpi_bridge_enable,
+ .atomic_disable = mtk_dpi_bridge_disable,
+ .atomic_enable = mtk_dpi_bridge_enable,
.atomic_check = mtk_dpi_bridge_atomic_check,
.atomic_get_output_bus_fmts = mtk_dpi_bridge_atomic_get_output_bus_fmts,
.atomic_get_input_bus_fmts = mtk_dpi_bridge_atomic_get_input_bus_fmts,
.atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,
.atomic_destroy_state = drm_atomic_helper_bridge_destroy_state,
--
2.54.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2 00/37] drm/bridge: Convert all bridges to atomic
2026-07-07 15:11 [PATCH v2 00/37] drm/bridge: Convert all bridges to atomic Maxime Ripard
2026-07-07 15:11 ` [PATCH v2 28/37] drm/mediatek: dpi: Switch to atomic bridge callbacks Maxime Ripard
@ 2026-07-08 17:12 ` Luca Ceresoli
2026-07-15 7:50 ` Maxime Ripard
2 siblings, 0 replies; 4+ messages in thread
From: Luca Ceresoli @ 2026-07-08 17:12 UTC (permalink / raw)
To: Maxime Ripard, Andrzej Hajda, Neil Armstrong, Robert Foss,
Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
Cc: Laurent Pinchart, Jonas Karlman, Jernej Skrabec, dri-devel,
Joshua Peisach, Sasha Finkelstein, Janne Grunau, asahi,
Benson Leung, Guenter Roeck, chrome-platform, Francesco Dolcini,
Francesco Dolcini, Laurent Pinchart, Ian Ray,
Peter Senna Tschudin, Martyn Welch, Manikandan Muralidharan,
Dharma Balasubiramani, Russell King, Inki Dae, Seung-Woo Kim,
Kyungmin Park, Krzysztof Kozlowski, Alim Akhtar, linux-arm-kernel,
linux-samsung-soc, Linus Walleij, Chun-Kuang Hu, Philipp Zabel,
Matthias Brugger, AngeloGioacchino Del Regno, linux-mediatek,
Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, freedreno, Tomi Valkeinen,
Alain Volmat, Raphael Gallais-Pou
Il 7 luglio 2026 17:11:07 CEST, Maxime Ripard <mripard@kernel.org> ha scritto:
>Hi,
>
>Over the years, most of the bridges have been converted to atomic
>modesetting and hooks, but not all of them. This forces us to maintain
>two different code path in quite a few places, which is pretty
>bothersome. The switch to atomic modesetting for legacy bridges though
>is pretty trivial, and we don't have a lot of drivers still using the
>legacy path.
>
>This series converts all bridges to atomic modesetting and drops the
>legacy codepaths where relevant.
>
>Let me know what you think,
>Maxime
>
>Signed-off-by: Maxime Ripard <mripard@kernel.org>
I'm out of office so I'm afraid I can only reply from mobile, but I reviewed the series on a real laptop:
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Luca
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 00/37] drm/bridge: Convert all bridges to atomic
2026-07-07 15:11 [PATCH v2 00/37] drm/bridge: Convert all bridges to atomic Maxime Ripard
2026-07-07 15:11 ` [PATCH v2 28/37] drm/mediatek: dpi: Switch to atomic bridge callbacks Maxime Ripard
2026-07-08 17:12 ` [PATCH v2 00/37] drm/bridge: Convert all bridges to atomic Luca Ceresoli
@ 2026-07-15 7:50 ` Maxime Ripard
2 siblings, 0 replies; 4+ messages in thread
From: Maxime Ripard @ 2026-07-15 7:50 UTC (permalink / raw)
To: Andrzej Hajda, Neil Armstrong, Robert Foss, Maarten Lankhorst,
Thomas Zimmermann, David Airlie, Simona Vetter, Maxime Ripard
Cc: Laurent Pinchart, Jonas Karlman, Jernej Skrabec, Luca Ceresoli,
dri-devel, Joshua Peisach, Sasha Finkelstein, Janne Grunau, asahi,
Benson Leung, Guenter Roeck, chrome-platform, Francesco Dolcini,
Francesco Dolcini, Laurent Pinchart, Ian Ray,
Peter Senna Tschudin, Martyn Welch, Manikandan Muralidharan,
Dharma Balasubiramani, Russell King, Inki Dae, Seung-Woo Kim,
Kyungmin Park, Krzysztof Kozlowski, Alim Akhtar, linux-arm-kernel,
linux-samsung-soc, Linus Walleij, Chun-Kuang Hu, Philipp Zabel,
Matthias Brugger, AngeloGioacchino Del Regno, linux-mediatek,
Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, freedreno, Tomi Valkeinen,
Alain Volmat, Raphael Gallais-Pou
On Tue, 07 Jul 2026 17:11:07 +0200, Maxime Ripard wrote:
> Over the years, most of the bridges have been converted to atomic
> modesetting and hooks, but not all of them. This forces us to maintain
> two different code path in quite a few places, which is pretty
> bothersome. The switch to atomic modesetting for legacy bridges though
> is pretty trivial, and we don't have a lot of drivers still using the
> legacy path.
>
> [...]
Applied to misc/kernel.git (drm-misc-next).
Thanks!
Maxime
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-07-15 7:51 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-07 15:11 [PATCH v2 00/37] drm/bridge: Convert all bridges to atomic Maxime Ripard
2026-07-07 15:11 ` [PATCH v2 28/37] drm/mediatek: dpi: Switch to atomic bridge callbacks Maxime Ripard
2026-07-08 17:12 ` [PATCH v2 00/37] drm/bridge: Convert all bridges to atomic Luca Ceresoli
2026-07-15 7:50 ` Maxime Ripard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox