[PATCH 05/12] drm/ast: Fix calculation of MCLK
Joel Stanley
joel at jms.id.au
Fri Feb 24 13:24:26 AEDT 2017
On Fri, Feb 24, 2017 at 9:23 AM, Benjamin Herrenschmidt
<benh at kernel.crashing.org> wrote:
> Some braces were missing causing an incorrect calculation.
>
> Y.C. Chen from Aspeed provided me with the right formula
> which I tested on AST2400 and 2500.
Y. C. Chen, can you point out this calculation in the programming guide?
All of the PLL calculations I can find in the ast2400 documentation
are different to this one.
Cheers,
Joel
>
> The MCLK isn't currently used by the driver (it will eventually
> to filter modes) so the issue isn't catastrophic.
>
> Also make the printed value a bit more meaningful
>
> Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
> ---
> drivers/gpu/drm/ast/ast_main.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/ast/ast_main.c b/drivers/gpu/drm/ast/ast_main.c
> index 718c15b..d194af3 100644
> --- a/drivers/gpu/drm/ast/ast_main.c
> +++ b/drivers/gpu/drm/ast/ast_main.c
> @@ -352,7 +352,7 @@ static int ast_get_dram_info(struct drm_device *dev)
> div = 0x1;
> break;
> }
> - ast->mclk = ref_pll * (num + 2) / (denum + 2) * (div * 1000);
> + ast->mclk = ref_pll * (num + 2) / ((denum + 2) * (div * 1000));
> return 0;
> }
>
> @@ -496,7 +496,9 @@ int ast_driver_load(struct drm_device *dev, unsigned long flags)
> if (ret)
> goto out_free;
> ast->vram_size = ast_get_vram_info(dev);
> - DRM_INFO("dram %d %d %d %08x\n", ast->mclk, ast->dram_type, ast->dram_bus_width, ast->vram_size);
> + DRM_INFO("dram MCLK=%u Mhz type=%d bus_width=%d size=%08x\n",
> + ast->mclk, ast->dram_type,
> + ast->dram_bus_width, ast->vram_size);
> }
>
> if (need_post)
> --
> 2.9.3
>
More information about the Linuxppc-dev
mailing list