mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-26 14:14:01 +08:00
1df4046a93
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: Stephen Boyd <sboyd@kernel.org>
32 lines
839 B
C
32 lines
839 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (C) 2013 Samsung Electronics Co., Ltd.
|
|
* Sylwester Nawrocki <s.nawrocki@samsung.com>
|
|
*/
|
|
|
|
struct clk_hw;
|
|
|
|
#if defined(CONFIG_OF) && defined(CONFIG_COMMON_CLK)
|
|
struct clk *__of_clk_get_from_provider(struct of_phandle_args *clkspec,
|
|
const char *dev_id, const char *con_id);
|
|
#endif
|
|
|
|
#ifdef CONFIG_COMMON_CLK
|
|
struct clk *clk_hw_create_clk(struct clk_hw *hw,
|
|
const char *dev_id, const char *con_id);
|
|
void __clk_put(struct clk *clk);
|
|
#else
|
|
/* All these casts to avoid ifdefs in clkdev... */
|
|
static inline struct clk *
|
|
clk_hw_create_clk(struct clk_hw *hw, const char *dev_id, const char *con_id)
|
|
{
|
|
return (struct clk *)hw;
|
|
}
|
|
static struct clk_hw *__clk_get_hw(struct clk *clk)
|
|
{
|
|
return (struct clk_hw *)clk;
|
|
}
|
|
static inline void __clk_put(struct clk *clk) { }
|
|
|
|
#endif
|