Skip to content

Commit 1d11896

Browse files
6by9mripard
authored andcommitted
drm/vc4: hdmi: Allow DBLCLK modes even if horz timing is odd.
The 2711 pixel valve can't produce odd horizontal timings, and checks were added to vc4_hdmi_encoder_atomic_check and vc4_hdmi_encoder_mode_valid to filter out/block selection of such modes. Modes with DRM_MODE_FLAG_DBLCLK double all the horizontal timing values before programming them into the PV. The PV values, therefore, can not be odd, and so the modes can be supported. Amend the filtering appropriately. Fixes: 57fb32e ("drm/vc4: hdmi: Block odd horizontal timings") Signed-off-by: Dave Stevenson <[email protected]> Signed-off-by: Maxime Ripard <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent 71702c4 commit 1d11896

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

drivers/gpu/drm/vc4/vc4_hdmi.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1245,6 +1245,7 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder,
12451245
unsigned long long tmds_rate;
12461246

12471247
if (vc4_hdmi->variant->unsupported_odd_h_timings &&
1248+
!(mode->flags & DRM_MODE_FLAG_DBLCLK) &&
12481249
((mode->hdisplay % 2) || (mode->hsync_start % 2) ||
12491250
(mode->hsync_end % 2) || (mode->htotal % 2)))
12501251
return -EINVAL;
@@ -1292,6 +1293,7 @@ vc4_hdmi_encoder_mode_valid(struct drm_encoder *encoder,
12921293
struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
12931294

12941295
if (vc4_hdmi->variant->unsupported_odd_h_timings &&
1296+
!(mode->flags & DRM_MODE_FLAG_DBLCLK) &&
12951297
((mode->hdisplay % 2) || (mode->hsync_start % 2) ||
12961298
(mode->hsync_end % 2) || (mode->htotal % 2)))
12971299
return MODE_H_ILLEGAL;

0 commit comments

Comments
 (0)