summaryrefslogtreecommitdiffstats
path: root/clk-ti-fix-flag-space-conflict-with-clkctrl-clocks.patch
diff options
context:
space:
mode:
Diffstat (limited to 'clk-ti-fix-flag-space-conflict-with-clkctrl-clocks.patch')
-rw-r--r--clk-ti-fix-flag-space-conflict-with-clkctrl-clocks.patch58
1 files changed, 58 insertions, 0 deletions
diff --git a/clk-ti-fix-flag-space-conflict-with-clkctrl-clocks.patch b/clk-ti-fix-flag-space-conflict-with-clkctrl-clocks.patch
new file mode 100644
index 000000000..c1ef68279
--- /dev/null
+++ b/clk-ti-fix-flag-space-conflict-with-clkctrl-clocks.patch
@@ -0,0 +1,58 @@
+From patchwork Tue Mar 27 17:47:04 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: clk: ti: fix flag space conflict with clkctrl clocks
+From: Tero Kristo <t-kristo@ti.com>
+X-Patchwork-Id: 10311335
+Message-Id: <1522172824-14094-1-git-send-email-t-kristo@ti.com>
+To: <sboyd@kernel.org>, <mturquette@baylibre.com>,
+ <linux-omap@vger.kernel.org>, <linux-clk@vger.kernel.org>,
+ <tony@atomide.com>
+Cc: <arnd@arndb.de>, <linux-arm-kernel@lists.infradead.org>
+Date: Tue, 27 Mar 2018 20:47:04 +0300
+
+The introduction of support for CLK_SET_RATE_PARENT flag for clkctrl
+clocks used a generic clock flag, which causes a conflict with the
+rest of the clkctrl flags, namely the NO_IDLEST flag. This can cause
+boot failures on certain platforms where this flag is introduced, by
+omitting the wait for the clockctrl module to be fully enabled before
+proceeding with rest of the code.
+
+Fix this by moving all the clkctrl specific flags to their own bit-range.
+
+Signed-off-by: Tero Kristo <t-kristo@ti.com>
+Fixes: 49159a9dc3da ("clk: ti: add support for CLK_SET_RATE_PARENT flag")
+Reported-by: Christophe Lyon <christophe.lyon@linaro.org>
+Tested-by: Tony Lindgren <tony@atomide.com>
+---
+ drivers/clk/ti/clock.h | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/clk/ti/clock.h b/drivers/clk/ti/clock.h
+index 90b86aa..b582780 100644
+--- a/drivers/clk/ti/clock.h
++++ b/drivers/clk/ti/clock.h
+@@ -76,6 +76,11 @@ enum {
+ #define CLKF_CORE (1 << 9)
+ #define CLKF_J_TYPE (1 << 10)
+
++/* CLKCTRL flags */
++#define CLKF_SW_SUP BIT(5)
++#define CLKF_HW_SUP BIT(6)
++#define CLKF_NO_IDLEST BIT(7)
++
+ #define CLK(dev, con, ck) \
+ { \
+ .lk = { \
+@@ -185,10 +190,6 @@ struct omap_clkctrl_data {
+ extern const struct omap_clkctrl_data dm814_clkctrl_data[];
+ extern const struct omap_clkctrl_data dm816_clkctrl_data[];
+
+-#define CLKF_SW_SUP BIT(0)
+-#define CLKF_HW_SUP BIT(1)
+-#define CLKF_NO_IDLEST BIT(2)
+-
+ typedef void (*ti_of_clk_init_cb_t)(void *, struct device_node *);
+
+ struct clk *ti_clk_register(struct device *dev, struct clk_hw *hw,