Lines Matching +full:ipc +full:- +full:3
1 /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
29 #define SOF_DBG_DYNAMIC_PIPELINES_OVERRIDE BIT(3) /* 0: use topology token
38 #define SOF_DBG_PRINT_ALL_DUMPS BIT(6) /* Print all ipc and dsp dumps */
45 #define SOF_DBG_PRINT_IPC_SUCCESS_LOGS BIT(9) /* print IPC success
48 #define SOF_DBG_FORCE_NOCODEC BIT(10) /* ignore all codec-related
51 #define SOF_DBG_DUMP_IPC_MESSAGE_PAYLOAD BIT(11) /* On top of the IPC message header
60 #define SOF_DBG_DUMP_PCI BIT(3)
95 u32 substate; /* platform-specific */
134 * struct snd_sof_platform_stream_params - platform dependent stream parameters
139 * @no_ipc_position: Disable position update IPC from firmware
151 * struct sof_firmware - Container struct for SOF firmware
227 /* ipc */
353 /* IPC client ops */
376 #define sof_dsp_arch_ops(sdev) ((sdev)->pdata->desc->ops->dsp_arch_ops)
385 * memory -> DSP resource (memory, register etc) is always accessible
413 /* mailbox descriptor, used for host <-> DSP IPC */
419 /* IPC message descriptor for host <-> DSP IO */
437 * struct sof_ipc_fw_tracing_ops - IPC-specific firmware tracing ops
453 * struct sof_ipc_pm_ops - IPC-specific PM ops
467 * struct sof_ipc_fw_loader_ops - IPC/FW-specific loader ops
485 * struct sof_ipc_ops - IPC-specific ops
486 * @tplg: Pointer to IPC-specific topology ops
492 * @init: Optional pointer for IPC related initialization
493 * @exit: Optional pointer for IPC related cleanup
494 * @post_fw_boot: Optional pointer to execute IPC related tasks after firmware
497 * @tx_msg: Function pointer for sending a 'short' IPC message
498 * @set_get_data: Function pointer for set/get data ('large' IPC message). This
503 * sdev->ipc->msg.reply_data
530 /* SOF generic IPC data */
536 /* disables further sending of ipc's */
539 /* Maximum allowed size of a single IPC message/reply */
544 /* IPC ops based on version */
548 /* Helper to retrieve the IPC ops */
550 (((sdev)->ipc && (sdev)->ipc->ops) ? (sdev)->ipc->ops->ops_name : NULL)
557 spinlock_t ipc_lock; /* lock for IPC users */
566 * pdata->desc->dspless_mode_supported is true.
599 /* IPC */
600 struct snd_sof_ipc *ipc; member
602 struct snd_sof_mailbox dsp_box; /* DSP initiated IPC */
603 struct snd_sof_mailbox host_box; /* Host initiated IPC */
608 u32 next_comp_id; /* monotonic - reset during S3 */
610 /* memory bases for mmaped DSPs - set by dsp_init() */
644 /* IPC timeouts in ms */
667 * Used to keep track of registered IPC client devices so that they can
676 * Used for tracking the IPC client's RX registration for DSP initiated
682 * Used for tracking the IPC client's registration for DSP state change
738 * IPC low level APIs.
746 sdev->ipc->ops->rx_msg(sdev); in snd_sof_ipc_msgs_rx()
748 int sof_ipc_tx_message(struct snd_sof_ipc *ipc, void *msg_data, size_t msg_bytes,
750 static inline int sof_ipc_tx_message_no_reply(struct snd_sof_ipc *ipc, void *msg_data, in sof_ipc_tx_message_no_reply() argument
753 return sof_ipc_tx_message(ipc, msg_data, msg_bytes, NULL, 0); in sof_ipc_tx_message_no_reply()
755 int sof_ipc_set_get_data(struct snd_sof_ipc *ipc, void *msg_data,
757 int sof_ipc_tx_message_no_pm(struct snd_sof_ipc *ipc, void *msg_data, size_t msg_bytes,
759 static inline int sof_ipc_tx_message_no_pm_no_reply(struct snd_sof_ipc *ipc, void *msg_data, in sof_ipc_tx_message_no_pm_no_reply() argument
762 return sof_ipc_tx_message_no_pm(ipc, msg_data, msg_bytes, NULL, 0); in sof_ipc_tx_message_no_pm_no_reply()
803 sof_dsp_arch_ops(sdev)->dsp_stack(sdev, level, oops, stack, in sof_stack()
809 if (sof_dsp_arch_ops(sdev)->dsp_oops) in sof_oops()
810 sof_dsp_arch_ops(sdev)->dsp_oops(sdev, level, oops); in sof_oops()
899 /* Main ops for IPC implementations */