Re: [PATCH 4.19 90/92] drm/radeon: fix fb_div check in ni_init_smc_spll_table()

From: Pavel Machek
Date: Fri Aug 21 2020 - 03:27:27 EST


Hi!

> From: Denis Efremov <efremov@xxxxxxxxx>
>
> commit f29aa08852e1953e461f2d47ab13c34e14bc08b3 upstream.
>
> clk_s is checked twice in a row in ni_init_smc_spll_table().
> fb_div should be checked instead.
>
> Fixes: 69e0b57a91ad ("drm/radeon/kms: add dpm support for cayman (v5)")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Denis Efremov <efremov@xxxxxxxxx>
> Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

No, this is wrong.

We already have the fix in -stable, as:

commit a083deda0b4179fb6780bc53d900794c4952339f
Author: Denis Efremov <efremov@xxxxxxxxx>
Date: Mon Jun 22 23:31:22 2020 +0300

drm/radeon: fix fb_div check in ni_init_smc_spll_table()

commit 35f760b44b1b9cb16a306bdcc7220fbbf78c4789 upstream.

Result is that we now convert _second_ copy clk_s check, and check
fb_div twice. This introduces error, rather than fixing one.

Best regards,
Pavel

> +++ b/drivers/gpu/drm/radeon/ni_dpm.c
> @@ -2123,7 +2123,7 @@ static int ni_init_smc_spll_table(struct
> if (p_div & ~(SMC_NISLANDS_SPLL_DIV_TABLE_PDIV_MASK >> SMC_NISLANDS_SPLL_DIV_TABLE_PDIV_SHIFT))
> ret = -EINVAL;
>
> - if (clk_s & ~(SMC_NISLANDS_SPLL_DIV_TABLE_CLKS_MASK >> SMC_NISLANDS_SPLL_DIV_TABLE_CLKS_SHIFT))
> + if (fb_div & ~(SMC_NISLANDS_SPLL_DIV_TABLE_FBDIV_MASK >> SMC_NISLANDS_SPLL_DIV_TABLE_FBDIV_SHIFT))
> ret = -EINVAL;
>
> if (fb_div & ~(SMC_NISLANDS_SPLL_DIV_TABLE_FBDIV_MASK >> SMC_NISLANDS_SPLL_DIV_TABLE_FBDIV_SHIFT))
>

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

Attachment: signature.asc
Description: Digital signature