drm/ast: Fix calculation of MCLK
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 17 Feb 2017 02:57:30 +0000 (13:57 +1100)
committerDave Airlie <airlied@redhat.com>
Tue, 28 Feb 2017 03:14:22 +0000 (13:14 +1000)
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.

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@kernel.crashing.org>
Acked-by: Joel Stanley <joel@jms.id.au>
Tested-by: Y.C. Chen <yc_chen@aspeedtech.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/ast/ast_main.c

index 29ab2c11db411ab413461c1d6fc400ddeee5405a..fd167008be318251fa9414b0ee27e8d4686193fd 100644 (file)
@@ -354,7 +354,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;
 }
 
@@ -498,7 +498,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)