diff mbox series

drm/radeon: Prefer lower feedback dividers

Message ID 20200825173349.24580-1-kai.heng.feng@canonical.com (mailing list archive)
State New, archived
Headers show
Series drm/radeon: Prefer lower feedback dividers | expand

Commit Message

Kai-Heng Feng Aug. 25, 2020, 5:33 p.m. UTC
Commit 2e26ccb119bd ("drm/radeon: prefer lower reference dividers")
fixed screen flicker for HP Compaq nx9420 but breaks other laptops like
Asus X50SL.

Turns out we also need to favor lower feedback dividers.

Users confirmed this change fixes the regression and doesn't regress the
original fix.

Fixes: 2e26ccb119bd ("drm/radeon: prefer lower reference dividers")
BugLink: https://bugs.launchpad.net/bugs/1791312
BugLink: https://bugs.launchpad.net/bugs/1861554
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
---
 drivers/gpu/drm/radeon/radeon_display.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Christian König Aug. 27, 2020, 11:18 a.m. UTC | #1
Am 25.08.20 um 19:33 schrieb Kai-Heng Feng:
> Commit 2e26ccb119bd ("drm/radeon: prefer lower reference dividers")
> fixed screen flicker for HP Compaq nx9420 but breaks other laptops like
> Asus X50SL.
>
> Turns out we also need to favor lower feedback dividers.

Mhm, let's hope that this works out for all others as well :)

>
> Users confirmed this change fixes the regression and doesn't regress the
> original fix.
>
> Fixes: 2e26ccb119bd ("drm/radeon: prefer lower reference dividers")
> BugLink: https://bugs.launchpad.net/bugs/1791312
> BugLink: https://bugs.launchpad.net/bugs/1861554
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>

Reviewed-by: Christian König <christian.koenig@amd.com>

> ---
>   drivers/gpu/drm/radeon/radeon_display.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
> index e0ae911ef427..7b69d6dfe44a 100644
> --- a/drivers/gpu/drm/radeon/radeon_display.c
> +++ b/drivers/gpu/drm/radeon/radeon_display.c
> @@ -933,7 +933,7 @@ static void avivo_get_fb_ref_div(unsigned nom, unsigned den, unsigned post_div,
>   
>   	/* get matching reference and feedback divider */
>   	*ref_div = min(max(den/post_div, 1u), ref_div_max);
> -	*fb_div = DIV_ROUND_CLOSEST(nom * *ref_div * post_div, den);
> +	*fb_div = max(nom * *ref_div * post_div / den, 1u);
>   
>   	/* limit fb divider to its maximum */
>   	if (*fb_div > fb_div_max) {
Alex Deucher Aug. 27, 2020, 1:51 p.m. UTC | #2
Applied.  Thanks!

Alex

On Thu, Aug 27, 2020 at 7:18 AM Christian König
<christian.koenig@amd.com> wrote:
>
> Am 25.08.20 um 19:33 schrieb Kai-Heng Feng:
> > Commit 2e26ccb119bd ("drm/radeon: prefer lower reference dividers")
> > fixed screen flicker for HP Compaq nx9420 but breaks other laptops like
> > Asus X50SL.
> >
> > Turns out we also need to favor lower feedback dividers.
>
> Mhm, let's hope that this works out for all others as well :)
>
> >
> > Users confirmed this change fixes the regression and doesn't regress the
> > original fix.
> >
> > Fixes: 2e26ccb119bd ("drm/radeon: prefer lower reference dividers")
> > BugLink: https://bugs.launchpad.net/bugs/1791312
> > BugLink: https://bugs.launchpad.net/bugs/1861554
> > Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
>
> Reviewed-by: Christian König <christian.koenig@amd.com>
>
> > ---
> >   drivers/gpu/drm/radeon/radeon_display.c | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
> > index e0ae911ef427..7b69d6dfe44a 100644
> > --- a/drivers/gpu/drm/radeon/radeon_display.c
> > +++ b/drivers/gpu/drm/radeon/radeon_display.c
> > @@ -933,7 +933,7 @@ static void avivo_get_fb_ref_div(unsigned nom, unsigned den, unsigned post_div,
> >
> >       /* get matching reference and feedback divider */
> >       *ref_div = min(max(den/post_div, 1u), ref_div_max);
> > -     *fb_div = DIV_ROUND_CLOSEST(nom * *ref_div * post_div, den);
> > +     *fb_div = max(nom * *ref_div * post_div / den, 1u);
> >
> >       /* limit fb divider to its maximum */
> >       if (*fb_div > fb_div_max) {
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox series

Patch

diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index e0ae911ef427..7b69d6dfe44a 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -933,7 +933,7 @@  static void avivo_get_fb_ref_div(unsigned nom, unsigned den, unsigned post_div,
 
 	/* get matching reference and feedback divider */
 	*ref_div = min(max(den/post_div, 1u), ref_div_max);
-	*fb_div = DIV_ROUND_CLOSEST(nom * *ref_div * post_div, den);
+	*fb_div = max(nom * *ref_div * post_div / den, 1u);
 
 	/* limit fb divider to its maximum */
 	if (*fb_div > fb_div_max) {