mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-29 09:16:33 +00:00
clk: test: Add test managed of_clk_add_hw_provider()
Add a test managed version of of_clk_add_hw_provider() that automatically unregisters the clk_hw provider upon test conclusion. Cc: Brendan Higgins <brendan.higgins@linux.dev> Cc: David Gow <davidgow@google.com> Cc: Rae Moar <rmoar@google.com> Cc: Peng Fan <peng.fan@nxp.com> Signed-off-by: Stephen Boyd <sboyd@kernel.org> Link: https://lore.kernel.org/r/20240822002433.1163814-2-sboyd@kernel.org
This commit is contained in:
parent
9852d85ec9
commit
a82fcb16d9
@ -203,5 +203,35 @@ int of_clk_hw_register_kunit(struct kunit *test, struct device_node *node, struc
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(of_clk_hw_register_kunit);
|
||||
|
||||
KUNIT_DEFINE_ACTION_WRAPPER(of_clk_del_provider_wrapper,
|
||||
of_clk_del_provider, struct device_node *);
|
||||
|
||||
/**
|
||||
* of_clk_add_hw_provider_kunit() - Test managed of_clk_add_hw_provider()
|
||||
* @test: The test context
|
||||
* @np: Device node pointer associated with clock provider
|
||||
* @get: Callback for decoding clk_hw
|
||||
* @data: Context pointer for @get callback.
|
||||
*
|
||||
* Just like of_clk_add_hw_provider(), except the clk_hw provider is managed by
|
||||
* the test case and is automatically unregistered after the test case
|
||||
* concludes.
|
||||
*
|
||||
* Return: 0 on success or a negative errno value on failure.
|
||||
*/
|
||||
int of_clk_add_hw_provider_kunit(struct kunit *test, struct device_node *np,
|
||||
struct clk_hw *(*get)(struct of_phandle_args *clkspec, void *data),
|
||||
void *data)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = of_clk_add_hw_provider(np, get, data);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
return kunit_add_action_or_reset(test, of_clk_del_provider_wrapper, np);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(of_clk_add_hw_provider_kunit);
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_DESCRIPTION("KUnit helpers for clk providers and consumers");
|
||||
|
@ -25,4 +25,8 @@ int clk_hw_register_kunit(struct kunit *test, struct device *dev, struct clk_hw
|
||||
int of_clk_hw_register_kunit(struct kunit *test, struct device_node *node,
|
||||
struct clk_hw *hw);
|
||||
|
||||
int of_clk_add_hw_provider_kunit(struct kunit *test, struct device_node *np,
|
||||
struct clk_hw *(*get)(struct of_phandle_args *clkspec, void *data),
|
||||
void *data);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user