diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-06-01 04:49:16 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-06-01 04:52:54 -0400 |
commit | e269f90f3d3f7c70cf661c660bf445597261f54a (patch) | |
tree | f09685517e9efa7d675dad8fd13694157ce50521 /drivers/gpu/drm/i915/intel_sdvo.c | |
parent | 112abd291db7d47974f166e742104d761bc76977 (diff) | |
parent | 63bc620b45af8c743ac291c8725933278c712692 (diff) |
Merge remote-tracking branch 'airlied/drm-prime-vmap' into drm-intel-next-queued
We need the latest dma-buf code from Dave Airlie so that we can pimp
the backing storage handling code in drm/i915 with Chris Wilson's
unbound tracking and stolen mem backed gem object code.
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_sdvo.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_sdvo.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c index ca3c6e128594..2f5106a488c5 100644 --- a/drivers/gpu/drm/i915/intel_sdvo.c +++ b/drivers/gpu/drm/i915/intel_sdvo.c | |||
@@ -780,10 +780,12 @@ static void intel_sdvo_get_dtd_from_mode(struct intel_sdvo_dtd *dtd, | |||
780 | ((v_sync_len & 0x30) >> 4); | 780 | ((v_sync_len & 0x30) >> 4); |
781 | 781 | ||
782 | dtd->part2.dtd_flags = 0x18; | 782 | dtd->part2.dtd_flags = 0x18; |
783 | if (mode->flags & DRM_MODE_FLAG_INTERLACE) | ||
784 | dtd->part2.dtd_flags |= DTD_FLAG_INTERLACE; | ||
783 | if (mode->flags & DRM_MODE_FLAG_PHSYNC) | 785 | if (mode->flags & DRM_MODE_FLAG_PHSYNC) |
784 | dtd->part2.dtd_flags |= 0x2; | 786 | dtd->part2.dtd_flags |= DTD_FLAG_HSYNC_POSITIVE; |
785 | if (mode->flags & DRM_MODE_FLAG_PVSYNC) | 787 | if (mode->flags & DRM_MODE_FLAG_PVSYNC) |
786 | dtd->part2.dtd_flags |= 0x4; | 788 | dtd->part2.dtd_flags |= DTD_FLAG_VSYNC_POSITIVE; |
787 | 789 | ||
788 | dtd->part2.sdvo_flags = 0; | 790 | dtd->part2.sdvo_flags = 0; |
789 | dtd->part2.v_sync_off_high = v_sync_offset & 0xc0; | 791 | dtd->part2.v_sync_off_high = v_sync_offset & 0xc0; |
@@ -817,9 +819,11 @@ static void intel_sdvo_get_mode_from_dtd(struct drm_display_mode * mode, | |||
817 | mode->clock = dtd->part1.clock * 10; | 819 | mode->clock = dtd->part1.clock * 10; |
818 | 820 | ||
819 | mode->flags &= ~(DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC); | 821 | mode->flags &= ~(DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC); |
820 | if (dtd->part2.dtd_flags & 0x2) | 822 | if (dtd->part2.dtd_flags & DTD_FLAG_INTERLACE) |
823 | mode->flags |= DRM_MODE_FLAG_INTERLACE; | ||
824 | if (dtd->part2.dtd_flags & DTD_FLAG_HSYNC_POSITIVE) | ||
821 | mode->flags |= DRM_MODE_FLAG_PHSYNC; | 825 | mode->flags |= DRM_MODE_FLAG_PHSYNC; |
822 | if (dtd->part2.dtd_flags & 0x4) | 826 | if (dtd->part2.dtd_flags & DTD_FLAG_VSYNC_POSITIVE) |
823 | mode->flags |= DRM_MODE_FLAG_PVSYNC; | 827 | mode->flags |= DRM_MODE_FLAG_PVSYNC; |
824 | } | 828 | } |
825 | 829 | ||
@@ -1246,8 +1250,14 @@ static bool intel_sdvo_get_capabilities(struct intel_sdvo *intel_sdvo, struct in | |||
1246 | 1250 | ||
1247 | static int intel_sdvo_supports_hotplug(struct intel_sdvo *intel_sdvo) | 1251 | static int intel_sdvo_supports_hotplug(struct intel_sdvo *intel_sdvo) |
1248 | { | 1252 | { |
1253 | struct drm_device *dev = intel_sdvo->base.base.dev; | ||
1249 | u8 response[2]; | 1254 | u8 response[2]; |
1250 | 1255 | ||
1256 | /* HW Erratum: SDVO Hotplug is broken on all i945G chips, there's noise | ||
1257 | * on the line. */ | ||
1258 | if (IS_I945G(dev) || IS_I945GM(dev)) | ||
1259 | return false; | ||
1260 | |||
1251 | return intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_HOT_PLUG_SUPPORT, | 1261 | return intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_HOT_PLUG_SUPPORT, |
1252 | &response, 2) && response[0]; | 1262 | &response, 2) && response[0]; |
1253 | } | 1263 | } |