Hi Sasha, > On Oct 26, 2020, at 13:09, Sasha Levin <sashal@xxxxxxxxxx> wrote: > > This is a note to let you know that I've just added the patch titled > > drm/radeon: Prefer lower feedback dividers > > to the 5.9-stable tree which can be found at: > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary > > The filename of the patch is: > drm-radeon-prefer-lower-feedback-dividers.patch > and it can be found in the queue-5.9 subdirectory. > > If you, or anyone else, feels it should not be added to the stable tree, > please let <stable@xxxxxxxxxxxxxxx> know about it. Please drop this patch because it causes some regression. Kai-Heng > > > > commit 3fa04dfbb55a95e7c6075d0644f64bcb6e7f4ef8 > Author: Kai-Heng Feng <kai.heng.feng@xxxxxxxxxxxxx> > Date: Wed Aug 26 01:33:48 2020 +0800 > > drm/radeon: Prefer lower feedback dividers > > [ Upstream commit 5150dd85bdfa08143cacf1b4249121651bed3c35 ] > > 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 > Reviewed-by: Christian König <christian.koenig@xxxxxxx> > Signed-off-by: Kai-Heng Feng <kai.heng.feng@xxxxxxxxxxxxx> > Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> > Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx> > > diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c > index e0ae911ef427d..7b69d6dfe44a3 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) {