Lines Matching full:builder

3 // wmfw file builder for cs_dsp KUnit tests.
55 * @builder: Pointer to struct cs_dsp_mock_wmfw_builder. in KUNIT_DEFINE_ACTION_WRAPPER()
59 int cs_dsp_mock_wmfw_format_version(struct cs_dsp_mock_wmfw_builder *builder) in KUNIT_DEFINE_ACTION_WRAPPER()
61 return builder->format_version; in KUNIT_DEFINE_ACTION_WRAPPER()
68 * @builder: Pointer to struct cs_dsp_mock_wmfw_builder.
72 struct firmware *cs_dsp_mock_wmfw_get_firmware(struct cs_dsp_mock_wmfw_builder *builder) in cs_dsp_mock_wmfw_get_firmware() argument
76 if (!builder) in cs_dsp_mock_wmfw_get_firmware()
79 fw = kunit_kzalloc(builder->test_priv->test, sizeof(*fw), GFP_KERNEL); in cs_dsp_mock_wmfw_get_firmware()
80 KUNIT_ASSERT_NOT_ERR_OR_NULL(builder->test_priv->test, fw); in cs_dsp_mock_wmfw_get_firmware()
82 fw->data = builder->buf; in cs_dsp_mock_wmfw_get_firmware()
83 fw->size = builder->bytes_used; in cs_dsp_mock_wmfw_get_firmware()
92 * @builder: Pointer to struct cs_dsp_mock_bin_builder.
99 void cs_dsp_mock_wmfw_add_raw_block(struct cs_dsp_mock_wmfw_builder *builder, in cs_dsp_mock_wmfw_add_raw_block() argument
103 struct wmfw_region *header = builder->write_p; in cs_dsp_mock_wmfw_add_raw_block()
106 KUNIT_ASSERT_TRUE(builder->test_priv->test, in cs_dsp_mock_wmfw_add_raw_block()
107 (builder->write_p + bytes_needed) < in cs_dsp_mock_wmfw_add_raw_block()
108 (builder->buf + CS_DSP_MOCK_WMFW_BUF_SIZE)); in cs_dsp_mock_wmfw_add_raw_block()
115 builder->write_p += bytes_needed; in cs_dsp_mock_wmfw_add_raw_block()
116 builder->bytes_used += bytes_needed; in cs_dsp_mock_wmfw_add_raw_block()
123 * @builder: Pointer to struct cs_dsp_mock_bin_builder.
128 void cs_dsp_mock_wmfw_add_info(struct cs_dsp_mock_wmfw_builder *builder, in cs_dsp_mock_wmfw_add_info() argument
137 tmp = kunit_kzalloc(builder->test_priv->test, info_len, GFP_KERNEL); in cs_dsp_mock_wmfw_add_info()
138 KUNIT_ASSERT_NOT_ERR_OR_NULL(builder->test_priv->test, tmp); in cs_dsp_mock_wmfw_add_info()
143 cs_dsp_mock_wmfw_add_raw_block(builder, WMFW_INFO_TEXT, 0, info, info_len); in cs_dsp_mock_wmfw_add_info()
144 kunit_kfree(builder->test_priv->test, tmp); in cs_dsp_mock_wmfw_add_info()
151 * @builder: Pointer to struct cs_dsp_mock_bin_builder.
157 void cs_dsp_mock_wmfw_add_data_block(struct cs_dsp_mock_wmfw_builder *builder, in cs_dsp_mock_wmfw_add_data_block() argument
162 KUNIT_ASSERT_EQ(builder->test_priv->test, payload_len_bytes % 4, 0); in cs_dsp_mock_wmfw_add_data_block()
164 cs_dsp_mock_wmfw_add_raw_block(builder, mem_region, mem_offset_dsp_words, in cs_dsp_mock_wmfw_add_data_block()
169 void cs_dsp_mock_wmfw_start_alg_info_block(struct cs_dsp_mock_wmfw_builder *builder, in cs_dsp_mock_wmfw_start_alg_info_block() argument
174 struct wmfw_region *rgn = builder->write_p; in cs_dsp_mock_wmfw_start_alg_info_block()
184 builder->alg_data_header = builder->write_p; in cs_dsp_mock_wmfw_start_alg_info_block()
185 builder->num_coeffs = 0; in cs_dsp_mock_wmfw_start_alg_info_block()
187 switch (builder->format_version) { in cs_dsp_mock_wmfw_start_alg_info_block()
189 KUNIT_FAIL(builder->test_priv->test, "wmfwV0 does not have alg blocks\n"); in cs_dsp_mock_wmfw_start_alg_info_block()
193 KUNIT_ASSERT_TRUE(builder->test_priv->test, in cs_dsp_mock_wmfw_start_alg_info_block()
194 (builder->write_p + bytes_needed) < in cs_dsp_mock_wmfw_start_alg_info_block()
195 (builder->buf + CS_DSP_MOCK_WMFW_BUF_SIZE)); in cs_dsp_mock_wmfw_start_alg_info_block()
197 memset(builder->write_p, 0, bytes_needed); in cs_dsp_mock_wmfw_start_alg_info_block()
226 KUNIT_ASSERT_TRUE(builder->test_priv->test, in cs_dsp_mock_wmfw_start_alg_info_block()
227 (builder->write_p + bytes_needed) < in cs_dsp_mock_wmfw_start_alg_info_block()
228 (builder->buf + CS_DSP_MOCK_WMFW_BUF_SIZE)); in cs_dsp_mock_wmfw_start_alg_info_block()
230 memset(builder->write_p, 0, bytes_needed); in cs_dsp_mock_wmfw_start_alg_info_block()
256 builder->write_p += bytes_needed; in cs_dsp_mock_wmfw_start_alg_info_block()
257 builder->bytes_used += bytes_needed; in cs_dsp_mock_wmfw_start_alg_info_block()
261 void cs_dsp_mock_wmfw_add_coeff_desc(struct cs_dsp_mock_wmfw_builder *builder, in cs_dsp_mock_wmfw_add_coeff_desc() argument
270 KUNIT_ASSERT_NOT_NULL(builder->test_priv->test, builder->alg_data_header); in cs_dsp_mock_wmfw_add_coeff_desc()
272 switch (builder->format_version) { in cs_dsp_mock_wmfw_add_coeff_desc()
277 KUNIT_ASSERT_TRUE(builder->test_priv->test, in cs_dsp_mock_wmfw_add_coeff_desc()
278 (builder->write_p + bytes_needed) < in cs_dsp_mock_wmfw_add_coeff_desc()
279 (builder->buf + CS_DSP_MOCK_WMFW_BUF_SIZE)); in cs_dsp_mock_wmfw_add_coeff_desc()
281 v1 = (struct wmfw_adsp_coeff_data *)builder->write_p; in cs_dsp_mock_wmfw_add_coeff_desc()
312 KUNIT_ASSERT_TRUE(builder->test_priv->test, in cs_dsp_mock_wmfw_add_coeff_desc()
313 (builder->write_p + bytes_needed) < in cs_dsp_mock_wmfw_add_coeff_desc()
314 (builder->buf + CS_DSP_MOCK_WMFW_BUF_SIZE)); in cs_dsp_mock_wmfw_add_coeff_desc()
316 ple32 = (__force __le32 *)builder->write_p; in cs_dsp_mock_wmfw_add_coeff_desc()
349 builder->write_p += bytes_needed; in cs_dsp_mock_wmfw_add_coeff_desc()
350 builder->bytes_used += bytes_needed; in cs_dsp_mock_wmfw_add_coeff_desc()
351 builder->num_coeffs++; in cs_dsp_mock_wmfw_add_coeff_desc()
355 void cs_dsp_mock_wmfw_end_alg_info_block(struct cs_dsp_mock_wmfw_builder *builder) in cs_dsp_mock_wmfw_end_alg_info_block() argument
357 struct wmfw_region *rgn = builder->alg_data_header; in cs_dsp_mock_wmfw_end_alg_info_block()
363 KUNIT_ASSERT_NOT_NULL(builder->test_priv->test, rgn); in cs_dsp_mock_wmfw_end_alg_info_block()
366 rgn->len = cpu_to_le32((u8 *)builder->write_p - (u8 *)rgn->data); in cs_dsp_mock_wmfw_end_alg_info_block()
369 switch (builder->format_version) { in cs_dsp_mock_wmfw_end_alg_info_block()
374 v1->ncoeff = cpu_to_le32(builder->num_coeffs); in cs_dsp_mock_wmfw_end_alg_info_block()
390 *(__force __le32 *)&rgn->data[offset] = cpu_to_le32(builder->num_coeffs); in cs_dsp_mock_wmfw_end_alg_info_block()
394 builder->alg_data_header = NULL; in cs_dsp_mock_wmfw_end_alg_info_block()
398 static void cs_dsp_init_adsp2_halo_wmfw(struct cs_dsp_mock_wmfw_builder *builder) in cs_dsp_init_adsp2_halo_wmfw() argument
400 struct wmfw_adsp2_halo_header *hdr = builder->buf; in cs_dsp_init_adsp2_halo_wmfw()
401 const struct cs_dsp *dsp = builder->test_priv->dsp; in cs_dsp_init_adsp2_halo_wmfw()
405 hdr->header.ver = builder->format_version; in cs_dsp_init_adsp2_halo_wmfw()
421 builder->write_p = &hdr[1]; in cs_dsp_init_adsp2_halo_wmfw()
422 builder->bytes_used += sizeof(*hdr); in cs_dsp_init_adsp2_halo_wmfw()
436 struct cs_dsp_mock_wmfw_builder *builder; in cs_dsp_mock_wmfw_init() local
450 builder = kunit_kzalloc(priv->test, sizeof(*builder), GFP_KERNEL); in cs_dsp_mock_wmfw_init()
451 KUNIT_ASSERT_NOT_ERR_OR_NULL(priv->test, builder); in cs_dsp_mock_wmfw_init()
453 builder->test_priv = priv; in cs_dsp_mock_wmfw_init()
454 builder->format_version = format_version; in cs_dsp_mock_wmfw_init()
456 builder->buf = vmalloc(CS_DSP_MOCK_WMFW_BUF_SIZE); in cs_dsp_mock_wmfw_init()
457 KUNIT_ASSERT_NOT_NULL(priv->test, builder->buf); in cs_dsp_mock_wmfw_init()
458 kunit_add_action_or_reset(priv->test, vfree_action_wrapper, builder->buf); in cs_dsp_mock_wmfw_init()
460 builder->buf_size_bytes = CS_DSP_MOCK_WMFW_BUF_SIZE; in cs_dsp_mock_wmfw_init()
465 cs_dsp_init_adsp2_halo_wmfw(builder); in cs_dsp_mock_wmfw_init()
471 return builder; in cs_dsp_mock_wmfw_init()