video: dw_mipi_dsi: Fix hsync/vsync settings

These must be read from timings->flags, like other DSI HOST drivers do.

And they must not be inverted either. Low means low.

Without this fix, panel drivers that set *SYNC_LOW produce corrupted
output on screen (shifted horizontally and vertically by back porch
distance).

Signed-off-by: Ondrej Jirman <megi@xff.cz>
This commit is contained in:
Ondrej Jirman 2023-05-22 23:47:02 +02:00 committed by Anatolij Gustschin
parent f4c7efe011
commit e62f2a622b

View file

@ -538,9 +538,9 @@ static void dw_mipi_dsi_dpi_config(struct dw_mipi_dsi *dsi,
break;
}
if (device->mode_flags & DISPLAY_FLAGS_VSYNC_HIGH)
if (timings->flags & DISPLAY_FLAGS_VSYNC_LOW)
val |= VSYNC_ACTIVE_LOW;
if (device->mode_flags & DISPLAY_FLAGS_HSYNC_HIGH)
if (timings->flags & DISPLAY_FLAGS_HSYNC_LOW)
val |= HSYNC_ACTIVE_LOW;
dsi_write(dsi, DSI_DPI_VCID, DPI_VCID(dsi->channel));