| /linux/sound/soc/intel/avs/ | 
| H A D | ipc.c | 24 	struct avs_ipc *ipc = adev->ipc; in avs_dsp_set_d0ix() 28 	if (ipc->in_d0ix == enable) in avs_dsp_set_d0ix()
 33 		/* Prevent further d0ix attempts on conscious IPC failure. */ in avs_dsp_set_d0ix()
 35 			atomic_inc(&ipc->d0ix_disable_depth); in avs_dsp_set_d0ix()
 37 		ipc->in_d0ix = false; in avs_dsp_set_d0ix()
 41 	ipc->in_d0ix = enable; in avs_dsp_set_d0ix()
 47 	if (atomic_read(&adev->ipc->d0ix_disable_depth)) in avs_dsp_schedule_d0ix()
 50 	mod_delayed_work(system_power_efficient_wq, &adev->ipc->d0ix_work, in avs_dsp_schedule_d0ix()
 56 	struct avs_ipc *ipc  in avs_dsp_d0ix_work()
 23 struct avs_ipc *ipc = adev->ipc; avs_dsp_set_d0ix()  local
 55 struct avs_ipc *ipc = container_of(work, struct avs_ipc, d0ix_work.work); avs_dsp_d0ix_work()  local
 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
 152 struct avs_ipc *ipc = container_of(work, struct avs_ipc, recovery_work); avs_dsp_recovery_work()  local
 159 struct avs_ipc *ipc = adev->ipc; avs_dsp_exception_caught()  local
 186 struct avs_ipc *ipc = adev->ipc; avs_dsp_receive_rx()  local
 288 struct avs_ipc *ipc = adev->ipc; avs_dsp_process_response()  local
 307 avs_ipc_is_busy(struct avs_ipc * ipc) avs_ipc_is_busy()  argument
 317 avs_ipc_wait_busy_completion(struct avs_ipc * ipc,int timeout) avs_ipc_wait_busy_completion()  argument
 358 avs_ipc_msg_init(struct avs_ipc * ipc,struct avs_ipc_msg * reply) avs_ipc_msg_init()  argument
 393 struct avs_ipc *ipc = adev->ipc; avs_dsp_do_send_msg()  local
 500 struct avs_ipc *ipc = adev->ipc; avs_dsp_do_send_rom_msg()  local
 557 avs_ipc_init(struct avs_ipc * ipc,struct device * dev) avs_ipc_init()  argument
 576 avs_ipc_block(struct avs_ipc * ipc) avs_ipc_block()  argument
 [all...]
 | 
| /linux/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()  argument14 	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 …]
 
 | 
| 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()
 
 | 
| /linux/sound/soc/sof/ | 
| H A D | ipc.c | 10 // Generic IPC layer that can work over MMIO and SPI/I2C. PHY layer provided22  * sof_ipc_send_msg - generic function to prepare and send one IPC message
 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()
 74 /* send IPC message from host to DSP */
 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()
 [all …]
 
 | 
| H A D | Kconfig | 130 	bool "SOF allow fallback to newer IPC version"132 	  This option will allow the kernel to try to 'fallback' to a newer IPC
 133 	  version if there are missing firmware files to satisfy the default IPC
 135 	  IPC version fallback to older versions is not affected by this option,
 184 	bool "SOF verbose IPC logs"
 186 	  This option enables more verbose IPC logs, with command types in
 188 	  if you are trying to debug IPC with the DSP firmware.
 192 	bool "SOF force to use IPC for position update on SKL+"
 197 	  On platforms (e.g. Intel SKL-) where position update IPC is the only
 222 	tristate "SOF enable IPC flood test"
 [all …]
 
 | 
| H A D | Makefile | 3 snd-sof-y := 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\
 7 # IPC implementations
 28 snd-sof-ipc-flood-test-y := sof-client-ipc-flood-test.o
 29 snd-sof-ipc-msg-injector-y := sof-client-ipc-msg-injector.o
 30 snd-sof-ipc-kernel-injector-y := sof-client-ipc-kernel-injector.o
 52 obj-$(CONFIG_SND_SOC_SOF_DEBUG_IPC_FLOOD_TEST) += snd-sof-ipc-flood-test.o
 53 obj-$(CONFIG_SND_SOC_SOF_DEBUG_IPC_MSG_INJECTOR) += snd-sof-ipc-msg-injector.o
 54 obj-$(CONFIG_SND_SOC_SOF_DEBUG_IPC_KERNEL_INJECTOR) += snd-sof-ipc-kernel-injector.o
 
 | 
| H A D | ipc4.c | 28 	{3, "Not enough space in the IPC reply buffer to complete the request"},30 	{5, "Replaced ADSP IPC PENDING (unused)"},
 300 	sof_ipc4_log_header(sdev->dev, "ipc tx reply", ipc4_reply, false);  in sof_ipc4_get_reply()
 318 /* wait for IPC message reply */
 319 static int ipc4_wait_tx_done(struct snd_sof_ipc *ipc, void *reply_data)  in ipc4_wait_tx_done()  argument
 321 	struct snd_sof_ipc_msg *msg = &ipc->msg;  in ipc4_wait_tx_done()
 323 	struct snd_sof_dev *sdev = ipc->sdev;  in ipc4_wait_tx_done()
 326 	/* wait for DSP IPC completion */  in ipc4_wait_tx_done()
 330 		dev_err(sdev->dev, "ipc timed out for %#x|%#x\n",  in ipc4_wait_tx_done()
 332 		snd_sof_handle_fw_exception(ipc->sdev, "IPC timeout");  in ipc4_wait_tx_done()
 [all …]
 
 | 
| H A D | ipc4-topology.h | 92  * Use LARGE_CONFIG_SET to initialize timestamp event. Ipc mailbox must97  * Use LARGE_CONFIG_SET to initialize copier sink. Ipc mailbox must contain
 103  * event. Ipc mailbox must contain properly built DataSegmentEnabled struct.
 166  * struct sof_ipc4_multi_pipeline_data - multi pipeline trigger IPC data
 205  * struct sof_copier_gateway_cfg - IPC gateway configuration
 219  * struct sof_ipc4_copier_data - IPC data for copier
 317  * @data: IPC copier data
 353  * struct sof_ipc4_control_data - IPC data for kcontrol IO
 373  * struct sof_ipc4_control_msg_payload - IPC payload for kcontrol parameters
 387  * struct sof_ipc4_gain_params - IPC gain parameters
 [all …]
 
 | 
| H A D | sof-client-ipc-flood-test.c | 75 	/* configure test IPC */  in sof_debug_ipc_flood_test()83 	/* send test IPC's */  in sof_debug_ipc_flood_test()
 112 		dev_err(dev, "ipc flood test failed at %d iterations\n", i);  in sof_debug_ipc_flood_test()
 114 	/* return if the first IPC fails */  in sof_debug_ipc_flood_test()
 125 		dev_dbg(dev, "IPC Flood test duration: %lums\n", ipc_duration_ms);  in sof_debug_ipc_flood_test()
 127 			 "IPC Flood test duration: %lums\n", ipc_duration_ms);  in sof_debug_ipc_flood_test()
 130 	dev_dbg(dev, "IPC Flood count: %d, Avg response time: %lluns\n",  in sof_debug_ipc_flood_test()
 138 		 "IPC Flood count: %d\nAvg response time: %lluns\n",  in sof_debug_ipc_flood_test()
 150  * Writing to the debugfs entry initiates the IPC flood test based on
 151  * the IPC count or the duration specified by the user.
 [all …]
 
 | 
| /linux/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()  argument18 	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/drivers/platform/x86/ | 
| H A D | intel_scu_ipc.c | 3  * Driver for the Intel SCU IPC mechanism9  * 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)
 29 /* IPC defines the following message types */
 38  * IPC register summary
 40  * IPC register blocks are memory mapped at fixed address of PCI BAR 0.
 41  * To read or write information to the SCU, driver writes to IPC-1 memory
 42  * mapped registers. The following is the IPC mechanism
 [all …]
 
 | 
| /linux/include/linux/firmware/imx/ | 
| H A D | dsp.h | 5  * Header file for the DSP IPC implementation18 	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);
 [all …]
 
 | 
| H A D | ipc.h | 5  * Header file for the IPC implementation.39  * This is an function to send an RPC message over an IPC channel.
 42  * @param[in]     ipc         IPC handle
 49 int imx_scu_call_rpc(struct imx_sc_ipc *ipc, void *msg, bool have_resp);
 52  * This function gets the default ipc handle used by SCU
 54  * @param[out]	ipc	sc ipc handle
 58 int imx_scu_get_handle(struct imx_sc_ipc **ipc);
 60 static inline int imx_scu_call_rpc(struct imx_sc_ipc *ipc, void *msg,  in imx_scu_call_rpc()  argument
 66 static inline int imx_scu_get_handle(struct imx_sc_ipc **ipc)  in imx_scu_get_handle()  argument
 
 | 
| /linux/drivers/media/platform/st/sti/delta/ | 
| H A D | delta-ipc.c | 10 #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 …]
 
 | 
| /linux/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()
 [all …]
 
 | 
| H A D | Kconfig | 2 # Qualcomm IPC Router configuration6 	tristate "Qualcomm IPC Router support"
 8 	  Say Y if you intend to use Qualcomm IPC router protocol.  The
 18 	tristate "SMD IPC Router channels"
 22 	  most common transport for IPC Router.
 25 	tristate "TUN device for Qualcomm IPC Router"
 32 	tristate "MHI IPC Router channels"
 
 | 
| /linux/fs/smb/server/ | 
| H A D | ksmbd_netlink.h | 14  * This is a userspace ABI to communicate data between ksmbd and user IPC19  *    This event is to check whether user IPC daemon is alive. If user IPC
 25  *    server from the user IPC daemon and to start the server. The global
 33  *    This event is to get user account info to user IPC daemon.
 42  *    This event is to send tree disconnect info to user IPC daemon.
 45  *    This event is to send logout request to user IPC daemon.
 56  *    This event is to get user account extension info to user IPC daemon.
 67  * IPC heartbeat frame to check whether user IPC daemon is alive.
 84  * IPC request for ksmbd server startup
 124  * IPC request to shutdown ksmbd server.
 [all …]
 
 | 
| /linux/tools/perf/tests/shell/ | 
| H A D | stat+shadow_stat.sh | 19 	while read num evt _ ipc rest39 		if [ "$ipc" != "$res" ]; then
 41 			diff=`echo $ipc $res $THRESHOLD | \
 45 				echo "IPC is different: $res != $ipc  ($num / $cyc)"
 49 			echo "Warning: Difference of IPC is under the threshold"
 58 	while read cpu num evt _ ipc rest
 81 		if [ "$ipc" != "$res" ]; then
 83 			diff=`echo $ipc $res $THRESHOLD | \
 87 				echo "IPC is different: $res != $ipc  ($num / $cyc)"
 91 			echo "Warning: Difference of IPC is under the threshold"
 
 | 
| /linux/drivers/misc/mei/ | 
| H A D | hw-txe-regs.h | 39 #define IPC_BASE_ADDR	0x80400 /* SeC IPC Base Address */41 /* IPC Input Doorbell Register */
 44 /* IPC Input Status Register
 53 /* IPC Host Interrupt Status Register */
 68 /* IPC Host Interrupt Mask Register */
 74 /* IPC Input Payload RAM */
 76 /* IPC Shared Payload RAM */
 102  * that arrive via IPC.
 121 /* Host Interrupt Cause Register 0 - SeC IPC Readiness
 125  * This register is used by SeC's IPC driver in order
 [all …]
 
 | 
| /linux/drivers/firmware/imx/ | 
| H A D | misc.c | 43  * @param[in]     ipc         IPC handle51 int imx_sc_misc_set_control(struct imx_sc_ipc *ipc, u32 resource,  in imx_sc_misc_set_control()  argument
 66 	return imx_scu_call_rpc(ipc, &msg, true);  in imx_sc_misc_set_control()
 73  * @param[in]     ipc         IPC handle
 81 int imx_sc_misc_get_control(struct imx_sc_ipc *ipc, u32 resource,  in imx_sc_misc_get_control()  argument
 97 	ret = imx_scu_call_rpc(ipc, &msg, true);  in imx_sc_misc_get_control()
 112  * @param[in]     ipc         IPC handle
 119 int imx_sc_pm_cpu_start(struct imx_sc_ipc *ipc, u32 resource,  in imx_sc_pm_cpu_start()  argument
 135 	return imx_scu_call_rpc(ipc, &msg, true);  in imx_sc_pm_cpu_start()
 
 | 
| H A D | rm.c | 19  * @param[in]     ipc         IPC handle24 bool imx_sc_rm_is_resource_owned(struct imx_sc_ipc *ipc, u16 resource)  in imx_sc_rm_is_resource_owned()  argument
 41 	imx_scu_call_rpc(ipc, &msg, true);  in imx_sc_rm_is_resource_owned()
 62  * @param[in]     ipc         IPC handle
 68 int imx_sc_rm_get_resource_owner(struct imx_sc_ipc *ipc, u16 resource, u8 *pt)  in imx_sc_rm_get_resource_owner()  argument
 81 	ret = imx_scu_call_rpc(ipc, &msg, true);  in imx_sc_rm_get_resource_owner()
 
 | 
| /linux/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);
 
 | 
| /linux/sound/soc/sof/intel/ | 
| H A D | hda-ipc.c | 67 	/* send IPC message to DSP */  in hda_dsp_ipc_send_msg()95 	/* Schedule a delayed work for d0i3 entry after sending non-pm ipc msg */  in hda_dsp_ipc4_schedule_d0i3_work()
 138 	 * Sometimes, there is unexpected reply ipc arriving. The reply  in hda_dsp_ipc_get_reply()
 139 	 * ipc belongs to none of the ipcs sent from driver.  in hda_dsp_ipc_get_reply()
 140 	 * In this case, the driver must ignore the ipc.  in hda_dsp_ipc_get_reply()
 143 		dev_warn(sdev->dev, "unexpected ipc interrupt raised!\n");  in hda_dsp_ipc_get_reply()
 151 		 * memory windows are powered off before sending IPC reply,  in hda_dsp_ipc_get_reply()
 202 				struct sof_ipc4_msg *data = sdev->ipc->msg.reply_data;  in hda_dsp_ipc4_irq_thread()
 216 						    "IPC reply before FW_READY: %#x|%#x\n",  in hda_dsp_ipc4_irq_thread()
 224 			sdev->ipc->msg.rx_data = ¬ification_data;  in hda_dsp_ipc4_irq_thread()
 [all …]
 
 | 
| /linux/Documentation/devicetree/bindings/soc/ti/ | 
| H A D | wkup-m3-ipc.yaml | 4 $id: http://devicetree.org/schemas/soc/ti/wkup-m3-ipc.yaml#7 title: Wakeup M3 IPC device
 18   to boot the wkup_m3, it handles communication with the CM3 using IPC registers
 24   A wkup_m3_ipc device node is used to represent the IPC registers within an
 52       - ti,am3352-wkup-m3-ipc # for AM33xx SoCs
 53       - ti,am4372-wkup-m3-ipc # for AM43xx SoCs
 57       The IPC register address space to communicate with the Wakeup M3 processor
 67       phandle to the wkup_m3 rproc node so the IPC driver can boot it
 71       phandles used by IPC framework to get correct mbox
 98               const: ti,am4372-wkup-m3-ipc
 [all …]
 
 | 
| /linux/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()  local516 	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 …]
 
 |