mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf.git
synced 2026-04-03 23:38:12 -04:00
clk: tests: Make clk_register_clk_parent_data_device_driver() common
Rename clk_register_clk_parent_data_device_driver() to kunit_of_platform_driver_dev() and have it return a struct device pointer while accepting a match table. This will be useful to find the device associated with an OF node for more tests than only the clk_parent_data tests. Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> [sboyd@kernel.org: Split out from next patch, carry SoB and authorship, rename API, return device pointer] Signed-off-by: Stephen Boyd <sboyd@kernel.org>
This commit is contained in:
committed by
Stephen Boyd
parent
5f4081d6fa
commit
b06ba1c353
@@ -2794,49 +2794,49 @@ static struct kunit_suite clk_register_clk_parent_data_of_suite = {
|
||||
};
|
||||
|
||||
/**
|
||||
* struct clk_register_clk_parent_data_device_ctx - Context for clk_parent_data device tests
|
||||
* @dev: device of clk under test
|
||||
* @hw: clk_hw for clk under test
|
||||
* struct platform_driver_dev_ctx - Context to stash platform device
|
||||
* @dev: device under test
|
||||
* @pdrv: driver to attach to find @dev
|
||||
*/
|
||||
struct clk_register_clk_parent_data_device_ctx {
|
||||
struct platform_driver_dev_ctx {
|
||||
struct device *dev;
|
||||
struct clk_hw hw;
|
||||
struct platform_driver pdrv;
|
||||
};
|
||||
|
||||
static inline struct clk_register_clk_parent_data_device_ctx *
|
||||
clk_register_clk_parent_data_driver_to_test_context(struct platform_device *pdev)
|
||||
static inline struct platform_driver_dev_ctx *
|
||||
pdev_to_platform_driver_dev_ctx(struct platform_device *pdev)
|
||||
{
|
||||
return container_of(to_platform_driver(pdev->dev.driver),
|
||||
struct clk_register_clk_parent_data_device_ctx, pdrv);
|
||||
struct platform_driver_dev_ctx, pdrv);
|
||||
}
|
||||
|
||||
static int clk_register_clk_parent_data_device_probe(struct platform_device *pdev)
|
||||
static int kunit_platform_driver_dev_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct clk_register_clk_parent_data_device_ctx *ctx;
|
||||
struct platform_driver_dev_ctx *ctx;
|
||||
|
||||
ctx = clk_register_clk_parent_data_driver_to_test_context(pdev);
|
||||
ctx = pdev_to_platform_driver_dev_ctx(pdev);
|
||||
ctx->dev = &pdev->dev;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void clk_register_clk_parent_data_device_driver(struct kunit *test)
|
||||
static struct device *
|
||||
kunit_of_platform_driver_dev(struct kunit *test, const struct of_device_id *match_table)
|
||||
{
|
||||
struct clk_register_clk_parent_data_device_ctx *ctx = test->priv;
|
||||
static const struct of_device_id match_table[] = {
|
||||
{ .compatible = "test,clk-parent-data" },
|
||||
{ }
|
||||
};
|
||||
struct platform_driver_dev_ctx *ctx;
|
||||
|
||||
ctx->pdrv.probe = clk_register_clk_parent_data_device_probe;
|
||||
ctx = kunit_kzalloc(test, sizeof(*ctx), GFP_KERNEL);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
|
||||
|
||||
ctx->pdrv.probe = kunit_platform_driver_dev_probe;
|
||||
ctx->pdrv.driver.of_match_table = match_table;
|
||||
ctx->pdrv.driver.name = __func__;
|
||||
ctx->pdrv.driver.owner = THIS_MODULE;
|
||||
|
||||
KUNIT_ASSERT_EQ(test, 0, kunit_platform_driver_register(test, &ctx->pdrv));
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx->dev);
|
||||
|
||||
return ctx->dev;
|
||||
}
|
||||
|
||||
static const struct clk_register_clk_parent_data_test_case
|
||||
@@ -2909,30 +2909,34 @@ KUNIT_ARRAY_PARAM(clk_register_clk_parent_data_device_test,
|
||||
*/
|
||||
static void clk_register_clk_parent_data_device_test(struct kunit *test)
|
||||
{
|
||||
struct clk_register_clk_parent_data_device_ctx *ctx;
|
||||
struct device *dev;
|
||||
struct clk_hw *hw;
|
||||
const struct clk_register_clk_parent_data_test_case *test_param;
|
||||
struct clk_hw *parent_hw;
|
||||
struct clk_init_data init = { };
|
||||
struct clk *expected_parent, *actual_parent;
|
||||
static const struct of_device_id match_table[] = {
|
||||
{ .compatible = "test,clk-parent-data" },
|
||||
{ }
|
||||
};
|
||||
|
||||
ctx = kunit_kzalloc(test, sizeof(*ctx), GFP_KERNEL);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
|
||||
test->priv = ctx;
|
||||
dev = kunit_of_platform_driver_dev(test, match_table);
|
||||
|
||||
clk_register_clk_parent_data_device_driver(test);
|
||||
|
||||
expected_parent = clk_get_kunit(test, ctx->dev, "50");
|
||||
expected_parent = clk_get_kunit(test, dev, "50");
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, expected_parent);
|
||||
|
||||
hw = kunit_kzalloc(test, sizeof(*hw), GFP_KERNEL);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, hw);
|
||||
|
||||
test_param = test->param_value;
|
||||
init.parent_data = &test_param->pdata;
|
||||
init.num_parents = 1;
|
||||
init.name = "parent_data_device_test_clk";
|
||||
init.ops = &clk_dummy_single_parent_ops;
|
||||
ctx->hw.init = &init;
|
||||
KUNIT_ASSERT_EQ(test, 0, clk_hw_register_kunit(test, ctx->dev, &ctx->hw));
|
||||
hw->init = &init;
|
||||
KUNIT_ASSERT_EQ(test, 0, clk_hw_register_kunit(test, dev, hw));
|
||||
|
||||
parent_hw = clk_hw_get_parent(&ctx->hw);
|
||||
parent_hw = clk_hw_get_parent(hw);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, parent_hw);
|
||||
|
||||
actual_parent = clk_hw_get_clk_kunit(test, parent_hw, __func__);
|
||||
@@ -3016,18 +3020,19 @@ KUNIT_ARRAY_PARAM(clk_register_clk_parent_data_device_hw_test,
|
||||
*/
|
||||
static void clk_register_clk_parent_data_device_hw_test(struct kunit *test)
|
||||
{
|
||||
struct clk_register_clk_parent_data_device_ctx *ctx;
|
||||
struct device *dev;
|
||||
struct clk_hw *hw;
|
||||
const struct clk_register_clk_parent_data_test_case *test_param;
|
||||
struct clk_dummy_context *parent;
|
||||
struct clk_hw *parent_hw;
|
||||
struct clk_parent_data pdata = { };
|
||||
struct clk_init_data init = { };
|
||||
static const struct of_device_id match_table[] = {
|
||||
{ .compatible = "test,clk-parent-data" },
|
||||
{ }
|
||||
};
|
||||
|
||||
ctx = kunit_kzalloc(test, sizeof(*ctx), GFP_KERNEL);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
|
||||
test->priv = ctx;
|
||||
|
||||
clk_register_clk_parent_data_device_driver(test);
|
||||
dev = kunit_of_platform_driver_dev(test, match_table);
|
||||
|
||||
parent = kunit_kzalloc(test, sizeof(*parent), GFP_KERNEL);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, parent);
|
||||
@@ -3036,7 +3041,10 @@ static void clk_register_clk_parent_data_device_hw_test(struct kunit *test)
|
||||
parent_hw->init = CLK_HW_INIT_NO_PARENT("parent-clk",
|
||||
&clk_dummy_rate_ops, 0);
|
||||
|
||||
KUNIT_ASSERT_EQ(test, 0, clk_hw_register_kunit(test, ctx->dev, parent_hw));
|
||||
KUNIT_ASSERT_EQ(test, 0, clk_hw_register_kunit(test, dev, parent_hw));
|
||||
|
||||
hw = kunit_kzalloc(test, sizeof(*hw), GFP_KERNEL);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, hw);
|
||||
|
||||
test_param = test->param_value;
|
||||
memcpy(&pdata, &test_param->pdata, sizeof(pdata));
|
||||
@@ -3045,10 +3053,10 @@ static void clk_register_clk_parent_data_device_hw_test(struct kunit *test)
|
||||
init.num_parents = 1;
|
||||
init.ops = &clk_dummy_single_parent_ops;
|
||||
init.name = "parent_data_device_hw_test_clk";
|
||||
ctx->hw.init = &init;
|
||||
KUNIT_ASSERT_EQ(test, 0, clk_hw_register_kunit(test, ctx->dev, &ctx->hw));
|
||||
hw->init = &init;
|
||||
KUNIT_ASSERT_EQ(test, 0, clk_hw_register_kunit(test, dev, hw));
|
||||
|
||||
KUNIT_EXPECT_PTR_EQ(test, parent_hw, clk_hw_get_parent(&ctx->hw));
|
||||
KUNIT_EXPECT_PTR_EQ(test, parent_hw, clk_hw_get_parent(hw));
|
||||
}
|
||||
|
||||
static struct kunit_case clk_register_clk_parent_data_device_test_cases[] = {
|
||||
|
||||
Reference in New Issue
Block a user