| From 2e26ccb119bde03584be53406bbd22e711b0d6e6 Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> |
| Date: Mon, 6 May 2019 19:57:52 +0200 |
| Subject: drm/radeon: prefer lower reference dividers |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Christian König <christian.koenig@amd.com> |
| |
| commit 2e26ccb119bde03584be53406bbd22e711b0d6e6 upstream. |
| |
| Instead of the closest reference divider prefer the lowest, |
| this fixes flickering issues on HP Compaq nx9420. |
| |
| Bugs: https://bugs.freedesktop.org/show_bug.cgi?id=108514 |
| Suggested-by: Paul Dufresne <dufresnep@gmail.com> |
| Signed-off-by: Christian König <christian.koenig@amd.com> |
| Acked-by: Alex Deucher <alexander.deucher@amd.com> |
| Signed-off-by: Alex Deucher <alexander.deucher@amd.com> |
| Cc: stable@vger.kernel.org |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/gpu/drm/radeon/radeon_display.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/gpu/drm/radeon/radeon_display.c |
| +++ b/drivers/gpu/drm/radeon/radeon_display.c |
| @@ -922,12 +922,12 @@ static void avivo_get_fb_ref_div(unsigne |
| ref_div_max = max(min(100 / post_div, ref_div_max), 1u); |
| |
| /* get matching reference and feedback divider */ |
| - *ref_div = min(max(DIV_ROUND_CLOSEST(den, post_div), 1u), ref_div_max); |
| + *ref_div = min(max(den/post_div, 1u), ref_div_max); |
| *fb_div = DIV_ROUND_CLOSEST(nom * *ref_div * post_div, den); |
| |
| /* limit fb divider to its maximum */ |
| if (*fb_div > fb_div_max) { |
| - *ref_div = DIV_ROUND_CLOSEST(*ref_div * fb_div_max, *fb_div); |
| + *ref_div = (*ref_div * fb_div_max)/(*fb_div); |
| *fb_div = fb_div_max; |
| } |
| } |