mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
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>
This commit is contained in:
committed by
Jon Medhurst
parent
5705f5f9c6
commit
9f14266f6f
@@ -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)) {
|
||||
|
||||
@@ -102,6 +102,10 @@
|
||||
* and /proc/hdlcd_underrun to read the counter
|
||||
*/
|
||||
//#define HDLCD_COUNT_BUFFERUNDERRUNS
|
||||
/* Restrict height to 1x screen size
|
||||
*
|
||||
*/
|
||||
//#define HDLCD_NO_VIRTUAL_SCREEN
|
||||
|
||||
struct hdlcd_device {
|
||||
struct fb_info fb;
|
||||
|
||||
Reference in New Issue
Block a user