diff options
author | Shashank Sharma <shashanks@nvidia.com> | 2012-05-18 20:02:57 +0530 |
---|---|---|
committer | Matthew Pedro <mapedro@nvidia.com> | 2012-05-23 11:17:58 -0700 |
commit | 8a8dfa17de010d177cde894b921cb063cc2e901e (patch) | |
tree | 8bde087696ac8aeaa641acf64bfa4232b3e67b4d | |
parent | 7db1175dc125cdb9f1403273b9167678900dd7db (diff) |
video: tegra: dc: Init hdmi's platform data and fb
1. Change hdmi platform data structure's xres and yres values.
These values were made same as LVDS panel (1366x768). LVDS
runs fix display mode,but HDMI can switch to different modes.
The new values (640x480) are corresponding to HDMI's fallback
mode resolution.
2. Map bootloader's framebuffer content to fb1 also, to
initialize fb1's content, and to avoid black & white
strips when hdmi gets enabled but has no content in fb.
It sometimes causes inconsistency on fb_console mapped on HDMI.
Bug: 930136
Change-Id: Iecf0d8c1cdd6a1baec2aec9c5dded3d73d1347e1
Signed-off-by: Shashank Sharma <shashanks@nvidia.com>
Reviewed-on: http://git-master/r/103381
(cherry picked from commit 611caa58525e80f46eaf6990b68a7aa82f4f3dfa)
Reviewed-on: http://git-master/r/103667
Reviewed-by: Matthew Pedro <mapedro@nvidia.com>
-rw-r--r-- | arch/arm/mach-tegra/board-cardhu-panel.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-ventana-panel.c | 9 |
2 files changed, 14 insertions, 4 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu-panel.c b/arch/arm/mach-tegra/board-cardhu-panel.c index 5c7bd877f6a6..aaec711677fb 100644 --- a/arch/arm/mach-tegra/board-cardhu-panel.c +++ b/arch/arm/mach-tegra/board-cardhu-panel.c @@ -707,8 +707,8 @@ static struct tegra_fb_data cardhu_fb_data = { static struct tegra_fb_data cardhu_hdmi_fb_data = { .win = 0, - .xres = 1366, - .yres = 768, + .xres = 640, + .yres = 480, .bits_per_pixel = 32, .flags = TEGRA_FB_FLIP_ON_PROBE, }; @@ -1301,6 +1301,11 @@ int __init cardhu_panel_init(void) IORESOURCE_MEM, "fbmem"); res->start = tegra_fb2_start; res->end = tegra_fb2_start + tegra_fb2_size - 1; + + /* Copy the bootloader fb to the fb2. */ + tegra_move_framebuffer(tegra_fb2_start, tegra_bootloader_fb_start, + min(tegra_fb2_size, tegra_bootloader_fb_size)); + if (!err) err = nvhost_device_register(&cardhu_disp2_device); #endif diff --git a/arch/arm/mach-tegra/board-ventana-panel.c b/arch/arm/mach-tegra/board-ventana-panel.c index 4cacd3dc4216..d7f607a7ad1b 100644 --- a/arch/arm/mach-tegra/board-ventana-panel.c +++ b/arch/arm/mach-tegra/board-ventana-panel.c @@ -240,8 +240,8 @@ static struct tegra_fb_data ventana_fb_data = { static struct tegra_fb_data ventana_hdmi_fb_data = { .win = 0, - .xres = 1366, - .yres = 768, + .xres = 640, + .yres = 480, .bits_per_pixel = 32, .flags = TEGRA_FB_FLIP_ON_PROBE, }; @@ -444,6 +444,11 @@ int __init ventana_panel_init(void) tegra_move_framebuffer(tegra_fb_start, tegra_bootloader_fb_start, min(tegra_fb_size, tegra_bootloader_fb_size)); + /* Copy the bootloader fb to the fb2. */ + tegra_move_framebuffer(tegra_fb2_start, tegra_bootloader_fb_start, + min(tegra_fb2_size, tegra_bootloader_fb_size)); + + #if defined(CONFIG_TEGRA_GRHOST) && defined(CONFIG_TEGRA_DC) if (!err) err = nvhost_device_register(&ventana_disp1_device); |