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
150 * struct sof_firmware - Container struct for SOF firmware
219 /* ipc */
260 * instead from a host-accessible hardware counter.
333 /* IPC client ops */
354 #define sof_dsp_arch_ops(sdev) ((sdev)->pdata->desc->ops->dsp_arch_ops)
363 * memory -> DSP resource (memory, register etc) is always accessible
391 /* mailbox descriptor, used for host <-> DSP IPC */
397 /* IPC message descriptor for host <-> DSP IO */
414 * struct sof_ipc_fw_tracing_ops - IPC-specific firmware tracing ops
430 * struct sof_ipc_pm_ops - IPC-specific PM ops
444 * struct sof_ipc_fw_loader_ops - IPC/FW-specific loader ops
462 * struct sof_ipc_ops - IPC-specific ops
463 * @tplg: Pointer to IPC-specific topology ops
469 * @init: Optional pointer for IPC related initialization
470 * @exit: Optional pointer for IPC related cleanup
471 * @post_fw_boot: Optional pointer to execute IPC related tasks after firmware
474 * @tx_msg: Function pointer for sending a 'short' IPC message
475 * @set_get_data: Function pointer for set/get data ('large' IPC message). This
480 * sdev->ipc->msg.reply_data
507 /* SOF generic IPC data */
513 /* disables further sending of ipc's */
516 /* Maximum allowed size of a single IPC message/reply */
521 /* IPC ops based on version */
525 /* Helper to retrieve the IPC ops */
527 (((sdev)->ipc && (sdev)->ipc->ops) ? (sdev)->ipc->ops->ops_name : NULL)
534 spinlock_t ipc_lock; /* lock for IPC users */
543 * pdata->desc->dspless_mode_supported is true.
576 /* IPC */
577 struct snd_sof_ipc *ipc; member
579 struct snd_sof_mailbox dsp_box; /* DSP initiated IPC */
580 struct snd_sof_mailbox host_box; /* Host initiated IPC */
585 u32 next_comp_id; /* monotonic - reset during S3 */
587 /* memory bases for mmaped DSPs - set by dsp_init() */
620 /* IPC timeouts in ms */
643 * Used to keep track of registered IPC client devices so that they can
652 * Used for tracking the IPC client's RX registration for DSP initiated
658 * Used for tracking the IPC client's registration for DSP state change
714 * IPC low level APIs.
722 sdev->ipc->ops->rx_msg(sdev); in snd_sof_ipc_msgs_rx()
724 int sof_ipc_tx_message(struct snd_sof_ipc *ipc, void *msg_data, size_t msg_bytes,
726 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
729 return sof_ipc_tx_message(ipc, msg_data, msg_bytes, NULL, 0); in sof_ipc_tx_message_no_reply()
731 int sof_ipc_set_get_data(struct snd_sof_ipc *ipc, void *msg_data,
733 int sof_ipc_tx_message_no_pm(struct snd_sof_ipc *ipc, void *msg_data, size_t msg_bytes,
735 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
738 return sof_ipc_tx_message_no_pm(ipc, msg_data, msg_bytes, NULL, 0); in sof_ipc_tx_message_no_pm_no_reply()
779 sof_dsp_arch_ops(sdev)->dsp_stack(sdev, level, oops, stack, in sof_stack()
785 if (sof_dsp_arch_ops(sdev)->dsp_oops) in sof_oops()
786 sof_dsp_arch_ops(sdev)->dsp_oops(sdev, level, oops); in sof_oops()
875 /* Main ops for IPC implementations */