Patch "drm/ast: Initialized data needed to map fbdev memory" has been added to the 3.10-stable tree
This is a note to let you know that I've just added the patch titled
drm/ast: Initialized data needed to map fbdev memory
to the 3.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
drm-ast-initialized-data-needed-to-map-fbdev-memory.patch
and it can be found in the queue-3.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
28fb4cb7fa6f63dc2fbdb5f2564dcbead8e3eee0Mon Sep 17 00:00:00 2001
From: Egbert Eich <[email protected]>
Date: Wed, 11 Jun 2014 14:59:55 +0200
Subject: drm/ast: Initialized data needed to map fbdev memory
From: Egbert Eich <[email protected]>
commit 28fb4cb7fa6f63dc2fbdb5f2564dcbead8e3eee0 upstream.
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.
--- drivers/gpu/drm/ast/ast_drv.h | 1 + drivers/gpu/drm/ast/ast_fb.c | 7 +++++++ drivers/gpu/drm/ast/ast_main.c | 1 + drivers/gpu/drm/ast/ast_mode.c | 2 ++ 4 files changed, 11 insertions(+)
drivers/gpu/drm/ast/ast_drv.h +1 -0
@@ -296,6 +296,7 @@ int ast_framebuffer_init(struct drm_deviint ast_fbdev_init (struct drm_device *dev);void ast_fbdev_fini (struct drm_device *dev);void ast_fbdev_set_suspend (struct drm_device *dev,int state); +void ast_fbdev_set_base (struct ast_private *ast,unsigned long gpu_addr);struct ast_bo {struct ttm_buffer_object bo;
drivers/gpu/drm/ast/ast_fb.c +7 -0
@@ -366,3 +366,10 @@ void ast_fbdev_set_suspend(struct drm_defb_set_suspend (ast->fbdev->helper.fbdev, 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; +}
drivers/gpu/drm/ast/ast_main.c +1 -0
@@ -359,6 +359,7 @@ int ast_driver_load(struct drm_device *d dev->mode_config.min_height =0 ; dev->mode_config.preferred_depth =24 ; dev->mode_config.prefer_shadow =1 ; + dev->mode_config.fb_base =pci_resource_start (ast->dev->pdev,0 ); if (ast->chip == AST2100 || ast->chip == AST2200 ||
drivers/gpu/drm/ast/ast_mode.c +2 -0
@@ -509,6 +509,8 @@ static int ast_crtc_do_set_base(struct d ret =ttm_bo_kmap (&bo->bo,0 , bo->bo.num_pages, &bo->kmap);if (ret)DRM_ERROR ("failed to kmap fbcon\n" ); +else +ast_fbdev_set_base (ast, gpu_addr); }ast_bo_unreserve (bo);
Patches currently in stable-queue which might be from [email protected] are
queue-3.10/drm-ast-initialized-data-needed-to-map-fbdev-memory.patch