summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJay Cheng <jacheng@nvidia.com>2010-06-17 18:06:47 -0400
committerGary King <gking@nvidia.com>2010-06-18 10:20:11 -0700
commit4cf68e5ee399bd587387aa9a4d45df62cf750aa4 (patch)
tree66955761016b0cd61cd928e1acb5ea2016a7e979 /drivers
parent9d6667430476b6dee458bb269958979ceee992e9 (diff)
framebuffer: tegra-fb: add 32bit frame buffer display
tegra-fb driver didn't check whether frame buffer is 16bit or 32bit allocated by bootloader and force to use 16bit display. Check frame buffer color format to support 32bit ARGB frame buffer. Bug 685731 Tested on Whistler Change-Id: Ib545df6227c966d9a26d414687226f4a81bb16bd Reviewed-on: http://git-master/r/2426 Reviewed-by: Gary King <gking@nvidia.com> Tested-by: Gary King <gking@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/tegra-fb.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/video/tegra-fb.c b/drivers/video/tegra-fb.c
index 358ac5c670c2..68e4506aad3e 100644
--- a/drivers/video/tegra-fb.c
+++ b/drivers/video/tegra-fb.c
@@ -331,6 +331,18 @@ static int tegra_plat_probe( struct platform_device *d )
tegra_fb_info.var.xres_virtual = s_fb_width;
tegra_fb_info.var.yres_virtual = s_fb_height;
+ if (boot_fb.ColorFormat == NvColorFormat_A8R8G8B8)
+ {
+ tegra_fb_info.var.bits_per_pixel = 32;
+ tegra_fb_info.var.transp.offset = 24;
+ tegra_fb_info.var.transp.length = 8;
+ tegra_fb_info.var.red.offset = 16;
+ tegra_fb_info.var.red.length = 8;
+ tegra_fb_info.var.green.offset = 8;
+ tegra_fb_info.var.green.length = 8;
+ tegra_fb_info.var.blue.offset = 0;
+ tegra_fb_info.var.blue.length = 8;
+ }
if( tegra_fb_info.screen_base == 0 ) {
printk("framebuffer map failure\n");
NvRmMemHandleFree(s_fb_hMem);