Message ID | 20230123151212.269082-11-jagan@amarulasolutions.com |
---|---|
State | Superseded |
Headers | show |
Series | drm: Add Samsung MIPI DSIM bridge | expand |
On 1/23/23 16:12, Jagan Teki wrote: > LCDIF-DSIM glue logic inverts the HS/VS/DE signals and expecting > the i.MX8M Mini/Nano DSI host to add additional Data Enable signal > active low (DE_LOW). This makes the valid data transfer on each > horizontal line. > > So, add additional bus flags DE_LOW setting via input_bus_flags > for i.MX8M Mini/Nano platforms. > > Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de> > Suggested-by: Marek Vasut <marex@denx.de> > Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> Reviewed-by: Marek Vasut <marex@denx.de>
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c index d8958838ab7b..5518d92c8455 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c @@ -1691,6 +1691,10 @@ static const struct component_ops exynos_dsi_component_ops = { .unbind = exynos_dsi_unbind, }; +static const struct drm_bridge_timings dsim_bridge_timings_de_low = { + .input_bus_flags = DRM_BUS_FLAG_DE_LOW, +}; + static int exynos_dsi_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; @@ -1777,6 +1781,10 @@ static int exynos_dsi_probe(struct platform_device *pdev) dsi->bridge.type = DRM_MODE_CONNECTOR_DSI; dsi->bridge.pre_enable_prev_first = true; + /* DE_LOW: i.MX8M Mini/Nano LCDIF-DSIM glue logic inverts HS/VS/DE */ + if (dsi->plat_data->hw_type == DSIM_TYPE_IMX8MM) + dsi->bridge.timings = &dsim_bridge_timings_de_low; + ret = component_add(dev, &exynos_dsi_component_ops); if (ret) goto err_disable_runtime;