linux/drivers/clk/ti
Tero Kristo 8ffea6eef4 clk: ti: divider: convert to use min,max,mask instead of width
The existing width field used to check divider validity does not provide
enough protection against bad values. For example, if max divider value
is 4, the smallest all-1 bitmask that can hold this value is 7, which
allows values higher than 4 to be used. This typically causes
unpredictable results with hardware. So far this issue hasn't been
noticed as most of the dividers actually have maximum values which fit
the whole bitfield, but there are certain clocks for which this is a
problem, like dpll4_m4 divider on omap3 devices.

Thus, convert the whole validity logic to use min,max and mask values
for determining if a specific divider is valid or not. This prevents
the odd cases where bad value would otherwise be written to a divider
config register.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Tested-by: Adam Ford <aford173@gmail.com>
2019-10-31 15:32:36 +02:00
..
adpll.c clk: Remove io.h from clk-provider.h 2019-05-15 13:21:37 -07:00
apll.c clk: ti: Don't reference clk_init_data after registration 2019-08-16 10:22:46 -07:00
autoidle.c clk: ti: check clock type before doing autoidle ops 2019-02-15 16:47:55 +02:00
clk-2xxx.c Merge branch 'cleanup-clk-h-includes' into clk-next 2015-07-28 11:59:09 -07:00
clk-3xxx.c clk: ti: omap3: cleanup unnecessary clock aliases 2017-12-01 15:17:17 +02:00
clk-7xx-compat.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
clk-7xx.c clk: ti: dra7xx: Drop idlest polling from IPU & DSP clkctrl clocks 2019-10-31 15:18:28 +02:00
clk-33xx-compat.c clk: ti: am33xx: rename existing clkctrl data as compat data 2018-10-03 15:02:26 +03:00
clk-33xx.c clk: ti: am33xx: drop idlest polling from gfx clock 2019-10-31 15:18:29 +02:00
clk-43xx-compat.c clk: ti: am43xx: rename existing clkctrl data as compat data 2018-10-03 15:02:26 +03:00
clk-43xx.c clk: ti: am43xx: drop idlest polling from gfx clock 2019-10-31 15:18:29 +02:00
clk-44xx.c clk: ti: omap4: Drop idlest polling from IPU & DSP clkctrl clocks 2019-10-31 15:18:29 +02:00
clk-54xx.c clk: ti: omap5: Drop idlest polling from IPU & DSP clkctrl clocks 2019-10-31 15:18:29 +02:00
clk-814x.c clk: ti: dm814x: Add of_node_put() to prevent memory leak 2019-08-07 15:26:39 -07:00
clk-816x.c clk: ti: dm816: add clkctrl clock data 2017-12-01 15:18:06 +02:00
clk-dra7-atl.c clk: Convert to using %pOFn instead of device_node.name 2018-08-30 09:50:20 -07:00
clk.c clk: Remove io.h from clk-provider.h 2019-05-15 13:21:37 -07:00
clkctrl.c clk: ti: divider: cleanup ti_clk_parse_divider_data API 2019-10-31 15:32:34 +02:00
clkt_dflt.c clk: ti: convert to use proper register definition for all accesses 2017-03-08 13:06:15 +02:00
clkt_dpll.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
clkt_iclk.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
clock.h clk: ti: divider: convert to use min,max,mask instead of width 2019-10-31 15:32:36 +02:00
clockdomain.c clk: ti: remove usage of CLK_IS_BASIC 2019-02-15 16:46:22 +02:00
composite.c clk: Convert to using %pOFn instead of device_node.name 2018-08-30 09:50:20 -07:00
divider.c clk: ti: divider: convert to use min,max,mask instead of width 2019-10-31 15:32:36 +02:00
dpll3xxx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
dpll44xx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
dpll.c Merge branches 'clk-renesas', 'clk-rockchip', 'clk-const' and 'clk-simplify' into clk-next 2019-09-19 15:31:41 -07:00
fapll.c clk: Remove io.h from clk-provider.h 2019-05-15 13:21:37 -07:00
fixed-factor.c clk: Convert to using %pOFn instead of device_node.name 2018-08-30 09:50:20 -07:00
gate.c clk: ti: Remove unused functions 2019-06-07 11:54:48 -07:00
interface.c clk: ti: generalize the init sequence of clk_hw_omap clocks 2019-02-15 16:46:22 +02:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile clk: ti: dra7xx: rename existing clkctrl data as compat data 2018-10-03 15:02:27 +03:00
mux.c clk: ti: Remove unused functions 2019-06-07 11:54:48 -07:00