diff mbox

drm/radeon: fix PLLs on RS880 and older v2

Message ID 1422543663-12661-1-git-send-email-deathsimple@vodafone.de (mailing list archive)
State New, archived
Headers show

Commit Message

Christian König Jan. 29, 2015, 3:01 p.m. UTC
From: Christian König <christian.koenig@amd.com>

This is a workaround for RS880 and older chips which seem to have
an additional limit on the minimum PLL input frequency.

v2: fix signed/unsigned warning

Signed-off-by: Christian König <christian.koenig@amd.com>
---
 drivers/gpu/drm/radeon/radeon_display.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Alex Deucher Jan. 29, 2015, 3:19 p.m. UTC | #1
On Thu, Jan 29, 2015 at 10:01 AM, Christian König
<deathsimple@vodafone.de> wrote:
> From: Christian König <christian.koenig@amd.com>
>
> This is a workaround for RS880 and older chips which seem to have
> an additional limit on the minimum PLL input frequency.
>
> v2: fix signed/unsigned warning
>
> Signed-off-by: Christian König <christian.koenig@amd.com>

Added to my -fixes queue.

Thanks!

Alex

> ---
>  drivers/gpu/drm/radeon/radeon_display.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
> index 1021169..913fafa 100644
> --- a/drivers/gpu/drm/radeon/radeon_display.c
> +++ b/drivers/gpu/drm/radeon/radeon_display.c
> @@ -960,6 +960,9 @@ void radeon_compute_pll_avivo(struct radeon_pll *pll,
>         if (pll->flags & RADEON_PLL_USE_FRAC_FB_DIV &&
>             pll->flags & RADEON_PLL_USE_REF_DIV)
>                 ref_div_max = pll->reference_div;
> +       else if (pll->flags & RADEON_PLL_PREFER_MINM_OVER_MAXP)
> +               /* fix for problems on RS880 */
> +               ref_div_max = min(pll->max_ref_div, 7u);
>         else
>                 ref_div_max = pll->max_ref_div;
>
> --
> 1.9.1
>
diff mbox

Patch

diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index 1021169..913fafa 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -960,6 +960,9 @@  void radeon_compute_pll_avivo(struct radeon_pll *pll,
 	if (pll->flags & RADEON_PLL_USE_FRAC_FB_DIV &&
 	    pll->flags & RADEON_PLL_USE_REF_DIV)
 		ref_div_max = pll->reference_div;
+	else if (pll->flags & RADEON_PLL_PREFER_MINM_OVER_MAXP)
+		/* fix for problems on RS880 */
+		ref_div_max = min(pll->max_ref_div, 7u);
 	else
 		ref_div_max = pll->max_ref_div;