Linux Audio

Check our new training course

Loading...
Note: File does not exist in v4.10.11.
 1// SPDX-License-Identifier: GPL-2.0-only
 2//
 3// Copyright(c) 2022 Intel Corporation. All rights reserved.
 4
 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}