From 43933466e74dbdeb38ba8f5882ae8ed2372e3e4b Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Wed, 24 Sep 2014 10:27:29 -0500 Subject: exynos: convert to stopwatch API Instead of open coding monotonic timer usage, use the stopwatch API. BUG=None BRANCH=None TEST=None Change-Id: I1c541c1c9f3fde0dec9163ad6cc94322538ac7f7 Signed-off-by: Patrick Georgi Original-Commit-Id: 46ede0897687da6bcf730a8904f25e5a4485d6cd Original-Change-Id: Ia63a05850a1b6afdc42c2422332f77af516d27e3 Original-Signed-off-by: Aaron Durbin Original-Reviewed-on: https://chromium-review.googlesource.com/219716 Original-Reviewed-by: Julius Werner Original-Reviewed-by: David Hendricks Original-Reviewed-by: Furquan Shaikh Reviewed-on: http://review.coreboot.org/8825 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer --- src/soc/samsung/exynos5250/dp-reg.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) (limited to 'src/soc/samsung/exynos5250/dp-reg.c') diff --git a/src/soc/samsung/exynos5250/dp-reg.c b/src/soc/samsung/exynos5250/dp-reg.c index 1cc70887ce..018633e899 100644 --- a/src/soc/samsung/exynos5250/dp-reg.c +++ b/src/soc/samsung/exynos5250/dp-reg.c @@ -120,7 +120,7 @@ unsigned int s5p_dp_get_pll_lock_status(struct s5p_dp_device *dp) int s5p_dp_init_analog_func(struct s5p_dp_device *dp) { u32 reg; - struct mono_time current, end; + struct stopwatch sw; struct exynos5_dp *base = dp->base; writel(0x00, &base->dp_phy_pd); @@ -135,17 +135,14 @@ int s5p_dp_init_analog_func(struct s5p_dp_device *dp) clrbits_le32(&base->dp_pll_ctl, DP_PLL_PD); - timer_monotonic_get(¤t); - end = current; - mono_time_add_msecs(&end, PLL_LOCK_TIMEOUT); + stopwatch_init_msecs_expire(&sw, PLL_LOCK_TIMEOUT); while (s5p_dp_get_pll_lock_status(dp) == PLL_UNLOCKED) { - if (mono_time_after(¤t, &end)) { + if (stopwatch_expired(&sw)) { printk(BIOS_ERR, "%s: PLL is not locked\n", __func__); return -1; } - timer_monotonic_get(¤t); } } @@ -435,13 +432,11 @@ void s5p_dp_enable_video_master(struct s5p_dp_device *dp) int s5p_dp_is_video_stream_on(struct s5p_dp_device *dp) { u32 reg, i = 0; - struct mono_time current, end; + struct stopwatch sw; struct exynos5_dp *base = dp->base; /* Wait for 4 VSYNC_DET interrupts */ - timer_monotonic_get(¤t); - end = current; - mono_time_add_msecs(&end, STREAM_ON_TIMEOUT); + stopwatch_init_msecs_expire(&sw, STREAM_ON_TIMEOUT); do { reg = readl(&base->common_int_sta_1); @@ -451,8 +446,7 @@ int s5p_dp_is_video_stream_on(struct s5p_dp_device *dp) } if (i == 4) break; - timer_monotonic_get(¤t); - } while (mono_time_before(¤t, &end)); + } while (!stopwatch_expired(&sw)); if (i != 4) { printk(BIOS_DEBUG, "s5p_dp_is_video_stream_on timeout\n"); -- cgit v1.2.3