diff options
author | Chris Redpath <chris.redpath@arm.com> | 2012-07-12 12:33:13 +0100 |
---|---|---|
committer | Alex Shi <alex.shi@linaro.org> | 2014-07-16 09:52:41 +0800 |
commit | 30e77716dc7558d550731156c9e872c31db62264 (patch) | |
tree | 21e81762b9819917a34c222ea079bcb466d40c8d /drivers/video | |
parent | 4450ca21f8f91a648a087031601d3fca9d38e926 (diff) |
ARM HDLCD: Add developer option to remove double-height framebuffers
This option can be used with Android to push the graphics subsystem into a
different composition strategy which is more effective when used on hardware
where the framebuffer memory is not cacheable.
Signed-off-by: Chris Redpath <chris.redpath@arm.com>
(cherry picked from commit f2f662336fed53bb7a34d422bcd0cdd3a896f837)
Signed-off-by: Alex Shi <alex.shi@linaro.org>
Diffstat (limited to 'drivers/video')
-rw-r--r-- | drivers/video/arm-hdlcd.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/video/arm-hdlcd.c b/drivers/video/arm-hdlcd.c index f16bb882e0c5..9600c70209b2 100644 --- a/drivers/video/arm-hdlcd.c +++ b/drivers/video/arm-hdlcd.c @@ -205,7 +205,11 @@ static int hdlcd_check_var(struct fb_var_screeninfo *var, struct fb_info *info) struct hdlcd_device *hdlcd = to_hdlcd_device(info); int bytes_per_pixel = var->bits_per_pixel / 8; +#ifdef HDLCD_NO_VIRTUAL_SCREEN + var->yres_virtual = var->yres; +#else var->yres_virtual = 2 * var->yres; +#endif if ((var->xres_virtual * bytes_per_pixel * var->yres_virtual) > hdlcd->fb.fix.smem_len) return -ENOMEM; @@ -570,7 +574,11 @@ static int hdlcd_setup(struct hdlcd_device *hdlcd) hdlcd->fb.var.yres, hdlcd->fb.var.bits_per_pixel, hdlcd->fb.mode ? hdlcd->fb.mode->refresh : 60); hdlcd->fb.var.xres_virtual = hdlcd->fb.var.xres; +#ifdef HDLCD_NO_VIRTUAL_SCREEN + hdlcd->fb.var.yres_virtual = hdlcd->fb.var.yres; +#else hdlcd->fb.var.yres_virtual = hdlcd->fb.var.yres * 2; +#endif /* initialise and set the palette */ if (fb_alloc_cmap(&hdlcd->fb.cmap, NR_PALETTE, 0)) { |