clk: st: clkgen-fsyn: Detect critical clocks
authorLee Jones <lee.jones@linaro.org>
Tue, 7 Jun 2016 11:19:26 +0000 (12:19 +0100)
committerStephen Boyd <sboyd@codeaurora.org>
Thu, 30 Jun 2016 19:17:09 +0000 (12:17 -0700)
Utilise the new Critical Clock infrastructure to mark clocks which
much not be disabled as CRITICAL.

Clocks are marked as CRITICAL using clk flags.  This patch also
ensures flags are peculated through the framework in the correct
manner.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
drivers/clk/st/clkgen-fsyn.c

index dec4eaa..09afeb8 100644 (file)
@@ -1027,7 +1027,7 @@ static const struct clk_ops st_quadfs_ops = {
 static struct clk * __init st_clk_register_quadfs_fsynth(
                const char *name, const char *parent_name,
                struct clkgen_quadfs_data *quadfs, void __iomem *reg, u32 chan,
-               spinlock_t *lock)
+               unsigned long flags, spinlock_t *lock)
 {
        struct st_clk_quadfs_fsynth *fs;
        struct clk *clk;
@@ -1045,7 +1045,7 @@ static struct clk * __init st_clk_register_quadfs_fsynth(
 
        init.name = name;
        init.ops = &st_quadfs_ops;
-       init.flags = CLK_GET_RATE_NOCACHE | CLK_IS_BASIC;
+       init.flags = flags | CLK_GET_RATE_NOCACHE | CLK_IS_BASIC;
        init.parent_names = &parent_name;
        init.num_parents = 1;
 
@@ -1115,6 +1115,7 @@ static void __init st_of_create_quadfs_fsynths(
        for (fschan = 0; fschan < QUADFS_MAX_CHAN; fschan++) {
                struct clk *clk;
                const char *clk_name;
+               unsigned long flags = 0;
 
                if (of_property_read_string_index(np, "clock-output-names",
                                                  fschan, &clk_name)) {
@@ -1127,8 +1128,11 @@ static void __init st_of_create_quadfs_fsynths(
                if (*clk_name == '\0')
                        continue;
 
+               of_clk_detect_critical(np, fschan, &flags);
+
                clk = st_clk_register_quadfs_fsynth(clk_name, pll_name,
-                               quadfs, reg, fschan, lock);
+                                                   quadfs, reg, fschan,
+                                                   flags, lock);
 
                /*
                 * If there was an error registering this clock output, clean