Commit 0cfbaee2 authored by Peter Ujfalusi's avatar Peter Ujfalusi Committed by Mark Brown

ASoC: SOF: Introduce IPC independent ops for firmware tracing support

The current (dma-)trace is only supported with IPC3, it is not available
when IPC4 is used.
Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: default avatarRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: default avatarBard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20220516104711.26115-2-peter.ujfalusi@linux.intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent ec432e2a
......@@ -357,6 +357,22 @@ struct snd_sof_ipc_msg {
bool ipc_complete;
};
/**
* struct sof_ipc_fw_tracing_ops - IPC-specific firmware tracing ops
* @init: Function pointer for initialization of the tracing
* @free: Optional function pointer for freeing of the tracing
* @fw_crashed: Optional function pointer to notify the tracing of a firmware crash
* @suspend: Function pointer for system/runtime suspend
* @resume: Function pointer for system/runtime resume
*/
struct sof_ipc_fw_tracing_ops {
int (*init)(struct snd_sof_dev *sdev);
void (*free)(struct snd_sof_dev *sdev);
void (*fw_crashed)(struct snd_sof_dev *sdev);
void (*suspend)(struct snd_sof_dev *sdev, pm_message_t pm_state);
int (*resume)(struct snd_sof_dev *sdev);
};
/**
* struct sof_ipc_pm_ops - IPC-specific PM ops
* @ctx_save: Function pointer for context save
......@@ -395,6 +411,7 @@ struct sof_ipc_pcm_ops;
* @pm: Pointer to PM ops
* @pcm: Pointer to PCM ops
* @fw_loader: Pointer to Firmware Loader ops
* @fw_tracing: Pointer to Firmware tracing ops
*
* @tx_msg: Function pointer for sending a 'short' IPC message
* @set_get_data: Function pointer for set/get data ('large' IPC message). This
......@@ -415,6 +432,7 @@ struct sof_ipc_ops {
const struct sof_ipc_pm_ops *pm;
const struct sof_ipc_pcm_ops *pcm;
const struct sof_ipc_fw_loader_ops *fw_loader;
const struct sof_ipc_fw_tracing_ops *fw_tracing;
int (*tx_msg)(struct snd_sof_dev *sdev, void *msg_data, size_t msg_bytes,
void *reply_data, size_t reply_bytes, bool no_pm);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment