diff options
author | Jay Cheng <jacheng@nvidia.com> | 2010-06-17 18:06:47 -0400 |
---|---|---|
committer | Gary King <gking@nvidia.com> | 2010-06-18 10:20:11 -0700 |
commit | 4cf68e5ee399bd587387aa9a4d45df62cf750aa4 (patch) | |
tree | 66955761016b0cd61cd928e1acb5ea2016a7e979 /drivers | |
parent | 9d6667430476b6dee458bb269958979ceee992e9 (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.c | 12 |
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); |