clk: ti: fix flag space conflict with clkctrl clocks
authorTero Kristo <t-kristo@ti.com>
Tue, 27 Mar 2018 17:47:04 +0000 (20:47 +0300)
committerStephen Boyd <sboyd@kernel.org>
Thu, 5 Apr 2018 22:25:22 +0000 (15:25 -0700)
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
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/ti/clock.h

index d9b43bfc25325687302876374d8e9e337a315eec..b799a21463d9076573840db18b03443b1d4d3a9b 100644 (file)
@@ -74,6 +74,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 = {                 \
@@ -183,10 +188,6 @@ extern const struct omap_clkctrl_data am438x_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,