arm: tegra: cardhu: Fix the issue of boot screen corruption.
Kevin Huang [Wed, 6 Jul 2011 01:27:43 +0000 (18:27 -0700)]
- The issue is due to the corruption of bootloader fb during kernel
initialization. This change reserves the bootloader fb and then
frees it until bootloader fb is copied to fb for Cardhu, Ventana,
Whistler, Enterprise and Aruba.
- Change color depth of Cardhu and Harmony to 32-bit.

Bug 828271
Bug 832016

Original-Change-Id: I05ef5930ee68dcbd672a5cb59b4568a2c88a2e55
Reviewed-on: http://git-master/r/34966
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>

Rebase-Id: Rbc9b3051971060bcdd65eddfda801433056f4ddb

arch/arm/mach-tegra/board-whistler-panel.c
arch/arm/mach-tegra/board-whistler.c

index d41459f..9603b69 100644 (file)
@@ -207,6 +207,7 @@ static struct tegra_fb_data whistler_fb_data = {
        .xres           = 800,
        .yres           = 480,
        .bits_per_pixel = 32,
+       .flags          = TEGRA_FB_FLIP_ON_PROBE,
 };
 
 static struct tegra_fb_data whistler_hdmi_fb_data = {
@@ -214,6 +215,7 @@ static struct tegra_fb_data whistler_hdmi_fb_data = {
        .xres           = 800,
        .yres           = 480,
        .bits_per_pixel = 32,
+       .flags          = TEGRA_FB_FLIP_ON_PROBE,
 };
 
 
@@ -299,6 +301,10 @@ int __init whistler_panel_init(void)
        res->start = tegra_fb_start;
        res->end = tegra_fb_start + tegra_fb_size - 1;
 
+       /* Copy the bootloader fb to the fb. */
+       tegra_move_framebuffer(tegra_fb_start, tegra_bootloader_fb_start,
+               min(tegra_fb_size, tegra_bootloader_fb_size));
+
        res = nvhost_get_resource_byname(&whistler_disp2_device,
                                         IORESOURCE_MEM, "fbmem");
        res->start = tegra_fb2_start;
index e324442..db827fd 100644 (file)
@@ -392,6 +392,7 @@ static void __init tegra_whistler_init(void)
        whistler_power_off_init();
        whistler_emc_init();
        whistler_baseband_init();
+       tegra_release_bootloader_fb();
 }
 
 int __init tegra_whistler_protected_aperture_init(void)