Lines Matching defs:sdev
20 static ssize_t sof_ipc4_fw_parse_ext_man(struct snd_sof_dev *sdev,
23 struct sof_ipc4_fw_data *ipc4_data = sdev->private;
35 dev_err(sdev->dev, "%s: ipc4_data is not available\n", __func__);
41 dev_err(sdev->dev, "Firmware size is too small: %zu\n", remaining);
52 dev_err(sdev->dev,
63 dev_err(sdev->dev, "Invalid firmware size %zu, should be at least %zu\n",
73 dev_err(sdev->dev, "Invalid fw_header->len %u\n", fw_header->len);
77 dev_info(sdev->dev, "Loaded firmware library: %s, version: %u.%u.%u.%u\n",
80 dev_dbg(sdev->dev, "Header length: %u, module count: %u\n",
83 fw_lib->modules = devm_kmalloc_array(sdev->dev, fw_header->num_module_entries,
96 dev_err(sdev->dev, "Invalid num_module_entries %u\n",
110 dev_err(sdev->dev, "Invalid module cfg_offset %u\n",
117 dev_dbg(sdev->dev,
122 dev_dbg(sdev->dev, "module %s: UUID %pUL\n", fm_entry->name,
137 static size_t sof_ipc4_fw_parse_basefw_ext_man(struct snd_sof_dev *sdev)
139 struct sof_ipc4_fw_data *ipc4_data = sdev->private;
144 fw_lib = devm_kzalloc(sdev->dev, sizeof(*fw_lib), GFP_KERNEL);
148 fw_lib->sof_fw.fw = sdev->basefw.fw;
150 payload_offset = sof_ipc4_fw_parse_ext_man(sdev, fw_lib);
164 static int sof_ipc4_load_library_by_uuid(struct snd_sof_dev *sdev,
167 struct sof_ipc4_fw_data *ipc4_data = sdev->private;
173 if (!sdev->pdata->fw_lib_prefix) {
174 dev_err(sdev->dev,
180 dev_err(sdev->dev, "Library loading is not supported on this platform\n");
184 fw_lib = devm_kzalloc(sdev->dev, sizeof(*fw_lib), GFP_KERNEL);
189 sdev->pdata->fw_lib_prefix, uuid);
195 ret = request_firmware(&fw_lib->sof_fw.fw, fw_filename, sdev->dev);
197 dev_err(sdev->dev, "Library file '%s' is missing\n", fw_filename);
200 dev_dbg(sdev->dev, "Library file '%s' loaded\n", fw_filename);
203 payload_offset = sof_ipc4_fw_parse_ext_man(sdev, fw_lib);
224 ret = pm_runtime_resume_and_get(sdev->dev);
226 dev_err_ratelimited(sdev->dev, "%s: pm_runtime resume failed: %d\n",
231 ret = ipc4_data->load_library(sdev, fw_lib, false);
233 pm_runtime_mark_last_busy(sdev->dev);
234 err = pm_runtime_put_autosuspend(sdev->dev);
236 dev_err_ratelimited(sdev->dev, "%s: pm_runtime idle failed: %d\n",
253 devm_kfree(sdev->dev, fw_lib->modules);
257 devm_kfree(sdev->dev, fw_lib);
262 struct sof_ipc4_fw_module *sof_ipc4_find_module_by_uuid(struct snd_sof_dev *sdev,
265 struct sof_ipc4_fw_data *ipc4_data = sdev->private;
285 dev_err(sdev->dev,
292 ret = sof_ipc4_load_library_by_uuid(sdev, lib_id + 1, uuid);
307 static int sof_ipc4_validate_firmware(struct snd_sof_dev *sdev)
309 struct sof_ipc4_fw_data *ipc4_data = sdev->private;
312 const struct firmware *fw = sdev->basefw.fw;
321 dev_dbg(sdev->dev, "Validated firmware version: %u.%u.%u.%u\n",
328 int sof_ipc4_query_fw_configuration(struct snd_sof_dev *sdev)
330 struct sof_ipc4_fw_data *ipc4_data = sdev->private;
331 const struct sof_ipc_ops *iops = sdev->ipc->ops;
345 msg.data_size = sdev->ipc->max_payload_size;
350 ret = iops->set_get_data(sdev, &msg, msg.data_size, false);
361 dev_info(sdev->dev,
367 trace_sof_ipc4_fw_config(sdev, "DL mailbox size", *tuple->value);
370 trace_sof_ipc4_fw_config(sdev, "UL mailbox size", *tuple->value);
373 trace_sof_ipc4_fw_config(sdev, "Trace log size", *tuple->value);
377 trace_sof_ipc4_fw_config(sdev, "maximum number of libraries",
385 trace_sof_ipc4_fw_config(sdev, "Max PPL count %d",
388 dev_err(sdev->dev, "Invalid max_num_pipelines %d",
407 int sof_ipc4_reload_fw_libraries(struct snd_sof_dev *sdev)
409 struct sof_ipc4_fw_data *ipc4_data = sdev->private;
415 ret = ipc4_data->load_library(sdev, fw_lib, true);
417 dev_err(sdev->dev, "%s: Failed to reload library: %s, %d\n",
428 * @sdev: SOF device
432 void sof_ipc4_update_cpc_from_manifest(struct snd_sof_dev *sdev,
482 dev_dbg(sdev->dev, "%s (UUID: %pUL): %s (ibs/obs: %u/%u)\n",