|
@@ -783,10 +783,12 @@ static void intel_sdvo_get_dtd_from_mode(struct intel_sdvo_dtd *dtd,
|
|
|
((v_sync_len & 0x30) >> 4);
|
|
|
|
|
|
dtd->part2.dtd_flags = 0x18;
|
|
|
+ if (mode->flags & DRM_MODE_FLAG_INTERLACE)
|
|
|
+ dtd->part2.dtd_flags |= DTD_FLAG_INTERLACE;
|
|
|
if (mode->flags & DRM_MODE_FLAG_PHSYNC)
|
|
|
- dtd->part2.dtd_flags |= 0x2;
|
|
|
+ dtd->part2.dtd_flags |= DTD_FLAG_HSYNC_POSITIVE;
|
|
|
if (mode->flags & DRM_MODE_FLAG_PVSYNC)
|
|
|
- dtd->part2.dtd_flags |= 0x4;
|
|
|
+ dtd->part2.dtd_flags |= DTD_FLAG_VSYNC_POSITIVE;
|
|
|
|
|
|
dtd->part2.sdvo_flags = 0;
|
|
|
dtd->part2.v_sync_off_high = v_sync_offset & 0xc0;
|
|
@@ -820,9 +822,11 @@ static void intel_sdvo_get_mode_from_dtd(struct drm_display_mode * mode,
|
|
|
mode->clock = dtd->part1.clock * 10;
|
|
|
|
|
|
mode->flags &= ~(DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC);
|
|
|
- if (dtd->part2.dtd_flags & 0x2)
|
|
|
+ if (dtd->part2.dtd_flags & DTD_FLAG_INTERLACE)
|
|
|
+ mode->flags |= DRM_MODE_FLAG_INTERLACE;
|
|
|
+ if (dtd->part2.dtd_flags & DTD_FLAG_HSYNC_POSITIVE)
|
|
|
mode->flags |= DRM_MODE_FLAG_PHSYNC;
|
|
|
- if (dtd->part2.dtd_flags & 0x4)
|
|
|
+ if (dtd->part2.dtd_flags & DTD_FLAG_VSYNC_POSITIVE)
|
|
|
mode->flags |= DRM_MODE_FLAG_PVSYNC;
|
|
|
}
|
|
|
|