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:
parent
8bec1f2f16
commit
a76f3d9535
|
@ -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);
|
||||
/*
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue