clk-bcm2835: Don't wait for pllh lock
authorPhil Elwell <phil@raspberrypi.org>
Wed, 23 Jan 2019 16:11:50 +0000 (16:11 +0000)
committerpopcornmix <popcornmix@gmail.com>
Wed, 1 Jul 2020 15:32:57 +0000 (16:32 +0100)
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
drivers/clk/bcm/clk-bcm2835.c

index ffb3d19..0c2a6bc 100644 (file)
@@ -628,15 +628,17 @@ static int bcm2835_pll_on(struct clk_hw *hw)
        spin_unlock(&cprman->regs_lock);
 
        /* Wait for the PLL to lock. */
-       timeout = ktime_add_ns(ktime_get(), LOCK_TIMEOUT_NS);
-       while (!(cprman_read(cprman, CM_LOCK) & data->lock_mask)) {
-               if (ktime_after(ktime_get(), timeout)) {
-                       dev_err(cprman->dev, "%s: couldn't lock PLL\n",
-                               clk_hw_get_name(hw));
-                       return -ETIMEDOUT;
+       if (strcmp(data->name, "pllh")) {
+               timeout = ktime_add_ns(ktime_get(), LOCK_TIMEOUT_NS);
+               while (!(cprman_read(cprman, CM_LOCK) & data->lock_mask)) {
+                       if (ktime_after(ktime_get(), timeout)) {
+                               dev_err(cprman->dev, "%s: couldn't lock PLL\n",
+                                       clk_hw_get_name(hw));
+                               return -ETIMEDOUT;
+                       }
+
+                       cpu_relax();
                }
-
-               cpu_relax();
        }
 
        cprman_write(cprman, data->a2w_ctrl_reg,