Home
last modified time | relevance | path

Searched refs:ipc (Results 1 – 25 of 202) sorted by relevance

123456789

/linux-6.6.21/sound/soc/intel/common/
Dsst-ipc.c32 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->empty_list); in tx_wait_done()
74 spin_unlock_irqrestore(&ipc->dsp->spinlock, flags); in tx_wait_done()
78 static int ipc_tx_message(struct sst_generic_ipc *ipc, in ipc_tx_message() argument
[all …]
Dsst-ipc.h68 int sst_ipc_tx_message_wait(struct sst_generic_ipc *ipc,
71 int sst_ipc_tx_message_nowait(struct sst_generic_ipc *ipc,
74 int sst_ipc_tx_message_nopm(struct sst_generic_ipc *ipc,
77 struct ipc_message *sst_ipc_reply_find_msg(struct sst_generic_ipc *ipc,
80 void sst_ipc_tx_msg_reply_complete(struct sst_generic_ipc *ipc,
83 int sst_ipc_init(struct sst_generic_ipc *ipc);
84 void sst_ipc_fini(struct sst_generic_ipc *ipc);
/linux-6.6.21/drivers/net/wireless/quantenna/qtnfmac/
Dshm_ipc.c12 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->interrupt.arg); in qtnf_shm_handle_new_data()
48 struct qtnf_shm_ipc *ipc = container_of(work, struct qtnf_shm_ipc, in qtnf_shm_ipc_irq_work() local
51 while (qtnf_shm_ipc_has_new_data(ipc)) in qtnf_shm_ipc_irq_work()
[all …]
Dshm_ipc.h44 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()
/linux-6.6.21/sound/soc/intel/avs/
Dipc.c23 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->dev), true); in avs_dsp_d0ix_work()
62 struct avs_ipc *ipc = adev->ipc; in avs_dsp_wake_d0i0() local
[all …]
/linux-6.6.21/drivers/accel/ivpu/
Divpu_ipc.c23 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->mm_tx, tx_buf_vpu_addr, sizeof(*tx_buf)); in ivpu_ipc_tx_prepare()
95 if (tx_buf->ipc.status != IVPU_IPC_HDR_FREE) in ivpu_ipc_tx_prepare()
104 tx_buf->ipc.data_addr = jsm_vpu_addr; in ivpu_ipc_tx_prepare()
[all …]
/linux-6.6.21/sound/soc/intel/catpt/
Dipc.c16 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->rx.data = devm_kzalloc(ipc->dev, config->outbox_size, GFP_KERNEL); in catpt_ipc_arm()
[all …]
/linux-6.6.21/sound/soc/sof/
Dipc.c39 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->sdev, msg_data, msg_bytes, reply_data, in sof_ipc_tx_message()
88 int sof_ipc_set_get_data(struct snd_sof_ipc *ipc, void *msg_data, in sof_ipc_set_get_data() argument
91 return ipc->ops->set_get_data(ipc->sdev, msg_data, msg_bytes, set); in sof_ipc_set_get_data()
100 int sof_ipc_tx_message_no_pm(struct snd_sof_ipc *ipc, void *msg_data, size_t msg_bytes, in sof_ipc_tx_message_no_pm() argument
[all …]
DMakefile3 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-msg-injector.o
53 obj-$(CONFIG_SND_SOC_SOF_DEBUG_IPC_KERNEL_INJECTOR) += snd-sof-ipc-kernel-injector.o
Dtrace.c26 if (sdev->ipc->ops->fw_tracing->free) in sof_fw_trace_free()
27 sdev->ipc->ops->fw_tracing->free(sdev); in sof_fw_trace_free()
35 if (sdev->ipc->ops->fw_tracing->fw_crashed) in sof_fw_trace_fw_crashed()
36 sdev->ipc->ops->fw_tracing->fw_crashed(sdev); in sof_fw_trace_fw_crashed()
44 sdev->ipc->ops->fw_tracing->suspend(sdev, pm_state); in sof_fw_trace_suspend()
52 return sdev->ipc->ops->fw_tracing->resume(sdev); in sof_fw_trace_resume()
Dipc4.c285 static int ipc4_wait_tx_done(struct snd_sof_ipc *ipc, void *reply_data) in ipc4_wait_tx_done() argument
287 struct snd_sof_ipc_msg *msg = &ipc->msg; in ipc4_wait_tx_done()
289 struct snd_sof_dev *sdev = ipc->sdev; in ipc4_wait_tx_done()
298 snd_sof_handle_fw_exception(ipc->sdev, "IPC timeout"); in ipc4_wait_tx_done()
334 static int ipc4_tx_msg_unlocked(struct snd_sof_ipc *ipc, in ipc4_tx_msg_unlocked() argument
339 struct snd_sof_dev *sdev = ipc->sdev; in ipc4_tx_msg_unlocked()
342 if (msg_bytes > ipc->max_payload_size || reply_bytes > ipc->max_payload_size) in ipc4_tx_msg_unlocked()
356 return ipc4_wait_tx_done(ipc, reply_data); in ipc4_tx_msg_unlocked()
362 struct snd_sof_ipc *ipc = sdev->ipc; in sof_ipc4_tx_msg() local
380 mutex_lock(&ipc->tx_mutex); in sof_ipc4_tx_msg()
[all …]
/linux-6.6.21/sound/soc/intel/skylake/
Dskl-sst-ipc.c296 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: rx list is empty but received 0x%x\n", in skl_ipc_reply_get_msg()
337 msg = list_first_entry(&ipc->rx_list, struct ipc_message, list); in skl_ipc_reply_get_msg()
345 int skl_ipc_process_notification(struct sst_generic_ipc *ipc, in skl_ipc_process_notification() argument
348 struct skl_dev *skl = container_of(ipc, struct skl_dev, ipc); in skl_ipc_process_notification()
[all …]
Dskl-sst-ipc.h110 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,
135 int skl_ipc_set_dx(struct sst_generic_ipc *ipc,
[all …]
Dskl-ssp-clk.c77 union skl_clk_ctrl_ipc *ipc; in skl_fill_clk_ipc() local
83 ipc = &rcfg->dma_ctl_ipc; in skl_fill_clk_ipc()
89 ipc->sclk_fs.hdr.size = sizeof(struct skl_dmactrl_sclkfs_cfg) - in skl_fill_clk_ipc()
91 ipc->sclk_fs.sampling_frequency = wfmt->samples_per_sec; in skl_fill_clk_ipc()
92 ipc->sclk_fs.bit_depth = wfmt->bits_per_sample; in skl_fill_clk_ipc()
93 ipc->sclk_fs.valid_bit_depth = in skl_fill_clk_ipc()
95 ipc->sclk_fs.number_of_channels = wfmt->channels; in skl_fill_clk_ipc()
97 ipc->mclk.hdr.type = DMA_CLK_CONTROLS; in skl_fill_clk_ipc()
99 ipc->mclk.hdr.size = sizeof(struct skl_dmactrl_mclk_cfg) - in skl_fill_clk_ipc()
113 union skl_clk_ctrl_ipc *ipc; in skl_send_clk_dma_control() local
[all …]
Dcnl-sst.c234 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
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, struct ipc_message *msg) in cnl_ipc_tx_msg() argument
392 sst_dsp_outbox_write(ipc->dsp, msg->tx.data, msg->tx.size); in cnl_ipc_tx_msg()
393 sst_dsp_shim_write_unlocked(ipc->dsp, CNL_ADSP_REG_HIPCIDD, in cnl_ipc_tx_msg()
395 sst_dsp_shim_write_unlocked(ipc->dsp, CNL_ADSP_REG_HIPCIDR, in cnl_ipc_tx_msg()
[all …]
/linux-6.6.21/include/linux/firmware/imx/
Ddsp.h18 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
[all …]
/linux-6.6.21/net/qrtr/
Daf_qrtr.c161 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()
[all …]
/linux-6.6.21/include/linux/firmware/mediatek/
Dmtk-adsp-ipc.h28 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);
/linux-6.6.21/drivers/leds/simple/
DMakefile2 obj-$(CONFIG_LEDS_SIEMENS_SIMATIC_IPC) += simatic-ipc-leds.o
3 obj-$(CONFIG_LEDS_SIEMENS_SIMATIC_IPC_APOLLOLAKE) += simatic-ipc-leds-gpio-core.o simatic-ipc-leds-…
4 obj-$(CONFIG_LEDS_SIEMENS_SIMATIC_IPC_F7188X) += simatic-ipc-leds-gpio-core.o simatic-ipc-leds-gpi…
5 obj-$(CONFIG_LEDS_SIEMENS_SIMATIC_IPC_ELKHARTLAKE) += simatic-ipc-leds-gpio-core.o simatic-ipc-leds…
/linux-6.6.21/drivers/gpu/drm/i915/selftests/
Di915_sw_fence.c514 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.out = alloc_fence(); in test_ipc()
540 if (!ipc.out) { in test_ipc()
[all …]
/linux-6.6.21/include/linux/firmware/imx/svc/
Dmisc.h50 int imx_sc_misc_set_control(struct imx_sc_ipc *ipc, u32 resource,
53 int imx_sc_misc_get_control(struct imx_sc_ipc *ipc, u32 resource,
56 int imx_sc_pm_cpu_start(struct imx_sc_ipc *ipc, u32 resource,
59 static inline int imx_sc_misc_set_control(struct imx_sc_ipc *ipc, in imx_sc_misc_set_control() argument
65 static inline int imx_sc_misc_get_control(struct imx_sc_ipc *ipc, in imx_sc_misc_get_control() argument
71 static inline int imx_sc_pm_cpu_start(struct imx_sc_ipc *ipc, u32 resource, in imx_sc_pm_cpu_start() argument
/linux-6.6.21/drivers/platform/x86/siemens/
DMakefile7 obj-$(CONFIG_SIEMENS_SIMATIC_IPC) += simatic-ipc.o
8 obj-$(CONFIG_SIEMENS_SIMATIC_IPC_BATT) += simatic-ipc-batt.o
9 obj-$(CONFIG_SIEMENS_SIMATIC_IPC_BATT_APOLLOLAKE) += simatic-ipc-batt-apollolake.o
10 obj-$(CONFIG_SIEMENS_SIMATIC_IPC_BATT_ELKHARTLAKE) += simatic-ipc-batt-elkhartlake.o
11 obj-$(CONFIG_SIEMENS_SIMATIC_IPC_BATT_F7188X) += simatic-ipc-batt-f7188x.o
/linux-6.6.21/tools/perf/tests/shell/
Dstat+shadow_stat.sh17 while read num evt _hash ipc rest
37 if [ "$ipc" != "$res" ]; then
38 echo "IPC is different: $res != $ipc ($num / $cyc)"
48 while read cpu num evt _hash ipc rest
71 if [ "$ipc" != "$res" ]; then
72 echo "IPC is different for $cpu: $res != $ipc ($num / $cyc)"
/linux-6.6.21/drivers/hid/intel-ish-hid/
DMakefile15 obj-$(CONFIG_INTEL_ISH_HID) += intel-ish-ipc.o
16 intel-ish-ipc-objs := ipc/ipc.o
17 intel-ish-ipc-objs += ipc/pci-ish.o
/linux-6.6.21/drivers/firmware/
Dmtk-adsp-ipc.c26 int mtk_adsp_ipc_send(struct mtk_adsp_ipc *ipc, unsigned int idx, uint32_t msg) in mtk_adsp_ipc_send() argument
34 adsp_chan = &ipc->chans[idx]; in mtk_adsp_ipc_send()
59 chan->ipc->ops->handle_reply(chan->ipc); in mtk_adsp_ipc_recv()
62 chan->ipc->ops->handle_request(chan->ipc); in mtk_adsp_ipc_recv()
94 adsp_chan->ipc = adsp_ipc; in mtk_adsp_ipc_probe()

123456789