summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShashank Sharma <shashanks@nvidia.com>2012-05-18 20:02:57 +0530
committerMatthew Pedro <mapedro@nvidia.com>2012-05-23 11:17:58 -0700
commit8a8dfa17de010d177cde894b921cb063cc2e901e (patch)
tree8bde087696ac8aeaa641acf64bfa4232b3e67b4d
parent7db1175dc125cdb9f1403273b9167678900dd7db (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.c9
-rw-r--r--arch/arm/mach-tegra/board-ventana-panel.c9
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);