Home
last modified time | relevance | path

Searched full:ipc (Results 1 – 25 of 861) sorted by relevance

12345678910>>...35

/kernel/linux/linux-4.19/sound/soc/intel/common/
Dsst-ipc.c2 * Intel SST generic IPC Support
33 #include "sst-ipc.h"
35 /* IPC message timeout (msecs) */
41 static struct ipc_message *msg_get_empty(struct sst_generic_ipc *ipc) in msg_get_empty() argument
45 if (!list_empty(&ipc->empty_list)) { in msg_get_empty()
46 msg = list_first_entry(&ipc->empty_list, struct ipc_message, in msg_get_empty()
54 static int tx_wait_done(struct sst_generic_ipc *ipc, in tx_wait_done() argument
64 spin_lock_irqsave(&ipc->dsp->spinlock, flags); in tx_wait_done()
66 if (ipc->ops.shim_dbg != NULL) in tx_wait_done()
67 ipc->ops.shim_dbg(ipc, "message timeout"); in tx_wait_done()
[all …]
Dsst-ipc.h2 * Intel SST generic IPC Support
57 /* SST generic IPC data */
62 /* IPC messaging */
77 int sst_ipc_tx_message_wait(struct sst_generic_ipc *ipc, u64 header,
80 int sst_ipc_tx_message_nowait(struct sst_generic_ipc *ipc, u64 header,
83 int sst_ipc_tx_message_nopm(struct sst_generic_ipc *ipc, u64 header,
86 struct ipc_message *sst_ipc_reply_find_msg(struct sst_generic_ipc *ipc,
89 void sst_ipc_tx_msg_reply_complete(struct sst_generic_ipc *ipc,
92 void sst_ipc_drop_all(struct sst_generic_ipc *ipc);
93 int sst_ipc_init(struct sst_generic_ipc *ipc);
[all …]
/kernel/linux/linux-5.10/sound/soc/intel/common/
Dsst-ipc.c3 * Intel SST generic IPC Support
24 #include "sst-ipc.h"
26 /* IPC message timeout (msecs) */
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()
[all …]
Dsst-ipc.h3 * Intel SST generic IPC Support
48 /* SST generic IPC data */
53 /* IPC messaging */
68 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);
/kernel/linux/linux-5.10/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 …]
/kernel/linux/linux-4.19/drivers/net/wireless/quantenna/qtnfmac/
Dshm_ipc.c25 static bool qtnf_shm_ipc_has_new_data(struct qtnf_shm_ipc *ipc) in qtnf_shm_ipc_has_new_data() argument
27 const u32 flags = readl(&ipc->shm_region->headroom.hdr.flags); in qtnf_shm_ipc_has_new_data()
32 static void qtnf_shm_handle_new_data(struct qtnf_shm_ipc *ipc) in qtnf_shm_handle_new_data() argument
38 shm_reg_hdr = &ipc->shm_region->headroom.hdr; in qtnf_shm_handle_new_data()
46 memcpy_fromio(ipc->rx_data, ipc->shm_region->data, size); in qtnf_shm_handle_new_data()
52 ipc->interrupt.fn(ipc->interrupt.arg); in qtnf_shm_handle_new_data()
55 ipc->rx_packet_count++; in qtnf_shm_handle_new_data()
56 ipc->rx_callback.fn(ipc->rx_callback.arg, ipc->rx_data, size); in qtnf_shm_handle_new_data()
62 struct qtnf_shm_ipc *ipc = container_of(work, struct qtnf_shm_ipc, in qtnf_shm_ipc_irq_work() local
65 while (qtnf_shm_ipc_has_new_data(ipc)) in qtnf_shm_ipc_irq_work()
[all …]
/kernel/linux/linux-5.10/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 …]
/kernel/linux/linux-5.10/sound/soc/intel/skylake/
Dskl-sst-ipc.c3 * skl-sst-ipc.c - Intel skl IPC Support
13 #include "skl-sst-ipc.h"
177 /* Set D0ix IPC extension register */
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: rx list is empty but received 0x%x\n", in skl_ipc_reply_get_msg()
[all …]
Dskl-sst-ipc.h3 * Intel SKL IPC Support
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,
[all …]
Dcnl-sst.c25 #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()
349 dev_dbg(dsp->dev, "IPC irq: Firmware respond primary:%x", in cnl_dsp_irq_thread_handler()
351 dev_dbg(dsp->dev, "IPC irq: Firmware respond extension:%x", in cnl_dsp_irq_thread_handler()
356 skl_ipc_process_reply(ipc, header); in cnl_dsp_irq_thread_handler()
358 dev_dbg(dsp->dev, "IPC irq: Notification from firmware\n"); in cnl_dsp_irq_thread_handler()
359 skl_ipc_process_notification(ipc, header); in cnl_dsp_irq_thread_handler()
[all …]
/kernel/linux/linux-4.19/sound/soc/intel/skylake/
Dskl-sst-ipc.c2 * skl-sst-ipc.c - Intel skl IPC Support
21 #include "skl-sst-ipc.h"
185 /* Set D0ix IPC extension register */
302 static void skl_ipc_tx_msg(struct sst_generic_ipc *ipc, struct ipc_message *msg) in skl_ipc_tx_msg() argument
307 sst_dsp_outbox_write(ipc->dsp, msg->tx_data, msg->tx_size); in skl_ipc_tx_msg()
308 sst_dsp_shim_write_unlocked(ipc->dsp, SKL_ADSP_REG_HIPCIE, in skl_ipc_tx_msg()
310 sst_dsp_shim_write_unlocked(ipc->dsp, SKL_ADSP_REG_HIPCI, in skl_ipc_tx_msg()
331 static struct ipc_message *skl_ipc_reply_get_msg(struct sst_generic_ipc *ipc, in skl_ipc_reply_get_msg() argument
337 if (list_empty(&ipc->rx_list)) { in skl_ipc_reply_get_msg()
338 dev_err(ipc->dev, "ipc: rx list is empty but received 0x%x\n", in skl_ipc_reply_get_msg()
[all …]
Dskl-sst-ipc.h2 * Intel SKL IPC Support
20 #include "../common/sst-ipc.h"
91 /* IPC messaging */
92 struct sst_generic_ipc ipc; member
174 int skl_ipc_save_pipeline(struct sst_generic_ipc *ipc,
177 int skl_ipc_restore_pipeline(struct sst_generic_ipc *ipc, u8 instance_id);
185 int skl_ipc_load_modules(struct sst_generic_ipc *ipc,
188 int skl_ipc_unload_modules(struct sst_generic_ipc *ipc,
191 int skl_ipc_set_dx(struct sst_generic_ipc *ipc,
194 int skl_ipc_set_large_config(struct sst_generic_ipc *ipc,
[all …]
Dcnl-sst.c33 #include "../common/sst-ipc.h"
36 #include "skl-sst-ipc.h"
221 ret = skl_ipc_set_dx(&cnl->ipc, CNL_INSTANCE_ID, in cnl_set_dsp_D0()
248 ret = skl_ipc_set_dx(&cnl->ipc, CNL_INSTANCE_ID, in cnl_set_dsp_D3()
305 struct sst_generic_ipc *ipc = &cnl->ipc; in cnl_dsp_irq_thread_handler() local
310 /* here we handle ipc interrupts only */ in cnl_dsp_irq_thread_handler()
338 dev_dbg(dsp->dev, "IPC irq: Firmware respond primary:%x", in cnl_dsp_irq_thread_handler()
340 dev_dbg(dsp->dev, "IPC irq: Firmware respond extension:%x", in cnl_dsp_irq_thread_handler()
345 skl_ipc_process_reply(ipc, header); in cnl_dsp_irq_thread_handler()
347 dev_dbg(dsp->dev, "IPC irq: Notification from firmware\n"); in cnl_dsp_irq_thread_handler()
[all …]
/kernel/linux/linux-4.19/ipc/
Dutil.c3 * linux/ipc/util.c
8 * Occurs in several places in the IPC code.
10 * Nov 1999 - ipc helper functions, unified SMP locking
12 * Oct 2002 - One lock per IPC id. RCU ipc_free for lock-free grow_ary().
14 * Mar 2006 - support for audit of ipc object properties
20 * General sysv ipc locking scheme:
22 * obtain the ipc object (kern_ipc_perm) by looking up the id in an idr
28 * acquire the ipc lock (kern_ipc_perm.lock) through
35 * drop the ipc lock, through ipc_unlock_object().
39 * - creating, removing and iterating the existing entries in ipc
[all …]
/kernel/linux/linux-5.10/ipc/
Dutil.c3 * linux/ipc/util.c
8 * Occurs in several places in the IPC code.
10 * Nov 1999 - ipc helper functions, unified SMP locking
12 * Oct 2002 - One lock per IPC id. RCU ipc_free for lock-free grow_ary().
14 * Mar 2006 - support for audit of ipc object properties
20 * General sysv ipc locking scheme:
22 * obtain the ipc object (kern_ipc_perm) by looking up the id in an idr
28 * acquire the ipc lock (kern_ipc_perm.lock) through
35 * drop the ipc lock, through ipc_unlock_object().
39 * - creating, removing and iterating the existing entries in ipc
[all …]
/kernel/linux/linux-5.10/drivers/platform/x86/
Dintel_scu_ipc.c3 * Driver for the Intel SCU IPC mechanism
9 * core through IPC mechanism which in turn messaging between IA core ad SCU.
10 * SCU has two IPC mechanism IPC-1 and IPC-2. IPC-1 is used between IA32 and
11 * SCU where IPC-2 is used between P-Unit and SCU. This driver delas with
12 * IPC-1 Driver provides an API for power control unit registers (e.g. MSIC)
27 /* IPC defines the following message types */
36 * IPC register summary
38 * IPC register blocks are memory mapped at fixed address of PCI BAR 0.
39 * To read or write information to the SCU, driver writes to IPC-1 memory
40 * mapped registers. The following is the IPC mechanism
[all …]
/kernel/linux/linux-5.10/sound/soc/sof/
Dipc.c10 // Generic IPC layer that can work over MMIO and SPI/I2C. PHY layer provided
25 * IPC message Tx/Rx message handling.
28 /* SOF generic IPC data */
34 /* disables further sending of ipc's */
205 /* wait for IPC message reply */
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()
213 /* wait for DSP IPC completion */ 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()
[all …]
/kernel/linux/linux-4.19/sound/soc/intel/baytrail/
Dsst-baytrail-ipc.c2 * Intel Baytrail SST IPC Support
30 #include "sst-baytrail-ipc.h"
33 #include "../common/sst-ipc.h"
35 /* IPC message timeout */
41 /* IPC header bits */
68 /* IPC messages between host and ADSP */
167 /* SST Baytrail IPC data */
180 /* IPC messaging */
181 struct sst_generic_ipc ipc; member
247 msg = sst_ipc_reply_find_msg(&byt->ipc, header); in sst_byt_process_reply()
[all …]
/kernel/linux/linux-5.10/include/linux/firmware/imx/
Ddsp.h5 * Header file for the DSP IPC implementation
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()
[all …]
Dipc.h5 * Header file for the IPC implementation.
38 * This is an function to send an RPC message over an IPC channel.
41 * @param[in] ipc IPC handle
48 int imx_scu_call_rpc(struct imx_sc_ipc *ipc, void *msg, bool have_resp);
51 * This function gets the default ipc handle used by SCU
53 * @param[out] ipc sc ipc handle
57 int imx_scu_get_handle(struct imx_sc_ipc **ipc);
/kernel/linux/linux-4.19/net/qrtr/
Dqrtr.c369 static void qrtr_port_put(struct qrtr_sock *ipc);
384 struct qrtr_sock *ipc; in qrtr_node_rx_work() local
397 ipc = qrtr_port_lookup(cb->dst_port); in qrtr_node_rx_work()
398 if (!ipc) { in qrtr_node_rx_work()
401 if (sock_queue_rcv_skb(&ipc->sk, skb)) in qrtr_node_rx_work()
404 qrtr_port_put(ipc); in qrtr_node_rx_work()
494 struct qrtr_sock *ipc; in qrtr_port_lookup() local
500 ipc = idr_find(&qrtr_ports, port); in qrtr_port_lookup()
501 if (ipc) in qrtr_port_lookup()
502 sock_hold(&ipc->sk); in qrtr_port_lookup()
[all …]
/kernel/linux/linux-4.19/drivers/media/platform/sti/delta/
Ddelta-ipc.c10 #include "delta-ipc.h"
54 * IPC shared memory (@ipc_buf_size, @ipc_buf_paddr) is sent to copro
55 * at each instance opening. This memory is allocated by IPC client
58 * this IPC shared memory, avoiding de-facto recopies inside delta-ipc.
123 "%s ipc: failed to open, rpmsg is not initialized\n", in delta_ipc_open()
131 "%s ipc: failed to open, no name given\n", in delta_ipc_open()
138 "%s ipc: failed to open, empty parameter\n", in delta_ipc_open()
145 "%s ipc: failed to open, no size given for ipc buffer\n", in delta_ipc_open()
152 "%s ipc: failed to open, too large ipc parameter (%d bytes while max %d expected)\n", in delta_ipc_open()
167 "ipc data buffer", buf); in delta_ipc_open()
[all …]
/kernel/linux/linux-5.10/drivers/media/platform/sti/delta/
Ddelta-ipc.c10 #include "delta-ipc.h"
54 * IPC shared memory (@ipc_buf_size, @ipc_buf_paddr) is sent to copro
55 * at each instance opening. This memory is allocated by IPC client
58 * this IPC shared memory, avoiding de-facto recopies inside delta-ipc.
123 "%s ipc: failed to open, rpmsg is not initialized\n", in delta_ipc_open()
131 "%s ipc: failed to open, no name given\n", in delta_ipc_open()
138 "%s ipc: failed to open, empty parameter\n", in delta_ipc_open()
145 "%s ipc: failed to open, no size given for ipc buffer\n", in delta_ipc_open()
152 "%s ipc: failed to open, too large ipc parameter (%d bytes while max %d expected)\n", in delta_ipc_open()
167 "ipc data buffer", buf); in delta_ipc_open()
[all …]
/kernel/linux/linux-5.10/net/qrtr/
Dqrtr.c158 static void qrtr_port_put(struct qrtr_sock *ipc);
429 struct qrtr_sock *ipc; in qrtr_endpoint_post() local
503 ipc = qrtr_port_lookup(cb->dst_port); in qrtr_endpoint_post()
504 if (!ipc) in qrtr_endpoint_post()
507 if (sock_queue_rcv_skb(&ipc->sk, skb)) { in qrtr_endpoint_post()
508 qrtr_port_put(ipc); in qrtr_endpoint_post()
512 qrtr_port_put(ipc); in qrtr_endpoint_post()
632 struct qrtr_sock *ipc; in qrtr_port_lookup() local
638 ipc = idr_find(&qrtr_ports, port); in qrtr_port_lookup()
639 if (ipc) in qrtr_port_lookup()
[all …]
/kernel/linux/linux-4.19/drivers/platform/x86/
Dintel_scu_ipc.c2 * intel_scu_ipc.c: Driver for the Intel SCU IPC mechanism
13 * core through IPC mechanism which in turn messaging between IA core ad SCU.
14 * SCU has two IPC mechanism IPC-1 and IPC-2. IPC-1 is used between IA32 and
15 * SCU where IPC-2 is used between P-Unit and SCU. This driver delas with
16 * IPC-1 Driver provides an API for power control unit registers (e.g. MSIC)
30 /* IPC defines the following message types */
43 * IPC register summary
45 * IPC register blocks are memory mapped at fixed address of PCI BAR 0.
46 * To read or write information to the SCU, driver writes to IPC-1 memory
47 * mapped registers. The following is the IPC mechanism
[all …]

12345678910>>...35