brcm2708: organize kernel patches
[openwrt/staging/wigyori.git] / target / linux / brcm2708 / patches-4.19 / 950-0505-clk-bcm2835-Don-t-wait-for-pllh-lock.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0505-clk-bcm2835-Don-t-wait-for-pllh-lock.patch b/target/linux/brcm2708/patches-4.19/950-0505-clk-bcm2835-Don-t-wait-for-pllh-lock.patch
new file mode 100644 (file)
index 0000000..e8ab380
--- /dev/null
@@ -0,0 +1,38 @@
+From 3924edc9bd3c55d48c383c1046d75e163ce3cddb Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Wed, 23 Jan 2019 16:11:50 +0000
+Subject: [PATCH] clk-bcm2835: Don't wait for pllh lock
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ drivers/clk/bcm/clk-bcm2835.c | 18 ++++++++++--------
+ 1 file changed, 10 insertions(+), 8 deletions(-)
+
+--- a/drivers/clk/bcm/clk-bcm2835.c
++++ b/drivers/clk/bcm/clk-bcm2835.c
+@@ -627,15 +627,17 @@ static int bcm2835_pll_on(struct clk_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,