--- drivers/gpu/drm/i915/intel_sdvo.c.orig 2012-04-29 14:04:06.000000000 +0200 +++ drivers/gpu/drm/i915/intel_sdvo.c 2012-04-28 22:59:28.000000000 +0200 @@ -735,16 +735,33 @@ width = mode->crtc_hdisplay; height = mode->crtc_vdisplay; +DRM_DEBUG_KMS("MODE %d",width); +DRM_LOG_KMS("x%d, ",height); +DRM_LOG_KMS("clock=%d\n",mode->clock); + /* do some mode translations */ h_blank_len = mode->crtc_hblank_end - mode->crtc_hblank_start; h_sync_len = mode->crtc_hsync_end - mode->crtc_hsync_start; +DRM_DEBUG_KMS("H_BLANK_LEN start=%d",mode->crtc_hblank_start); +DRM_LOG_KMS(", end=%d",mode->crtc_hblank_start); +DRM_LOG_KMS(" / H_SYNC_LEN start=%d",mode->crtc_hsync_start); +DRM_LOG_KMS(", end=%d\n",mode->crtc_hsync_end); + v_blank_len = mode->crtc_vblank_end - mode->crtc_vblank_start; v_sync_len = mode->crtc_vsync_end - mode->crtc_vsync_start; +DRM_DEBUG_KMS("V_BLANK_LEN start=%d",mode->crtc_vblank_start); +DRM_LOG_KMS(", end=%d",mode->crtc_vblank_start); +DRM_LOG_KMS(" / V_SYNC_LEN start=%d",mode->crtc_vsync_start); +DRM_LOG_KMS(", end=%d\n",mode->crtc_vsync_end); + h_sync_offset = mode->crtc_hsync_start - mode->crtc_hblank_start; v_sync_offset = mode->crtc_vsync_start - mode->crtc_vblank_start; +DRM_DEBUG_KMS("H_SYNC_OFFSET %d",h_sync_offset); +DRM_LOG_KMS(" / V_SYNC_OFFSET %d\n",v_sync_offset); + dtd->part1.clock = mode->clock / 10; dtd->part1.h_active = width & 0xff; dtd->part1.h_blank = h_blank_len & 0xff; @@ -772,6 +789,22 @@ dtd->part2.sdvo_flags = 0; dtd->part2.v_sync_off_high = v_sync_offset & 0xc0; dtd->part2.reserved = 0; + +DRM_DEBUG_KMS("DTD PART1 clock=%d",dtd->part1.clock); +DRM_LOG_KMS(" h_active=%d",dtd->part1.h_active); +DRM_LOG_KMS(" h_blank=%d",dtd->part1.h_blank); +DRM_LOG_KMS(" h_high=%d",dtd->part1.h_high); +DRM_LOG_KMS(" v_active=%d",dtd->part1.v_active); +DRM_LOG_KMS(" v_blank=%d",dtd->part1.v_blank); +DRM_LOG_KMS(" v_high=%d\n",dtd->part1.v_high); + +DRM_DEBUG_KMS("DTD PART2 h_sync_off=%d",dtd->part2.h_sync_off); +DRM_LOG_KMS(" h_sync_width=%d",dtd->part2.h_sync_width); +DRM_LOG_KMS(" v_sync_off_width=%d",dtd->part2.v_sync_off_width); +DRM_LOG_KMS(" sync_off_width_high=%d",dtd->part2.sync_off_width_high); +DRM_LOG_KMS(" v_sync_off_high=%d",dtd->part2.v_sync_off_high); +DRM_LOG_KMS(" flags=0x%X",dtd->part2.dtd_flags); + } static void intel_sdvo_get_mode_from_dtd(struct drm_display_mode * mode, @@ -1041,12 +1074,12 @@ if (!intel_sdvo_set_target_input(intel_sdvo)) return; - if (intel_sdvo->has_hdmi_monitor) { +/* if (intel_sdvo->has_hdmi_monitor) { intel_sdvo_set_encode(intel_sdvo, SDVO_ENCODE_HDMI); intel_sdvo_set_colorimetry(intel_sdvo, SDVO_COLORIMETRY_RGB256); intel_sdvo_set_avi_infoframe(intel_sdvo); - } else + } else*/ intel_sdvo_set_encode(intel_sdvo, SDVO_ENCODE_DVI); if (intel_sdvo->is_tv &&