Replace explicit polling in tc_link_training() with equivalent call to
regmap_read_poll_timeout() for simplicity. No functional change
intended (not including slightly altered debug output).

Signed-off-by: Andrey Smirnov <[email protected]>
Cc: Archit Taneja <[email protected]>
Cc: Andrzej Hajda <[email protected]>
Cc: Laurent Pinchart <[email protected]>
Cc: Chris Healy <[email protected]>
Cc: Lucas Stach <[email protected]>
Cc: [email protected]
Cc: [email protected]
---
 drivers/gpu/drm/bridge/tc358767.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/bridge/tc358767.c 
b/drivers/gpu/drm/bridge/tc358767.c
index 6455e6484722..ea30cec4a0c3 100644
--- a/drivers/gpu/drm/bridge/tc358767.c
+++ b/drivers/gpu/drm/bridge/tc358767.c
@@ -735,7 +735,6 @@ static int tc_link_training(struct tc_data *tc, int pattern)
        const char * const *errors;
        u32 srcctrl = tc_srcctrl(tc) | DP0_SRCCTRL_SCRMBLDIS |
                      DP0_SRCCTRL_AUTOCORRECT;
-       int timeout;
        int retry;
        u32 value;
        int ret;
@@ -765,20 +764,17 @@ static int tc_link_training(struct tc_data *tc, int 
pattern)
                tc_write(DP0CTL, DP_EN);
 
                /* wait */
-               timeout = 1000;
-               do {
-                       tc_read(DP0_LTSTAT, &value);
-                       udelay(1);
-               } while ((!(value & LT_LOOPDONE)) && (--timeout));
-               if (timeout == 0) {
+               ret = regmap_read_poll_timeout(tc->regmap, DP0_LTSTAT, value,
+                                              value & LT_LOOPDONE, 1, 1000);
+               if (ret) {
                        dev_err(tc->dev, "Link training timeout!\n");
                } else {
                        int pattern = (value >> 11) & 0x3;
                        int error = (value >> 8) & 0x7;
 
                        dev_dbg(tc->dev,
-                               "Link training phase %d done after %d uS: %s\n",
-                               pattern, 1000 - timeout, errors[error]);
+                               "Link training phase %d done: %s\n",
+                               pattern, errors[error]);
                        if (pattern == DP_TRAINING_PATTERN_1 && error == 0)
                                break;
                        if (pattern == DP_TRAINING_PATTERN_2) {
-- 
2.20.1

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to