68 lines · c
1/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */2/*3 * This file is provided under a dual BSD/GPLv2 license. When using or4 * redistributing this file, you may do so under either license.5 *6 * Copyright(c) 2021 Intel Corporation7 */8 9#ifndef __SOUND_SOC_SOF_IPC3_PRIV_H10#define __SOUND_SOC_SOF_IPC3_PRIV_H11 12#include "sof-priv.h"13 14/* IPC3 specific ops */15extern const struct sof_ipc_pcm_ops ipc3_pcm_ops;16extern const struct sof_ipc_tplg_ops ipc3_tplg_ops;17extern const struct sof_ipc_tplg_control_ops tplg_ipc3_control_ops;18extern const struct sof_ipc_fw_loader_ops ipc3_loader_ops;19extern const struct sof_ipc_fw_tracing_ops ipc3_dtrace_ops;20 21/* helpers for fw_ready and ext_manifest parsing */22int sof_ipc3_get_ext_windows(struct snd_sof_dev *sdev,23 const struct sof_ipc_ext_data_hdr *ext_hdr);24int sof_ipc3_get_cc_info(struct snd_sof_dev *sdev,25 const struct sof_ipc_ext_data_hdr *ext_hdr);26int sof_ipc3_validate_fw_version(struct snd_sof_dev *sdev);27 28/* dtrace position update */29int ipc3_dtrace_posn_update(struct snd_sof_dev *sdev,30 struct sof_ipc_dma_trace_posn *posn);31/* RX handler backend */32void sof_ipc3_do_rx_work(struct snd_sof_dev *sdev, struct sof_ipc_cmd_hdr *hdr, void *msg_buf);33 34/* dtrace platform callback wrappers */35static inline int sof_dtrace_host_init(struct snd_sof_dev *sdev,36 struct snd_dma_buffer *dmatb,37 struct sof_ipc_dma_trace_params_ext *dtrace_params)38{39 const struct snd_sof_dsp_ops *dsp_ops = sdev->pdata->desc->ops;40 41 if (dsp_ops->trace_init)42 return dsp_ops->trace_init(sdev, dmatb, dtrace_params);43 44 return 0;45}46 47static inline int sof_dtrace_host_release(struct snd_sof_dev *sdev)48{49 const struct snd_sof_dsp_ops *dsp_ops = sdev->pdata->desc->ops;50 51 if (dsp_ops->trace_release)52 return dsp_ops->trace_release(sdev);53 54 return 0;55}56 57static inline int sof_dtrace_host_trigger(struct snd_sof_dev *sdev, int cmd)58{59 const struct snd_sof_dsp_ops *dsp_ops = sdev->pdata->desc->ops;60 61 if (dsp_ops->trace_trigger)62 return dsp_ops->trace_trigger(sdev, cmd);63 64 return 0;65}66 67#endif68