aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2009-06-25 02:09:15 -0400
committerEric Anholt <eric@anholt.net>2009-07-02 19:15:01 -0400
commitb3d254955fb5797232ec329b136c363aa4fdaa05 (patch)
tree84248c6cbe0be526ef3a71812354d1d57abb3f56 /drivers/gpu
parent1ae8c0a56eeb3ed358b78ccadd024d6b721f26bc (diff)
drm/i915: Adjust DisplayPort clocks to use 96MHz reference
For some reason, the DP clocks were based off a 100MHz reference instead of the standard 96MHz reference. This caused some DP monitors to fail to lock to the signal. Signed-off-by: Keith Packard <keithp@keithp.com> Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 59de4951b6ee..508838ee31e0 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -816,24 +816,21 @@ intel_find_pll_g4x_dp(const intel_limit_t *limit, struct drm_crtc *crtc,
816{ 816{
817 intel_clock_t clock; 817 intel_clock_t clock;
818 if (target < 200000) { 818 if (target < 200000) {
819 clock.dot = 161670;
820 clock.p = 20;
821 clock.p1 = 2; 819 clock.p1 = 2;
822 clock.p2 = 10; 820 clock.p2 = 10;
823 clock.n = 0x01; 821 clock.n = 2;
824 clock.m = 97; 822 clock.m1 = 23;
825 clock.m1 = 0x10; 823 clock.m2 = 8;
826 clock.m2 = 0x05;
827 } else { 824 } else {
828 clock.dot = 270000;
829 clock.p = 10;
830 clock.p1 = 1; 825 clock.p1 = 1;
831 clock.p2 = 10; 826 clock.p2 = 10;
832 clock.n = 0x02; 827 clock.n = 1;
833 clock.m = 108; 828 clock.m1 = 14;
834 clock.m1 = 0x12; 829 clock.m2 = 2;
835 clock.m2 = 0x06;
836 } 830 }
831 clock.m = 5 * (clock.m1 + 2) + (clock.m2 + 2);
832 clock.p = (clock.p1 * clock.p2);
833 clock.dot = 96000 * clock.m / (clock.n + 2) / clock.p;
837 memcpy(best_clock, &clock, sizeof(intel_clock_t)); 834 memcpy(best_clock, &clock, sizeof(intel_clock_t));
838 return true; 835 return true;
839} 836}