| /kernel/linux/linux-5.10/sound/soc/intel/common/ |
| D | sst-ipc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Intel SST generic IPC Support 22 #include "sst-dsp.h" 23 #include "sst-dsp-priv.h" 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() 39 list_del(&msg->list); in msg_get_empty() [all …]
|
| /kernel/linux/linux-6.6/sound/soc/intel/common/ |
| D | sst-ipc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Intel SST generic IPC Support 22 #include "sst-dsp.h" 23 #include "sst-dsp-priv.h" 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() 39 list_del(&msg->list); in msg_get_empty() [all …]
|
| /kernel/linux/linux-6.6/drivers/net/wireless/quantenna/qtnfmac/ |
| D | shm_ipc.c | 1 // SPDX-License-Identifier: GPL-2.0+ 2 /* Copyright (c) 2015-2016 Quantenna Communications. All rights reserved. */ 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() 27 size = readw(&shm_reg_hdr->data_len); 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() [all …]
|
| /kernel/linux/linux-5.10/drivers/net/wireless/quantenna/qtnfmac/ |
| D | shm_ipc.c | 1 // SPDX-License-Identifier: GPL-2.0+ 2 /* Copyright (c) 2015-2016 Quantenna Communications. All rights reserved. */ 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() 27 size = readw(&shm_reg_hdr->data_len); 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() [all …]
|
| /kernel/linux/linux-6.6/drivers/accel/ivpu/ |
| D | ivpu_ipc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (C) 2020-2023 Intel Corporation 20 #define IS_KTHREAD() (get_current()->flags & PF_KTHREAD) 23 struct ivpu_ipc_hdr ipc; member 36 ivpu_dbg(vdev, IPC, in ivpu_ipc_msg_dump() 38 c, vpu_addr, ipc_hdr->data_addr, ipc_hdr->data_size, ipc_hdr->channel, in ivpu_ipc_msg_dump() 39 ipc_hdr->src_node, ipc_hdr->dst_node, ipc_hdr->status); in ivpu_ipc_msg_dump() 45 u32 *payload = (u32 *)&jsm_msg->payload; in ivpu_jsm_msg_dump() 49 c, vpu_addr, jsm_msg->type, jsm_msg->status, jsm_msg->request_id, jsm_msg->result, in ivpu_jsm_msg_dump() 57 ipc_hdr->status = IVPU_IPC_HDR_FREE; in ivpu_ipc_rx_mark_free() [all …]
|
| /kernel/linux/linux-6.6/sound/soc/intel/avs/ |
| D | ipc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 // Copyright(c) 2021-2022 Intel Corporation. All rights reserved. 9 #include <linux/io-64-nonatomic-lo-hi.h> 23 struct avs_ipc *ipc = adev->ipc; in avs_dsp_set_d0ix() local 27 if (ipc->in_d0ix == enable) in avs_dsp_set_d0ix() 32 /* Prevent further d0ix attempts on conscious IPC failure. */ in avs_dsp_set_d0ix() 33 if (ret == -AVS_EIPC) 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() [all …]
|
| /kernel/linux/linux-6.6/sound/soc/sof/ |
| D | ipc.c | 1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) 10 // Generic IPC layer that can work over MMIO and SPI/I2C. PHY layer provided 17 #include "sof-priv.h" 18 #include "sof-audio.h" 22 * 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() 44 return -ENODEV; in sof_ipc_send_msg() 47 * The spin-lock is needed to protect message objects against other in sof_ipc_send_msg() [all …]
|
| /kernel/linux/linux-5.10/sound/soc/intel/catpt/ |
| D | ipc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 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 [all …]
|
| /kernel/linux/linux-6.6/sound/soc/intel/catpt/ |
| D | ipc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 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 [all …]
|
| /kernel/linux/linux-5.10/sound/soc/intel/skylake/ |
| D | skl-sst-ipc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * skl-sst-ipc.c - Intel skl IPC Support 5 * Copyright (C) 2014-15, Intel Corporation. 9 #include "../common/sst-dsp.h" 10 #include "../common/sst-dsp-priv.h" 12 #include "skl-sst-dsp.h" 13 #include "skl-sst-ipc.h" 19 /* Global Message - Generic */ 24 /* Global Message - Reply */ 26 #define IPC_GLB_REPLY_STATUS_MASK ((0x1 << IPC_GLB_REPLY_STATUS_SHIFT) - 1) [all …]
|
| D | skl-sst-ipc.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * Intel SKL IPC Support 5 * Copyright (C) 2014-15, Intel Corporation. 12 #include "../common/sst-ipc.h" 13 #include "skl-sst-dsp.h" 49 * @non_streaming: Count of usecases that can attempt non-streaming D0i3 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, [all …]
|
| /kernel/linux/linux-6.6/sound/soc/intel/skylake/ |
| D | skl-sst-ipc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * skl-sst-ipc.c - Intel skl IPC Support 5 * Copyright (C) 2014-15, Intel Corporation. 9 #include "../common/sst-dsp.h" 10 #include "../common/sst-dsp-priv.h" 12 #include "skl-sst-dsp.h" 13 #include "skl-sst-ipc.h" 19 /* Global Message - Generic */ 24 /* Global Message - Reply */ 26 #define IPC_GLB_REPLY_STATUS_MASK ((0x1 << IPC_GLB_REPLY_STATUS_SHIFT) - 1) [all …]
|
| D | skl-sst-ipc.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * Intel SKL IPC Support 5 * Copyright (C) 2014-15, Intel Corporation. 12 #include "../common/sst-ipc.h" 13 #include "skl-sst-dsp.h" 49 * @non_streaming: Count of usecases that can attempt non-streaming D0i3 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, [all …]
|
| /kernel/linux/linux-6.6/ipc/ |
| D | util.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * linux/ipc/util.c 6 * Sep 1997 - Call suser() last after "normal" permission checks so we 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 16 * Jun 2006 - namespaces ssupport 20 * General sysv ipc locking scheme: 22 * obtain the ipc object (kern_ipc_perm) by looking up the id in an idr [all …]
|
| /kernel/linux/linux-5.10/ipc/ |
| D | util.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * linux/ipc/util.c 6 * Sep 1997 - Call suser() last after "normal" permission checks so we 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 16 * Jun 2006 - namespaces ssupport 20 * General sysv ipc locking scheme: 22 * obtain the ipc object (kern_ipc_perm) by looking up the id in an idr [all …]
|
| /kernel/linux/linux-6.6/drivers/platform/x86/ |
| D | intel_scu_ipc.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Driver for the Intel SCU IPC mechanism 5 * (C) Copyright 2008-2010,2015 Intel Corporation 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) 28 /* IPC defines the following message types */ 34 #define IPC_CMD_PCNTRL_M 2 /* Register read-modify-write */ 37 * IPC register summary [all …]
|
| /kernel/linux/linux-5.10/drivers/platform/x86/ |
| D | intel_scu_ipc.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Driver for the Intel SCU IPC mechanism 5 * (C) Copyright 2008-2010,2015 Intel Corporation 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) 28 /* IPC defines the following message types */ 34 #define IPC_CMD_PCNTRL_M 2 /* Register read-modify-write */ 37 * IPC register summary [all …]
|
| /kernel/linux/linux-5.10/sound/soc/sof/ |
| D | ipc.c | 1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) 10 // Generic IPC layer that can work over MMIO and SPI/I2C. PHY layer provided 17 #include "sof-priv.h" 18 #include "sof-audio.h" 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() [all …]
|
| /kernel/linux/linux-6.6/include/linux/firmware/imx/ |
| D | dsp.h | 1 /* SPDX-License-Identifier: GPL-2.0+ */ 5 * 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); 31 /* Host <-> DSP communication uses 2 txdb and 2 rxdb channels */ 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() [all …]
|
| D | ipc.h | 1 /* SPDX-License-Identifier: GPL-2.0+ */ 5 * Header file for the IPC implementation. 39 * This is an function to send an RPC message over an IPC channel. 40 * It is called by client-side SCFW API function shims. 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 [all …]
|
| /kernel/linux/linux-5.10/include/linux/firmware/imx/ |
| D | dsp.h | 1 /* SPDX-License-Identifier: GPL-2.0+ */ 5 * 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); 31 /* Host <-> DSP communication uses 2 txdb and 2 rxdb channels */ 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 [all …]
|
| /kernel/linux/linux-5.10/drivers/media/platform/sti/delta/ |
| D | delta-ipc.c | 1 // SPDX-License-Identifier: GPL-2.0 10 #include "delta-ipc.h" 11 #include "delta-mem.h" 38 #define msg_to_ctx(msg) ((struct delta_ipc_ctx *)(msg)->header.host_hdl) 39 #define msg_to_copro_hdl(msg) ((msg)->header.copro_hdl) 43 return (ctx->ipc_buf->paddr + (vaddr - ctx->ipc_buf->vaddr)); in to_paddr() 49 return ((data >= ctx->ipc_buf->vaddr) && in is_valid_data() 50 ((data + size) <= (ctx->ipc_buf->vaddr + ctx->ipc_buf->size))); in is_valid_data() 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 [all …]
|
| /kernel/linux/linux-6.6/drivers/media/platform/st/sti/delta/ |
| D | delta-ipc.c | 1 // SPDX-License-Identifier: GPL-2.0 10 #include "delta-ipc.h" 11 #include "delta-mem.h" 38 #define msg_to_ctx(msg) ((struct delta_ipc_ctx *)(msg)->header.host_hdl) 39 #define msg_to_copro_hdl(msg) ((msg)->header.copro_hdl) 43 return (ctx->ipc_buf->paddr + (vaddr - ctx->ipc_buf->vaddr)); in to_paddr() 49 return ((data >= ctx->ipc_buf->vaddr) && in is_valid_data() 50 ((data + size) <= (ctx->ipc_buf->vaddr + ctx->ipc_buf->size))); in is_valid_data() 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 [all …]
|
| /kernel/linux/linux-6.6/drivers/firmware/ |
| D | mtk-adsp-ipc.c | 1 // SPDX-License-Identifier: GPL-2.0 4 * Author: Allen-KH Cheng <allen-kh.cheng@mediatek.com> 7 #include <linux/firmware/mediatek/mtk-adsp-ipc.h> 17 * mtk_adsp_ipc_send - send ipc cmd to MTK ADSP 19 * @ipc: ADSP IPC handle 21 * @msg: IPC cmd (reply or request) 26 int mtk_adsp_ipc_send(struct mtk_adsp_ipc *ipc, unsigned int idx, uint32_t msg) in mtk_adsp_ipc_send() argument 32 return -EINVAL; in mtk_adsp_ipc_send() 34 adsp_chan = &ipc->chans[idx]; in mtk_adsp_ipc_send() 35 ret = mbox_send_message(adsp_chan->ch, &msg); in mtk_adsp_ipc_send() [all …]
|
| /kernel/linux/linux-5.10/net/qrtr/ |
| D | af_qrtr.c | 1 // SPDX-License-Identifier: GPL-2.0-only 20 /* auto-bind range */ 27 * struct qrtr_hdr_v1 - (I|R)PCrouter packet header version 1 32 * @confirm_rx: boolean; whether a resume-tx packet should be send in reply 49 * struct qrtr_hdr_v2 - (I|R)PCrouter packet header later versions 114 * struct qrtr_node - endpoint node 138 * struct qrtr_tx_flow - tx flow control 159 static void qrtr_port_put(struct qrtr_sock *ipc); 175 if (node->nid != QRTR_EP_NID_AUTO) in __qrtr_node_release() 176 radix_tree_delete(&qrtr_nodes, node->nid); in __qrtr_node_release() [all …]
|