summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/ast/ast_fb.c
diff options
context:
space:
mode:
authorEgbert Eich2014-06-11 14:59:55 +0200
committerDave Airlie2015-11-11 03:27:31 +0100
commit28fb4cb7fa6f63dc2fbdb5f2564dcbead8e3eee0 (patch)
tree178c61d4b4f2fa3a56af57163a979d11c65d691b /drivers/gpu/drm/ast/ast_fb.c
parentdrm/vc4: Add dependency on HAVE_DMA_ATTRS, and select DRM_GEM_CMA_HELPER (diff)
downloadkernel-qcow2-linux-28fb4cb7fa6f63dc2fbdb5f2564dcbead8e3eee0.tar.gz
kernel-qcow2-linux-28fb4cb7fa6f63dc2fbdb5f2564dcbead8e3eee0.tar.xz
kernel-qcow2-linux-28fb4cb7fa6f63dc2fbdb5f2564dcbead8e3eee0.zip
drm/ast: Initialized data needed to map fbdev memory
Due to a missing initialization there was no way to map fbdev memory. Thus for example using the Xserver with the fbdev driver failed. This fix adds initialization for fix.smem_start and fix.smem_len in the fb_info structure, which fixes this problem. Requested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: stable@vger.kernel.org Signed-off-by: Egbert Eich <eich@suse.de> [pulled from SuSE tree by me - airlied] Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/ast/ast_fb.c')
-rw-r--r--drivers/gpu/drm/ast/ast_fb.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/ast/ast_fb.c b/drivers/gpu/drm/ast/ast_fb.c
index f31db28a684b..a37e7ea4a00c 100644
--- a/drivers/gpu/drm/ast/ast_fb.c
+++ b/drivers/gpu/drm/ast/ast_fb.c
@@ -365,3 +365,10 @@ void ast_fbdev_set_suspend(struct drm_device *dev, int state)
drm_fb_helper_set_suspend(&ast->fbdev->helper, state);
}
+
+void ast_fbdev_set_base(struct ast_private *ast, unsigned long gpu_addr)
+{
+ ast->fbdev->helper.fbdev->fix.smem_start =
+ ast->fbdev->helper.fbdev->apertures->ranges[0].base + gpu_addr;
+ ast->fbdev->helper.fbdev->fix.smem_len = ast->vram_size - gpu_addr;
+}