Skip to content

Commit 6297388

Browse files
committed
drm/omap: dsi: Hack-fix DSI bus flags
Since commit b4935e3 ("drm/omap: Store bus flags in the omap_dss_device structure") video mode flags are managed by the omapdss (and later omapdrm) core based on bus flags stored in omap_dss_device. This works fine for all devices whose video modes are set by the omapdss and omapdrm core, but breaks DSI operation as the DSI still uses legacy code paths and sets the DISPC timings manually. To fix the problem properly we should move the DSI encoder to the new encoder model. This will however require a considerable amount of work. Restore DSI operation by adding back video mode flags handling in the DSI encoder driver as a hack in the meantime. Fixes: b4935e3 ("drm/omap: Store bus flags in the omap_dss_device structure") Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190111035120.20668-5-laurent.pinchart@ideasonboard.com
1 parent 0940c52 commit 6297388

File tree

1 file changed

+11
-0
lines changed
  • drivers/gpu/drm/omapdrm/dss

1 file changed

+11
-0
lines changed

drivers/gpu/drm/omapdrm/dss/dsi.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4751,6 +4751,17 @@ static int dsi_set_config(struct omap_dss_device *dssdev,
47514751
dsi->vm.flags |= DISPLAY_FLAGS_HSYNC_HIGH;
47524752
dsi->vm.flags &= ~DISPLAY_FLAGS_VSYNC_LOW;
47534753
dsi->vm.flags |= DISPLAY_FLAGS_VSYNC_HIGH;
4754+
/*
4755+
* HACK: These flags should be handled through the omap_dss_device bus
4756+
* flags, but this will only be possible when the DSI encoder will be
4757+
* converted to the omapdrm-managed encoder model.
4758+
*/
4759+
dsi->vm.flags &= ~DISPLAY_FLAGS_PIXDATA_NEGEDGE;
4760+
dsi->vm.flags |= DISPLAY_FLAGS_PIXDATA_POSEDGE;
4761+
dsi->vm.flags &= ~DISPLAY_FLAGS_DE_LOW;
4762+
dsi->vm.flags |= DISPLAY_FLAGS_DE_HIGH;
4763+
dsi->vm.flags &= ~DISPLAY_FLAGS_SYNC_POSEDGE;
4764+
dsi->vm.flags |= DISPLAY_FLAGS_SYNC_NEGEDGE;
47544765

47554766
dss_mgr_set_timings(&dsi->output, &dsi->vm);
47564767

0 commit comments

Comments
 (0)