| /kernel/linux/linux-5.10/drivers/remoteproc/ |
| D | mtk_scp_ipi.c | 1 // SPDX-License-Identifier: GPL-2.0 17 * scp_ipi_register() - register an ipi function 20 * @id: IPI ID 21 * @handler: IPI handler 22 * @priv: private data for IPI handler 24 * Register an ipi function to receive ipi interrupt from SCP. 26 * Returns 0 if ipi registers successfully, -error on error. 29 u32 id, in scp_ipi_register() argument 34 return -EPROBE_DEFER; in scp_ipi_register() 36 if (WARN_ON(id >= SCP_IPI_MAX) || WARN_ON(handler == NULL)) in scp_ipi_register() [all …]
|
| /kernel/linux/linux-6.6/drivers/remoteproc/ |
| D | mtk_scp_ipi.c | 1 // SPDX-License-Identifier: GPL-2.0 21 * scp_ipi_register() - register an ipi function 24 * @id: IPI ID 25 * @handler: IPI handler 26 * @priv: private data for IPI handler 28 * Register an ipi function to receive ipi interrupt from SCP. 30 * Return: 0 if ipi registers successfully, -error on error. 33 u32 id, in scp_ipi_register() argument 38 return -EPROBE_DEFER; in scp_ipi_register() 40 if (WARN_ON(id >= SCP_IPI_MAX) || WARN_ON(handler == NULL)) in scp_ipi_register() [all …]
|
| D | xlnx_r5_remoteproc.c | 1 // SPDX-License-Identifier: GPL-2.0 7 #include <dt-bindings/power/xlnx-zynqmp-power.h> 8 #include <linux/dma-mapping.h> 9 #include <linux/firmware/xlnx-zynqmp.h> 12 #include <linux/mailbox/zynqmp-ipi-message.h> 22 /* IPI buffer MAX length */ 30 * reflects possible values of xlnx,cluster-mode dt-property 34 LOCKSTEP_MODE = 1, /* cores execute same code in lockstep,clk-for-clk */ 39 * struct mem_bank_data - Memory Bank description 43 * @pm_domain_id: Power-domains id of memory bank for firmware to turn on/off [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/mailbox/ |
| D | xlnx,zynqmp-ipi-mailbox.txt | 1 Xilinx IPI Mailbox Controller 4 The Xilinx IPI(Inter Processor Interrupt) mailbox controller is to manage 5 messaging between two Xilinx Zynq UltraScale+ MPSoC IPI agents. Each IPI 8 +-------------------------------------+ 9 | Xilinx ZynqMP IPI Controller | 10 +-------------------------------------+ 11 +--------------------------------------------------+ 15 +--------------------------+ | 18 +--------------------------------------------------+ 19 +------------------------------------------+ [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/mailbox/ |
| D | xlnx,zynqmp-ipi-mailbox.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/mailbox/xlnx,zynqmp-ipi-mailbox.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Xilinx IPI(Inter Processor Interrupt) mailbox controller 10 The Xilinx IPI(Inter Processor Interrupt) mailbox controller is to manage 11 messaging between two Xilinx Zynq UltraScale+ MPSoC IPI agents. Each IPI 14 +-------------------------------------+ 15 | Xilinx ZynqMP IPI Controller | 16 +-------------------------------------+ [all …]
|
| /kernel/linux/linux-5.10/arch/mips/kvm/ |
| D | loongson_ipi.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Loongson-3 Virtual IPI interrupt support. 51 static int loongson_vipi_read(struct loongson_kvm_ipi *ipi, in loongson_vipi_read() argument 56 uint32_t id = core + node * 4; in loongson_vipi_read() local 59 struct ipi_state *s = &(ipi->ipistate[id]); in loongson_vipi_read() 61 BUG_ON(offset & (len - 1)); in loongson_vipi_read() 65 *(uint64_t *)val = s->status; in loongson_vipi_read() 69 *(uint64_t *)val = s->en; in loongson_vipi_read() 81 pbuf = (void *)s->buf + (offset - 0x20); in loongson_vipi_read() 96 static int loongson_vipi_write(struct loongson_kvm_ipi *ipi, in loongson_vipi_write() argument [all …]
|
| /kernel/linux/linux-6.6/arch/mips/kvm/ |
| D | loongson_ipi.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Loongson-3 Virtual IPI interrupt support. 51 static int loongson_vipi_read(struct loongson_kvm_ipi *ipi, in loongson_vipi_read() argument 56 uint32_t id = core + node * 4; in loongson_vipi_read() local 59 struct ipi_state *s = &(ipi->ipistate[id]); in loongson_vipi_read() 61 BUG_ON(offset & (len - 1)); in loongson_vipi_read() 65 *(uint64_t *)val = s->status; in loongson_vipi_read() 69 *(uint64_t *)val = s->en; in loongson_vipi_read() 81 pbuf = (void *)s->buf + (offset - 0x20); in loongson_vipi_read() 96 static int loongson_vipi_write(struct loongson_kvm_ipi *ipi, in loongson_vipi_write() argument [all …]
|
| /kernel/linux/linux-5.10/include/linux/rpmsg/ |
| D | mtk_rpmsg.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 15 * struct mtk_rpmsg_info - IPI functions tied to the rpmsg device. 16 * @register_ipi: register IPI handler for an IPI id. 17 * @unregister_ipi: unregister IPI handler for a registered IPI id. 18 * @send_ipi: send IPI to an IPI id. wait is the timeout (in msecs) to wait 20 * @ns_ipi_id: the IPI id used for name service, or -1 if name service isn't 24 int (*register_ipi)(struct platform_device *pdev, u32 id, 26 void (*unregister_ipi)(struct platform_device *pdev, u32 id); 27 int (*send_ipi)(struct platform_device *pdev, u32 id,
|
| /kernel/linux/linux-6.6/include/linux/rpmsg/ |
| D | mtk_rpmsg.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 15 * struct mtk_rpmsg_info - IPI functions tied to the rpmsg device. 16 * @register_ipi: register IPI handler for an IPI id. 17 * @unregister_ipi: unregister IPI handler for a registered IPI id. 18 * @send_ipi: send IPI to an IPI id. wait is the timeout (in msecs) to wait 20 * @ns_ipi_id: the IPI id used for name service, or -1 if name service isn't 24 int (*register_ipi)(struct platform_device *pdev, u32 id, 26 void (*unregister_ipi)(struct platform_device *pdev, u32 id); 27 int (*send_ipi)(struct platform_device *pdev, u32 id,
|
| /kernel/linux/linux-5.10/drivers/mailbox/ |
| D | zynqmp-ipi-mailbox.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Xilinx Inter Processor Interrupt(IPI) Mailbox Driver 8 #include <linux/arm-smccc.h> 15 #include <linux/mailbox/zynqmp-ipi-message.h> 23 /* IPI agent ID any */ 26 /* indicate if ZynqMP IPI mailbox driver uses SMC calls or HVC calls */ 30 /* Default IPI SMC function IDs */ 39 /* IPI SMC Macros */ 49 /* IPI mailbox status */ 54 #define IPI_MB_CHNL_TX 0 /* IPI mailbox TX channel */ [all …]
|
| /kernel/linux/linux-6.6/drivers/mailbox/ |
| D | zynqmp-ipi-mailbox.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Xilinx Inter Processor Interrupt(IPI) Mailbox Driver 8 #include <linux/arm-smccc.h> 15 #include <linux/mailbox/zynqmp-ipi-message.h> 21 /* IPI agent ID any */ 24 /* indicate if ZynqMP IPI mailbox driver uses SMC calls or HVC calls */ 28 /* Default IPI SMC function IDs */ 37 /* IPI SMC Macros */ 47 /* IPI mailbox status */ 52 #define IPI_MB_CHNL_TX 0 /* IPI mailbox TX channel */ [all …]
|
| /kernel/linux/linux-6.6/drivers/media/platform/mediatek/vpu/ |
| D | mtk_vpu.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 4 * Author: Andrew-CT Chen <andrew-ct.chen@mediatek.com> 25 * enum ipi_id - the id of inter-processor interrupt 32 * For other IPI below, AP should send the request 52 * @IPI_MAX: The maximum IPI number 67 * enum rst_id - reset id to register reset function for VPU watchdog timeout 69 * @VPU_RST_ENC: encoder reset id 70 * @VPU_RST_DEC: decoder reset id 71 * @VPU_RST_MDP: MDP (Media Data Path) reset id 72 * @VPU_RST_MAX: maximum reset id [all …]
|
| D | mtk_vpu.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * Author: Andrew-CT Chen <andrew-ct.chen@mediatek.com> 18 #include <linux/dma-mapping.h> 33 /* maximum program/data TCM (Tightly-Coupled Memory) size */ 68 /* vpu inter-processor communication interrupt */ 74 * enum vpu_fw_type - VPU firmware type 86 * struct vpu_mem - VPU extended program/data memory information 98 * struct vpu_regs - VPU TCM and configuration registers 100 * @tcm: the register for VPU Tightly-Coupled Memory 111 * struct vpu_wdt_handler - VPU watchdog reset handler [all …]
|
| /kernel/linux/linux-5.10/drivers/media/platform/mtk-vpu/ |
| D | mtk_vpu.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 4 * Author: Andrew-CT Chen <andrew-ct.chen@mediatek.com> 23 * enum ipi_id - the id of inter-processor interrupt 30 * For other IPI below, AP should send the request 50 * @IPI_MAX: The maximum IPI number 65 * enum rst_id - reset id to register reset function for VPU watchdog timeout 67 * @VPU_RST_ENC: encoder reset id 68 * @VPU_RST_DEC: decoder reset id 69 * @VPU_RST_MDP: MDP (Media Data Path) reset id 70 * @VPU_RST_MAX: maximum reset id [all …]
|
| D | mtk_vpu.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * Author: Andrew-CT Chen <andrew-ct.chen@mediatek.com> 18 #include <linux/dma-mapping.h> 32 /* maximum program/data TCM (Tightly-Coupled Memory) size */ 63 /* vpu inter-processor communication interrupt */ 67 * enum vpu_fw_type - VPU firmware type 79 * struct vpu_mem - VPU extended program/data memory information 91 * struct vpu_regs - VPU TCM and configuration registers 93 * @tcm: the register for VPU Tightly-Coupled Memory 104 * struct vpu_wdt_handler - VPU watchdog reset handler [all …]
|
| /kernel/linux/linux-6.6/tools/testing/selftests/kvm/x86_64/ |
| D | xapic_ipi_test.c | 1 // SPDX-License-Identifier: GPL-2.0 9 * Test that when the APIC is in xAPIC mode, a vCPU can send an IPI to wake 15 * has reentered HLT before sending the next IPI. While the vCPUs are running, 19 * Migration is a command line option. When used on non-numa machines will 20 * exit with error. Test is still usefull on non-numa for testing IPIs. 43 * Vector for IPI from sender vCPU to halting vCPU. 50 * Incremented in the IPI handler. Provides evidence to the sender that the IPI 69 * Record local version register as a cross-check that APIC access 96 data->halter_apic_id = GET_APIC_ID_FIELD(xapic_read_reg(APIC_ID)); in halter_guest_code() 97 data->halter_lvr = xapic_read_reg(APIC_LVR); in halter_guest_code() [all …]
|
| /kernel/linux/linux-5.10/drivers/media/platform/mtk-vcodec/ |
| D | vdec_vpu_if.c | 1 // SPDX-License-Identifier: GPL-2.0 16 (unsigned long)msg->ap_inst_addr; in handle_init_ack_msg() 18 mtk_vcodec_debug(vpu, "+ ap_inst_addr = 0x%llx", msg->ap_inst_addr); in handle_init_ack_msg() 22 vpu->vsi = mtk_vcodec_fw_map_dm_addr(vpu->ctx->dev->fw_handler, in handle_init_ack_msg() 23 msg->vpu_inst_addr); in handle_init_ack_msg() 24 vpu->inst_addr = msg->vpu_inst_addr; in handle_init_ack_msg() 26 mtk_vcodec_debug(vpu, "- vpu_inst_addr = 0x%x", vpu->inst_addr); in handle_init_ack_msg() 30 * vpu_dec_ipi_handler - Handler for VPU ipi message. 32 * @data: ipi message 33 * @len : length of ipi message [all …]
|
| D | vdec_ipi_msg.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 11 * enum vdec_ipi_msgid - message id between AP and VPU 12 * @AP_IPIMSG_XXX : AP to VPU cmd message id 13 * @VPU_IPIMSG_XXX_ACK : VPU ack AP cmd message id 30 * struct vdec_ap_ipi_cmd - generic AP to VPU ipi command format 40 * struct vdec_vpu_ipi_ack - generic VPU to AP ipi command format 52 * struct vdec_ap_ipi_init - for AP_IPIMSG_DEC_INIT 64 * struct vdec_ap_ipi_dec_start - for AP_IPIMSG_DEC_START 81 * struct vdec_vpu_ipi_init_ack - for VPU_IPIMSG_DEC_INIT_ACK
|
| /kernel/linux/linux-5.10/arch/arc/kernel/ |
| D | smp.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 6 * -- Added support for Inter Processor Interrupts 9 * -- Initial Write (Borrowed heavily from ARM) 55 return -EINVAL; in arc_get_cpu_map() 58 return -EINVAL; in arc_get_cpu_map() 65 * "possible-cpus" property in DeviceTree pretend all [0..NR_CPUS-1] exist. 71 if (arc_get_cpu_map("possible-cpus", &cpumask)) { in arc_init_cpu_possible() 72 pr_warn("Failed to get possible-cpus from dtb, pretending all %u cpus exist\n", in arc_init_cpu_possible() 87 * - Initialise the CPU possible map early - this describes the CPUs [all …]
|
| /kernel/linux/linux-6.6/arch/arc/kernel/ |
| D | smp.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 6 * -- Added support for Inter Processor Interrupts 9 * -- Initial Write (Borrowed heavily from ARM) 54 return -EINVAL; in arc_get_cpu_map() 57 return -EINVAL; in arc_get_cpu_map() 64 * "possible-cpus" property in DeviceTree pretend all [0..NR_CPUS-1] exist. 70 if (arc_get_cpu_map("possible-cpus", &cpumask)) { in arc_init_cpu_possible() 71 pr_warn("Failed to get possible-cpus from dtb, pretending all %u cpus exist\n", in arc_init_cpu_possible() 86 * - Initialise the CPU possible map early - this describes the CPUs [all …]
|
| /kernel/linux/linux-6.6/arch/riscv/include/asm/ |
| D | smp.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 28 /* print IPI stats */ 42 /* Enable IPI for CPU hotplug */ 45 /* Disable IPI for CPU hotplug */ 48 /* Check if IPI interrupt numbers are available */ 51 /* Set the IPI interrupt numbers for arch (called by irqchip drivers) */ 66 * Obtains the hart ID of the currently executing task. This relies on 69 #define raw_smp_processor_id() (current_thread_info()->cpu) 87 return -1; in riscv_hartid_to_cpuid()
|
| /kernel/linux/linux-5.10/include/linux/remoteproc/ |
| D | mtk_scp.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 17 * enum ipi_id - the id of inter-processor interrupt 24 * For other IPI below, AP should send the request 26 * @SCP_IPI_MAX: The maximum IPI number 54 int scp_ipi_register(struct mtk_scp *scp, u32 id, scp_ipi_handler_t handler, 56 void scp_ipi_unregister(struct mtk_scp *scp, u32 id); 58 int scp_ipi_send(struct mtk_scp *scp, u32 id, void *buf, unsigned int len,
|
| /kernel/linux/linux-6.6/include/linux/remoteproc/ |
| D | mtk_scp.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 17 * enum ipi_id - the id of inter-processor interrupt 24 * For other IPI below, AP should send the request 26 * @SCP_IPI_MAX: The maximum IPI number 56 int scp_ipi_register(struct mtk_scp *scp, u32 id, scp_ipi_handler_t handler, 58 void scp_ipi_unregister(struct mtk_scp *scp, u32 id); 60 int scp_ipi_send(struct mtk_scp *scp, u32 id, void *buf, unsigned int len,
|
| /kernel/linux/linux-5.10/arch/riscv/include/asm/ |
| D | smp.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 30 /* print IPI stats */ 36 /* Called from C code, this handles an IPI. */ 48 /* Set custom IPI operations */ 51 /* Clear IPI for current CPU */ 58 * Obtains the hart ID of the currently executing task. This relies on 61 #define raw_smp_processor_id() (current_thread_info()->cpu) 81 return -1; in riscv_hartid_to_cpuid()
|
| /kernel/linux/linux-6.6/drivers/media/platform/mediatek/vcodec/decoder/ |
| D | vdec_vpu_if.c | 1 // SPDX-License-Identifier: GPL-2.0 15 (unsigned long)msg->ap_inst_addr; in handle_init_ack_msg() 17 mtk_vdec_debug(vpu->ctx, "+ ap_inst_addr = 0x%llx", msg->ap_inst_addr); in handle_init_ack_msg() 21 vpu->vsi = mtk_vcodec_fw_map_dm_addr(vpu->ctx->dev->fw_handler, in handle_init_ack_msg() 22 msg->vpu_inst_addr); in handle_init_ack_msg() 23 vpu->inst_addr = msg->vpu_inst_addr; in handle_init_ack_msg() 25 mtk_vdec_debug(vpu->ctx, "- vpu_inst_addr = 0x%x", vpu->inst_addr); in handle_init_ack_msg() 28 vpu->fw_abi_version = 0; in handle_init_ack_msg() 30 * Instance ID is only used if ABI version >= 2. Initialize it with in handle_init_ack_msg() 33 vpu->inst_id = 0xdeadbeef; in handle_init_ack_msg() [all …]
|