]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - drivers/video/exynos_fb.c
Merge branch 'agust@denx.de' of git://git.denx.de/u-boot-staging
[karo-tx-uboot.git] / drivers / video / exynos_fb.c
index a1cf44964bf6bbd036f12b0aa89f68cd90cf1fd5..e31a0fd500abef1bc46c9e0518e7bc2e8639db3d 100644 (file)
@@ -28,6 +28,7 @@
 #include <asm/arch/clock.h>
 #include <asm/arch/clk.h>
 #include <asm/arch/mipi_dsim.h>
+#include <asm/arch/dp_info.h>
 #include <asm/arch/system.h>
 
 #include "exynos_fb.h"
@@ -44,9 +45,6 @@ short console_row;
 
 static unsigned int panel_width, panel_height;
 
-/* LCD Panel data */
-vidinfo_t panel_info;
-
 static void exynos_lcd_init_mem(void *lcdbase, vidinfo_t *vid)
 {
        unsigned long palette_size;
@@ -67,6 +65,18 @@ static void exynos_lcd_init(vidinfo_t *vid)
        exynos_fimd_lcd_init(vid);
 }
 
+static void draw_logo(void)
+{
+       int x, y;
+       ulong addr;
+
+       x = ((panel_width - panel_info.logo_width) >> 1);
+       y = ((panel_height - panel_info.logo_height) >> 1) - 4;
+
+       addr = panel_info.logo_addr;
+       bmp_display(addr, x, y);
+}
+
 static void lcd_panel_on(vidinfo_t *vid)
 {
        udelay(vid->init_delay);
@@ -82,6 +92,9 @@ static void lcd_panel_on(vidinfo_t *vid)
 
        udelay(vid->power_on_delay);
 
+       if (vid->dp_enabled)
+               exynos_init_dp();
+
        if (vid->reset_lcd) {
                vid->reset_lcd();
                udelay(vid->reset_delay);
@@ -118,6 +131,12 @@ void lcd_ctrl_init(void *lcdbase)
 
 void lcd_enable(void)
 {
+       if (panel_info.logo_on) {
+               memset(lcd_base, 0, panel_width * panel_height *
+                               (NBITS(panel_info.vl_bpix) >> 3));
+               draw_logo();
+       }
+
        lcd_panel_on(&panel_info);
 }