forked from Minki/linux
ASoC: SOF: Add high level IPC IO callback definitions to ipc_ops
Add tx_msg(), rx_msg(), set_get_data() and get_reply() ops, which can be used as a generic API for sending, receiving single messages and to write and read large data. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/20220405172708.122168-3-ranjani.sridharan@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
b4dcafe45e
commit
25e77672c4
@ -377,11 +377,32 @@ struct sof_ipc_pcm_ops;
|
||||
* @tplg: Pointer to IPC-specific topology ops
|
||||
* @pm: Pointer to PM ops
|
||||
* @pcm: Pointer to PCM ops
|
||||
*
|
||||
* @tx_msg: Function pointer for sending a 'short' IPC message
|
||||
* @set_get_data: Function pointer for set/get data ('large' IPC message). This
|
||||
* function may split up the 'large' message and use the @tx_msg
|
||||
* path to transfer individual chunks, or use other means to transfer
|
||||
* the message.
|
||||
* @get_reply: Function pointer for fetching the reply to
|
||||
* sdev->ipc->msg.reply_data
|
||||
* @rx_msg: Function pointer for handling a received message
|
||||
*
|
||||
* Note: both @tx_msg and @set_get_data considered as TX functions and they are
|
||||
* serialized for the duration of the instructed transfer. A large message sent
|
||||
* via @set_get_data is a single transfer even if at the hardware level it is
|
||||
* handled with multiple chunks.
|
||||
*/
|
||||
struct sof_ipc_ops {
|
||||
const struct sof_ipc_tplg_ops *tplg;
|
||||
const struct sof_ipc_pm_ops *pm;
|
||||
const struct sof_ipc_pcm_ops *pcm;
|
||||
|
||||
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);
|
||||
int (*set_get_data)(struct snd_sof_dev *sdev, void *data, size_t data_bytes,
|
||||
bool set);
|
||||
int (*get_reply)(struct snd_sof_dev *sdev);
|
||||
void (*rx_msg)(struct snd_sof_dev *sdev);
|
||||
};
|
||||
|
||||
/* SOF generic IPC data */
|
||||
|
Loading…
Reference in New Issue
Block a user