[PATCH 2/2] atmel_lcdfb: Add board parameter specify framebuffer memory size
From: Stanislaw Gruszka <stf_xl@wp.pl>
Date: 2008-08-08 12:47:10
Subsystem:
framebuffer layer, microchip lcdfb driver, the rest · Maintainers:
Helge Deller, Nicolas Ferre, Linus Torvalds
Specify how much physically continuous, DMA capable memory will be allocated at driver initialization time. This allow to create framebuffer device with larger virtual resolution. Combine with y-panning this can be used to implement double buffering acceleration method. Signed-off-by: Stanislaw Gruszka <stf_xl@wp.pl> Acked-by: Haavard Skinnemoen <redacted> --- drivers/video/atmel_lcdfb.c | 7 +++++-- include/video/atmel_lcdc.h | 1 + 2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c
index e1acfa7..a471a60 100644
--- a/drivers/video/atmel_lcdfb.c
+++ b/drivers/video/atmel_lcdfb.c@@ -242,9 +242,11 @@ static int atmel_lcdfb_alloc_video_memory(struct atmel_lcdfb_info *sinfo)
{
struct fb_info *info = sinfo->info;
struct fb_var_screeninfo *var = &info->var;
+ unsigned int smem_len;
- info->fix.smem_len = (var->xres_virtual * var->yres_virtual
- * ((var->bits_per_pixel + 7) / 8));
+ smem_len = (var->xres_virtual * var->yres_virtual
+ * ((var->bits_per_pixel + 7) / 8));
+ info->fix.smem_len = max(smem_len, sinfo->smem_len);
info->screen_base = dma_alloc_writecombine(info->device, info->fix.smem_len,
(dma_addr_t *)&info->fix.smem_start, GFP_KERNEL);@@ -796,6 +798,7 @@ static int __init atmel_lcdfb_probe(struct platform_device *pdev)
sinfo->default_monspecs = pdata_sinfo->default_monspecs;
sinfo->atmel_lcdfb_power_control = pdata_sinfo->atmel_lcdfb_power_control;
sinfo->guard_time = pdata_sinfo->guard_time;
+ sinfo->smem_len = pdata_sinfo->smem_len;
sinfo->lcdcon_is_backlight = pdata_sinfo->lcdcon_is_backlight;
sinfo->lcd_wiring_mode = pdata_sinfo->lcd_wiring_mode;
} else {diff --git a/include/video/atmel_lcdc.h b/include/video/atmel_lcdc.h
index 613173b..920c4e9 100644
--- a/include/video/atmel_lcdc.h
+++ b/include/video/atmel_lcdc.h@@ -41,6 +41,7 @@ struct atmel_lcdfb_info { struct work_struct task; unsigned int guard_time; + unsigned int smem_len; struct platform_device *pdev; struct clk *bus_clk; struct clk *lcdc_clk;
--
1.5.2.5
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/