summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2009-08-19 17:30:03 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2009-10-13 11:02:15 +0200
commit1d73a42006b0ae3d81a901778b0fb12d85406bbd (patch)
tree1c706ec74e55aaf855cc90dfbc378064e0ef461f /drivers
parent4ad31ee437288a03225415c76065033c1490bf77 (diff)
downloadbarebox-1d73a42006b0ae3d81a901778b0fb12d85406bbd.tar.gz
barebox-1d73a42006b0ae3d81a901778b0fb12d85406bbd.tar.xz
imxfb: make framebuffer base address configurable
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/imx.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/video/imx.c b/drivers/video/imx.c
index cf18ed0eb0..10aaa80cf3 100644
--- a/drivers/video/imx.c
+++ b/drivers/video/imx.c
@@ -425,7 +425,7 @@ static int imxfb_alpha_set(struct device_d *dev, struct param_d *param,
return 0;
}
-static int imxfb_register_overlay(struct imxfb_info *fbi)
+static int imxfb_register_overlay(struct imxfb_info *fbi, void *fb)
{
struct fb_info *overlay;
struct imxfb_rgb *rgb;
@@ -440,7 +440,10 @@ static int imxfb_register_overlay(struct imxfb_info *fbi)
overlay->bits_per_pixel = fbi->info.bits_per_pixel;
overlay->fbops = &imxfb_overlay_ops;
- overlay->screen_base = xzalloc(overlay->xres * overlay->yres *
+ if (fb)
+ overlay->screen_base = fb;
+ else
+ overlay->screen_base = xzalloc(overlay->xres * overlay->yres *
(overlay->bits_per_pixel >> 3));
writel((unsigned long)overlay->screen_base, fbi->regs + LCDC_LGWSAR);
@@ -526,7 +529,10 @@ static int imxfb_probe(struct device_d *dev)
dev_info(dev, "i.MX Framebuffer driver\n");
- fbi->info.screen_base = xzalloc(info->xres * info->yres *
+ if (pdata->framebuffer)
+ fbi->info.screen_base = pdata->framebuffer;
+ else
+ fbi->info.screen_base = xzalloc(info->xres * info->yres *
(info->bits_per_pixel >> 3));
imxfb_activate_var(&fbi->info);
@@ -537,7 +543,7 @@ static int imxfb_probe(struct device_d *dev)
return ret;
}
#ifdef CONFIG_IMXFB_DRIVER_VIDEO_IMX_OVERLAY
- imxfb_register_overlay(fbi);
+ imxfb_register_overlay(fbi, pdata->framebuffer_ovl);
#endif
imxfb_enable_controller(info);