video: Modify exynos_fimd driver to support LCD console
authorAjay Kumar <ajaykumar.rs@samsung.com>
Tue, 8 Jan 2013 20:42:25 +0000 (20:42 +0000)
committerMinkyu Kang <mk7.kang@samsung.com>
Thu, 10 Jan 2013 01:19:47 +0000 (10:19 +0900)
Currently, exynos FIMD driver is being used to support only TIZEN LOGOs.
In order to get LCD console, we need to enable half word swap feature
of FIMD and use 16 BPP.
LCD console and proprietary Logo cannot be used simultaneously.
We use "logo_on" field inside vidinfo_t structure to decide whether
user wants Logo or Console.
Define CONFIG_CMD_BMP and make logo_on = 1 to get Logo on screen.
Use logo_on = 0 to get output console on LCD.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
drivers/video/exynos_fb.c
drivers/video/exynos_fimd.c

index aac74a3c68efc5349685fba8a10ae8f0819e5f0d..183bca07c5899ca42190ece283a56e47bdc2ceac 100644 (file)
@@ -88,7 +88,9 @@ static void draw_logo(void)
        }
 
        addr = panel_info.logo_addr;
+#ifdef CONFIG_CMD_BMP
        bmp_display(addr, x, y);
+#endif
 }
 
 static void lcd_panel_on(vidinfo_t *vid)
index 06eae2ed78825d3e7168c6da57b1a87ed39fb6e5..2efe6a61c266f5c3ed2e264e35e11ad0b4b39362 100644 (file)
@@ -88,14 +88,18 @@ static void exynos_fimd_set_par(unsigned int win_id)
        /* DATAPATH is DMA */
        cfg |= EXYNOS_WINCON_DATAPATH_DMA;
 
-       /* bpp is 32 */
-       cfg |= EXYNOS_WINCON_WSWP_ENABLE;
+       if (pvid->logo_on) /* To get proprietary LOGO */
+               cfg |= EXYNOS_WINCON_WSWP_ENABLE;
+       else /* To get output console on LCD */
+               cfg |= EXYNOS_WINCON_HAWSWP_ENABLE;
 
        /* dma burst is 16 */
        cfg |= EXYNOS_WINCON_BURSTLEN_16WORD;
 
-       /* pixel format is unpacked RGB888 */
-       cfg |= EXYNOS_WINCON_BPPMODE_24BPP_888;
+       if (pvid->logo_on) /* To get proprietary LOGO */
+               cfg |= EXYNOS_WINCON_BPPMODE_24BPP_888;
+       else /* To get output console on LCD */
+               cfg |= EXYNOS_WINCON_BPPMODE_16BPP_565;
 
        writel(cfg, (unsigned int)&fimd_ctrl->wincon0 +
                        EXYNOS_WINCON(win_id));