linux/drivers/clk/keystone
Tero Kristo f54d2cd3c1 clk: keystone: sci-clk: Fix sci_clk_get
Currently a bug in the sci_clk_get implementation causes it to always
return a clock belonging to the last device in the static list of clock
data. This is due to a bug in the init code that causes the array
used by sci_clk_get to only be populated with the clocks for the last
device, as each device overwrites the entire array with its own clocks.

Fix this by calculating the actual number of clocks for the SoC, and
allocating the whole array in one go. Also, we don't need the handle
to the init data array anymore after doing this, instead we can
just compare the dev_id / clk_id against the registered clocks and
use binary search for speed.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Reported-by: Dave Gerlach <d-gerlach@ti.com>
Fixes: b745c0794e ("clk: keystone: Add sci-clk driver support")
Cc: Nishanth Menon <nm@ti.com>
Tested-by: Franklin Cooper <fcooper@ti.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
2017-08-02 18:37:26 -07:00
..
gate.c clk: keystone: Remove clk.h include 2015-07-20 10:53:08 -07:00
Kconfig clk: keystone: TI_SCI_PROTOCOL is needed for clk driver 2017-06-22 17:39:25 -07:00
Makefile clk: keystone: Add sci-clk driver support 2017-06-14 09:05:07 -07:00
pll.c clk: keystone: pll: Unmap region obtained by of_iomap 2016-12-08 16:34:15 -08:00
sci-clk.c clk: keystone: sci-clk: Fix sci_clk_get 2017-08-02 18:37:26 -07:00