9
0
Fork 0

video: imx-ipu-fb: Allow to specify framebuffer memory size via platform_data

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Sascha Hauer 2013-12-18 16:26:18 +01:00
parent 8bec1f2f16
commit a76f3d9535
2 changed files with 9 additions and 2 deletions

View File

@ -44,7 +44,9 @@ struct imx_ipu_fb_platform_data {
u_int num_modes;
enum disp_data_mapping disp_data_fmt;
void __iomem *framebuffer;
unsigned long framebuffer_size;
void __iomem *framebuffer_ovl;
unsigned long framebuffer_ovl_size;
/** hook to enable backlight and stuff */
void (*enable)(int enable);
/*

View File

@ -964,6 +964,8 @@ static int sdc_fb_register_overlay(struct ipu_fb_info *fbi, void *fb)
if (!overlay->screen_base)
return -ENOMEM;
overlay->screen_size = pdata->framebuffer_ovl_size;
sdc_enable_channel(fbi, overlay->screen_base, IDMAC_SDC_1);
ret = register_framebuffer(&fbi->overlay);
@ -1011,14 +1013,17 @@ static int imxfb_probe(struct device_d *dev)
dev_info(dev, "i.MX Framebuffer driver\n");
fbi->info.screen_size = pdata->framebuffer_size;
if (!fbi->info.screen_size)
fbi->info.screen_size = info->xres * info->yres *
(info->bits_per_pixel >> 3);
/*
* Use a given frambuffer or reserve some
* memory for screen usage
*/
fbi->info.screen_base = pdata->framebuffer;
if (fbi->info.screen_base == NULL) {
fbi->info.screen_base = malloc(info->xres * info->yres *
(info->bits_per_pixel >> 3));
fbi->info.screen_base = malloc(fbi->info.screen_size);
if (!fbi->info.screen_base)
return -ENOMEM;
}