Message ID | 20221005151309.7278-9-jagan@amarulasolutions.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | drm: bridge: Add Samsung MIPI DSIM bridge | expand |
On 10/5/22 17:13, Jagan Teki wrote: [...] > diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c > index f714e49c1eab..f5cd80641cea 100644 > --- a/drivers/gpu/drm/bridge/samsung-dsim.c > +++ b/drivers/gpu/drm/bridge/samsung-dsim.c > @@ -1601,6 +1601,10 @@ static const struct samsung_dsim_host_ops samsung_dsim_generic_host_ops = { > .unregister_host = samsung_dsim_unregister_host, > }; > > +static const struct drm_bridge_timings samsung_dsim_bridge_timings = { > + .input_bus_flags = DRM_BUS_FLAG_DE_LOW, > +}; > + > int samsung_dsim_probe(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > @@ -1681,6 +1685,7 @@ int samsung_dsim_probe(struct platform_device *pdev) > > dsi->bridge.funcs = &samsung_dsim_bridge_funcs; > dsi->bridge.of_node = dev->of_node; > + dsi->bridge.timings = &samsung_dsim_bridge_timings; Is this really valid on Exynos too ? My impression is that the DE_LOW requirement is only needed for MX8MM/MN where the LCDIF-DSIM glue logic inverts the HS/VS/DE signals, while on all other platforms (at least MX8MP) the inversion does not take place, so DE is really active HIGH there.
diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c index f714e49c1eab..f5cd80641cea 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -1601,6 +1601,10 @@ static const struct samsung_dsim_host_ops samsung_dsim_generic_host_ops = { .unregister_host = samsung_dsim_unregister_host, }; +static const struct drm_bridge_timings samsung_dsim_bridge_timings = { + .input_bus_flags = DRM_BUS_FLAG_DE_LOW, +}; + int samsung_dsim_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; @@ -1681,6 +1685,7 @@ int samsung_dsim_probe(struct platform_device *pdev) dsi->bridge.funcs = &samsung_dsim_bridge_funcs; dsi->bridge.of_node = dev->of_node; + dsi->bridge.timings = &samsung_dsim_bridge_timings; dsi->bridge.type = DRM_MODE_CONNECTOR_DSI; if (dsi->plat_data->host_ops && dsi->plat_data->host_ops->register_host)
eLCDIF is expecting to have input_bus_flags as DE_LOW in order to set active low during valid data transfer on each horizontal line. Add DE_LOW flag via drm bridge timings. v7, v6: * none v5: * rebased based on updated bridge changes v4, v3, v2, v1: * none Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> --- drivers/gpu/drm/bridge/samsung-dsim.c | 5 +++++ 1 file changed, 5 insertions(+)