One fixup series
- Make sure to restore bridge chain order by enabling the drm panel
prepare_prev_first flag of the bridge and panel drivers - tc358764 display
bridge device and Samsung s6e3ha2/s6e63j0x03/s6e8aa0 panel devices.
In case of any boards using Exynos5433 SoC, below Display pipeline could be
configured.
Decon -> MIC -> MIPI-DSI -> Panel
So, this patch series makes sure to enable previous bridge device before
enabling MIPI-DSI device.
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEENRKOoF7NhdPGpscnVzg0iQxDErgFAmPXTiwACgkQVzg0iQxD
ErguIA/9G52JmEJuMsXV8+lnyNUrfA/mie4VKqhv8o0BIEi4aHmY1BTsvehHyFMm
jtarijXDCOn9bYP7v68b6ilK5+N9HDACaka4pxUXV2FIg4khMfKSK3D/Ewq6vOaX
0qKS0AjHgOwdZvkdl5a2CGuY13wZAXxxjUl/hbBoCRpaasIJoEqJIBaujm6xO3KJ
ggMzOtN/OiWduzD7bCgyPg1cpXAsliyvxuHjcSX61ujl+r37f6r6B3Fp6WV/OmQl
Smdm4hfIG/syNYlFhYjetpFUkJjUKUemRaP8Wka8/b0CsHR2R0QfYcJhEwbGCvd5
114az2FSSz7iaStLBuAVlLYy4RC+28KGHGt6y9Fl1t7o4FfAQZBz2dGAZXWOPg6t
phgTEy+amkizlAlfTe0td7mMLSDW5vOF5VzxFgBSO7p/z+6ygr/5jq9D7BL4/nrT
D8q1e0MP4Xfno4JY5RcO5tTEO958FV0JiES+NSPsWRA/DoITdMrUld8JDp8n4Tp+
J/V2JpfjMVvKDHjhw9bqJU9DlNpm1A25TEfqBXqZW4y4qRgwjGofXmfCby3yKbQ2
lEL0Fxs261pjC8QBEjdoCn2DGQ2gu5VwzACw9Nq5KXR59WemWV1WpXVj1QIyYj/t
Xzse2k/kl+QaLCsOvXqFEt1fQhMEJm0E3s/pUDc+IQIkTJbdcBM=
=L8+N
-----END PGP SIGNATURE-----
Merge tag 'exynos-drm-next-for-v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next
One fixup series
- Make sure to restore bridge chain order by enabling the drm panel
prepare_prev_first flag of the bridge and panel drivers - tc358764 display
bridge device and Samsung s6e3ha2/s6e63j0x03/s6e8aa0 panel devices.
In case of any boards using Exynos5433 SoC, below Display pipeline could be
configured.
Decon -> MIC -> MIPI-DSI -> Panel
So, this patch series makes sure to enable previous bridge device before
enabling MIPI-DSI device.
Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Inki Dae <inki.dae@samsung.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230130051055.15340-1-inki.dae@samsung.com
pull/938/head
commit
820ba9aa33
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -1445,7 +1445,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 = {
|
||||
|
|
@ -1491,7 +1492,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.
|
||||
|
|
@ -1726,6 +1730,7 @@ static int exynos_dsi_probe(struct platform_device *pdev)
|
|||
dsi->bridge.funcs = &exynos_dsi_bridge_funcs;
|
||||
dsi->bridge.of_node = dev->of_node;
|
||||
dsi->bridge.type = DRM_MODE_CONNECTOR_DSI;
|
||||
dsi->bridge.pre_enable_prev_first = true;
|
||||
|
||||
ret = component_add(dev, &exynos_dsi_component_ops);
|
||||
if (ret)
|
||||
|
|
|
|||
|
|
@ -733,6 +733,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);
|
||||
|
||||
|
|
|
|||
|
|
@ -463,6 +463,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);
|
||||
|
|
|
|||
|
|
@ -1016,6 +1016,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);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue