diff options
author | Y.C. Chen <yc_chen@aspeedtech.com> | 2017-02-17 10:56:47 +0800 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2017-02-28 13:16:14 +1000 |
commit | bad09da6deab157440a3f0dd5e6c03cdc60c0a91 (patch) | |
tree | 432a0db6a7854c8f2d0d3a05416ae9f2ba5e0cdc /drivers/gpu/drm/ast | |
parent | 9f93c8b3c08f8c456aad86fd05caa6a1688320ff (diff) | |
download | talos-op-linux-bad09da6deab157440a3f0dd5e6c03cdc60c0a91.tar.gz talos-op-linux-bad09da6deab157440a3f0dd5e6c03cdc60c0a91.zip |
drm/ast: Fixed vram size incorrect issue on POWER
The default value of VGA scratch may incorrect.
Should initial h/w before get vram info.
Acked-by: Joel Stanley <joel@jms.id.au>
Tested-by: Y.C. Chen <yc_chen@aspeedtech.com>
Signed-off-by: Y.C. Chen <yc_chen@aspeedtech.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/ast')
-rw-r--r-- | drivers/gpu/drm/ast/ast_main.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/ast/ast_post.c | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/drivers/gpu/drm/ast/ast_main.c b/drivers/gpu/drm/ast/ast_main.c index 8e8c0310245f..262c2c0e43b4 100644 --- a/drivers/gpu/drm/ast/ast_main.c +++ b/drivers/gpu/drm/ast/ast_main.c @@ -518,6 +518,9 @@ int ast_driver_load(struct drm_device *dev, unsigned long flags) ast_detect_chip(dev, &need_post); + if (need_post) + ast_post_gpu(dev); + if (ast->chip != AST1180) { ret = ast_get_dram_info(dev); if (ret) @@ -528,9 +531,6 @@ int ast_driver_load(struct drm_device *dev, unsigned long flags) ast->dram_bus_width, ast->vram_size); } - if (need_post) - ast_post_gpu(dev); - ret = ast_mm_init(ast); if (ret) goto out_free; diff --git a/drivers/gpu/drm/ast/ast_post.c b/drivers/gpu/drm/ast/ast_post.c index 64549cebcc5b..e8024502e749 100644 --- a/drivers/gpu/drm/ast/ast_post.c +++ b/drivers/gpu/drm/ast/ast_post.c @@ -79,7 +79,7 @@ ast_set_def_ext_reg(struct drm_device *dev) const u8 *ext_reg_info; /* reset scratch */ - for (i = 0x81; i <= 0x8f; i++) + for (i = 0x81; i <= 0x9f; i++) ast_set_index_reg(ast, AST_IO_CRTC_PORT, i, 0x00); if (ast->chip == AST2300 || ast->chip == AST2400) { |