• Linus Walleij's avatar
    clk: versatile: sp810: support reentrance · ec7957a6
    Linus Walleij authored
    Despite care take to allocate clocks state containers the
    SP810 driver actually just supports creating one instance:
    all clocks registered for every instance will end up with the
    exact same name and __clk_init() will fail.
    Rename the timclken<0> .. timclken<n> to sp810_<instance>_<n>
    so every clock on every instance gets a unique name.
    This is necessary for the RealView PBA8 which has two SP810
    blocks: the second block will not register its clocks unless
    every clock on every instance is unique and results in boot
    logs like this:
    ------------[ cut here ]------------
    WARNING: CPU: 0 PID: 0 at ../drivers/clk/versatile/clk-sp810.c:137
    Modules linked in:
    CPU: 0 PID: 0 Comm: swapper/0 Not tainted
    4.5.0-rc2-00030-g352718fc39f6-dirty #225
    Hardware name: ARM RealView Machine (Device Tree Support)
    [<c00167f8>] (unwind_backtrace) from [<c0013204>]
    [<c0013204>] (show_stack) from [<c01a049c>]
    [<c01a049c>] (dump_stack) from [<c0024990>]
    [<c0024990>] (warn_slowpath_common) from [<c0024a68>]
    [<c0024a68>] (warn_slowpath_null) from [<c051eb44>]
    [<c051eb44>] (clk_sp810_of_setup) from [<c051e3a4>]
    [<c051e3a4>] (of_clk_init) from [<c0504714>]
    [<c0504714>] (time_init) from [<c0501b18>]
    [<c0501b18>] (start_kernel) from [<7000807c>] (0x7000807c)
    ---[ end trace cb88537fdc8fa200 ]---
    Cc: Michael Turquette <mturquette@baylibre.com>
    Cc: Pawel Moll <pawel.moll@arm.com>
    Fixes: 6e973d2c "clk: vexpress: Add separate SP810 driver"
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
clk-sp810.c 3.76 KB