/kernel/linux/linux-5.10/sound/soc/intel/common/ |
H A D | sst-ipc.c | 24 #include "sst-ipc.h" 32 static struct ipc_message *msg_get_empty(struct sst_generic_ipc *ipc) in msg_get_empty() argument 36 if (!list_empty(&ipc->empty_list)) { in msg_get_empty() 37 msg = list_first_entry(&ipc->empty_list, struct ipc_message, in msg_get_empty() 45 static int tx_wait_done(struct sst_generic_ipc *ipc, in tx_wait_done() argument 55 spin_lock_irqsave(&ipc->dsp->spinlock, flags); in tx_wait_done() 57 if (ipc->ops.shim_dbg != NULL) in tx_wait_done() 58 ipc->ops.shim_dbg(ipc, "message timeout"); in tx_wait_done() 73 list_add_tail(&msg->list, &ipc in tx_wait_done() 78 ipc_tx_message(struct sst_generic_ipc *ipc, struct sst_ipc_message request, struct sst_ipc_message *reply, int wait) ipc_tx_message() argument 115 msg_empty_list_init(struct sst_generic_ipc *ipc) msg_empty_list_init() argument 154 struct sst_generic_ipc *ipc = ipc_tx_msgs() local 180 sst_ipc_tx_message_wait(struct sst_generic_ipc *ipc, struct sst_ipc_message request, struct sst_ipc_message *reply) sst_ipc_tx_message_wait() argument 204 sst_ipc_tx_message_nowait(struct sst_generic_ipc *ipc, struct sst_ipc_message request) sst_ipc_tx_message_nowait() argument 211 sst_ipc_tx_message_nopm(struct sst_generic_ipc *ipc, struct sst_ipc_message request, struct sst_ipc_message *reply) sst_ipc_tx_message_nopm() argument 218 sst_ipc_reply_find_msg(struct sst_generic_ipc *ipc, u64 header) sst_ipc_reply_find_msg() argument 245 sst_ipc_tx_msg_reply_complete(struct sst_generic_ipc *ipc, struct ipc_message *msg) sst_ipc_tx_msg_reply_complete() argument 257 sst_ipc_init(struct sst_generic_ipc *ipc) sst_ipc_init() argument 275 sst_ipc_fini(struct sst_generic_ipc *ipc) sst_ipc_fini() argument [all...] |
/kernel/linux/linux-6.6/sound/soc/intel/common/ |
H A D | sst-ipc.c | 24 #include "sst-ipc.h" 32 static struct ipc_message *msg_get_empty(struct sst_generic_ipc *ipc) in msg_get_empty() argument 36 if (!list_empty(&ipc->empty_list)) { in msg_get_empty() 37 msg = list_first_entry(&ipc->empty_list, struct ipc_message, in msg_get_empty() 45 static int tx_wait_done(struct sst_generic_ipc *ipc, in tx_wait_done() argument 55 spin_lock_irqsave(&ipc->dsp->spinlock, flags); in tx_wait_done() 57 if (ipc->ops.shim_dbg != NULL) in tx_wait_done() 58 ipc->ops.shim_dbg(ipc, "message timeout"); in tx_wait_done() 73 list_add_tail(&msg->list, &ipc in tx_wait_done() 78 ipc_tx_message(struct sst_generic_ipc *ipc, struct sst_ipc_message request, struct sst_ipc_message *reply, int wait) ipc_tx_message() argument 115 msg_empty_list_init(struct sst_generic_ipc *ipc) msg_empty_list_init() argument 154 struct sst_generic_ipc *ipc = ipc_tx_msgs() local 180 sst_ipc_tx_message_wait(struct sst_generic_ipc *ipc, struct sst_ipc_message request, struct sst_ipc_message *reply) sst_ipc_tx_message_wait() argument 204 sst_ipc_tx_message_nowait(struct sst_generic_ipc *ipc, struct sst_ipc_message request) sst_ipc_tx_message_nowait() argument 211 sst_ipc_tx_message_nopm(struct sst_generic_ipc *ipc, struct sst_ipc_message request, struct sst_ipc_message *reply) sst_ipc_tx_message_nopm() argument 218 sst_ipc_reply_find_msg(struct sst_generic_ipc *ipc, u64 header) sst_ipc_reply_find_msg() argument 245 sst_ipc_tx_msg_reply_complete(struct sst_generic_ipc *ipc, struct ipc_message *msg) sst_ipc_tx_msg_reply_complete() argument 257 sst_ipc_init(struct sst_generic_ipc *ipc) sst_ipc_init() argument 275 sst_ipc_fini(struct sst_generic_ipc *ipc) sst_ipc_fini() argument [all...] |
/kernel/linux/linux-6.6/sound/soc/intel/avs/ |
H A D | ipc.c | 23 struct avs_ipc *ipc = adev->ipc; in avs_dsp_set_d0ix() local 27 if (ipc->in_d0ix == enable) in avs_dsp_set_d0ix() 34 atomic_inc(&ipc->d0ix_disable_depth); in avs_dsp_set_d0ix() 36 ipc->in_d0ix = false; in avs_dsp_set_d0ix() 40 ipc->in_d0ix = enable; in avs_dsp_set_d0ix() 46 if (atomic_read(&adev->ipc->d0ix_disable_depth)) in avs_dsp_schedule_d0ix() 49 mod_delayed_work(system_power_efficient_wq, &adev->ipc->d0ix_work, in avs_dsp_schedule_d0ix() 55 struct avs_ipc *ipc = container_of(work, struct avs_ipc, d0ix_work.work); in avs_dsp_d0ix_work() local 57 avs_dsp_set_d0ix(to_avs_dev(ipc in avs_dsp_d0ix_work() 62 struct avs_ipc *ipc = adev->ipc; avs_dsp_wake_d0i0() local 74 struct avs_ipc *ipc = adev->ipc; avs_dsp_disable_d0ix() local 87 struct avs_ipc *ipc = adev->ipc; avs_dsp_enable_d0ix() local 153 struct avs_ipc *ipc = container_of(work, struct avs_ipc, recovery_work); avs_dsp_recovery_work() local 160 struct avs_ipc *ipc = adev->ipc; avs_dsp_exception_caught() local 185 struct avs_ipc *ipc = adev->ipc; avs_dsp_receive_rx() local 285 struct avs_ipc *ipc = adev->ipc; avs_dsp_process_response() local 307 struct avs_ipc *ipc = adev->ipc; avs_dsp_irq_handler() local 379 avs_ipc_is_busy(struct avs_ipc *ipc) avs_ipc_is_busy() argument 388 avs_ipc_wait_busy_completion(struct avs_ipc *ipc, int timeout) avs_ipc_wait_busy_completion() argument 429 avs_ipc_msg_init(struct avs_ipc *ipc, struct avs_ipc_msg *reply) avs_ipc_msg_init() argument 460 struct avs_ipc *ipc = adev->ipc; avs_dsp_do_send_msg() local 551 struct avs_ipc *ipc = adev->ipc; avs_dsp_do_send_rom_msg() local 603 avs_ipc_init(struct avs_ipc *ipc, struct device *dev) avs_ipc_init() argument 622 avs_ipc_block(struct avs_ipc *ipc) avs_ipc_block() argument [all...] |
/kernel/linux/linux-5.10/drivers/net/wireless/quantenna/qtnfmac/ |
H A D | shm_ipc.c | 12 static bool qtnf_shm_ipc_has_new_data(struct qtnf_shm_ipc *ipc) in qtnf_shm_ipc_has_new_data() argument 14 const u32 flags = readl(&ipc->shm_region->headroom.hdr.flags); in qtnf_shm_ipc_has_new_data() 19 static void qtnf_shm_handle_new_data(struct qtnf_shm_ipc *ipc) in qtnf_shm_handle_new_data() argument 25 shm_reg_hdr = &ipc->shm_region->headroom.hdr; in qtnf_shm_handle_new_data() 35 ipc->rx_packet_count++; in qtnf_shm_handle_new_data() 36 ipc->rx_callback.fn(ipc->rx_callback.arg, in qtnf_shm_handle_new_data() 37 ipc->shm_region->data, size); in qtnf_shm_handle_new_data() 43 ipc->interrupt.fn(ipc in qtnf_shm_handle_new_data() 48 struct qtnf_shm_ipc *ipc = container_of(work, struct qtnf_shm_ipc, qtnf_shm_ipc_irq_work() local 55 qtnf_shm_ipc_irq_inbound_handler(struct qtnf_shm_ipc *ipc) qtnf_shm_ipc_irq_inbound_handler() argument 65 qtnf_shm_ipc_irq_outbound_handler(struct qtnf_shm_ipc *ipc) qtnf_shm_ipc_irq_outbound_handler() argument 80 qtnf_shm_ipc_init(struct qtnf_shm_ipc *ipc, enum qtnf_shm_ipc_direction direction, struct qtnf_shm_ipc_region __iomem *shm_region, struct workqueue_struct *workqueue, const struct qtnf_shm_ipc_int *interrupt, const struct qtnf_shm_ipc_rx_callback *rx_callback) qtnf_shm_ipc_init() argument 118 qtnf_shm_ipc_free(struct qtnf_shm_ipc *ipc) qtnf_shm_ipc_free() argument 123 qtnf_shm_ipc_send(struct qtnf_shm_ipc *ipc, const u8 *buf, size_t size) qtnf_shm_ipc_send() argument [all...] |
H A D | shm_ipc.h | 44 void (*irq_handler)(struct qtnf_shm_ipc *ipc); 51 int qtnf_shm_ipc_init(struct qtnf_shm_ipc *ipc, 57 void qtnf_shm_ipc_free(struct qtnf_shm_ipc *ipc); 58 int qtnf_shm_ipc_send(struct qtnf_shm_ipc *ipc, const u8 *buf, size_t size); 60 static inline void qtnf_shm_ipc_irq_handler(struct qtnf_shm_ipc *ipc) in qtnf_shm_ipc_irq_handler() argument 62 ipc->irq_handler(ipc); in qtnf_shm_ipc_irq_handler()
|
/kernel/linux/linux-6.6/drivers/net/wireless/quantenna/qtnfmac/ |
H A D | shm_ipc.c | 12 static bool qtnf_shm_ipc_has_new_data(struct qtnf_shm_ipc *ipc) in qtnf_shm_ipc_has_new_data() argument 14 const u32 flags = readl(&ipc->shm_region->headroom.hdr.flags); in qtnf_shm_ipc_has_new_data() 19 static void qtnf_shm_handle_new_data(struct qtnf_shm_ipc *ipc) in qtnf_shm_handle_new_data() argument 25 shm_reg_hdr = &ipc->shm_region->headroom.hdr; in qtnf_shm_handle_new_data() 35 ipc->rx_packet_count++; in qtnf_shm_handle_new_data() 36 ipc->rx_callback.fn(ipc->rx_callback.arg, in qtnf_shm_handle_new_data() 37 ipc->shm_region->data, size); in qtnf_shm_handle_new_data() 43 ipc->interrupt.fn(ipc in qtnf_shm_handle_new_data() 48 struct qtnf_shm_ipc *ipc = container_of(work, struct qtnf_shm_ipc, qtnf_shm_ipc_irq_work() local 55 qtnf_shm_ipc_irq_inbound_handler(struct qtnf_shm_ipc *ipc) qtnf_shm_ipc_irq_inbound_handler() argument 65 qtnf_shm_ipc_irq_outbound_handler(struct qtnf_shm_ipc *ipc) qtnf_shm_ipc_irq_outbound_handler() argument 80 qtnf_shm_ipc_init(struct qtnf_shm_ipc *ipc, enum qtnf_shm_ipc_direction direction, struct qtnf_shm_ipc_region __iomem *shm_region, struct workqueue_struct *workqueue, const struct qtnf_shm_ipc_int *interrupt, const struct qtnf_shm_ipc_rx_callback *rx_callback) qtnf_shm_ipc_init() argument 118 qtnf_shm_ipc_free(struct qtnf_shm_ipc *ipc) qtnf_shm_ipc_free() argument 123 qtnf_shm_ipc_send(struct qtnf_shm_ipc *ipc, const u8 *buf, size_t size) qtnf_shm_ipc_send() argument [all...] |
H A D | shm_ipc.h | 44 void (*irq_handler)(struct qtnf_shm_ipc *ipc); 51 int qtnf_shm_ipc_init(struct qtnf_shm_ipc *ipc, 57 void qtnf_shm_ipc_free(struct qtnf_shm_ipc *ipc); 58 int qtnf_shm_ipc_send(struct qtnf_shm_ipc *ipc, const u8 *buf, size_t size); 60 static inline void qtnf_shm_ipc_irq_handler(struct qtnf_shm_ipc *ipc) in qtnf_shm_ipc_irq_handler() argument 62 ipc->irq_handler(ipc); in qtnf_shm_ipc_irq_handler()
|
/kernel/linux/linux-6.6/drivers/accel/ivpu/ |
H A D | ivpu_ipc.c | 23 struct ivpu_ipc_hdr ipc; member 65 struct ivpu_ipc_info *ipc = vdev->ipc; in ivpu_ipc_mem_fini() local 67 ivpu_bo_free_internal(ipc->mem_rx); in ivpu_ipc_mem_fini() 68 ivpu_bo_free_internal(ipc->mem_tx); in ivpu_ipc_mem_fini() 75 struct ivpu_ipc_info *ipc = vdev->ipc; in ivpu_ipc_tx_prepare() local 80 tx_buf_vpu_addr = gen_pool_alloc(ipc->mm_tx, sizeof(*tx_buf)); in ivpu_ipc_tx_prepare() 87 tx_buf = ivpu_to_cpu_addr(ipc->mem_tx, tx_buf_vpu_addr); in ivpu_ipc_tx_prepare() 89 gen_pool_free(ipc in ivpu_ipc_tx_prepare() 130 struct ivpu_ipc_info *ipc = vdev->ipc; ivpu_ipc_tx_release() local 144 struct ivpu_ipc_info *ipc = vdev->ipc; ivpu_ipc_consumer_add() local 161 struct ivpu_ipc_info *ipc = vdev->ipc; ivpu_ipc_consumer_del() local 183 struct ivpu_ipc_info *ipc = vdev->ipc; ivpu_ipc_send() local 208 struct ivpu_ipc_info *ipc = vdev->ipc; ivpu_ipc_receive() local 334 struct ivpu_ipc_info *ipc = vdev->ipc; ivpu_ipc_dispatch() local 360 struct ivpu_ipc_info *ipc = vdev->ipc; ivpu_ipc_irq_handler() local 425 struct ivpu_ipc_info *ipc = vdev->ipc; ivpu_ipc_init() local 471 struct ivpu_ipc_info *ipc = vdev->ipc; ivpu_ipc_enable() local 480 struct ivpu_ipc_info *ipc = vdev->ipc; ivpu_ipc_disable() local 496 struct ivpu_ipc_info *ipc = vdev->ipc; ivpu_ipc_reset() local [all...] |
/kernel/linux/linux-5.10/sound/soc/intel/catpt/ |
H A D | ipc.c | 16 void catpt_ipc_init(struct catpt_ipc *ipc, struct device *dev) in catpt_ipc_init() argument 18 ipc->dev = dev; in catpt_ipc_init() 19 ipc->ready = false; in catpt_ipc_init() 20 ipc->default_timeout = CATPT_IPC_TIMEOUT_MS; in catpt_ipc_init() 21 init_completion(&ipc->done_completion); in catpt_ipc_init() 22 init_completion(&ipc->busy_completion); in catpt_ipc_init() 23 spin_lock_init(&ipc->lock); in catpt_ipc_init() 24 mutex_init(&ipc->mutex); in catpt_ipc_init() 27 static int catpt_ipc_arm(struct catpt_ipc *ipc, struct catpt_fw_ready *config) in catpt_ipc_arm() argument 34 ipc in catpt_ipc_arm() 44 catpt_ipc_msg_init(struct catpt_ipc *ipc, struct catpt_ipc_msg *reply) catpt_ipc_msg_init() argument 69 struct catpt_ipc *ipc = &cdev->ipc; catpt_wait_msg_completion() local 89 struct catpt_ipc *ipc = &cdev->ipc; catpt_dsp_do_send_msg() local 128 struct catpt_ipc *ipc = &cdev->ipc; catpt_dsp_send_msg_timeout() local 185 struct catpt_ipc *ipc = &cdev->ipc; catpt_dsp_copy_rx() local 198 struct catpt_ipc *ipc = &cdev->ipc; catpt_dsp_process_response() local [all...] |
/kernel/linux/linux-6.6/sound/soc/intel/catpt/ |
H A D | ipc.c | 16 void catpt_ipc_init(struct catpt_ipc *ipc, struct device *dev) in catpt_ipc_init() argument 18 ipc->dev = dev; in catpt_ipc_init() 19 ipc->ready = false; in catpt_ipc_init() 20 ipc->default_timeout = CATPT_IPC_TIMEOUT_MS; in catpt_ipc_init() 21 init_completion(&ipc->done_completion); in catpt_ipc_init() 22 init_completion(&ipc->busy_completion); in catpt_ipc_init() 23 spin_lock_init(&ipc->lock); in catpt_ipc_init() 24 mutex_init(&ipc->mutex); in catpt_ipc_init() 27 static int catpt_ipc_arm(struct catpt_ipc *ipc, struct catpt_fw_ready *config) in catpt_ipc_arm() argument 34 ipc in catpt_ipc_arm() 44 catpt_ipc_msg_init(struct catpt_ipc *ipc, struct catpt_ipc_msg *reply) catpt_ipc_msg_init() argument 69 struct catpt_ipc *ipc = &cdev->ipc; catpt_wait_msg_completion() local 89 struct catpt_ipc *ipc = &cdev->ipc; catpt_dsp_do_send_msg() local 128 struct catpt_ipc *ipc = &cdev->ipc; catpt_dsp_send_msg_timeout() local 185 struct catpt_ipc *ipc = &cdev->ipc; catpt_dsp_copy_rx() local 198 struct catpt_ipc *ipc = &cdev->ipc; catpt_dsp_process_response() local [all...] |
/kernel/linux/linux-6.6/sound/soc/sof/ |
H A D | ipc.c | 33 * Note: higher level sdev->ipc->tx_mutex must be held to make sure that 39 struct snd_sof_ipc *ipc = sdev->ipc; in sof_ipc_send_msg() local 43 if (ipc->disable_ipc_tx || sdev->fw_state != SOF_FW_BOOT_COMPLETE) in sof_ipc_send_msg() 53 msg = &ipc->msg; in sof_ipc_send_msg() 75 int sof_ipc_tx_message(struct snd_sof_ipc *ipc, void *msg_data, size_t msg_bytes, in sof_ipc_tx_message() argument 78 if (msg_bytes > ipc->max_payload_size || in sof_ipc_tx_message() 79 reply_bytes > ipc->max_payload_size) in sof_ipc_tx_message() 82 return ipc->ops->tx_msg(ipc in sof_ipc_tx_message() 88 sof_ipc_set_get_data(struct snd_sof_ipc *ipc, void *msg_data, size_t msg_bytes, bool set) sof_ipc_set_get_data() argument 100 sof_ipc_tx_message_no_pm(struct snd_sof_ipc *ipc, void *msg_data, size_t msg_bytes, void *reply_data, size_t reply_bytes) sof_ipc_tx_message_no_pm() argument 149 struct snd_sof_ipc *ipc; snd_sof_ipc_init() local 222 struct snd_sof_ipc *ipc = sdev->ipc; snd_sof_ipc_free() local [all...] |
H A D | Makefile | 3 snd-sof-objs := core.o ops.o loader.o ipc.o pcm.o pm.o debug.o topology.o\ 4 control.o trace.o iomem-utils.o sof-audio.o stream-ipc.o 27 snd-sof-ipc-flood-test-objs := sof-client-ipc-flood-test.o 28 snd-sof-ipc-msg-injector-objs := sof-client-ipc-msg-injector.o 29 snd-sof-ipc-kernel-injector-objs := sof-client-ipc-kernel-injector.o 51 obj-$(CONFIG_SND_SOC_SOF_DEBUG_IPC_FLOOD_TEST) += snd-sof-ipc-flood-test.o 52 obj-$(CONFIG_SND_SOC_SOF_DEBUG_IPC_MSG_INJECTOR) += snd-sof-ipc [all...] |
/kernel/linux/linux-5.10/sound/soc/intel/skylake/ |
H A D | skl-sst-ipc.c | 3 * skl-sst-ipc.c - Intel skl IPC Support 13 #include "skl-sst-ipc.h" 296 static void skl_ipc_tx_msg(struct sst_generic_ipc *ipc, struct ipc_message *msg) in skl_ipc_tx_msg() argument 301 sst_dsp_outbox_write(ipc->dsp, msg->tx.data, msg->tx.size); in skl_ipc_tx_msg() 302 sst_dsp_shim_write_unlocked(ipc->dsp, SKL_ADSP_REG_HIPCIE, in skl_ipc_tx_msg() 304 sst_dsp_shim_write_unlocked(ipc->dsp, SKL_ADSP_REG_HIPCI, in skl_ipc_tx_msg() 325 static struct ipc_message *skl_ipc_reply_get_msg(struct sst_generic_ipc *ipc, in skl_ipc_reply_get_msg() argument 331 if (list_empty(&ipc->rx_list)) { in skl_ipc_reply_get_msg() 332 dev_err(ipc->dev, "ipc in skl_ipc_reply_get_msg() 345 skl_ipc_process_notification(struct sst_generic_ipc *ipc, struct skl_ipc_header header) skl_ipc_process_notification() argument 405 skl_ipc_set_reply_error_code(struct sst_generic_ipc *ipc, u32 reply) skl_ipc_set_reply_error_code() argument 433 skl_ipc_process_reply(struct sst_generic_ipc *ipc, struct skl_ipc_header header) skl_ipc_process_reply() argument 493 struct sst_generic_ipc *ipc = &skl->ipc; skl_dsp_irq_thread_handler() local 601 struct sst_generic_ipc *ipc; skl_ipc_init() local 622 skl_ipc_free(struct sst_generic_ipc *ipc) skl_ipc_free() argument 635 skl_ipc_create_pipeline(struct sst_generic_ipc *ipc, u16 ppl_mem_size, u8 ppl_type, u8 instance_id, u8 lp_mode) skl_ipc_create_pipeline() argument 663 skl_ipc_delete_pipeline(struct sst_generic_ipc *ipc, u8 instance_id) skl_ipc_delete_pipeline() argument 686 skl_ipc_set_pipeline_state(struct sst_generic_ipc *ipc, u8 instance_id, enum skl_ipc_pipeline_state state) skl_ipc_set_pipeline_state() argument 711 skl_ipc_save_pipeline(struct sst_generic_ipc *ipc, u8 instance_id, int dma_id) skl_ipc_save_pipeline() argument 736 skl_ipc_restore_pipeline(struct sst_generic_ipc *ipc, u8 instance_id) skl_ipc_restore_pipeline() argument 759 skl_ipc_set_dx(struct sst_generic_ipc *ipc, u8 instance_id, u16 module_id, struct skl_ipc_dxstate_info *dx) skl_ipc_set_dx() argument 788 skl_ipc_init_instance(struct sst_generic_ipc *ipc, struct skl_ipc_init_instance_msg *msg, void *param_data) skl_ipc_init_instance() argument 829 skl_ipc_bind_unbind(struct sst_generic_ipc *ipc, struct skl_ipc_bind_unbind_msg *msg) skl_ipc_bind_unbind() argument 867 skl_ipc_load_modules(struct sst_generic_ipc *ipc, u8 module_cnt, void *data) skl_ipc_load_modules() argument 891 skl_ipc_unload_modules(struct sst_generic_ipc *ipc, u8 module_cnt, void *data) skl_ipc_unload_modules() argument 915 skl_ipc_set_large_config(struct sst_generic_ipc *ipc, struct skl_ipc_large_config_msg *msg, u32 *param) skl_ipc_set_large_config() argument 971 skl_ipc_get_large_config(struct sst_generic_ipc *ipc, struct skl_ipc_large_config_msg *msg, u32 **payload, size_t *bytes) skl_ipc_get_large_config() argument 1017 skl_sst_ipc_load_library(struct sst_generic_ipc *ipc, u8 dma_id, u8 table_id, bool wait) skl_sst_ipc_load_library() argument 1043 skl_ipc_set_d0ix(struct sst_generic_ipc *ipc, struct skl_ipc_d0ix_msg *msg) skl_ipc_set_d0ix() argument [all...] |
H A D | skl-sst-ipc.h | 12 #include "../common/sst-ipc.h" 110 int skl_ipc_create_pipeline(struct sst_generic_ipc *ipc, 113 int skl_ipc_delete_pipeline(struct sst_generic_ipc *ipc, u8 instance_id); 115 int skl_ipc_set_pipeline_state(struct sst_generic_ipc *ipc, 118 int skl_ipc_save_pipeline(struct sst_generic_ipc *ipc, 121 int skl_ipc_restore_pipeline(struct sst_generic_ipc *ipc, u8 instance_id); 123 int skl_ipc_init_instance(struct sst_generic_ipc *ipc, 126 int skl_ipc_bind_unbind(struct sst_generic_ipc *ipc, 129 int skl_ipc_load_modules(struct sst_generic_ipc *ipc, 132 int skl_ipc_unload_modules(struct sst_generic_ipc *ipc, [all...] |
H A D | cnl-sst.c | 25 #include "../common/sst-ipc.h" 234 ret = skl_ipc_set_dx(&cnl->ipc, CNL_INSTANCE_ID, in cnl_set_dsp_D0() 261 ret = skl_ipc_set_dx(&cnl->ipc, CNL_INSTANCE_ID, in cnl_set_dsp_D3() 316 struct sst_generic_ipc *ipc = &cnl->ipc; in cnl_dsp_irq_thread_handler() local 321 /* here we handle ipc interrupts only */ in cnl_dsp_irq_thread_handler() 356 skl_ipc_process_reply(ipc, header); in cnl_dsp_irq_thread_handler() 359 skl_ipc_process_notification(ipc, header); in cnl_dsp_irq_thread_handler() 377 schedule_work(&ipc->kwork); in cnl_dsp_irq_thread_handler() 387 static void cnl_ipc_tx_msg(struct sst_generic_ipc *ipc, struc argument 410 struct sst_generic_ipc *ipc; cnl_ipc_init() local [all...] |
/kernel/linux/linux-6.6/sound/soc/intel/skylake/ |
H A D | skl-sst-ipc.c | 3 * skl-sst-ipc.c - Intel skl IPC Support 13 #include "skl-sst-ipc.h" 296 static void skl_ipc_tx_msg(struct sst_generic_ipc *ipc, struct ipc_message *msg) in skl_ipc_tx_msg() argument 301 sst_dsp_outbox_write(ipc->dsp, msg->tx.data, msg->tx.size); in skl_ipc_tx_msg() 302 sst_dsp_shim_write_unlocked(ipc->dsp, SKL_ADSP_REG_HIPCIE, in skl_ipc_tx_msg() 304 sst_dsp_shim_write_unlocked(ipc->dsp, SKL_ADSP_REG_HIPCI, in skl_ipc_tx_msg() 325 static struct ipc_message *skl_ipc_reply_get_msg(struct sst_generic_ipc *ipc, in skl_ipc_reply_get_msg() argument 331 if (list_empty(&ipc->rx_list)) { in skl_ipc_reply_get_msg() 332 dev_err(ipc->dev, "ipc in skl_ipc_reply_get_msg() 345 skl_ipc_process_notification(struct sst_generic_ipc *ipc, struct skl_ipc_header header) skl_ipc_process_notification() argument 405 skl_ipc_set_reply_error_code(struct sst_generic_ipc *ipc, u32 reply) skl_ipc_set_reply_error_code() argument 433 skl_ipc_process_reply(struct sst_generic_ipc *ipc, struct skl_ipc_header header) skl_ipc_process_reply() argument 493 struct sst_generic_ipc *ipc = &skl->ipc; skl_dsp_irq_thread_handler() local 601 struct sst_generic_ipc *ipc; skl_ipc_init() local 622 skl_ipc_free(struct sst_generic_ipc *ipc) skl_ipc_free() argument 635 skl_ipc_create_pipeline(struct sst_generic_ipc *ipc, u16 ppl_mem_size, u8 ppl_type, u8 instance_id, u8 lp_mode) skl_ipc_create_pipeline() argument 663 skl_ipc_delete_pipeline(struct sst_generic_ipc *ipc, u8 instance_id) skl_ipc_delete_pipeline() argument 686 skl_ipc_set_pipeline_state(struct sst_generic_ipc *ipc, u8 instance_id, enum skl_ipc_pipeline_state state) skl_ipc_set_pipeline_state() argument 711 skl_ipc_save_pipeline(struct sst_generic_ipc *ipc, u8 instance_id, int dma_id) skl_ipc_save_pipeline() argument 736 skl_ipc_restore_pipeline(struct sst_generic_ipc *ipc, u8 instance_id) skl_ipc_restore_pipeline() argument 759 skl_ipc_set_dx(struct sst_generic_ipc *ipc, u8 instance_id, u16 module_id, struct skl_ipc_dxstate_info *dx) skl_ipc_set_dx() argument 788 skl_ipc_init_instance(struct sst_generic_ipc *ipc, struct skl_ipc_init_instance_msg *msg, void *param_data) skl_ipc_init_instance() argument 829 skl_ipc_bind_unbind(struct sst_generic_ipc *ipc, struct skl_ipc_bind_unbind_msg *msg) skl_ipc_bind_unbind() argument 867 skl_ipc_load_modules(struct sst_generic_ipc *ipc, u8 module_cnt, void *data) skl_ipc_load_modules() argument 891 skl_ipc_unload_modules(struct sst_generic_ipc *ipc, u8 module_cnt, void *data) skl_ipc_unload_modules() argument 915 skl_ipc_set_large_config(struct sst_generic_ipc *ipc, struct skl_ipc_large_config_msg *msg, u32 *param) skl_ipc_set_large_config() argument 971 skl_ipc_get_large_config(struct sst_generic_ipc *ipc, struct skl_ipc_large_config_msg *msg, u32 **payload, size_t *bytes) skl_ipc_get_large_config() argument 1017 skl_sst_ipc_load_library(struct sst_generic_ipc *ipc, u8 dma_id, u8 table_id, bool wait) skl_sst_ipc_load_library() argument 1043 skl_ipc_set_d0ix(struct sst_generic_ipc *ipc, struct skl_ipc_d0ix_msg *msg) skl_ipc_set_d0ix() argument [all...] |
H A D | skl-sst-ipc.h | 12 #include "../common/sst-ipc.h" 110 int skl_ipc_create_pipeline(struct sst_generic_ipc *ipc, 113 int skl_ipc_delete_pipeline(struct sst_generic_ipc *ipc, u8 instance_id); 115 int skl_ipc_set_pipeline_state(struct sst_generic_ipc *ipc, 118 int skl_ipc_save_pipeline(struct sst_generic_ipc *ipc, 121 int skl_ipc_restore_pipeline(struct sst_generic_ipc *ipc, u8 instance_id); 123 int skl_ipc_init_instance(struct sst_generic_ipc *ipc, 126 int skl_ipc_bind_unbind(struct sst_generic_ipc *ipc, 129 int skl_ipc_load_modules(struct sst_generic_ipc *ipc, 132 int skl_ipc_unload_modules(struct sst_generic_ipc *ipc, [all...] |
/kernel/linux/linux-6.6/include/linux/firmware/imx/ |
H A D | dsp.h | 18 struct imx_dsp_ipc *ipc; member 26 void (*handle_reply)(struct imx_dsp_ipc *ipc); 27 void (*handle_request)(struct imx_dsp_ipc *ipc); 38 static inline void imx_dsp_set_data(struct imx_dsp_ipc *ipc, void *data) in imx_dsp_set_data() argument 40 ipc->private_data = data; in imx_dsp_set_data() 43 static inline void *imx_dsp_get_data(struct imx_dsp_ipc *ipc) in imx_dsp_get_data() argument 45 return ipc->private_data; in imx_dsp_get_data() 52 struct mbox_chan *imx_dsp_request_channel(struct imx_dsp_ipc *ipc, int idx); 53 void imx_dsp_free_channel(struct imx_dsp_ipc *ipc, int idx); 57 static inline int imx_dsp_ring_doorbell(struct imx_dsp_ipc *ipc, in imx_dsp_ring_doorbell() argument 63 imx_dsp_request_channel(struct imx_dsp_ipc *ipc, int idx) imx_dsp_request_channel() argument 68 imx_dsp_free_channel(struct imx_dsp_ipc *ipc, int idx) imx_dsp_free_channel() argument [all...] |
/kernel/linux/linux-5.10/include/linux/firmware/imx/ |
H A D | dsp.h | 18 struct imx_dsp_ipc *ipc; member 26 void (*handle_reply)(struct imx_dsp_ipc *ipc); 27 void (*handle_request)(struct imx_dsp_ipc *ipc); 38 static inline void imx_dsp_set_data(struct imx_dsp_ipc *ipc, void *data) in imx_dsp_set_data() argument 40 if (!ipc) in imx_dsp_set_data() 43 ipc->private_data = data; in imx_dsp_set_data() 46 static inline void *imx_dsp_get_data(struct imx_dsp_ipc *ipc) in imx_dsp_get_data() argument 48 if (!ipc) in imx_dsp_get_data() 51 return ipc->private_data; in imx_dsp_get_data() 60 static inline int imx_dsp_ring_doorbell(struct imx_dsp_ipc *ipc, in imx_dsp_ring_doorbell() argument [all...] |
/kernel/linux/linux-5.10/net/qrtr/ |
H A D | af_qrtr.c | 159 static void qrtr_port_put(struct qrtr_sock *ipc); 432 struct qrtr_sock *ipc; in qrtr_endpoint_post() local 519 ipc = qrtr_port_lookup(cb->dst_port); in qrtr_endpoint_post() 520 if (!ipc) in qrtr_endpoint_post() 523 if (sock_queue_rcv_skb(&ipc->sk, skb)) { in qrtr_endpoint_post() 524 qrtr_port_put(ipc); in qrtr_endpoint_post() 528 qrtr_port_put(ipc); in qrtr_endpoint_post() 648 struct qrtr_sock *ipc; in qrtr_port_lookup() local 654 ipc = xa_load(&qrtr_ports, port); in qrtr_port_lookup() 655 if (ipc) in qrtr_port_lookup() 663 qrtr_port_put(struct qrtr_sock *ipc) qrtr_port_put() argument 669 qrtr_port_remove(struct qrtr_sock *ipc) qrtr_port_remove() argument 713 qrtr_port_assign(struct qrtr_sock *ipc, int *port) qrtr_port_assign() argument 741 struct qrtr_sock *ipc; qrtr_reset_ports() local 761 struct qrtr_sock *ipc = qrtr_sk(sock->sk); __qrtr_bind() local 809 struct qrtr_sock *ipc = qrtr_sk(sock->sk); qrtr_bind() local 831 struct qrtr_sock *ipc; qrtr_local_enqueue() local 885 struct qrtr_sock *ipc = qrtr_sk(sock->sk); qrtr_sendmsg() local 1071 struct qrtr_sock *ipc = qrtr_sk(sock->sk); qrtr_connect() local 1101 struct qrtr_sock *ipc = qrtr_sk(sock->sk); qrtr_getname() local 1128 struct qrtr_sock *ipc = qrtr_sk(sock->sk); qrtr_ioctl() local 1188 struct qrtr_sock *ipc; qrtr_release() local 1244 struct qrtr_sock *ipc; qrtr_create() local [all...] |
/kernel/linux/linux-6.6/net/qrtr/ |
H A D | af_qrtr.c | 161 static void qrtr_port_put(struct qrtr_sock *ipc); 440 struct qrtr_sock *ipc; in qrtr_endpoint_post() local 530 ipc = qrtr_port_lookup(cb->dst_port); in qrtr_endpoint_post() 531 if (!ipc) in qrtr_endpoint_post() 534 if (sock_queue_rcv_skb(&ipc->sk, skb)) { in qrtr_endpoint_post() 535 qrtr_port_put(ipc); in qrtr_endpoint_post() 539 qrtr_port_put(ipc); in qrtr_endpoint_post() 669 struct qrtr_sock *ipc; in qrtr_port_lookup() local 675 ipc = xa_load(&qrtr_ports, port); in qrtr_port_lookup() 676 if (ipc) in qrtr_port_lookup() 684 qrtr_port_put(struct qrtr_sock *ipc) qrtr_port_put() argument 690 qrtr_port_remove(struct qrtr_sock *ipc) qrtr_port_remove() argument 734 qrtr_port_assign(struct qrtr_sock *ipc, int *port) qrtr_port_assign() argument 762 struct qrtr_sock *ipc; qrtr_reset_ports() local 782 struct qrtr_sock *ipc = qrtr_sk(sock->sk); __qrtr_bind() local 830 struct qrtr_sock *ipc = qrtr_sk(sock->sk); qrtr_bind() local 852 struct qrtr_sock *ipc; qrtr_local_enqueue() local 906 struct qrtr_sock *ipc = qrtr_sk(sock->sk); qrtr_sendmsg() local 1091 struct qrtr_sock *ipc = qrtr_sk(sock->sk); qrtr_connect() local 1121 struct qrtr_sock *ipc = qrtr_sk(sock->sk); qrtr_getname() local 1148 struct qrtr_sock *ipc = qrtr_sk(sock->sk); qrtr_ioctl() local 1208 struct qrtr_sock *ipc; qrtr_release() local 1263 struct qrtr_sock *ipc; qrtr_create() local [all...] |
/kernel/linux/linux-6.6/include/linux/firmware/mediatek/ |
H A D | mtk-adsp-ipc.h | 28 void (*handle_reply)(struct mtk_adsp_ipc *ipc); 29 void (*handle_request)(struct mtk_adsp_ipc *ipc); 33 struct mtk_adsp_ipc *ipc; member 47 static inline void mtk_adsp_ipc_set_data(struct mtk_adsp_ipc *ipc, void *data) in mtk_adsp_ipc_set_data() argument 49 ipc->private_data = data; in mtk_adsp_ipc_set_data() 52 static inline void *mtk_adsp_ipc_get_data(struct mtk_adsp_ipc *ipc) in mtk_adsp_ipc_get_data() argument 54 return ipc->private_data; in mtk_adsp_ipc_get_data() 57 int mtk_adsp_ipc_send(struct mtk_adsp_ipc *ipc, unsigned int idx, uint32_t op);
|
/kernel/linux/linux-5.10/sound/soc/sof/ |
H A D | ipc.c | 34 /* disables further sending of ipc's */ 206 static int tx_wait_done(struct snd_sof_ipc *ipc, struct snd_sof_ipc_msg *msg, in tx_wait_done() argument 209 struct snd_sof_dev *sdev = ipc->sdev; in tx_wait_done() 218 dev_err(sdev->dev, "error: ipc timed out for 0x%x size %d\n", in tx_wait_done() 220 snd_sof_handle_fw_exception(ipc->sdev); in tx_wait_done() 225 dev_err(sdev->dev, "error: ipc error for 0x%x size %zu\n", in tx_wait_done() 228 ipc_log_header(sdev->dev, "ipc tx succeeded", hdr->cmd); in tx_wait_done() 240 static int sof_ipc_tx_message_unlocked(struct snd_sof_ipc *ipc, u32 header, in sof_ipc_tx_message_unlocked() argument 244 struct snd_sof_dev *sdev = ipc->sdev; in sof_ipc_tx_message_unlocked() 248 if (ipc in sof_ipc_tx_message_unlocked() 295 sof_ipc_tx_message(struct snd_sof_ipc *ipc, u32 header, void *msg_data, size_t msg_bytes, void *reply_data, size_t reply_bytes) sof_ipc_tx_message() argument 321 sof_ipc_tx_message_no_pm(struct snd_sof_ipc *ipc, u32 header, void *msg_data, size_t msg_bytes, void *reply_data, size_t reply_bytes) sof_ipc_tx_message_no_pm() argument 823 struct snd_sof_ipc *ipc; snd_sof_ipc_init() local 856 struct snd_sof_ipc *ipc = sdev->ipc; snd_sof_ipc_free() local [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/i915/selftests/ |
H A D | i915_sw_fence.c | 514 struct task_ipc *ipc = container_of(work, typeof(*ipc), work); in task_ipc() local 516 complete(&ipc->started); in task_ipc() 518 i915_sw_fence_wait(ipc->in); in task_ipc() 519 smp_store_mb(ipc->value, 1); in task_ipc() 520 i915_sw_fence_commit(ipc->out); in task_ipc() 525 struct task_ipc ipc; in test_ipc() local 529 ipc.in = alloc_fence(); in test_ipc() 530 if (!ipc.in) in test_ipc() 532 ipc in test_ipc() [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/i915/selftests/ |
H A D | i915_sw_fence.c | 514 struct task_ipc *ipc = container_of(work, typeof(*ipc), work); in task_ipc() local 516 complete(&ipc->started); in task_ipc() 518 i915_sw_fence_wait(ipc->in); in task_ipc() 519 smp_store_mb(ipc->value, 1); in task_ipc() 520 i915_sw_fence_commit(ipc->out); in task_ipc() 525 struct task_ipc ipc; in test_ipc() local 534 ipc.in = alloc_fence(); in test_ipc() 535 if (!ipc.in) { in test_ipc() 539 ipc in test_ipc() [all...] |