• Tero Kristo's avatar
    clk: keystone: sci-clk: Fix sci_clk_get · f54d2cd3
    Tero Kristo authored
    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: default avatarTero Kristo <t-kristo@ti.com>
    Reported-by: default avatarDave Gerlach <d-gerlach@ti.com>
    Fixes: b745c079 ("clk: keystone: Add sci-clk driver support")
    Cc: Nishanth Menon <nm@ti.com>
    Tested-by: default avatarFranklin Cooper <fcooper@ti.com>
    Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
    f54d2cd3
sci-clk.c 17 KB