diff options
author | Adam Jackson <ajax@redhat.com> | 2010-05-28 17:17:37 -0400 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2010-06-01 13:19:37 -0400 |
commit | 9bc354998f8aa8a83b0cd430e8fcf2cbc3be7367 (patch) | |
tree | 23ae978bf9926a6d653cf49fb7fcd54ce2542504 | |
parent | a1786bd270b08834a735e06c3d5430eeb0baf017 (diff) |
drm/i915: Honor sync polarity from VBT panel timing descriptors
I'm actually kind of shocked that it works at all otherwise.
Signed-off-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
-rw-r--r-- | drivers/gpu/drm/i915/intel_bios.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c index 4c748d8f73d6..96f75d7f6633 100644 --- a/drivers/gpu/drm/i915/intel_bios.c +++ b/drivers/gpu/drm/i915/intel_bios.c | |||
@@ -95,6 +95,16 @@ fill_detail_timing_data(struct drm_display_mode *panel_fixed_mode, | |||
95 | panel_fixed_mode->clock = dvo_timing->clock * 10; | 95 | panel_fixed_mode->clock = dvo_timing->clock * 10; |
96 | panel_fixed_mode->type = DRM_MODE_TYPE_PREFERRED; | 96 | panel_fixed_mode->type = DRM_MODE_TYPE_PREFERRED; |
97 | 97 | ||
98 | if (dvo_timing->hsync_positive) | ||
99 | panel_fixed_mode->flags |= DRM_MODE_FLAG_PHSYNC; | ||
100 | else | ||
101 | panel_fixed_mode->flags |= DRM_MODE_FLAG_NHSYNC; | ||
102 | |||
103 | if (dvo_timing->vsync_positive) | ||
104 | panel_fixed_mode->flags |= DRM_MODE_FLAG_PVSYNC; | ||
105 | else | ||
106 | panel_fixed_mode->flags |= DRM_MODE_FLAG_NVSYNC; | ||
107 | |||
98 | /* Some VBTs have bogus h/vtotal values */ | 108 | /* Some VBTs have bogus h/vtotal values */ |
99 | if (panel_fixed_mode->hsync_end > panel_fixed_mode->htotal) | 109 | if (panel_fixed_mode->hsync_end > panel_fixed_mode->htotal) |
100 | panel_fixed_mode->htotal = panel_fixed_mode->hsync_end + 1; | 110 | panel_fixed_mode->htotal = panel_fixed_mode->hsync_end + 1; |