Skip to contentSkip to conversation

video: exynos fb driver supports display port feature

PATCH New Donghwa Lee 1 participant 1 message Jul 2, 2012

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 7/8 video: exynos fb driver supports display port feature

If dp_enabled was set, exynos fb driver support display port feature. This patch depends on [PATCH] video: support exynos fimd driver for various exynos series.

http://marc.info/?l=u-boot&m=134119605104467&w=2

---
 arch/arm/include/asm/arch-exynos/fb.h |    1 +
 drivers/video/exynos_fb.c             |    5 ++++-
 drivers/video/exynos_fimd.c           |   15 +++++++++++++++
 3 files changed, 20 insertions(+), 1 deletions(-)
arch/arm/include/asm/arch-exynos/fb.h +1 -0
index bc0a4cb..a3790e2 100644
@@ -152,6 +152,7 @@ struct exynos_fb {
 	unsigned char res15[156];
 	unsigned int dualrgb;
 	unsigned char res16[16];
+	unsigned int dp_mie_clkcon;
 };
 #endif
 
drivers/video/exynos_fb.c +4 -1
index 49fdfec..e31a0fd 100644
@@ -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"
@@ -91,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);
@@ -130,7 +134,6 @@ 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();
 	}
 
drivers/video/exynos_fimd.c +15 -0
index 989063d..6539902 100644
@@ -57,6 +57,19 @@ static void exynos_fimd_set_dualrgb(unsigned int enabled)
 	writel(cfg, &fimd_ctrl->dualrgb);
 }
 
+static void exynos_fimd_set_dp_clkcon(unsigned int enabled)
+{
+
+	struct exynos_fb *fimd_ctrl =
+		(struct exynos_fb *)samsung_get_base_fimd();
+	unsigned int cfg = 0;
+
+	if (enabled)
+		cfg = EXYNOS_DP_CLK_ENABLE;
+
+	writel(cfg, &fimd_ctrl->dp_mie_clkcon);
+}
+
 static void exynos_fimd_set_par(unsigned int win_id)
 {
 	unsigned int cfg = 0;
@@ -363,6 +376,8 @@ void exynos_fimd_lcd_init(vidinfo_t *vid)
 
 	/* window on */
 	exynos_fimd_window_on(pvid->win_id);
+
+	exynos_fimd_set_dp_clkcon(pvid->dp_enabled);
 }
 
 unsigned long exynos_fimd_calc_fbsize(void)
Signature · 1 line
1.7.4.1