From 177f479c729dbe4ae05461242e94a410c9581c86 Mon Sep 17 00:00:00 2001 From: Dhinakaran Pandiyan Date: Sat, 22 Apr 2017 17:31:57 -0700 Subject: [PATCH] drm/i915: Do not scale down data m_n Signed-off-by: Dhinakaran Pandiyan --- drivers/gpu/drm/i915/intel_display.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 85b9e2f5..2ec0cd0 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -6276,6 +6276,14 @@ intel_reduce_m_n_ratio(uint32_t *num, uint32_t *den) static void compute_m_n(unsigned int m, unsigned int n, uint32_t *ret_m, uint32_t *ret_n) { + *ret_n = min_t(unsigned int, roundup_pow_of_two(n), DATA_LINK_N_MAX); + *ret_m = div_u64((uint64_t) m * *ret_n, n); + intel_reduce_m_n_ratio(ret_m, ret_n); +} + +static void compute_scaled_m_n(unsigned int m, unsigned int n, + uint32_t *ret_m, uint32_t *ret_n) +{ /* * Reduce M/N as much as possible without loss in precision. Several DP * dongles in particular seem to be fussy about too large *link* M/N @@ -6287,9 +6295,7 @@ static void compute_m_n(unsigned int m, unsigned int n, n >>= 1; } - *ret_n = min_t(unsigned int, roundup_pow_of_two(n), DATA_LINK_N_MAX); - *ret_m = div_u64((uint64_t) m * *ret_n, n); - intel_reduce_m_n_ratio(ret_m, ret_n); + compute_m_n(m, n, ret_m, ret_n); } void @@ -6303,7 +6309,7 @@ intel_link_compute_m_n(int bits_per_pixel, int nlanes, link_clock * nlanes * 8, &m_n->gmch_m, &m_n->gmch_n); - compute_m_n(pixel_clock, link_clock, + compute_scaled_m_n(pixel_clock, link_clock, &m_n->link_m, &m_n->link_n); } -- 2.7.4