• Stephen Boyd's avatar
    clk: Combine __clk_get() and __clk_create_clk() · 1df4046a
    Stephen Boyd authored
    The __clk_get() function is practically a private clk implementation
    detail now. No architecture defines it, and given that new code should
    be using the common clk framework there isn't a need for it to keep
    existing just to serve clkdev purposes. Let's fold it into the
    __clk_create_clk() function and make that a little more generic by
    renaming it to clk_hw_create_clk(). This will allow the framework to
    create a struct clk handle to a particular clk_hw pointer and link it up
    as a consumer wherever that's needed.
    
    Doing this also lets us get rid of the __clk_free_clk() API that had to
    be kept in sync with __clk_put(). Splitting that API up into the "link
    and unlink from consumer list" phase and "free the clk pointer" phase
    allows us to reuse that logic in a couple places, simplifying the code.
    
    Cc: Miquel Raynal <miquel.raynal@bootlin.com>
    Cc: Jerome Brunet <jbrunet@baylibre.com>
    Cc: Russell King <linux@armlinux.org.uk>
    Cc: Michael Turquette <mturquette@baylibre.com>
    Cc: Jeffrey Hugo <jhugo@codeaurora.org>
    Cc: Chen-Yu Tsai <wens@csie.org>
    Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
    1df4046a
clkdev.c 10.7 KB