Skip to content

Commit b06ba1c

Browse files
jbrun3tbebarino
authored andcommitted
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 <[email protected]> [[email protected]: Split out from next patch, carry SoB and authorship, rename API, return device pointer] Signed-off-by: Stephen Boyd <[email protected]>
1 parent 5f4081d commit b06ba1c

File tree

1 file changed

+46
-38
lines changed

1 file changed

+46
-38
lines changed

drivers/clk/clk_test.c

Lines changed: 46 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2794,49 +2794,49 @@ static struct kunit_suite clk_register_clk_parent_data_of_suite = {
27942794
};
27952795

27962796
/**
2797-
* struct clk_register_clk_parent_data_device_ctx - Context for clk_parent_data device tests
2798-
* @dev: device of clk under test
2799-
* @hw: clk_hw for clk under test
2797+
* struct platform_driver_dev_ctx - Context to stash platform device
2798+
* @dev: device under test
28002799
* @pdrv: driver to attach to find @dev
28012800
*/
2802-
struct clk_register_clk_parent_data_device_ctx {
2801+
struct platform_driver_dev_ctx {
28032802
struct device *dev;
2804-
struct clk_hw hw;
28052803
struct platform_driver pdrv;
28062804
};
28072805

2808-
static inline struct clk_register_clk_parent_data_device_ctx *
2809-
clk_register_clk_parent_data_driver_to_test_context(struct platform_device *pdev)
2806+
static inline struct platform_driver_dev_ctx *
2807+
pdev_to_platform_driver_dev_ctx(struct platform_device *pdev)
28102808
{
28112809
return container_of(to_platform_driver(pdev->dev.driver),
2812-
struct clk_register_clk_parent_data_device_ctx, pdrv);
2810+
struct platform_driver_dev_ctx, pdrv);
28132811
}
28142812

2815-
static int clk_register_clk_parent_data_device_probe(struct platform_device *pdev)
2813+
static int kunit_platform_driver_dev_probe(struct platform_device *pdev)
28162814
{
2817-
struct clk_register_clk_parent_data_device_ctx *ctx;
2815+
struct platform_driver_dev_ctx *ctx;
28182816

2819-
ctx = clk_register_clk_parent_data_driver_to_test_context(pdev);
2817+
ctx = pdev_to_platform_driver_dev_ctx(pdev);
28202818
ctx->dev = &pdev->dev;
28212819

28222820
return 0;
28232821
}
28242822

2825-
static void clk_register_clk_parent_data_device_driver(struct kunit *test)
2823+
static struct device *
2824+
kunit_of_platform_driver_dev(struct kunit *test, const struct of_device_id *match_table)
28262825
{
2827-
struct clk_register_clk_parent_data_device_ctx *ctx = test->priv;
2828-
static const struct of_device_id match_table[] = {
2829-
{ .compatible = "test,clk-parent-data" },
2830-
{ }
2831-
};
2826+
struct platform_driver_dev_ctx *ctx;
2827+
2828+
ctx = kunit_kzalloc(test, sizeof(*ctx), GFP_KERNEL);
2829+
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
28322830

2833-
ctx->pdrv.probe = clk_register_clk_parent_data_device_probe;
2831+
ctx->pdrv.probe = kunit_platform_driver_dev_probe;
28342832
ctx->pdrv.driver.of_match_table = match_table;
28352833
ctx->pdrv.driver.name = __func__;
28362834
ctx->pdrv.driver.owner = THIS_MODULE;
28372835

28382836
KUNIT_ASSERT_EQ(test, 0, kunit_platform_driver_register(test, &ctx->pdrv));
28392837
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx->dev);
2838+
2839+
return ctx->dev;
28402840
}
28412841

28422842
static const struct clk_register_clk_parent_data_test_case
@@ -2909,30 +2909,34 @@ KUNIT_ARRAY_PARAM(clk_register_clk_parent_data_device_test,
29092909
*/
29102910
static void clk_register_clk_parent_data_device_test(struct kunit *test)
29112911
{
2912-
struct clk_register_clk_parent_data_device_ctx *ctx;
2912+
struct device *dev;
2913+
struct clk_hw *hw;
29132914
const struct clk_register_clk_parent_data_test_case *test_param;
29142915
struct clk_hw *parent_hw;
29152916
struct clk_init_data init = { };
29162917
struct clk *expected_parent, *actual_parent;
2918+
static const struct of_device_id match_table[] = {
2919+
{ .compatible = "test,clk-parent-data" },
2920+
{ }
2921+
};
29172922

2918-
ctx = kunit_kzalloc(test, sizeof(*ctx), GFP_KERNEL);
2919-
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
2920-
test->priv = ctx;
2921-
2922-
clk_register_clk_parent_data_device_driver(test);
2923+
dev = kunit_of_platform_driver_dev(test, match_table);
29232924

2924-
expected_parent = clk_get_kunit(test, ctx->dev, "50");
2925+
expected_parent = clk_get_kunit(test, dev, "50");
29252926
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, expected_parent);
29262927

2928+
hw = kunit_kzalloc(test, sizeof(*hw), GFP_KERNEL);
2929+
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, hw);
2930+
29272931
test_param = test->param_value;
29282932
init.parent_data = &test_param->pdata;
29292933
init.num_parents = 1;
29302934
init.name = "parent_data_device_test_clk";
29312935
init.ops = &clk_dummy_single_parent_ops;
2932-
ctx->hw.init = &init;
2933-
KUNIT_ASSERT_EQ(test, 0, clk_hw_register_kunit(test, ctx->dev, &ctx->hw));
2936+
hw->init = &init;
2937+
KUNIT_ASSERT_EQ(test, 0, clk_hw_register_kunit(test, dev, hw));
29342938

2935-
parent_hw = clk_hw_get_parent(&ctx->hw);
2939+
parent_hw = clk_hw_get_parent(hw);
29362940
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, parent_hw);
29372941

29382942
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,
30163020
*/
30173021
static void clk_register_clk_parent_data_device_hw_test(struct kunit *test)
30183022
{
3019-
struct clk_register_clk_parent_data_device_ctx *ctx;
3023+
struct device *dev;
3024+
struct clk_hw *hw;
30203025
const struct clk_register_clk_parent_data_test_case *test_param;
30213026
struct clk_dummy_context *parent;
30223027
struct clk_hw *parent_hw;
30233028
struct clk_parent_data pdata = { };
30243029
struct clk_init_data init = { };
3030+
static const struct of_device_id match_table[] = {
3031+
{ .compatible = "test,clk-parent-data" },
3032+
{ }
3033+
};
30253034

3026-
ctx = kunit_kzalloc(test, sizeof(*ctx), GFP_KERNEL);
3027-
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
3028-
test->priv = ctx;
3029-
3030-
clk_register_clk_parent_data_device_driver(test);
3035+
dev = kunit_of_platform_driver_dev(test, match_table);
30313036

30323037
parent = kunit_kzalloc(test, sizeof(*parent), GFP_KERNEL);
30333038
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)
30363041
parent_hw->init = CLK_HW_INIT_NO_PARENT("parent-clk",
30373042
&clk_dummy_rate_ops, 0);
30383043

3039-
KUNIT_ASSERT_EQ(test, 0, clk_hw_register_kunit(test, ctx->dev, parent_hw));
3044+
KUNIT_ASSERT_EQ(test, 0, clk_hw_register_kunit(test, dev, parent_hw));
3045+
3046+
hw = kunit_kzalloc(test, sizeof(*hw), GFP_KERNEL);
3047+
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, hw);
30403048

30413049
test_param = test->param_value;
30423050
memcpy(&pdata, &test_param->pdata, sizeof(pdata));
@@ -3045,10 +3053,10 @@ static void clk_register_clk_parent_data_device_hw_test(struct kunit *test)
30453053
init.num_parents = 1;
30463054
init.ops = &clk_dummy_single_parent_ops;
30473055
init.name = "parent_data_device_hw_test_clk";
3048-
ctx->hw.init = &init;
3049-
KUNIT_ASSERT_EQ(test, 0, clk_hw_register_kunit(test, ctx->dev, &ctx->hw));
3056+
hw->init = &init;
3057+
KUNIT_ASSERT_EQ(test, 0, clk_hw_register_kunit(test, dev, hw));
30503058

3051-
KUNIT_EXPECT_PTR_EQ(test, parent_hw, clk_hw_get_parent(&ctx->hw));
3059+
KUNIT_EXPECT_PTR_EQ(test, parent_hw, clk_hw_get_parent(hw));
30523060
}
30533061

30543062
static struct kunit_case clk_register_clk_parent_data_device_test_cases[] = {

0 commit comments

Comments
 (0)