54 lines · c
1// SPDX-License-Identifier: GPL-2.0-only2//3// Copyright(c) 2022 Intel Corporation4 5#include "sof-priv.h"6 7int sof_fw_trace_init(struct snd_sof_dev *sdev)8{9 const struct sof_ipc_fw_tracing_ops *fw_tracing = sof_ipc_get_ops(sdev, fw_tracing);10 11 if (!fw_tracing) {12 dev_info(sdev->dev, "Firmware tracing is not available\n");13 sdev->fw_trace_is_supported = false;14 15 return 0;16 }17 18 return fw_tracing->init(sdev);19}20 21void sof_fw_trace_free(struct snd_sof_dev *sdev)22{23 if (!sdev->fw_trace_is_supported)24 return;25 26 if (sdev->ipc->ops->fw_tracing->free)27 sdev->ipc->ops->fw_tracing->free(sdev);28}29 30void sof_fw_trace_fw_crashed(struct snd_sof_dev *sdev)31{32 if (!sdev->fw_trace_is_supported)33 return;34 35 if (sdev->ipc->ops->fw_tracing->fw_crashed)36 sdev->ipc->ops->fw_tracing->fw_crashed(sdev);37}38 39void sof_fw_trace_suspend(struct snd_sof_dev *sdev, pm_message_t pm_state)40{41 if (!sdev->fw_trace_is_supported)42 return;43 44 sdev->ipc->ops->fw_tracing->suspend(sdev, pm_state);45}46 47int sof_fw_trace_resume(struct snd_sof_dev *sdev)48{49 if (!sdev->fw_trace_is_supported)50 return 0;51 52 return sdev->ipc->ops->fw_tracing->resume(sdev);53}54