Skip to content

Commit e948bca

Browse files
committed
drm/bridge: cdns-dsi: Adjust mode to negative syncs
The Cadence DSI requires negative syncs from the incoming video signal, but at the moment that requirement is not expressed in any way. If the crtc decides to use positive syncs, things break down. Use the adjusted_mode in atomic_check to set the sync flags to negative ones. Reviewed-by: Aradhya Bhatia <aradhya.bhatia@linux.dev> Tested-by: Parth Pancholi <parth.pancholi@toradex.com> Tested-by: Jayesh Choudhary <j-choudhary@ti.com> Reviewed-by: Devarsh Thakkar <devarsht@ti.com> Link: https://lore.kernel.org/r/20250723-cdns-dsi-impro-v5-10-e61cc06074c2@ideasonboard.com Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
1 parent c92765d commit e948bca

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -908,9 +908,13 @@ static int cdns_dsi_bridge_atomic_check(struct drm_bridge *bridge,
908908
struct cdns_dsi_input *input = bridge_to_cdns_dsi_input(bridge);
909909
struct cdns_dsi *dsi = input_to_dsi(input);
910910
struct cdns_dsi_bridge_state *dsi_state = to_cdns_dsi_bridge_state(bridge_state);
911-
const struct drm_display_mode *adjusted_mode = &crtc_state->adjusted_mode;
911+
struct drm_display_mode *adjusted_mode = &crtc_state->adjusted_mode;
912912
struct cdns_dsi_cfg *dsi_cfg = &dsi_state->dsi_cfg;
913913

914+
/* cdns-dsi requires negative syncs */
915+
adjusted_mode->flags &= ~(DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC);
916+
adjusted_mode->flags |= DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC;
917+
914918
return cdns_dsi_check_conf(dsi, adjusted_mode, dsi_cfg);
915919
}
916920

0 commit comments

Comments
 (0)