Lines Matching defs:fw_lib
21 struct sof_ipc4_fw_library *fw_lib)
24 const struct firmware *fw = fw_lib->sof_fw.fw;
83 fw_lib->modules = devm_kmalloc_array(sdev->dev, fw_header->num_module_entries,
85 if (!fw_lib->modules)
88 fw_lib->name = fw_header->name;
89 fw_lib->num_modules = fw_header->num_module_entries;
90 fw_module = fw_lib->modules;
140 struct sof_ipc4_fw_library *fw_lib;
144 fw_lib = devm_kzalloc(sdev->dev, sizeof(*fw_lib), GFP_KERNEL);
145 if (!fw_lib)
148 fw_lib->sof_fw.fw = sdev->basefw.fw;
150 payload_offset = sof_ipc4_fw_parse_ext_man(sdev, fw_lib);
152 fw_lib->sof_fw.payload_offset = payload_offset;
155 fw_lib->id = 0;
156 ret = xa_insert(&ipc4_data->fw_lib_xa, 0, fw_lib, GFP_KERNEL);
168 struct sof_ipc4_fw_library *fw_lib;
184 fw_lib = devm_kzalloc(sdev->dev, sizeof(*fw_lib), GFP_KERNEL);
185 if (!fw_lib)
195 ret = request_firmware(&fw_lib->sof_fw.fw, fw_filename, sdev->dev);
203 payload_offset = sof_ipc4_fw_parse_ext_man(sdev, fw_lib);
213 fw_lib->sof_fw.payload_offset = payload_offset;
214 fw_lib->id = lib_id;
217 for (i = 0; i < fw_lib->num_modules; i++)
218 fw_lib->modules[i].man4_module_entry.id |= (lib_id << SOF_IPC4_MOD_LIB_ID_SHIFT);
231 ret = ipc4_data->load_library(sdev, fw_lib, false);
242 ret = xa_insert(&ipc4_data->fw_lib_xa, lib_id, fw_lib, GFP_KERNEL);
251 release_firmware(fw_lib->sof_fw.fw);
253 devm_kfree(sdev->dev, fw_lib->modules);
257 devm_kfree(sdev->dev, fw_lib);
266 struct sof_ipc4_fw_library *fw_lib;
273 xa_for_each(&ipc4_data->fw_lib_xa, lib_id, fw_lib) {
274 for (i = 0; i < fw_lib->num_modules; i++) {
275 if (guid_equal(uuid, &fw_lib->modules[i].man4_module_entry.uuid))
276 return &fw_lib->modules[i];
297 xa_for_each_start(&ipc4_data->fw_lib_xa, lib_id, fw_lib, lib_id) {
298 for (i = 0; i < fw_lib->num_modules; i++) {
299 if (guid_equal(uuid, &fw_lib->modules[i].man4_module_entry.uuid))
300 return &fw_lib->modules[i];
410 struct sof_ipc4_fw_library *fw_lib;
414 xa_for_each_start(&ipc4_data->fw_lib_xa, lib_id, fw_lib, 1) {
415 ret = ipc4_data->load_library(sdev, fw_lib, true);
418 __func__, fw_lib->name, ret);