clk: qoriq: Don't allow CPU clocks higher than starting value
authorScott Wood <oss@buserror.net>
Mon, 17 Oct 2016 18:42:23 +0000 (13:42 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 18 Nov 2016 09:48:35 +0000 (10:48 +0100)
commitdbbc5e6bcf3675db6305a0130915134d0011f37c
tree291b5a1d05e79861f5e50ea67ed469d7a6614146
parent2c5cdadeab5deac3cb5322f95077a4dfa2324326
clk: qoriq: Don't allow CPU clocks higher than starting value

commit 7c1c5413a7bdf1c9adc8d979521f1b8286366aef upstream.

The boot-time frequency of a CPU is considered its rated maximum, as we
have no other source of such information.  However, this was previously
only used for chips with 80% restrictions on secondary PLLs.  This
usually wasn't a problem because most chips/configs boot with a divider
of /1, with other dividers being used only for dynamic frequency
reduction.  However, at least one config (LS1021A at less than 1 GHz)
uses a different divider for top speed.  This was causing cpufreq to set
a frequency beyond the chip's rated speed.

This is fixed by applying a 100%-of-initial-speed limit to all CPU PLLs,
similar to the existing 80% limit that only applied to some.

Signed-off-by: Scott Wood <oss@buserror.net>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/clk/clk-qoriq.c