Skip to content

Commit f5b1819

Browse files
laeyraudChun-Kuang Hu
authored andcommitted
drm/mediatek: dsi: Fix DSI host and panel bridge pre-enable order
Since commit c9b1150 ("drm/atomic-helper: Re-order bridge chain pre-enable and post-disable"), the bridge pre_enable callbacks are now called before crtc enable, and the bridge post_disable callbacks after the crtc disable. In the mediatek-drm driver, this change leads to transfer errors on mtk_dsi_host_transfer callback processing during the panel bridge pre-enable sequence because the DSI host bridge pre_enable and CRTC enable sequences, that are enabling the required clocks and PHY using mtk_dsi_poweron function, are called after. So, in order to fix this call order issue, request the DSI host bridge be pre-enabled before panel bridge by setting pre_enable_prev_first flag on DSI device bridge in the mtk_dsi_host_attach function. Fixes: c9b1150 ("drm/atomic-helper: Re-order bridge chain pre-enable and post-disable") Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Reviewed-by: CK Hu <ck.hu@mediatek.com> Link: https://patchwork.kernel.org/project/dri-devel/patch/20250701-mediatek-drm-fix-dsi-panel-init-v1-1-7af4adb9fdeb@collabora.com/ Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
1 parent 0c6b24d commit f5b1819

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

drivers/gpu/drm/mediatek/mtk_dsi.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1002,6 +1002,12 @@ static int mtk_dsi_host_attach(struct mipi_dsi_host *host,
10021002
return PTR_ERR(dsi->next_bridge);
10031003
}
10041004

1005+
/*
1006+
* set flag to request the DSI host bridge be pre-enabled before device bridge
1007+
* in the chain, so the DSI host is ready when the device bridge is pre-enabled
1008+
*/
1009+
dsi->next_bridge->pre_enable_prev_first = true;
1010+
10051011
drm_bridge_add(&dsi->bridge);
10061012

10071013
ret = component_add(host->dev, &mtk_dsi_component_ops);

0 commit comments

Comments
 (0)