|
@@ -358,8 +358,12 @@ static u16 sun6i_dsi_get_video_start_delay(struct sun6i_dsi *dsi,
|
|
|
struct drm_display_mode *mode)
|
|
struct drm_display_mode *mode)
|
|
|
{
|
|
{
|
|
|
u16 start = clamp(mode->vtotal - mode->vdisplay - 10, 8, 100);
|
|
u16 start = clamp(mode->vtotal - mode->vdisplay - 10, 8, 100);
|
|
|
|
|
+ u16 delay = mode->vtotal - (mode->vsync_end - mode->vdisplay) + start;
|
|
|
|
|
|
|
|
- return mode->vtotal - (mode->vsync_end - mode->vdisplay) + start;
|
|
|
|
|
|
|
+ if (delay > mode->vtotal)
|
|
|
|
|
+ delay = delay % mode->vtotal;
|
|
|
|
|
+
|
|
|
|
|
+ return max_t(u16, delay, 1);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
static void sun6i_dsi_setup_burst(struct sun6i_dsi *dsi,
|
|
static void sun6i_dsi_setup_burst(struct sun6i_dsi *dsi,
|