Lines Matching refs:fw_lib
21 struct sof_ipc4_fw_library *fw_lib) in sof_ipc4_fw_parse_ext_man() argument
24 const struct firmware *fw = fw_lib->sof_fw.fw; in sof_ipc4_fw_parse_ext_man()
91 fw_lib->modules = devm_kmalloc_array(sdev->dev, fw_header->num_module_entries, in sof_ipc4_fw_parse_ext_man()
93 if (!fw_lib->modules) in sof_ipc4_fw_parse_ext_man()
96 fw_lib->name = fw_header->name; in sof_ipc4_fw_parse_ext_man()
97 fw_lib->num_modules = fw_header->num_module_entries; in sof_ipc4_fw_parse_ext_man()
98 fw_module = fw_lib->modules; in sof_ipc4_fw_parse_ext_man()
148 struct sof_ipc4_fw_library *fw_lib; in sof_ipc4_fw_parse_basefw_ext_man() local
152 fw_lib = devm_kzalloc(sdev->dev, sizeof(*fw_lib), GFP_KERNEL); in sof_ipc4_fw_parse_basefw_ext_man()
153 if (!fw_lib) in sof_ipc4_fw_parse_basefw_ext_man()
156 fw_lib->sof_fw.fw = sdev->basefw.fw; in sof_ipc4_fw_parse_basefw_ext_man()
158 payload_offset = sof_ipc4_fw_parse_ext_man(sdev, fw_lib); in sof_ipc4_fw_parse_basefw_ext_man()
160 fw_lib->sof_fw.payload_offset = payload_offset; in sof_ipc4_fw_parse_basefw_ext_man()
163 fw_lib->id = 0; in sof_ipc4_fw_parse_basefw_ext_man()
164 ret = xa_insert(&ipc4_data->fw_lib_xa, 0, fw_lib, GFP_KERNEL); in sof_ipc4_fw_parse_basefw_ext_man()
176 struct sof_ipc4_fw_library *fw_lib; in sof_ipc4_load_library_by_uuid() local
192 fw_lib = devm_kzalloc(sdev->dev, sizeof(*fw_lib), GFP_KERNEL); in sof_ipc4_load_library_by_uuid()
193 if (!fw_lib) in sof_ipc4_load_library_by_uuid()
203 ret = request_firmware(&fw_lib->sof_fw.fw, fw_filename, sdev->dev); in sof_ipc4_load_library_by_uuid()
211 payload_offset = sof_ipc4_fw_parse_ext_man(sdev, fw_lib); in sof_ipc4_load_library_by_uuid()
221 fw_lib->sof_fw.payload_offset = payload_offset; in sof_ipc4_load_library_by_uuid()
222 fw_lib->id = lib_id; in sof_ipc4_load_library_by_uuid()
225 for (i = 0; i < fw_lib->num_modules; i++) in sof_ipc4_load_library_by_uuid()
226 fw_lib->modules[i].man4_module_entry.id |= (lib_id << SOF_IPC4_MOD_LIB_ID_SHIFT); in sof_ipc4_load_library_by_uuid()
239 ret = ipc4_data->load_library(sdev, fw_lib, false); in sof_ipc4_load_library_by_uuid()
250 ret = xa_insert(&ipc4_data->fw_lib_xa, lib_id, fw_lib, GFP_KERNEL); in sof_ipc4_load_library_by_uuid()
259 release_firmware(fw_lib->sof_fw.fw); in sof_ipc4_load_library_by_uuid()
261 devm_kfree(sdev->dev, fw_lib->modules); in sof_ipc4_load_library_by_uuid()
265 devm_kfree(sdev->dev, fw_lib); in sof_ipc4_load_library_by_uuid()
274 struct sof_ipc4_fw_library *fw_lib; in sof_ipc4_find_module_by_uuid() local
281 xa_for_each(&ipc4_data->fw_lib_xa, lib_id, fw_lib) { in sof_ipc4_find_module_by_uuid()
282 for (i = 0; i < fw_lib->num_modules; i++) { in sof_ipc4_find_module_by_uuid()
283 if (guid_equal(uuid, &fw_lib->modules[i].man4_module_entry.uuid)) in sof_ipc4_find_module_by_uuid()
284 return &fw_lib->modules[i]; in sof_ipc4_find_module_by_uuid()
305 xa_for_each_start(&ipc4_data->fw_lib_xa, lib_id, fw_lib, lib_id) { in sof_ipc4_find_module_by_uuid()
306 for (i = 0; i < fw_lib->num_modules; i++) { in sof_ipc4_find_module_by_uuid()
307 if (guid_equal(uuid, &fw_lib->modules[i].man4_module_entry.uuid)) in sof_ipc4_find_module_by_uuid()
308 return &fw_lib->modules[i]; in sof_ipc4_find_module_by_uuid()
421 struct sof_ipc4_fw_library *fw_lib; in sof_ipc4_reload_fw_libraries() local
425 xa_for_each_start(&ipc4_data->fw_lib_xa, lib_id, fw_lib, 1) { in sof_ipc4_reload_fw_libraries()
426 ret = ipc4_data->load_library(sdev, fw_lib, true); in sof_ipc4_reload_fw_libraries()
429 __func__, fw_lib->name, ret); in sof_ipc4_reload_fw_libraries()