Lines Matching full:dsp
88 static int cs_dsp_test_pre_run_callback(struct cs_dsp *dsp) in cs_dsp_test_pre_run_callback() argument
94 local->passed_dsp = dsp; in cs_dsp_test_pre_run_callback()
100 static int cs_dsp_test_post_run_callback(struct cs_dsp *dsp) in cs_dsp_test_post_run_callback() argument
106 local->passed_dsp = dsp; in cs_dsp_test_post_run_callback()
112 static void cs_dsp_test_pre_stop_callback(struct cs_dsp *dsp) in cs_dsp_test_pre_stop_callback() argument
118 local->passed_dsp = dsp; in cs_dsp_test_pre_stop_callback()
122 static void cs_dsp_test_post_stop_callback(struct cs_dsp *dsp) in cs_dsp_test_post_stop_callback() argument
128 local->passed_dsp = dsp; in cs_dsp_test_post_stop_callback()
132 static void cs_dsp_test_watchdog_expired_callback(struct cs_dsp *dsp) in cs_dsp_test_watchdog_expired_callback() argument
138 local->passed_dsp = dsp; in cs_dsp_test_watchdog_expired_callback()
165 cs_dsp_power_up(priv->dsp, wmfw, "wmfw", NULL, NULL, "misc"), in cs_dsp_test_run_stop_callbacks()
168 KUNIT_EXPECT_EQ(test, cs_dsp_run(priv->dsp), 0); in cs_dsp_test_run_stop_callbacks()
173 KUNIT_EXPECT_PTR_EQ(test, local->passed_dsp, priv->dsp); in cs_dsp_test_run_stop_callbacks()
176 cs_dsp_stop(priv->dsp); in cs_dsp_test_run_stop_callbacks()
181 KUNIT_EXPECT_PTR_EQ(test, local->passed_dsp, priv->dsp); in cs_dsp_test_run_stop_callbacks()
184 KUNIT_EXPECT_EQ(test, cs_dsp_run(priv->dsp), 0); in cs_dsp_test_run_stop_callbacks()
189 KUNIT_EXPECT_PTR_EQ(test, local->passed_dsp, priv->dsp); in cs_dsp_test_run_stop_callbacks()
192 cs_dsp_stop(priv->dsp); in cs_dsp_test_run_stop_callbacks()
197 KUNIT_EXPECT_PTR_EQ(test, local->passed_dsp, priv->dsp); in cs_dsp_test_run_stop_callbacks()
230 cs_dsp_power_up(priv->dsp, wmfw, "wmfw", NULL, NULL, "misc"), in cs_dsp_test_ctl_v1_callbacks()
234 KUNIT_EXPECT_EQ(test, list_count_nodes(&priv->dsp->ctl_list), 3); in cs_dsp_test_ctl_v1_callbacks()
239 list_for_each_entry_reverse(ctl, &priv->dsp->ctl_list, list) in cs_dsp_test_ctl_v1_callbacks()
247 cs_dsp_remove(priv->dsp); in cs_dsp_test_ctl_v1_callbacks()
250 kunit_remove_action(priv->test, _cs_dsp_remove_wrapper, priv->dsp); in cs_dsp_test_ctl_v1_callbacks()
256 list_for_each_entry_reverse(ctl, &priv->dsp->ctl_list, list) in cs_dsp_test_ctl_v1_callbacks()
284 cs_dsp_power_up(priv->dsp, wmfw, "wmfw", NULL, NULL, "misc"), in cs_dsp_test_ctl_v2_callbacks()
288 KUNIT_EXPECT_EQ(test, list_count_nodes(&priv->dsp->ctl_list), in cs_dsp_test_ctl_v2_callbacks()
294 list_for_each_entry_reverse(ctl, &priv->dsp->ctl_list, list) in cs_dsp_test_ctl_v2_callbacks()
302 cs_dsp_remove(priv->dsp); in cs_dsp_test_ctl_v2_callbacks()
305 kunit_remove_action(priv->test, _cs_dsp_remove_wrapper, priv->dsp); in cs_dsp_test_ctl_v2_callbacks()
311 list_for_each_entry_reverse(ctl, &priv->dsp->ctl_list, list) in cs_dsp_test_ctl_v2_callbacks()
334 cs_dsp_power_up(priv->dsp, wmfw, "wmfw", NULL, NULL, "misc"), in cs_dsp_test_no_callbacks()
336 KUNIT_EXPECT_EQ(test, cs_dsp_run(priv->dsp), 0); in cs_dsp_test_no_callbacks()
337 cs_dsp_stop(priv->dsp); in cs_dsp_test_no_callbacks()
338 cs_dsp_remove(priv->dsp); in cs_dsp_test_no_callbacks()
341 kunit_remove_action(priv->test, _cs_dsp_remove_wrapper, priv->dsp); in cs_dsp_test_no_callbacks()
361 cs_dsp_power_up(priv->dsp, wmfw, "wmfw", NULL, NULL, "misc"), in cs_dsp_test_adsp2v2_watchdog_callback()
364 KUNIT_EXPECT_EQ(test, cs_dsp_run(priv->dsp), 0); in cs_dsp_test_adsp2v2_watchdog_callback()
367 regmap_write(priv->dsp->regmap, priv->dsp->base + ADSP2_LOCK_REGION_CTRL, in cs_dsp_test_adsp2v2_watchdog_callback()
371 cs_dsp_adsp2_bus_error(priv->dsp); in cs_dsp_test_adsp2v2_watchdog_callback()
373 KUNIT_EXPECT_PTR_EQ(test, local->passed_dsp, priv->dsp); in cs_dsp_test_adsp2v2_watchdog_callback()
384 cs_dsp_power_up(priv->dsp, wmfw, "wmfw", NULL, NULL, "misc"), in cs_dsp_test_adsp2v2_watchdog_no_callbacks()
386 KUNIT_EXPECT_EQ(test, cs_dsp_run(priv->dsp), 0); in cs_dsp_test_adsp2v2_watchdog_no_callbacks()
389 regmap_write(priv->dsp->regmap, priv->dsp->base + ADSP2_LOCK_REGION_CTRL, in cs_dsp_test_adsp2v2_watchdog_no_callbacks()
393 cs_dsp_adsp2_bus_error(priv->dsp); in cs_dsp_test_adsp2v2_watchdog_no_callbacks()
406 cs_dsp_power_up(priv->dsp, wmfw, "wmfw", NULL, NULL, "misc"), in cs_dsp_test_halo_watchdog_callback()
409 KUNIT_EXPECT_EQ(test, cs_dsp_run(priv->dsp), 0); in cs_dsp_test_halo_watchdog_callback()
412 cs_dsp_halo_wdt_expire(priv->dsp); in cs_dsp_test_halo_watchdog_callback()
414 KUNIT_EXPECT_PTR_EQ(test, local->passed_dsp, priv->dsp); in cs_dsp_test_halo_watchdog_callback()
425 cs_dsp_power_up(priv->dsp, wmfw, "wmfw", NULL, NULL, "misc"), in cs_dsp_test_halo_watchdog_no_callbacks()
427 KUNIT_EXPECT_EQ(test, cs_dsp_run(priv->dsp), 0); in cs_dsp_test_halo_watchdog_no_callbacks()
430 cs_dsp_halo_wdt_expire(priv->dsp); in cs_dsp_test_halo_watchdog_no_callbacks()
434 static int cs_dsp_callbacks_test_common_init(struct kunit *test, struct cs_dsp *dsp, in cs_dsp_callbacks_test_common_init() argument
453 priv->dsp = dsp; in cs_dsp_callbacks_test_common_init()
462 dsp->dev = get_device(test_dev); in cs_dsp_callbacks_test_common_init()
463 if (!dsp->dev) in cs_dsp_callbacks_test_common_init()
466 ret = kunit_add_action_or_reset(test, _put_device_wrapper, dsp->dev); in cs_dsp_callbacks_test_common_init()
470 dev_set_drvdata(dsp->dev, priv); in cs_dsp_callbacks_test_common_init()
498 dsp->client_ops = param->ops; in cs_dsp_callbacks_test_common_init()
500 switch (dsp->type) { in cs_dsp_callbacks_test_common_init()
502 ret = cs_dsp_adsp2_init(dsp); in cs_dsp_callbacks_test_common_init()
505 ret = cs_dsp_halo_init(dsp); in cs_dsp_callbacks_test_common_init()
508 KUNIT_FAIL(test, "Untested DSP type %d\n", dsp->type); in cs_dsp_callbacks_test_common_init()
516 return kunit_add_action_or_reset(priv->test, _cs_dsp_remove_wrapper, dsp); in cs_dsp_callbacks_test_common_init()
521 struct cs_dsp *dsp; in cs_dsp_callbacks_test_halo_init() local
524 dsp = kunit_kzalloc(test, sizeof(*dsp), GFP_KERNEL); in cs_dsp_callbacks_test_halo_init()
525 if (!dsp) in cs_dsp_callbacks_test_halo_init()
528 dsp->num = 1; in cs_dsp_callbacks_test_halo_init()
529 dsp->type = WMFW_HALO; in cs_dsp_callbacks_test_halo_init()
530 dsp->mem = cs_dsp_mock_halo_dsp1_regions; in cs_dsp_callbacks_test_halo_init()
531 dsp->num_mems = cs_dsp_mock_count_regions(cs_dsp_mock_halo_dsp1_region_sizes); in cs_dsp_callbacks_test_halo_init()
532 dsp->base = cs_dsp_mock_halo_core_base; in cs_dsp_callbacks_test_halo_init()
533 dsp->base_sysinfo = cs_dsp_mock_halo_sysinfo_base; in cs_dsp_callbacks_test_halo_init()
535 return cs_dsp_callbacks_test_common_init(test, dsp, 3); in cs_dsp_callbacks_test_halo_init()
540 struct cs_dsp *dsp; in cs_dsp_callbacks_test_adsp2_32bit_init() local
543 dsp = kunit_kzalloc(test, sizeof(*dsp), GFP_KERNEL); in cs_dsp_callbacks_test_adsp2_32bit_init()
544 if (!dsp) in cs_dsp_callbacks_test_adsp2_32bit_init()
547 dsp->num = 1; in cs_dsp_callbacks_test_adsp2_32bit_init()
548 dsp->type = WMFW_ADSP2; in cs_dsp_callbacks_test_adsp2_32bit_init()
549 dsp->rev = rev; in cs_dsp_callbacks_test_adsp2_32bit_init()
550 dsp->mem = cs_dsp_mock_adsp2_32bit_dsp1_regions; in cs_dsp_callbacks_test_adsp2_32bit_init()
551 dsp->num_mems = cs_dsp_mock_count_regions(cs_dsp_mock_adsp2_32bit_dsp1_region_sizes); in cs_dsp_callbacks_test_adsp2_32bit_init()
552 dsp->base = cs_dsp_mock_adsp2_32bit_sysbase; in cs_dsp_callbacks_test_adsp2_32bit_init()
554 return cs_dsp_callbacks_test_common_init(test, dsp, 2); in cs_dsp_callbacks_test_adsp2_32bit_init()
569 struct cs_dsp *dsp; in cs_dsp_callbacks_test_adsp2_16bit_init() local
572 dsp = kunit_kzalloc(test, sizeof(*dsp), GFP_KERNEL); in cs_dsp_callbacks_test_adsp2_16bit_init()
573 if (!dsp) in cs_dsp_callbacks_test_adsp2_16bit_init()
576 dsp->num = 1; in cs_dsp_callbacks_test_adsp2_16bit_init()
577 dsp->type = WMFW_ADSP2; in cs_dsp_callbacks_test_adsp2_16bit_init()
578 dsp->rev = 0; in cs_dsp_callbacks_test_adsp2_16bit_init()
579 dsp->mem = cs_dsp_mock_adsp2_16bit_dsp1_regions; in cs_dsp_callbacks_test_adsp2_16bit_init()
580 dsp->num_mems = cs_dsp_mock_count_regions(cs_dsp_mock_adsp2_16bit_dsp1_region_sizes); in cs_dsp_callbacks_test_adsp2_16bit_init()
581 dsp->base = cs_dsp_mock_adsp2_16bit_sysbase; in cs_dsp_callbacks_test_adsp2_16bit_init()
583 return cs_dsp_callbacks_test_common_init(test, dsp, 1); in cs_dsp_callbacks_test_adsp2_16bit_init()