Lines Matching defs:fw_lib

21 					 struct sof_ipc4_fw_library *fw_lib)
24 const struct firmware *fw = fw_lib->sof_fw.fw;
91 fw_lib->modules = devm_kmalloc_array(sdev->dev, fw_header->num_module_entries,
93 if (!fw_lib->modules)
96 fw_lib->name = fw_header->name;
97 fw_lib->num_modules = fw_header->num_module_entries;
98 fw_module = fw_lib->modules;
148 struct sof_ipc4_fw_library *fw_lib;
152 fw_lib = devm_kzalloc(sdev->dev, sizeof(*fw_lib), GFP_KERNEL);
153 if (!fw_lib)
156 fw_lib->sof_fw.fw = sdev->basefw.fw;
158 payload_offset = sof_ipc4_fw_parse_ext_man(sdev, fw_lib);
160 fw_lib->sof_fw.payload_offset = payload_offset;
163 fw_lib->id = 0;
164 ret = xa_insert(&ipc4_data->fw_lib_xa, 0, fw_lib, GFP_KERNEL);
176 struct sof_ipc4_fw_library *fw_lib;
185 fw_lib = devm_kzalloc(sdev->dev, sizeof(*fw_lib), GFP_KERNEL);
186 if (!fw_lib)
190 ret = firmware_request_nowarn(&fw_lib->sof_fw.fw, lib_filename,
198 ret = request_firmware(&fw_lib->sof_fw.fw, lib_filename,
209 payload_offset = sof_ipc4_fw_parse_ext_man(sdev, fw_lib);
219 fw_lib->sof_fw.payload_offset = payload_offset;
220 fw_lib->id = lib_id;
223 for (i = 0; i < fw_lib->num_modules; i++)
224 fw_lib->modules[i].man4_module_entry.id |= (lib_id << SOF_IPC4_MOD_LIB_ID_SHIFT);
226 ret = ipc4_data->load_library(sdev, fw_lib, false);
230 ret = xa_insert(&ipc4_data->fw_lib_xa, lib_id, fw_lib, GFP_KERNEL);
237 release_firmware(fw_lib->sof_fw.fw);
239 devm_kfree(sdev->dev, fw_lib->modules);
241 devm_kfree(sdev->dev, fw_lib);
349 struct sof_ipc4_fw_library *fw_lib;
356 xa_for_each(&ipc4_data->fw_lib_xa, lib_id, fw_lib) {
357 for (i = 0; i < fw_lib->num_modules; i++) {
358 if (guid_equal(uuid, &fw_lib->modules[i].man4_module_entry.uuid))
359 return &fw_lib->modules[i];
380 xa_for_each_start(&ipc4_data->fw_lib_xa, lib_id, fw_lib, lib_id) {
381 for (i = 0; i < fw_lib->num_modules; i++) {
382 if (guid_equal(uuid, &fw_lib->modules[i].man4_module_entry.uuid))
383 return &fw_lib->modules[i];
535 struct sof_ipc4_fw_library *fw_lib;
539 xa_for_each_start(&ipc4_data->fw_lib_xa, lib_id, fw_lib, 1) {
540 ret = ipc4_data->load_library(sdev, fw_lib, true);
543 __func__, fw_lib->name, ret);