aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/exynos
diff options
context:
space:
mode:
authorJingoo Han <jg1.han@samsung.com>2012-05-25 03:21:08 -0400
committerFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>2012-05-29 09:16:15 -0400
commit24db03a834089a3600780ea1c7abe08e483e5d29 (patch)
tree732f124a75ec0327d5de7520ac905668e5f2bd09 /drivers/video/exynos
parent4d10ecf86b31b732092dc9668a6088323c24ab09 (diff)
video: exynos_dp: move sw reset prioir to enabling sw defined function
The sw reset should be called prioir to enabling sw defined function, according to datasheet. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Diffstat (limited to 'drivers/video/exynos')
-rw-r--r--drivers/video/exynos/exynos_dp_core.c2
-rw-r--r--drivers/video/exynos/exynos_dp_core.h1
-rw-r--r--drivers/video/exynos/exynos_dp_reg.c7
3 files changed, 8 insertions, 2 deletions
diff --git a/drivers/video/exynos/exynos_dp_core.c b/drivers/video/exynos/exynos_dp_core.c
index aabd214990d3..b446f7e42f2a 100644
--- a/drivers/video/exynos/exynos_dp_core.c
+++ b/drivers/video/exynos/exynos_dp_core.c
@@ -27,6 +27,8 @@ static int exynos_dp_init_dp(struct exynos_dp_device *dp)
27{ 27{
28 exynos_dp_reset(dp); 28 exynos_dp_reset(dp);
29 29
30 exynos_dp_swreset(dp);
31
30 /* SW defined function Normal operation */ 32 /* SW defined function Normal operation */
31 exynos_dp_enable_sw_function(dp); 33 exynos_dp_enable_sw_function(dp);
32 34
diff --git a/drivers/video/exynos/exynos_dp_core.h b/drivers/video/exynos/exynos_dp_core.h
index 8f596b9e7b2b..1e0f998e0c9f 100644
--- a/drivers/video/exynos/exynos_dp_core.h
+++ b/drivers/video/exynos/exynos_dp_core.h
@@ -41,6 +41,7 @@ void exynos_dp_lane_swap(struct exynos_dp_device *dp, bool enable);
41void exynos_dp_init_analog_param(struct exynos_dp_device *dp); 41void exynos_dp_init_analog_param(struct exynos_dp_device *dp);
42void exynos_dp_init_interrupt(struct exynos_dp_device *dp); 42void exynos_dp_init_interrupt(struct exynos_dp_device *dp);
43void exynos_dp_reset(struct exynos_dp_device *dp); 43void exynos_dp_reset(struct exynos_dp_device *dp);
44void exynos_dp_swreset(struct exynos_dp_device *dp);
44void exynos_dp_config_interrupt(struct exynos_dp_device *dp); 45void exynos_dp_config_interrupt(struct exynos_dp_device *dp);
45u32 exynos_dp_get_pll_lock_status(struct exynos_dp_device *dp); 46u32 exynos_dp_get_pll_lock_status(struct exynos_dp_device *dp);
46void exynos_dp_set_pll_power_down(struct exynos_dp_device *dp, bool enable); 47void exynos_dp_set_pll_power_down(struct exynos_dp_device *dp, bool enable);
diff --git a/drivers/video/exynos/exynos_dp_reg.c b/drivers/video/exynos/exynos_dp_reg.c
index 99bafb82537e..6ce76d56c3a1 100644
--- a/drivers/video/exynos/exynos_dp_reg.c
+++ b/drivers/video/exynos/exynos_dp_reg.c
@@ -109,8 +109,6 @@ void exynos_dp_reset(struct exynos_dp_device *dp)
109{ 109{
110 u32 reg; 110 u32 reg;
111 111
112 writel(RESET_DP_TX, dp->reg_base + EXYNOS_DP_TX_SW_RESET);
113
114 exynos_dp_stop_video(dp); 112 exynos_dp_stop_video(dp);
115 exynos_dp_enable_video_mute(dp, 0); 113 exynos_dp_enable_video_mute(dp, 0);
116 114
@@ -155,6 +153,11 @@ void exynos_dp_reset(struct exynos_dp_device *dp)
155 exynos_dp_init_interrupt(dp); 153 exynos_dp_init_interrupt(dp);
156} 154}
157 155
156void exynos_dp_swreset(struct exynos_dp_device *dp)
157{
158 writel(RESET_DP_TX, dp->reg_base + EXYNOS_DP_TX_SW_RESET);
159}
160
158void exynos_dp_config_interrupt(struct exynos_dp_device *dp) 161void exynos_dp_config_interrupt(struct exynos_dp_device *dp)
159{ 162{
160 u32 reg; 163 u32 reg;