diff options
| author | Jingoo Han <jg1.han@samsung.com> | 2012-05-25 03:21:08 -0400 |
|---|---|---|
| committer | Florian Tobias Schandinat <FlorianSchandinat@gmx.de> | 2012-05-29 09:16:15 -0400 |
| commit | 24db03a834089a3600780ea1c7abe08e483e5d29 (patch) | |
| tree | 732f124a75ec0327d5de7520ac905668e5f2bd09 | |
| parent | 4d10ecf86b31b732092dc9668a6088323c24ab09 (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>
| -rw-r--r-- | drivers/video/exynos/exynos_dp_core.c | 2 | ||||
| -rw-r--r-- | drivers/video/exynos/exynos_dp_core.h | 1 | ||||
| -rw-r--r-- | drivers/video/exynos/exynos_dp_reg.c | 7 |
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); | |||
| 41 | void exynos_dp_init_analog_param(struct exynos_dp_device *dp); | 41 | void exynos_dp_init_analog_param(struct exynos_dp_device *dp); |
| 42 | void exynos_dp_init_interrupt(struct exynos_dp_device *dp); | 42 | void exynos_dp_init_interrupt(struct exynos_dp_device *dp); |
| 43 | void exynos_dp_reset(struct exynos_dp_device *dp); | 43 | void exynos_dp_reset(struct exynos_dp_device *dp); |
| 44 | void exynos_dp_swreset(struct exynos_dp_device *dp); | ||
| 44 | void exynos_dp_config_interrupt(struct exynos_dp_device *dp); | 45 | void exynos_dp_config_interrupt(struct exynos_dp_device *dp); |
| 45 | u32 exynos_dp_get_pll_lock_status(struct exynos_dp_device *dp); | 46 | u32 exynos_dp_get_pll_lock_status(struct exynos_dp_device *dp); |
| 46 | void exynos_dp_set_pll_power_down(struct exynos_dp_device *dp, bool enable); | 47 | void 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 | ||
| 156 | void exynos_dp_swreset(struct exynos_dp_device *dp) | ||
| 157 | { | ||
| 158 | writel(RESET_DP_TX, dp->reg_base + EXYNOS_DP_TX_SW_RESET); | ||
| 159 | } | ||
| 160 | |||
| 158 | void exynos_dp_config_interrupt(struct exynos_dp_device *dp) | 161 | void exynos_dp_config_interrupt(struct exynos_dp_device *dp) |
| 159 | { | 162 | { |
| 160 | u32 reg; | 163 | u32 reg; |
