Lines Matching refs:test
93 static int _find_alg_entry(struct kunit *test, unsigned int alg_id) in _find_alg_entry() argument
102 KUNIT_ASSERT_LT(test, i, ARRAY_SIZE(cs_dsp_ctl_cache_test_algs)); in _find_alg_entry()
107 static int _get_alg_mem_base_words(struct kunit *test, int alg_index, int mem_type) in _get_alg_mem_base_words() argument
117 KUNIT_FAIL(test, "Bug in test: illegal memory type %d\n", mem_type); in _get_alg_mem_base_words()
122 static struct cs_dsp_mock_wmfw_builder *_create_dummy_wmfw(struct kunit *test) in _create_dummy_wmfw() argument
124 struct cs_dsp_test *priv = test->priv; in _create_dummy_wmfw()
129 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, builder); in _create_dummy_wmfw()
145 static void cs_dsp_ctl_v2_cache_alloc(struct kunit *test) in cs_dsp_ctl_v2_cache_alloc() argument
147 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_v2_cache_alloc()
159 alg_base_words = _get_alg_mem_base_words(test, 0, WMFW_ADSP2_YM); in cs_dsp_ctl_v2_cache_alloc()
162 reg_vals = kunit_kzalloc(test, alg_size_bytes, GFP_KERNEL); in cs_dsp_ctl_v2_cache_alloc()
163 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_v2_cache_alloc()
185 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_v2_cache_alloc()
187 KUNIT_EXPECT_EQ(test, list_count_nodes(&dsp->ctl_list), num_ctls); in cs_dsp_ctl_v2_cache_alloc()
191 KUNIT_EXPECT_GE(test, ksize(ctl->cache), ctl->len); in cs_dsp_ctl_v2_cache_alloc()
198 static void cs_dsp_ctl_cache_init(struct kunit *test) in cs_dsp_ctl_cache_init() argument
200 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_init()
201 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_init()
205 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_init()
211 reg_vals = kunit_kmalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_init()
212 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_cache_init()
214 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_init()
215 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_init()
218 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_init()
238 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_init()
241 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_init()
247 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_init()
250 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_init()
257 static void cs_dsp_ctl_cache_init_write_only(struct kunit *test) in cs_dsp_ctl_cache_init_write_only() argument
259 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_init_write_only()
260 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_init_write_only()
264 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_init_write_only()
269 zeros = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_init_write_only()
270 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, zeros); in cs_dsp_ctl_cache_init_write_only()
272 readback = kunit_kmalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_init_write_only()
273 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_init_write_only()
288 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_init_write_only()
291 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_init_write_only()
298 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_init_write_only()
301 KUNIT_EXPECT_MEMEQ(test, readback, zeros, param->len_bytes); in cs_dsp_ctl_cache_init_write_only()
311 static void cs_dsp_ctl_cache_init_multiple_fw_same_controls(struct kunit *test) in cs_dsp_ctl_cache_init_multiple_fw_same_controls() argument
313 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
329 builder[i] = _create_dummy_wmfw(test); in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
330 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, builder[i]); in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
340 reg_vals[i] = kunit_kmalloc(test, def.length_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
341 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals[i]); in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
344 readback = kunit_kzalloc(test, def.length_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
345 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
352 alg_base_words = _get_alg_mem_base_words(test, 0, def.mem_type); in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
360 KUNIT_ASSERT_EQ(test, in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
366 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
372 KUNIT_ASSERT_EQ(test, list_count_nodes(&dsp->ctl_list), 3); in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
390 KUNIT_ASSERT_NOT_NULL(test, ctl[0]); in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
391 KUNIT_ASSERT_NOT_NULL(test, ctl[1]); in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
392 KUNIT_ASSERT_NOT_NULL(test, ctl[2]); in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
398 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
401 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals[0], def.length_bytes); in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
403 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
406 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals[1], def.length_bytes); in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
408 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
411 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals[2], def.length_bytes); in cs_dsp_ctl_cache_init_multiple_fw_same_controls()
420 static void cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls(struct kunit *test) in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls() argument
422 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
438 builder[i] = _create_dummy_wmfw(test); in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
439 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, builder[i]); in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
449 reg_vals[i] = kunit_kmalloc(test, def.length_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
450 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals[i]); in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
453 readback = kunit_kzalloc(test, def.length_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
454 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
461 alg_base_words = _get_alg_mem_base_words(test, i, def.mem_type); in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
469 KUNIT_ASSERT_EQ(test, in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
475 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
481 KUNIT_ASSERT_EQ(test, list_count_nodes(&dsp->ctl_list), 3); in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
499 KUNIT_ASSERT_NOT_NULL(test, ctl[0]); in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
500 KUNIT_ASSERT_NOT_NULL(test, ctl[1]); in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
501 KUNIT_ASSERT_NOT_NULL(test, ctl[2]); in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
507 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
510 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals[0], def.length_bytes); in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
512 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
515 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals[1], def.length_bytes); in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
517 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
520 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals[2], def.length_bytes); in cs_dsp_ctl_cache_init_multiple_fwalgid_same_controls()
528 static void cs_dsp_ctl_cache_init_multiple_mems(struct kunit *test) in cs_dsp_ctl_cache_init_multiple_mems() argument
530 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_init_multiple_mems()
543 reg_vals[i] = kunit_kmalloc(test, def.length_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_init_multiple_mems()
544 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals[i]); in cs_dsp_ctl_cache_init_multiple_mems()
548 readback = kunit_kzalloc(test, def.length_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_init_multiple_mems()
549 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_init_multiple_mems()
570 alg_base_words = _get_alg_mem_base_words(test, 0, WMFW_ADSP2_YM); in cs_dsp_ctl_cache_init_multiple_mems()
576 alg_base_words = _get_alg_mem_base_words(test, 0, WMFW_ADSP2_XM); in cs_dsp_ctl_cache_init_multiple_mems()
583 alg_base_words = _get_alg_mem_base_words(test, 0, WMFW_ADSP2_ZM); in cs_dsp_ctl_cache_init_multiple_mems()
592 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_init_multiple_mems()
593 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_init_multiple_mems()
598 KUNIT_ASSERT_EQ(test, list_count_nodes(&dsp->ctl_list), in cs_dsp_ctl_cache_init_multiple_mems()
622 KUNIT_ASSERT_NOT_NULL(test, ctl[0]); in cs_dsp_ctl_cache_init_multiple_mems()
623 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_init_multiple_mems()
626 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals[0], def.length_bytes); in cs_dsp_ctl_cache_init_multiple_mems()
628 KUNIT_ASSERT_NOT_NULL(test, ctl[1]); in cs_dsp_ctl_cache_init_multiple_mems()
629 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_init_multiple_mems()
632 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals[1], def.length_bytes); in cs_dsp_ctl_cache_init_multiple_mems()
635 KUNIT_ASSERT_NOT_NULL(test, ctl[2]); in cs_dsp_ctl_cache_init_multiple_mems()
636 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_init_multiple_mems()
640 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals[2], def.length_bytes); in cs_dsp_ctl_cache_init_multiple_mems()
649 static void cs_dsp_ctl_cache_init_multiple_algs(struct kunit *test) in cs_dsp_ctl_cache_init_multiple_algs() argument
651 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_init_multiple_algs()
665 reg_vals[i] = kunit_kmalloc(test, def.length_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_init_multiple_algs()
666 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals[i]); in cs_dsp_ctl_cache_init_multiple_algs()
670 readback = kunit_kzalloc(test, def.length_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_init_multiple_algs()
671 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_init_multiple_algs()
684 alg_base_words = _get_alg_mem_base_words(test, i, def.mem_type); in cs_dsp_ctl_cache_init_multiple_algs()
693 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_init_multiple_algs()
694 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_init_multiple_algs()
699 KUNIT_ASSERT_EQ(test, list_count_nodes(&dsp->ctl_list), 3); in cs_dsp_ctl_cache_init_multiple_algs()
717 KUNIT_ASSERT_NOT_NULL(test, ctl[0]); in cs_dsp_ctl_cache_init_multiple_algs()
718 KUNIT_ASSERT_NOT_NULL(test, ctl[1]); in cs_dsp_ctl_cache_init_multiple_algs()
719 KUNIT_ASSERT_NOT_NULL(test, ctl[2]); in cs_dsp_ctl_cache_init_multiple_algs()
725 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_init_multiple_algs()
728 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals[0], def.length_bytes); in cs_dsp_ctl_cache_init_multiple_algs()
730 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_init_multiple_algs()
733 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals[1], def.length_bytes); in cs_dsp_ctl_cache_init_multiple_algs()
735 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_init_multiple_algs()
739 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals[2], def.length_bytes); in cs_dsp_ctl_cache_init_multiple_algs()
750 static void cs_dsp_ctl_cache_init_multiple_offsets(struct kunit *test) in cs_dsp_ctl_cache_init_multiple_offsets() argument
752 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_init_multiple_offsets()
766 reg_vals[i] = kunit_kmalloc(test, def.length_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_init_multiple_offsets()
767 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals[i]); in cs_dsp_ctl_cache_init_multiple_offsets()
771 readback = kunit_kzalloc(test, def.length_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_init_multiple_offsets()
772 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_init_multiple_offsets()
794 alg_base_words = _get_alg_mem_base_words(test, 0, def.mem_type); in cs_dsp_ctl_cache_init_multiple_offsets()
807 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_init_multiple_offsets()
808 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_init_multiple_offsets()
813 KUNIT_ASSERT_EQ(test, list_count_nodes(&dsp->ctl_list), 3); in cs_dsp_ctl_cache_init_multiple_offsets()
831 KUNIT_ASSERT_NOT_NULL(test, ctl[0]); in cs_dsp_ctl_cache_init_multiple_offsets()
832 KUNIT_ASSERT_NOT_NULL(test, ctl[1]); in cs_dsp_ctl_cache_init_multiple_offsets()
833 KUNIT_ASSERT_NOT_NULL(test, ctl[2]); in cs_dsp_ctl_cache_init_multiple_offsets()
839 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_init_multiple_offsets()
842 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals[0], def.length_bytes); in cs_dsp_ctl_cache_init_multiple_offsets()
844 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_init_multiple_offsets()
847 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals[1], def.length_bytes); in cs_dsp_ctl_cache_init_multiple_offsets()
849 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_init_multiple_offsets()
853 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals[2], def.length_bytes); in cs_dsp_ctl_cache_init_multiple_offsets()
860 static void cs_dsp_ctl_cache_read_not_started(struct kunit *test) in cs_dsp_ctl_cache_read_not_started() argument
862 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_read_not_started()
863 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_read_not_started()
867 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_read_not_started()
873 reg_vals = kunit_kmalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_read_not_started()
874 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_cache_read_not_started()
876 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_read_not_started()
877 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_read_not_started()
880 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_read_not_started()
901 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_read_not_started()
906 KUNIT_EXPECT_FALSE(test, cs_dsp_mock_regmap_is_dirty(priv, true)); in cs_dsp_ctl_cache_read_not_started()
910 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_read_not_started()
911 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_read_not_started()
914 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_read_not_started()
921 static void cs_dsp_ctl_cache_read_stopped(struct kunit *test) in cs_dsp_ctl_cache_read_stopped() argument
923 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_read_stopped()
924 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_read_stopped()
928 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_read_stopped()
934 reg_vals = kunit_kmalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_read_stopped()
935 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_cache_read_stopped()
937 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_read_stopped()
938 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_read_stopped()
941 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_read_stopped()
962 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_read_stopped()
965 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_read_stopped()
971 KUNIT_EXPECT_FALSE(test, cs_dsp_mock_regmap_is_dirty(priv, true)); in cs_dsp_ctl_cache_read_stopped()
975 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_read_stopped()
976 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_read_stopped()
979 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_read_stopped()
987 static void cs_dsp_ctl_cache_read_powered_down(struct kunit *test) in cs_dsp_ctl_cache_read_powered_down() argument
989 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_read_powered_down()
990 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_read_powered_down()
994 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_read_powered_down()
1000 reg_vals = kunit_kmalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_read_powered_down()
1001 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_cache_read_powered_down()
1003 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_read_powered_down()
1004 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_read_powered_down()
1007 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_read_powered_down()
1028 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_read_powered_down()
1034 KUNIT_EXPECT_FALSE(test, cs_dsp_mock_regmap_is_dirty(priv, true)); in cs_dsp_ctl_cache_read_powered_down()
1038 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_read_powered_down()
1039 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_read_powered_down()
1042 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_read_powered_down()
1050 static void cs_dsp_ctl_cache_read_stopped_powered_down(struct kunit *test) in cs_dsp_ctl_cache_read_stopped_powered_down() argument
1052 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_read_stopped_powered_down()
1053 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_read_stopped_powered_down()
1057 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_read_stopped_powered_down()
1063 reg_vals = kunit_kmalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_read_stopped_powered_down()
1064 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_cache_read_stopped_powered_down()
1066 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_read_stopped_powered_down()
1067 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_read_stopped_powered_down()
1070 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_read_stopped_powered_down()
1091 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_read_stopped_powered_down()
1094 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_read_stopped_powered_down()
1101 KUNIT_EXPECT_FALSE(test, cs_dsp_mock_regmap_is_dirty(priv, true)); in cs_dsp_ctl_cache_read_stopped_powered_down()
1105 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_read_stopped_powered_down()
1106 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_read_stopped_powered_down()
1109 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_read_stopped_powered_down()
1117 static void cs_dsp_ctl_cache_read_not_current_loaded_fw(struct kunit *test) in cs_dsp_ctl_cache_read_not_current_loaded_fw() argument
1119 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_read_not_current_loaded_fw()
1120 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_read_not_current_loaded_fw()
1124 struct cs_dsp_mock_wmfw_builder *builder2 = _create_dummy_wmfw(test); in cs_dsp_ctl_cache_read_not_current_loaded_fw()
1125 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_read_not_current_loaded_fw()
1131 reg_vals = kunit_kmalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_read_not_current_loaded_fw()
1132 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_cache_read_not_current_loaded_fw()
1134 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_read_not_current_loaded_fw()
1135 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_read_not_current_loaded_fw()
1138 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_read_not_current_loaded_fw()
1159 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_read_not_current_loaded_fw()
1164 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw2", NULL, NULL, "mbc.vss"), 0); in cs_dsp_ctl_cache_read_not_current_loaded_fw()
1169 KUNIT_EXPECT_FALSE(test, cs_dsp_mock_regmap_is_dirty(priv, true)); in cs_dsp_ctl_cache_read_not_current_loaded_fw()
1173 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_read_not_current_loaded_fw()
1174 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_read_not_current_loaded_fw()
1177 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_read_not_current_loaded_fw()
1185 static void cs_dsp_ctl_cache_read_not_current_running_fw(struct kunit *test) in cs_dsp_ctl_cache_read_not_current_running_fw() argument
1187 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_read_not_current_running_fw()
1188 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_read_not_current_running_fw()
1192 struct cs_dsp_mock_wmfw_builder *builder2 = _create_dummy_wmfw(test); in cs_dsp_ctl_cache_read_not_current_running_fw()
1193 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_read_not_current_running_fw()
1199 reg_vals = kunit_kmalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_read_not_current_running_fw()
1200 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_cache_read_not_current_running_fw()
1202 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_read_not_current_running_fw()
1203 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_read_not_current_running_fw()
1206 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_read_not_current_running_fw()
1227 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_read_not_current_running_fw()
1232 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw2", NULL, NULL, "mbc.vss"), 0); in cs_dsp_ctl_cache_read_not_current_running_fw()
1233 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_read_not_current_running_fw()
1234 KUNIT_ASSERT_EQ(test, kunit_add_action_or_reset(test, _cs_dsp_stop_wrapper, dsp), 0); in cs_dsp_ctl_cache_read_not_current_running_fw()
1239 KUNIT_EXPECT_FALSE(test, cs_dsp_mock_regmap_is_dirty(priv, true)); in cs_dsp_ctl_cache_read_not_current_running_fw()
1243 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_read_not_current_running_fw()
1244 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_read_not_current_running_fw()
1247 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_read_not_current_running_fw()
1255 static void cs_dsp_ctl_cache_read_running(struct kunit *test) in cs_dsp_ctl_cache_read_running() argument
1257 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_read_running()
1258 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_read_running()
1262 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_read_running()
1268 init_reg_vals = kunit_kmalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_read_running()
1269 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, init_reg_vals); in cs_dsp_ctl_cache_read_running()
1271 new_reg_vals = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_read_running()
1272 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, new_reg_vals); in cs_dsp_ctl_cache_read_running()
1274 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_read_running()
1275 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_read_running()
1278 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_read_running()
1299 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_read_running()
1302 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_read_running()
1303 KUNIT_ASSERT_EQ(test, kunit_add_action_or_reset(test, _cs_dsp_stop_wrapper, dsp), 0); in cs_dsp_ctl_cache_read_running()
1311 KUNIT_ASSERT_EQ(test, in cs_dsp_ctl_cache_read_running()
1318 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_read_running()
1319 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_read_running()
1322 KUNIT_EXPECT_MEMEQ(test, readback, init_reg_vals, param->len_bytes); in cs_dsp_ctl_cache_read_running()
1325 kunit_release_action(test, _cs_dsp_stop_wrapper, dsp); in cs_dsp_ctl_cache_read_running()
1329 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_read_running()
1332 KUNIT_EXPECT_MEMEQ(test, readback, init_reg_vals, param->len_bytes); in cs_dsp_ctl_cache_read_running()
1341 static void cs_dsp_ctl_cache_read_running_zero_flags(struct kunit *test) in cs_dsp_ctl_cache_read_running_zero_flags() argument
1343 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_read_running_zero_flags()
1344 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_read_running_zero_flags()
1348 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_read_running_zero_flags()
1354 init_reg_vals = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_read_running_zero_flags()
1355 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, init_reg_vals); in cs_dsp_ctl_cache_read_running_zero_flags()
1357 new_reg_vals = kunit_kmalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_read_running_zero_flags()
1358 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, new_reg_vals); in cs_dsp_ctl_cache_read_running_zero_flags()
1360 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_read_running_zero_flags()
1361 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_read_running_zero_flags()
1364 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_read_running_zero_flags()
1384 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_read_running_zero_flags()
1387 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_read_running_zero_flags()
1388 KUNIT_ASSERT_EQ(test, kunit_add_action_or_reset(test, _cs_dsp_stop_wrapper, dsp), 0); in cs_dsp_ctl_cache_read_running_zero_flags()
1396 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_read_running_zero_flags()
1397 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_read_running_zero_flags()
1400 KUNIT_EXPECT_MEMEQ(test, readback, new_reg_vals, param->len_bytes); in cs_dsp_ctl_cache_read_running_zero_flags()
1403 kunit_release_action(test, _cs_dsp_stop_wrapper, dsp); in cs_dsp_ctl_cache_read_running_zero_flags()
1410 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_read_running_zero_flags()
1413 KUNIT_EXPECT_MEMEQ(test, readback, new_reg_vals, param->len_bytes); in cs_dsp_ctl_cache_read_running_zero_flags()
1421 static void cs_dsp_ctl_cache_writethrough(struct kunit *test) in cs_dsp_ctl_cache_writethrough() argument
1423 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_writethrough()
1424 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_writethrough()
1428 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_writethrough()
1434 reg_vals = kunit_kmalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_writethrough()
1435 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_cache_writethrough()
1437 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_writethrough()
1438 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_writethrough()
1441 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_writethrough()
1461 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_writethrough()
1464 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_writethrough()
1467 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_writethrough()
1468 KUNIT_ASSERT_EQ(test, kunit_add_action_or_reset(test, _cs_dsp_stop_wrapper, dsp), 0); in cs_dsp_ctl_cache_writethrough()
1472 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_writethrough()
1475 KUNIT_ASSERT_EQ(test, regmap_raw_read(dsp->regmap, reg, readback, param->len_bytes), 0); in cs_dsp_ctl_cache_writethrough()
1476 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_writethrough()
1484 static void cs_dsp_ctl_cache_writethrough_unchanged(struct kunit *test) in cs_dsp_ctl_cache_writethrough_unchanged() argument
1486 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_writethrough_unchanged()
1487 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_writethrough_unchanged()
1491 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_writethrough_unchanged()
1497 reg_vals = kunit_kmalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_writethrough_unchanged()
1498 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_cache_writethrough_unchanged()
1500 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_writethrough_unchanged()
1501 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_writethrough_unchanged()
1504 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_writethrough_unchanged()
1524 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_writethrough_unchanged()
1527 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_writethrough_unchanged()
1530 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_writethrough_unchanged()
1531 KUNIT_ASSERT_EQ(test, kunit_add_action_or_reset(test, _cs_dsp_stop_wrapper, dsp), 0); in cs_dsp_ctl_cache_writethrough_unchanged()
1538 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_writethrough_unchanged()
1548 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_writethrough_unchanged()
1551 KUNIT_ASSERT_EQ(test, regmap_raw_read(dsp->regmap, reg, readback, param->len_bytes), 0); in cs_dsp_ctl_cache_writethrough_unchanged()
1552 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_writethrough_unchanged()
1560 static void cs_dsp_ctl_cache_write_unchanged_not_started(struct kunit *test) in cs_dsp_ctl_cache_write_unchanged_not_started() argument
1562 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_write_unchanged_not_started()
1563 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_write_unchanged_not_started()
1567 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_write_unchanged_not_started()
1573 reg_vals = kunit_kmalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_write_unchanged_not_started()
1574 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_cache_write_unchanged_not_started()
1576 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_write_unchanged_not_started()
1577 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_write_unchanged_not_started()
1580 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_write_unchanged_not_started()
1600 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_write_unchanged_not_started()
1603 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_write_unchanged_not_started()
1610 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_write_unchanged_not_started()
1620 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_write_unchanged_not_started()
1623 KUNIT_ASSERT_EQ(test, regmap_raw_read(dsp->regmap, reg, readback, param->len_bytes), 0); in cs_dsp_ctl_cache_write_unchanged_not_started()
1624 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_write_unchanged_not_started()
1632 static void cs_dsp_ctl_cache_write_not_started(struct kunit *test) in cs_dsp_ctl_cache_write_not_started() argument
1634 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_write_not_started()
1635 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_write_not_started()
1639 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_write_not_started()
1645 reg_vals = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_write_not_started()
1646 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_cache_write_not_started()
1648 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_write_not_started()
1649 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_write_not_started()
1652 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_write_not_started()
1672 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_write_not_started()
1677 KUNIT_EXPECT_FALSE(test, cs_dsp_mock_regmap_is_dirty(priv, true)); in cs_dsp_ctl_cache_write_not_started()
1681 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_write_not_started()
1684 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_write_not_started()
1689 KUNIT_EXPECT_FALSE(test, cs_dsp_mock_regmap_is_dirty(priv, true)); in cs_dsp_ctl_cache_write_not_started()
1692 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_write_not_started()
1695 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_write_not_started()
1703 static void cs_dsp_ctl_cache_write_stopped(struct kunit *test) in cs_dsp_ctl_cache_write_stopped() argument
1705 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_write_stopped()
1706 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_write_stopped()
1710 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_write_stopped()
1716 reg_vals = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_write_stopped()
1717 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_cache_write_stopped()
1719 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_write_stopped()
1720 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_write_stopped()
1723 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_write_stopped()
1743 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_write_stopped()
1746 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_write_stopped()
1752 KUNIT_EXPECT_FALSE(test, cs_dsp_mock_regmap_is_dirty(priv, true)); in cs_dsp_ctl_cache_write_stopped()
1756 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_write_stopped()
1759 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_write_stopped()
1764 KUNIT_EXPECT_FALSE(test, cs_dsp_mock_regmap_is_dirty(priv, true)); in cs_dsp_ctl_cache_write_stopped()
1767 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_write_stopped()
1770 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_write_stopped()
1778 static void cs_dsp_ctl_cache_write_powered_down(struct kunit *test) in cs_dsp_ctl_cache_write_powered_down() argument
1780 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_write_powered_down()
1781 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_write_powered_down()
1785 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_write_powered_down()
1791 reg_vals = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_write_powered_down()
1792 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_cache_write_powered_down()
1794 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_write_powered_down()
1795 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_write_powered_down()
1798 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_write_powered_down()
1818 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_write_powered_down()
1824 KUNIT_EXPECT_FALSE(test, cs_dsp_mock_regmap_is_dirty(priv, true)); in cs_dsp_ctl_cache_write_powered_down()
1828 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_write_powered_down()
1831 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_write_powered_down()
1836 KUNIT_EXPECT_FALSE(test, cs_dsp_mock_regmap_is_dirty(priv, true)); in cs_dsp_ctl_cache_write_powered_down()
1839 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_write_powered_down()
1842 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_write_powered_down()
1850 static void cs_dsp_ctl_cache_write_stopped_powered_down(struct kunit *test) in cs_dsp_ctl_cache_write_stopped_powered_down() argument
1852 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_write_stopped_powered_down()
1853 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_write_stopped_powered_down()
1857 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_write_stopped_powered_down()
1863 reg_vals = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_write_stopped_powered_down()
1864 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_cache_write_stopped_powered_down()
1866 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_write_stopped_powered_down()
1867 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_write_stopped_powered_down()
1870 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_write_stopped_powered_down()
1890 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_write_stopped_powered_down()
1893 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_write_stopped_powered_down()
1900 KUNIT_EXPECT_FALSE(test, cs_dsp_mock_regmap_is_dirty(priv, true)); in cs_dsp_ctl_cache_write_stopped_powered_down()
1904 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_write_stopped_powered_down()
1907 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_write_stopped_powered_down()
1912 KUNIT_EXPECT_FALSE(test, cs_dsp_mock_regmap_is_dirty(priv, true)); in cs_dsp_ctl_cache_write_stopped_powered_down()
1915 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_write_stopped_powered_down()
1918 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_write_stopped_powered_down()
1925 static void cs_dsp_ctl_cache_write_not_current_loaded_fw(struct kunit *test) in cs_dsp_ctl_cache_write_not_current_loaded_fw() argument
1927 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_write_not_current_loaded_fw()
1928 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_write_not_current_loaded_fw()
1932 struct cs_dsp_mock_wmfw_builder *builder2 = _create_dummy_wmfw(test); in cs_dsp_ctl_cache_write_not_current_loaded_fw()
1933 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_write_not_current_loaded_fw()
1939 reg_vals = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_write_not_current_loaded_fw()
1940 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_cache_write_not_current_loaded_fw()
1942 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_write_not_current_loaded_fw()
1943 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_write_not_current_loaded_fw()
1946 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_write_not_current_loaded_fw()
1966 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_write_not_current_loaded_fw()
1970 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_write_not_current_loaded_fw()
1975 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw2", NULL, NULL, "mbc.vss"), 0); in cs_dsp_ctl_cache_write_not_current_loaded_fw()
1978 KUNIT_EXPECT_FALSE(test, ctl->enabled); in cs_dsp_ctl_cache_write_not_current_loaded_fw()
1983 KUNIT_EXPECT_FALSE(test, cs_dsp_mock_regmap_is_dirty(priv, true)); in cs_dsp_ctl_cache_write_not_current_loaded_fw()
1991 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_write_not_current_loaded_fw()
1996 KUNIT_EXPECT_FALSE(test, cs_dsp_mock_regmap_is_dirty(priv, true)); in cs_dsp_ctl_cache_write_not_current_loaded_fw()
1999 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_write_not_current_loaded_fw()
2002 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_write_not_current_loaded_fw()
2009 static void cs_dsp_ctl_cache_write_not_current_running_fw(struct kunit *test) in cs_dsp_ctl_cache_write_not_current_running_fw() argument
2011 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_write_not_current_running_fw()
2012 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_write_not_current_running_fw()
2016 struct cs_dsp_mock_wmfw_builder *builder2 = _create_dummy_wmfw(test); in cs_dsp_ctl_cache_write_not_current_running_fw()
2017 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_write_not_current_running_fw()
2023 reg_vals = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_write_not_current_running_fw()
2024 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_cache_write_not_current_running_fw()
2026 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_write_not_current_running_fw()
2027 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_write_not_current_running_fw()
2030 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_write_not_current_running_fw()
2050 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_write_not_current_running_fw()
2055 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_write_not_current_running_fw()
2059 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw2", NULL, NULL, "mbc.vss"), 0); in cs_dsp_ctl_cache_write_not_current_running_fw()
2060 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_write_not_current_running_fw()
2061 KUNIT_ASSERT_EQ(test, kunit_add_action_or_reset(test, _cs_dsp_stop_wrapper, dsp), 0); in cs_dsp_ctl_cache_write_not_current_running_fw()
2064 KUNIT_EXPECT_FALSE(test, ctl->enabled); in cs_dsp_ctl_cache_write_not_current_running_fw()
2069 KUNIT_EXPECT_FALSE(test, cs_dsp_mock_regmap_is_dirty(priv, true)); in cs_dsp_ctl_cache_write_not_current_running_fw()
2077 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_write_not_current_running_fw()
2082 KUNIT_EXPECT_FALSE(test, cs_dsp_mock_regmap_is_dirty(priv, true)); in cs_dsp_ctl_cache_write_not_current_running_fw()
2085 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_write_not_current_running_fw()
2088 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_write_not_current_running_fw()
2096 static void cs_dsp_ctl_cache_sync_write_before_run(struct kunit *test) in cs_dsp_ctl_cache_sync_write_before_run() argument
2098 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_sync_write_before_run()
2099 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_sync_write_before_run()
2103 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_sync_write_before_run()
2109 reg_vals = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_sync_write_before_run()
2110 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_cache_sync_write_before_run()
2112 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_sync_write_before_run()
2113 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_sync_write_before_run()
2116 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_sync_write_before_run()
2136 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_sync_write_before_run()
2140 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_sync_write_before_run()
2143 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_sync_write_before_run()
2147 KUNIT_EXPECT_EQ(test, regmap_raw_read(dsp->regmap, reg, readback, param->len_bytes), 0); in cs_dsp_ctl_cache_sync_write_before_run()
2148 KUNIT_EXPECT_MEMNEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_write_before_run()
2151 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_sync_write_before_run()
2152 KUNIT_ASSERT_EQ(test, kunit_add_action_or_reset(test, _cs_dsp_stop_wrapper, dsp), 0); in cs_dsp_ctl_cache_sync_write_before_run()
2154 KUNIT_EXPECT_EQ(test, regmap_raw_read(dsp->regmap, reg, readback, param->len_bytes), 0); in cs_dsp_ctl_cache_sync_write_before_run()
2155 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_write_before_run()
2158 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_sync_write_before_run()
2161 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_write_before_run()
2169 static void cs_dsp_ctl_cache_sync_write_while_running(struct kunit *test) in cs_dsp_ctl_cache_sync_write_while_running() argument
2171 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_sync_write_while_running()
2172 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_sync_write_while_running()
2176 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_sync_write_while_running()
2182 init_vals = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_sync_write_while_running()
2183 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, init_vals); in cs_dsp_ctl_cache_sync_write_while_running()
2185 ctl_vals = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_sync_write_while_running()
2186 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctl_vals); in cs_dsp_ctl_cache_sync_write_while_running()
2188 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_sync_write_while_running()
2189 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_sync_write_while_running()
2192 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_sync_write_while_running()
2212 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_sync_write_while_running()
2213 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_sync_write_while_running()
2214 KUNIT_ASSERT_EQ(test, kunit_add_action_or_reset(test, _cs_dsp_stop_wrapper, dsp), 0); in cs_dsp_ctl_cache_sync_write_while_running()
2218 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_sync_write_while_running()
2221 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_sync_write_while_running()
2226 kunit_release_action(test, _cs_dsp_stop_wrapper, dsp); in cs_dsp_ctl_cache_sync_write_while_running()
2228 KUNIT_ASSERT_EQ(test, regmap_raw_read(dsp->regmap, reg, readback, param->len_bytes), 0); in cs_dsp_ctl_cache_sync_write_while_running()
2229 KUNIT_EXPECT_MEMEQ(test, readback, init_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_write_while_running()
2232 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_sync_write_while_running()
2233 KUNIT_ASSERT_EQ(test, kunit_add_action_or_reset(test, _cs_dsp_stop_wrapper, dsp), 0); in cs_dsp_ctl_cache_sync_write_while_running()
2235 KUNIT_EXPECT_EQ(test, regmap_raw_read(dsp->regmap, reg, readback, param->len_bytes), 0); in cs_dsp_ctl_cache_sync_write_while_running()
2236 KUNIT_EXPECT_MEMEQ(test, readback, ctl_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_write_while_running()
2239 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_sync_write_while_running()
2242 KUNIT_EXPECT_MEMEQ(test, readback, ctl_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_write_while_running()
2250 static void cs_dsp_ctl_cache_sync_write_after_stop(struct kunit *test) in cs_dsp_ctl_cache_sync_write_after_stop() argument
2252 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_sync_write_after_stop()
2253 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_sync_write_after_stop()
2257 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_sync_write_after_stop()
2263 reg_vals = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_sync_write_after_stop()
2264 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_cache_sync_write_after_stop()
2266 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_sync_write_after_stop()
2267 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_sync_write_after_stop()
2270 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_sync_write_after_stop()
2290 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_sync_write_after_stop()
2293 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_sync_write_after_stop()
2298 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_sync_write_after_stop()
2301 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_sync_write_after_stop()
2305 KUNIT_EXPECT_EQ(test, regmap_raw_read(dsp->regmap, reg, readback, param->len_bytes), 0); in cs_dsp_ctl_cache_sync_write_after_stop()
2306 KUNIT_EXPECT_MEMNEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_write_after_stop()
2309 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_sync_write_after_stop()
2310 KUNIT_ASSERT_EQ(test, kunit_add_action_or_reset(test, _cs_dsp_stop_wrapper, dsp), 0); in cs_dsp_ctl_cache_sync_write_after_stop()
2312 KUNIT_EXPECT_EQ(test, regmap_raw_read(dsp->regmap, reg, readback, param->len_bytes), 0); in cs_dsp_ctl_cache_sync_write_after_stop()
2313 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_write_after_stop()
2316 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_sync_write_after_stop()
2319 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_write_after_stop()
2328 static void cs_dsp_ctl_cache_sync_write_not_current_fw(struct kunit *test) in cs_dsp_ctl_cache_sync_write_not_current_fw() argument
2330 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_sync_write_not_current_fw()
2331 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_sync_write_not_current_fw()
2335 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_sync_write_not_current_fw()
2336 struct cs_dsp_mock_wmfw_builder *builder2 = _create_dummy_wmfw(test); in cs_dsp_ctl_cache_sync_write_not_current_fw()
2342 reg_vals = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_sync_write_not_current_fw()
2343 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, reg_vals); in cs_dsp_ctl_cache_sync_write_not_current_fw()
2345 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_sync_write_not_current_fw()
2346 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_sync_write_not_current_fw()
2349 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_sync_write_not_current_fw()
2369 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_sync_write_not_current_fw()
2373 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_sync_write_not_current_fw()
2378 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw2", NULL, NULL, "mbc.vss"), 0); in cs_dsp_ctl_cache_sync_write_not_current_fw()
2382 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_sync_write_not_current_fw()
2386 KUNIT_EXPECT_EQ(test, regmap_raw_read(dsp->regmap, reg, readback, param->len_bytes), 0); in cs_dsp_ctl_cache_sync_write_not_current_fw()
2387 KUNIT_EXPECT_MEMNEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_write_not_current_fw()
2392 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_sync_write_not_current_fw()
2395 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_sync_write_not_current_fw()
2396 KUNIT_ASSERT_EQ(test, kunit_add_action_or_reset(test, _cs_dsp_stop_wrapper, dsp), 0); in cs_dsp_ctl_cache_sync_write_not_current_fw()
2398 KUNIT_EXPECT_EQ(test, regmap_raw_read(dsp->regmap, reg, readback, param->len_bytes), 0); in cs_dsp_ctl_cache_sync_write_not_current_fw()
2399 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_write_not_current_fw()
2402 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_sync_write_not_current_fw()
2405 KUNIT_EXPECT_MEMEQ(test, readback, reg_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_write_not_current_fw()
2413 static void cs_dsp_ctl_cache_sync_reapply_every_run(struct kunit *test) in cs_dsp_ctl_cache_sync_reapply_every_run() argument
2415 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_sync_reapply_every_run()
2416 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_sync_reapply_every_run()
2420 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_sync_reapply_every_run()
2426 init_vals = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_sync_reapply_every_run()
2427 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, init_vals); in cs_dsp_ctl_cache_sync_reapply_every_run()
2429 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_sync_reapply_every_run()
2430 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_sync_reapply_every_run()
2432 ctl_vals = kunit_kmalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_sync_reapply_every_run()
2433 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctl_vals); in cs_dsp_ctl_cache_sync_reapply_every_run()
2436 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_sync_reapply_every_run()
2456 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_sync_reapply_every_run()
2460 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_sync_reapply_every_run()
2463 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_sync_reapply_every_run()
2468 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_sync_reapply_every_run()
2469 KUNIT_ASSERT_EQ(test, kunit_add_action_or_reset(test, _cs_dsp_stop_wrapper, dsp), 0); in cs_dsp_ctl_cache_sync_reapply_every_run()
2470 KUNIT_EXPECT_EQ(test, regmap_raw_read(dsp->regmap, reg, readback, param->len_bytes), 0); in cs_dsp_ctl_cache_sync_reapply_every_run()
2471 KUNIT_EXPECT_MEMEQ(test, readback, ctl_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_reapply_every_run()
2474 kunit_release_action(test, _cs_dsp_stop_wrapper, dsp); in cs_dsp_ctl_cache_sync_reapply_every_run()
2478 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_sync_reapply_every_run()
2479 KUNIT_ASSERT_EQ(test, kunit_add_action_or_reset(test, _cs_dsp_stop_wrapper, dsp), 0); in cs_dsp_ctl_cache_sync_reapply_every_run()
2480 KUNIT_EXPECT_EQ(test, regmap_raw_read(dsp->regmap, reg, readback, param->len_bytes), 0); in cs_dsp_ctl_cache_sync_reapply_every_run()
2481 KUNIT_EXPECT_MEMEQ(test, readback, ctl_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_reapply_every_run()
2484 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_sync_reapply_every_run()
2487 KUNIT_EXPECT_MEMEQ(test, readback, ctl_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_reapply_every_run()
2496 static void cs_dsp_ctl_cache_sync_reapply_after_fw_reload(struct kunit *test) in cs_dsp_ctl_cache_sync_reapply_after_fw_reload() argument
2498 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2499 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2503 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2509 init_vals = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2510 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, init_vals); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2512 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2513 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2515 ctl_vals = kunit_kmalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2516 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctl_vals); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2519 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2539 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2543 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2546 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2551 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2552 KUNIT_ASSERT_EQ(test, kunit_add_action_or_reset(test, _cs_dsp_stop_wrapper, dsp), 0); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2553 KUNIT_EXPECT_EQ(test, regmap_raw_read(dsp->regmap, reg, readback, param->len_bytes), 0); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2554 KUNIT_EXPECT_MEMEQ(test, readback, ctl_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2557 kunit_release_action(test, _cs_dsp_stop_wrapper, dsp); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2564 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2567 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2568 KUNIT_ASSERT_EQ(test, kunit_add_action_or_reset(test, _cs_dsp_stop_wrapper, dsp), 0); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2569 KUNIT_EXPECT_EQ(test, regmap_raw_read(dsp->regmap, reg, readback, param->len_bytes), 0); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2570 KUNIT_EXPECT_MEMEQ(test, readback, ctl_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2573 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2576 KUNIT_EXPECT_MEMEQ(test, readback, ctl_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_reapply_after_fw_reload()
2586 static void cs_dsp_ctl_cache_sync_reapply_after_fw_swap(struct kunit *test) in cs_dsp_ctl_cache_sync_reapply_after_fw_swap() argument
2588 const struct cs_dsp_ctl_cache_test_param *param = test->param_value; in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2589 struct cs_dsp_test *priv = test->priv; in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2593 int alg_idx = _find_alg_entry(test, param->alg_id); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2594 struct cs_dsp_mock_wmfw_builder *builder2 = _create_dummy_wmfw(test); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2600 init_vals = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2601 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, init_vals); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2603 readback = kunit_kzalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2604 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, readback); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2606 ctl_vals = kunit_kmalloc(test, param->len_bytes, GFP_KERNEL); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2607 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctl_vals); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2610 alg_base_words = _get_alg_mem_base_words(test, alg_idx, param->mem_type); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2630 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2634 KUNIT_ASSERT_NOT_NULL(test, ctl); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2637 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2642 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2643 KUNIT_ASSERT_EQ(test, kunit_add_action_or_reset(test, _cs_dsp_stop_wrapper, dsp), 0); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2644 KUNIT_EXPECT_EQ(test, regmap_raw_read(dsp->regmap, reg, readback, param->len_bytes), 0); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2645 KUNIT_EXPECT_MEMEQ(test, readback, ctl_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2648 kunit_release_action(test, _cs_dsp_stop_wrapper, dsp); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2656 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw2", NULL, NULL, "mbc.vss"), 0); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2657 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2665 KUNIT_ASSERT_EQ(test, cs_dsp_power_up(dsp, wmfw, "mock_fw", NULL, NULL, "misc"), 0); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2666 KUNIT_EXPECT_TRUE(test, ctl->set); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2669 KUNIT_ASSERT_EQ(test, cs_dsp_run(dsp), 0); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2670 KUNIT_ASSERT_EQ(test, kunit_add_action_or_reset(test, _cs_dsp_stop_wrapper, dsp), 0); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2671 KUNIT_EXPECT_EQ(test, regmap_raw_read(dsp->regmap, reg, readback, param->len_bytes), 0); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2672 KUNIT_EXPECT_MEMEQ(test, readback, ctl_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2675 KUNIT_EXPECT_EQ(test, in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2678 KUNIT_EXPECT_MEMEQ(test, readback, ctl_vals, param->len_bytes); in cs_dsp_ctl_cache_sync_reapply_after_fw_swap()
2681 static int cs_dsp_ctl_cache_test_common_init(struct kunit *test, struct cs_dsp *dsp, in cs_dsp_ctl_cache_test_common_init() argument
2689 priv = kunit_kzalloc(test, sizeof(*priv), GFP_KERNEL); in cs_dsp_ctl_cache_test_common_init()
2693 local = kunit_kzalloc(test, sizeof(struct cs_dsp_test_local), GFP_KERNEL); in cs_dsp_ctl_cache_test_common_init()
2697 priv->test = test; in cs_dsp_ctl_cache_test_common_init()
2699 test->priv = priv; in cs_dsp_ctl_cache_test_common_init()
2704 test_dev = kunit_device_register(test, "cs_dsp_test_drv"); in cs_dsp_ctl_cache_test_common_init()
2712 ret = kunit_add_action_or_reset(test, _put_device_wrapper, dsp->dev); in cs_dsp_ctl_cache_test_common_init()
2730 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, local->xm_header); in cs_dsp_ctl_cache_test_common_init()
2733 local->wmfw_builder = _create_dummy_wmfw(test); in cs_dsp_ctl_cache_test_common_init()
2736 dsp->client_ops = kunit_kzalloc(test, sizeof(*dsp->client_ops), GFP_KERNEL); in cs_dsp_ctl_cache_test_common_init()
2737 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, dsp->client_ops); in cs_dsp_ctl_cache_test_common_init()
2747 KUNIT_FAIL(test, "Untested DSP type %d\n", dsp->type); in cs_dsp_ctl_cache_test_common_init()
2755 return kunit_add_action_or_reset(priv->test, _cs_dsp_remove_wrapper, dsp); in cs_dsp_ctl_cache_test_common_init()
2758 static int cs_dsp_ctl_cache_test_halo_init(struct kunit *test) in cs_dsp_ctl_cache_test_halo_init() argument
2763 dsp = kunit_kzalloc(test, sizeof(*dsp), GFP_KERNEL); in cs_dsp_ctl_cache_test_halo_init()
2774 return cs_dsp_ctl_cache_test_common_init(test, dsp, 3); in cs_dsp_ctl_cache_test_halo_init()
2777 static int cs_dsp_ctl_cache_test_adsp2_32bit_init(struct kunit *test, int wmfw_ver) in cs_dsp_ctl_cache_test_adsp2_32bit_init() argument
2782 dsp = kunit_kzalloc(test, sizeof(*dsp), GFP_KERNEL); in cs_dsp_ctl_cache_test_adsp2_32bit_init()
2793 return cs_dsp_ctl_cache_test_common_init(test, dsp, wmfw_ver); in cs_dsp_ctl_cache_test_adsp2_32bit_init()
2796 static int cs_dsp_ctl_cache_test_adsp2_32bit_wmfw1_init(struct kunit *test) in cs_dsp_ctl_cache_test_adsp2_32bit_wmfw1_init() argument
2798 return cs_dsp_ctl_cache_test_adsp2_32bit_init(test, 1); in cs_dsp_ctl_cache_test_adsp2_32bit_wmfw1_init()
2801 static int cs_dsp_ctl_cache_test_adsp2_32bit_wmfw2_init(struct kunit *test) in cs_dsp_ctl_cache_test_adsp2_32bit_wmfw2_init() argument
2803 return cs_dsp_ctl_cache_test_adsp2_32bit_init(test, 2); in cs_dsp_ctl_cache_test_adsp2_32bit_wmfw2_init()
2806 static int cs_dsp_ctl_cache_test_adsp2_16bit_init(struct kunit *test, int wmfw_ver) in cs_dsp_ctl_cache_test_adsp2_16bit_init() argument
2811 dsp = kunit_kzalloc(test, sizeof(*dsp), GFP_KERNEL); in cs_dsp_ctl_cache_test_adsp2_16bit_init()
2822 return cs_dsp_ctl_cache_test_common_init(test, dsp, wmfw_ver); in cs_dsp_ctl_cache_test_adsp2_16bit_init()
2825 static int cs_dsp_ctl_cache_test_adsp2_16bit_wmfw1_init(struct kunit *test) in cs_dsp_ctl_cache_test_adsp2_16bit_wmfw1_init() argument
2827 return cs_dsp_ctl_cache_test_adsp2_16bit_init(test, 1); in cs_dsp_ctl_cache_test_adsp2_16bit_wmfw1_init()
2830 static int cs_dsp_ctl_cache_test_adsp2_16bit_wmfw2_init(struct kunit *test) in cs_dsp_ctl_cache_test_adsp2_16bit_wmfw2_init() argument
2832 return cs_dsp_ctl_cache_test_adsp2_16bit_init(test, 2); in cs_dsp_ctl_cache_test_adsp2_16bit_wmfw2_init()