Prefer generic poll helpers over i915 custom helpers.

The functional change is losing the exponentially growing sleep of
wait_for(), which used to be 10, 20, 40, ..., 640, and 1280 us.

Use an arbitrary constant 500 us sleep instead. The timeout remains at
20 ms.

Signed-off-by: Jani Nikula <jani.nik...@intel.com>
---
 drivers/gpu/drm/i915/display/vlv_dsi_pll.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c 
b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
index 83afe1315e96..f078b9cda96c 100644
--- a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
+++ b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
@@ -25,12 +25,12 @@
  *     Yogesh Mohan Marimuthu <yogesh.mohan.marimu...@intel.com>
  */
 
+#include <linux/iopoll.h>
 #include <linux/kernel.h>
 #include <linux/string_helpers.h>
 
 #include <drm/drm_print.h>
 
-#include "i915_utils.h"
 #include "intel_de.h"
 #include "intel_display_types.h"
 #include "intel_dsi.h"
@@ -214,6 +214,8 @@ void vlv_dsi_pll_enable(struct intel_encoder *encoder,
                        const struct intel_crtc_state *config)
 {
        struct intel_display *display = to_intel_display(encoder);
+       u32 val;
+       int ret;
 
        drm_dbg_kms(display->drm, "\n");
 
@@ -231,9 +233,10 @@ void vlv_dsi_pll_enable(struct intel_encoder *encoder,
 
        vlv_cck_write(display->drm, CCK_REG_DSI_PLL_CONTROL, 
config->dsi_pll.ctrl);
 
-       if (wait_for(vlv_cck_read(display->drm, CCK_REG_DSI_PLL_CONTROL) &
-                                               DSI_PLL_LOCK, 20)) {
-
+       ret = poll_timeout_us(val = vlv_cck_read(display->drm, 
CCK_REG_DSI_PLL_CONTROL),
+                             val & DSI_PLL_LOCK,
+                             500, 20 * 1000, false);
+       if (ret) {
                vlv_cck_put(display->drm);
                drm_err(display->drm, "DSI PLL lock failed\n");
                return;
-- 
2.47.2

Reply via email to