aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2016-06-01 15:05:33 -0400
committerStephen Boyd <sboyd@codeaurora.org>2016-09-07 11:57:09 -0400
commite69fdcca836f0b81a2260b69429c8622a80ea891 (patch)
treee22f7fa19439664e5c9f4f06aad8f54754cc861f
parent9bb87c027c3fe65f5e76c656a0d34d9980ccb121 (diff)
clk: bcm2835: Mark the VPU clock as critical
The VPU clock is also the clock for our AXI bus, so we really can't disable it. This might have happened during boot if, for example, uart1 (aux_uart clock) probed and was then disabled before the other consumers of the VPU clock had probed. Signed-off-by: Eric Anholt <eric@anholt.net> Acked-by: Martin Sperl <kernel@martin.sperl.org> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
-rw-r--r--drivers/clk/bcm/clk-bcm2835.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index 7a7970865c2d..d9db03cb3fd8 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -443,6 +443,8 @@ struct bcm2835_clock_data {
443 /* Number of fractional bits in the divider */ 443 /* Number of fractional bits in the divider */
444 u32 frac_bits; 444 u32 frac_bits;
445 445
446 u32 flags;
447
446 bool is_vpu_clock; 448 bool is_vpu_clock;
447 bool is_mash_clock; 449 bool is_mash_clock;
448}; 450};
@@ -1230,7 +1232,7 @@ static struct clk *bcm2835_register_clock(struct bcm2835_cprman *cprman,
1230 init.parent_names = parents; 1232 init.parent_names = parents;
1231 init.num_parents = data->num_mux_parents; 1233 init.num_parents = data->num_mux_parents;
1232 init.name = data->name; 1234 init.name = data->name;
1233 init.flags = CLK_IGNORE_UNUSED; 1235 init.flags = data->flags | CLK_IGNORE_UNUSED;
1234 1236
1235 if (data->is_vpu_clock) { 1237 if (data->is_vpu_clock) {
1236 init.ops = &bcm2835_vpu_clock_clk_ops; 1238 init.ops = &bcm2835_vpu_clock_clk_ops;
@@ -1649,6 +1651,7 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
1649 .div_reg = CM_VPUDIV, 1651 .div_reg = CM_VPUDIV,
1650 .int_bits = 12, 1652 .int_bits = 12,
1651 .frac_bits = 8, 1653 .frac_bits = 8,
1654 .flags = CLK_IS_CRITICAL,
1652 .is_vpu_clock = true), 1655 .is_vpu_clock = true),
1653 1656
1654 /* clocks with per parent mux */ 1657 /* clocks with per parent mux */