Skip to content

Commit

Permalink
video: exynos_dp: move sw reset prioir to enabling sw defined function
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jingoo Han authored and Florian Tobias Schandinat committed May 29, 2012
1 parent 4d10ecf commit 24db03a
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 2 deletions.
2 changes: 2 additions & 0 deletions drivers/video/exynos/exynos_dp_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ static int exynos_dp_init_dp(struct exynos_dp_device *dp)
{
exynos_dp_reset(dp);

exynos_dp_swreset(dp);

/* SW defined function Normal operation */
exynos_dp_enable_sw_function(dp);

Expand Down
1 change: 1 addition & 0 deletions drivers/video/exynos/exynos_dp_core.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ void exynos_dp_lane_swap(struct exynos_dp_device *dp, bool enable);
void exynos_dp_init_analog_param(struct exynos_dp_device *dp);
void exynos_dp_init_interrupt(struct exynos_dp_device *dp);
void exynos_dp_reset(struct exynos_dp_device *dp);
void exynos_dp_swreset(struct exynos_dp_device *dp);
void exynos_dp_config_interrupt(struct exynos_dp_device *dp);
u32 exynos_dp_get_pll_lock_status(struct exynos_dp_device *dp);
void exynos_dp_set_pll_power_down(struct exynos_dp_device *dp, bool enable);
Expand Down
7 changes: 5 additions & 2 deletions drivers/video/exynos/exynos_dp_reg.c
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,6 @@ void exynos_dp_reset(struct exynos_dp_device *dp)
{
u32 reg;

writel(RESET_DP_TX, dp->reg_base + EXYNOS_DP_TX_SW_RESET);

exynos_dp_stop_video(dp);
exynos_dp_enable_video_mute(dp, 0);

Expand Down Expand Up @@ -155,6 +153,11 @@ void exynos_dp_reset(struct exynos_dp_device *dp)
exynos_dp_init_interrupt(dp);
}

void exynos_dp_swreset(struct exynos_dp_device *dp)
{
writel(RESET_DP_TX, dp->reg_base + EXYNOS_DP_TX_SW_RESET);
}

void exynos_dp_config_interrupt(struct exynos_dp_device *dp)
{
u32 reg;
Expand Down

0 comments on commit 24db03a

Please sign in to comment.