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;
|
u_int num_modes;
|
||||||
enum disp_data_mapping disp_data_fmt;
|
enum disp_data_mapping disp_data_fmt;
|
||||||
void __iomem *framebuffer;
|
void __iomem *framebuffer;
|
||||||
|
unsigned long framebuffer_size;
|
||||||
void __iomem *framebuffer_ovl;
|
void __iomem *framebuffer_ovl;
|
||||||
|
unsigned long framebuffer_ovl_size;
|
||||||
/** hook to enable backlight and stuff */
|
/** hook to enable backlight and stuff */
|
||||||
void (*enable)(int enable);
|
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)
|
if (!overlay->screen_base)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
overlay->screen_size = pdata->framebuffer_ovl_size;
|
||||||
|
|
||||||
sdc_enable_channel(fbi, overlay->screen_base, IDMAC_SDC_1);
|
sdc_enable_channel(fbi, overlay->screen_base, IDMAC_SDC_1);
|
||||||
|
|
||||||
ret = register_framebuffer(&fbi->overlay);
|
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");
|
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
|
* Use a given frambuffer or reserve some
|
||||||
* memory for screen usage
|
* memory for screen usage
|
||||||
*/
|
*/
|
||||||
fbi->info.screen_base = pdata->framebuffer;
|
fbi->info.screen_base = pdata->framebuffer;
|
||||||
if (fbi->info.screen_base == NULL) {
|
if (fbi->info.screen_base == NULL) {
|
||||||
fbi->info.screen_base = malloc(info->xres * info->yres *
|
fbi->info.screen_base = malloc(fbi->info.screen_size);
|
||||||
(info->bits_per_pixel >> 3));
|
|
||||||
if (!fbi->info.screen_base)
|
if (!fbi->info.screen_base)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue