Lines Matching refs:sdev
26 struct snd_sof_dev *sdev = dfse->sdev;
69 if (pm_runtime_active(sdev->dev) ||
73 dev_info(sdev->dev,
79 if (!pm_runtime_active(sdev->dev) &&
81 dev_err(sdev->dev,
114 static int snd_sof_debugfs_io_item(struct snd_sof_dev *sdev,
121 if (!sdev)
124 dfse = devm_kzalloc(sdev->dev, sizeof(*dfse), GFP_KERNEL);
131 dfse->sdev = sdev;
140 dfse->cache_buf = devm_kzalloc(sdev->dev, size, GFP_KERNEL);
146 debugfs_create_file(name, 0444, sdev->debugfs_root, dfse,
150 list_add(&dfse->list, &sdev->dfsentry_list);
155 int snd_sof_debugfs_add_region_item_iomem(struct snd_sof_dev *sdev,
160 int bar = snd_sof_dsp_get_bar_index(sdev, blk_type);
165 return snd_sof_debugfs_io_item(sdev, sdev->bar[bar] + offset, size, name,
171 int snd_sof_debugfs_buf_item(struct snd_sof_dev *sdev,
177 if (!sdev)
180 dfse = devm_kzalloc(sdev->dev, sizeof(*dfse), GFP_KERNEL);
187 dfse->sdev = sdev;
189 debugfs_create_file(name, mode, sdev->debugfs_root, dfse,
192 list_add(&dfse->list, &sdev->dfsentry_list);
198 static int memory_info_update(struct snd_sof_dev *sdev, char *buf, size_t buff_size)
213 ret = pm_runtime_resume_and_get(sdev->dev);
215 dev_err(sdev->dev, "error: enabling device failed: %d\n", ret);
220 ret = snd_sof_boot_dsp_firmware(sdev);
222 ret = sof_ipc_tx_message(sdev->ipc, &msg, msg.size, reply,
225 pm_runtime_put_autosuspend(sdev->dev);
228 dev_err(sdev->dev, "error: reading memory info failed, %d\n", ret);
233 dev_err(sdev->dev, "error: invalid memory info ipc struct size, %d\n",
257 struct snd_sof_dev *sdev = dfse->sdev;
263 data_length = memory_info_update(sdev, dfse->buf, dfse->size);
275 struct snd_sof_dev *sdev = dfse->sdev;
281 dfse->buf = devm_kmalloc(sdev->dev, PAGE_SIZE, GFP_KERNEL);
296 int snd_sof_dbg_memory_info_init(struct snd_sof_dev *sdev)
300 dfse = devm_kzalloc(sdev->dev, sizeof(*dfse), GFP_KERNEL);
306 dfse->sdev = sdev;
308 debugfs_create_file("memory_info", 0444, sdev->debugfs_root, dfse, &memory_info_fops);
311 list_add(&dfse->list, &sdev->dfsentry_list);
316 int snd_sof_dbg_init(struct snd_sof_dev *sdev)
318 const struct snd_sof_dsp_ops *ops = sof_ops(sdev);
319 struct snd_sof_pdata *plat_data = sdev->pdata;
326 sdev->debugfs_root = debugfs_create_dir("sof", NULL);
329 fw_profile = debugfs_create_dir("fw_profile", sdev->debugfs_root);
345 fw_lib_path = devm_kasprintf(sdev->dev, GFP_KERNEL,
364 INIT_LIST_HEAD(&sdev->dfsentry_list);
370 err = snd_sof_debugfs_io_item(sdev, sdev->bar[map->bar] +
378 return snd_sof_debugfs_buf_item(sdev, &sdev->fw_state,
379 sizeof(sdev->fw_state),
384 void snd_sof_free_debug(struct snd_sof_dev *sdev)
386 debugfs_remove_recursive(sdev->debugfs_root);
405 static void snd_sof_dbg_print_fw_state(struct snd_sof_dev *sdev, const char *level)
410 if (sdev->fw_state == fw_state_dbg[i].state) {
411 dev_printk(level, sdev->dev, "fw_state: %s (%d)\n",
417 dev_printk(level, sdev->dev, "fw_state: UNKNOWN (%d)\n", sdev->fw_state);
420 void snd_sof_dsp_dbg_dump(struct snd_sof_dev *sdev, const char *msg, u32 flags)
428 if (sof_ops(sdev)->dbg_dump && !sdev->dbg_dump_printed) {
429 dev_printk(level, sdev->dev,
432 dev_printk(level, sdev->dev, "%s\n", msg);
433 snd_sof_dbg_print_fw_state(sdev, level);
434 sof_ops(sdev)->dbg_dump(sdev, flags);
435 dev_printk(level, sdev->dev,
438 sdev->dbg_dump_printed = true;
440 dev_printk(level, sdev->dev, "%s\n", msg);
445 static void snd_sof_ipc_dump(struct snd_sof_dev *sdev)
447 if (sof_ops(sdev)->ipc_dump && !sdev->ipc_dump_printed) {
448 dev_err(sdev->dev, "------------[ IPC dump start ]------------\n");
449 sof_ops(sdev)->ipc_dump(sdev);
450 dev_err(sdev->dev, "------------[ IPC dump end ]------------\n");
452 sdev->ipc_dump_printed = true;
456 void snd_sof_handle_fw_exception(struct snd_sof_dev *sdev, const char *msg)
459 sof_debug_check_flag(SOF_DBG_RETAIN_CTX)) && !sdev->d3_prevented) {
461 if (!sdev->ipc_dump_printed)
462 dev_info(sdev->dev,
465 if (pm_runtime_get_if_in_use(sdev->dev) == 1)
466 sdev->d3_prevented = true;
470 snd_sof_ipc_dump(sdev);
471 snd_sof_dsp_dbg_dump(sdev, msg, SOF_DBG_DUMP_REGS | SOF_DBG_DUMP_MBOX);
472 sof_fw_trace_fw_crashed(sdev);