| /kernel/linux/linux-6.6/drivers/gpu/drm/amd/amdgpu/ |
| D | amdgpu_doorbell_mgr.c | 28 * amdgpu_mm_rdoorbell - read a doorbell dword 31 * @index: doorbell index 33 * Returns the value in the doorbell aperture at the 34 * requested doorbell index (CIK). 41 if (index < adev->doorbell.num_kernel_doorbells) in amdgpu_mm_rdoorbell() 42 return readl(adev->doorbell.cpu_addr + index); in amdgpu_mm_rdoorbell() 44 DRM_ERROR("reading beyond doorbell aperture: 0x%08x!\n", index); in amdgpu_mm_rdoorbell() 49 * amdgpu_mm_wdoorbell - write a doorbell dword 52 * @index: doorbell index 55 * Writes @v to the doorbell aperture at the [all …]
|
| D | amdgpu_doorbell.h | 28 * GPU doorbell structures, functions & helpers 31 /* doorbell mmio */ 46 * KFD can use all the rest in the 2M doorbell bar. 47 * For asic before vega10, doorbell is 32-bit, so the 48 * index/offset is in dword. For vega10 and after, doorbell 92 /* Per engine SDMA doorbell size in dword */ 94 /* Per xcc doorbell size for KIQ/KCQ */ 147 * overlap the doorbell assignment with VCN as they are mutually exclusive 148 * VCN engine's doorbell is 32 bit and two VCN ring share one QWORD 216 * overlap the doorbell assignment with VCN as they are mutually exclusive [all …]
|
| /kernel/linux/linux-5.10/drivers/mailbox/ |
| D | arm_mhu_db.c | 50 * @pchan: Physical channel within which this doorbell resides in 51 * @doorbell: doorbell number pertaining to this channel 56 unsigned int doorbell; member 61 unsigned int doorbell) in mhu_db_mbox_to_channel() argument 69 chan_info->doorbell == doorbell) in mhu_db_mbox_to_channel() 81 writel_relaxed(BIT(chan_info->doorbell), base + INTR_CLR_OFS); in mhu_db_mbox_clear_irq() 98 unsigned int doorbell; in mhu_db_mbox_irq_to_channel() local 109 for (doorbell = 0; bits; doorbell++) { in mhu_db_mbox_irq_to_channel() 110 if (!test_and_clear_bit(doorbell, &bits)) in mhu_db_mbox_irq_to_channel() 113 chan = mhu_db_mbox_to_channel(mbox, pchan, doorbell); in mhu_db_mbox_irq_to_channel() [all …]
|
| D | pcc.c | 12 * specification supports a Doorbell mechanism for the PCC clients 13 * to notify the platform about new data. This Doorbell information 22 * * Client issues mbox_send_message() which rings the PCC doorbell 33 * * Client issues mbox_send_message() which rings the PCC doorbell 67 /* Array of cached virtual address for doorbell registers */ 69 /* Array of cached virtual address for doorbell ack registers */ 71 /* Array of doorbell interrupts */ 94 * use it to read/write to PCC registers such as doorbell register 97 * write from perf critical registers such as PCC doorbell register 314 * here only to ring the channel doorbell. The PCC client [all …]
|
| /kernel/linux/linux-6.6/drivers/mailbox/ |
| D | arm_mhu_db.c | 49 * @pchan: Physical channel within which this doorbell resides in 50 * @doorbell: doorbell number pertaining to this channel 55 unsigned int doorbell; member 60 unsigned int doorbell) in mhu_db_mbox_to_channel() argument 68 chan_info->doorbell == doorbell) in mhu_db_mbox_to_channel() 80 writel_relaxed(BIT(chan_info->doorbell), base + INTR_CLR_OFS); in mhu_db_mbox_clear_irq() 97 unsigned int doorbell; in mhu_db_mbox_irq_to_channel() local 108 for (doorbell = 0; bits; doorbell++) { in mhu_db_mbox_irq_to_channel() 109 if (!test_and_clear_bit(doorbell, &bits)) in mhu_db_mbox_irq_to_channel() 112 chan = mhu_db_mbox_to_channel(mbox, pchan, doorbell); in mhu_db_mbox_irq_to_channel() [all …]
|
| D | arm_mhuv2.c | 10 * protocol modes: data-transfer and doorbell, to be used on those channel 150 DOORBELL = 0, enumerator 224 * @doorbell: Doorbell bit number within the ch_wn_idx window, only relevant 225 * in DOORBELL protocol. 226 * @pending: Flag indicating pending doorbell interrupt, only relevant in 227 * DOORBELL protocol. 235 u32 doorbell; member 259 /* =================== Doorbell transport protocol operations =============== */ 265 writel_relaxed(BIT(priv->doorbell), in mhuv2_doorbell_rx_startup() 275 writel_relaxed(BIT(priv->doorbell), in mhuv2_doorbell_rx_shutdown() [all …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/amd/amdkfd/ |
| D | kfd_doorbell.c | 32 * kernel queues using the first doorbell page reserved for the kernel. 36 * Each device exposes a doorbell aperture, a PCI MMIO aperture that 41 * We map the doorbell address space into user-mode when a process creates 49 /* # of doorbell bytes allocated for each process. */ 61 /* Doorbell calculations for device init. */ 68 * Todo: KFD kernel level operations need only one doorbell for in kfd_doorbell_init() 70 * kernel, reserve and consume a doorbell from existing KGD kernel in kfd_doorbell_init() 71 * doorbell page. in kfd_doorbell_init() 77 DRM_ERROR("Failed to allocate kernel doorbell bitmap\n"); in kfd_doorbell_init() 81 /* Alloc a doorbell page for KFD kernel usages */ in kfd_doorbell_init() [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/amd/amdkfd/ |
| D | kfd_doorbell.c | 31 * kernel queues using the first doorbell page reserved for the kernel. 35 * Each device exposes a doorbell aperture, a PCI MMIO aperture that 40 * We map the doorbell address space into user-mode when a process creates 48 /* # of doorbell bytes allocated for each process. */ 56 /* Doorbell calculations for device init. */ 99 pr_debug("Doorbell initialization:\n"); in kfd_doorbell_init() 100 pr_debug("doorbell base == 0x%08lX\n", in kfd_doorbell_init() 112 pr_debug("doorbell aperture size == 0x%08lX\n", in kfd_doorbell_init() 115 pr_debug("doorbell kernel address == %p\n", kfd->doorbell_kernel_ptr); in kfd_doorbell_init() 133 * For simplicitly we only allow mapping of the entire doorbell in kfd_doorbell_mmap() [all …]
|
| /kernel/linux/linux-6.6/drivers/fpga/ |
| D | intel-m10-bmc-sec-update.c | 262 static void log_error_regs(struct m10bmc_sec *sec, u32 doorbell) in log_error_regs() argument 267 dev_err(sec->dev, "Doorbell: 0x%08x\n", doorbell); in log_error_regs() 276 u32 doorbell; in m10bmc_sec_n3000_rsu_status() local 279 ret = m10bmc_sys_read(sec->m10bmc, csr_map->doorbell, &doorbell); in m10bmc_sec_n3000_rsu_status() 283 return FIELD_GET(DRBL_RSU_STATUS, doorbell); in m10bmc_sec_n3000_rsu_status() 327 ret = m10bmc_sys_read(sec->m10bmc, csr_map->doorbell, doorbell_reg); in m10bmc_sec_progress_status() 344 u32 doorbell; in rsu_check_idle() local 347 ret = m10bmc_sys_read(sec->m10bmc, csr_map->doorbell, &doorbell); in rsu_check_idle() 351 if (!rsu_progress_done(rsu_prog(doorbell))) { in rsu_check_idle() 352 log_error_regs(sec, doorbell); in rsu_check_idle() [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/mailbox/ |
| D | arm,mhu.yaml | 21 The MHU hardware also allows operations in doorbell mode. The MHU drives the 28 interrupt. Each of the 32-bits can be used as "doorbell" to alert the remote 38 - arm,mhu-doorbell 50 - description: Doorbell mode 52 - const: arm,mhu-doorbell 76 Set to 2 in doorbell mode and represents index of the channel and doorbell 121 # Doorbell mode. 129 compatible = "arm,mhu-doorbell", "arm,primecell"; 142 mboxes = <&mhuB 0 0>, /* LP-NonSecure, 1st doorbell */ 143 <&mhuB 0 1>; /* LP-NonSecure, 2nd doorbell */ [all …]
|
| D | arm,mhuv2.yaml | 36 - Doorbell: Each transfer is made up of single bit flag, using any one of the 38 and the entire window shall be used in doorbell protocol. Optionally, data 97 for doorbell protocol, and 1 is reserved for data-transfer protocol. 102 doorbell protocol this field signifies the number of 32-bit channel 103 windows that implement the doorbell protocol. For data-transfer protocol, 119 windows are used in doorbell protocol (64 doorbells), followed by 1, 5 and 135 doorbell, or data-transfer protocol, and the second argument (only 136 relevant in doorbell protocol, should be 0 otherwise) represents the 137 doorbell number within the 32 bit wide channel window. 142 mboxes = <&mhu 0 5>; // Channel Window Group 0, doorbell 5. [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/amd/amdgpu/ |
| D | amdgpu_doorbell.h | 25 * GPU doorbell structures, functions & helpers 28 /* doorbell mmio */ 36 * KFD can use all the rest in the 2M doorbell bar. 37 * For asic before vega10, doorbell is 32-bit, so the 38 * index/offset is in dword. For vega10 and after, doorbell 79 /* Per engine SDMA doorbell size in dword */ 133 * overlap the doorbell assignment with VCN as they are mutually exclusive 134 * VCN engine's doorbell is 32 bit and two VCN ring share one QWORD 190 * overlap the doorbell assignment with VCN as they are mutually exclusive 191 * VCE engine's doorbell is 32 bit and two VCE ring share one QWORD [all …]
|
| /kernel/linux/linux-6.6/drivers/accel/qaic/ |
| D | mhi_controller.c | 33 .doorbell = MHI_DB_BRST_DISABLE, 49 .doorbell = MHI_DB_BRST_DISABLE, 65 .doorbell = MHI_DB_BRST_DISABLE, 81 .doorbell = MHI_DB_BRST_DISABLE, 97 .doorbell = MHI_DB_BRST_DISABLE, 113 .doorbell = MHI_DB_BRST_DISABLE, 129 .doorbell = MHI_DB_BRST_DISABLE, 145 .doorbell = MHI_DB_BRST_DISABLE, 161 .doorbell = MHI_DB_BRST_DISABLE, 177 .doorbell = MHI_DB_BRST_DISABLE, [all …]
|
| /kernel/linux/linux-5.10/include/linux/ |
| D | ntb.h | 358 /* Doorbell operations are mostly required */ in ntb_dev_ops_is_valid() 524 * ntb_db_event() - notify driver context of a doorbell event 528 * Notify the driver context of a doorbell event. If hardware supports 533 * doorbell bits need service, and ntb_db_vector_mask() to determine which of 970 * ntb_db_is_unsafe() - check if it is safe to use hardware doorbell 988 * ntb_db_valid_mask() - get a mask of doorbell bits supported by the ntb 991 * Hardware may support different number or arrangement of doorbell bits. 993 * Return: A mask of doorbell bits supported by the ntb. 1001 * ntb_db_vector_count() - get the number of doorbell interrupt vectors 1006 * Return: The number of doorbell interrupt vectors. [all …]
|
| /kernel/linux/linux-6.6/include/linux/ |
| D | ntb.h | 358 /* Doorbell operations are mostly required */ in ntb_dev_ops_is_valid() 524 * ntb_db_event() - notify driver context of a doorbell event 528 * Notify the driver context of a doorbell event. If hardware supports 533 * doorbell bits need service, and ntb_db_vector_mask() to determine which of 970 * ntb_db_is_unsafe() - check if it is safe to use hardware doorbell 988 * ntb_db_valid_mask() - get a mask of doorbell bits supported by the ntb 991 * Hardware may support different number or arrangement of doorbell bits. 993 * Return: A mask of doorbell bits supported by the ntb. 1001 * ntb_db_vector_count() - get the number of doorbell interrupt vectors 1006 * Return: The number of doorbell interrupt vectors. [all …]
|
| /kernel/linux/linux-5.10/Documentation/driver-api/ |
| D | ntb.rst | 7 fabric. Existing NTB hardware supports a common feature set: doorbell 14 peer. Doorbell registers provide a way for peers to send interrupt events. 138 The Ping Pong test client serves as a demonstration to exercise the doorbell 141 then proceeds to read and write the doorbell scratchpad registers of the NTB. 142 The peers interrupt each other using a bit mask of doorbell bits, which is 143 shifted by one in each round, to test the behavior of multiple doorbell bits 146 round before writing the peer doorbell register. 150 * unsafe - Some hardware has known issues with scratchpad and doorbell 154 * delay\_ms - Specify the delay between receiving a doorbell 155 interrupt event and setting the peer doorbell register for the next [all …]
|
| /kernel/linux/linux-6.6/Documentation/driver-api/ |
| D | ntb.rst | 7 fabric. Existing NTB hardware supports a common feature set: doorbell 14 peer. Doorbell registers provide a way for peers to send interrupt events. 138 The Ping Pong test client serves as a demonstration to exercise the doorbell 141 then proceeds to read and write the doorbell scratchpad registers of the NTB. 142 The peers interrupt each other using a bit mask of doorbell bits, which is 143 shifted by one in each round, to test the behavior of multiple doorbell bits 146 round before writing the peer doorbell register. 150 * unsafe - Some hardware has known issues with scratchpad and doorbell 154 * delay\_ms - Specify the delay between receiving a doorbell 155 interrupt event and setting the peer doorbell register for the next [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/mailbox/ |
| D | arm,mhu.yaml | 21 The MHU hardware also allows operations in doorbell mode. The MHU drives the 28 interrupt. Each of the 32-bits can be used as "doorbell" to alert the remote 38 - arm,mhu-doorbell 50 - description: Doorbell mode 52 - const: arm,mhu-doorbell 76 Set to 2 in doorbell mode and represents index of the channel and doorbell 113 # Doorbell mode. 121 compatible = "arm,mhu-doorbell", "arm,primecell"; 133 mboxes = <&mhuB 1 4>; /* HP-NonSecure, 5th doorbell */
|
| /kernel/linux/linux-5.10/drivers/misc/vmw_vmci/ |
| D | vmci_doorbell.c | 30 * DoorbellEntry describes the a doorbell notification handle allocated by the 80 * with a given doorbell handle. For guest endpoints, the 116 * Find doorbell entry by bitmap index. 225 * Creates a link between the given doorbell handle and the given 244 * Unlinks the given doorbell handle from an index in the bitmap in 290 * Dispatches a doorbell notification to the host context. 298 pr_devel("Notifying an invalid doorbell (handle=0x%x:0x%x)\n", in vmci_dbell_host_context_notify() 306 pr_devel("Notifying an unknown doorbell (handle=0x%x:0x%x)\n", in vmci_dbell_host_context_notify() 393 * vmci_doorbell_create() - Creates a doorbell 397 * @notify_cb: The callback to be ivoked when the doorbell fires. [all …]
|
| /kernel/linux/linux-6.6/drivers/misc/vmw_vmci/ |
| D | vmci_doorbell.c | 30 * DoorbellEntry describes the a doorbell notification handle allocated by the 80 * with a given doorbell handle. For guest endpoints, the 116 * Find doorbell entry by bitmap index. 225 * Creates a link between the given doorbell handle and the given 244 * Unlinks the given doorbell handle from an index in the bitmap in 290 * Dispatches a doorbell notification to the host context. 298 pr_devel("Notifying an invalid doorbell (handle=0x%x:0x%x)\n", in vmci_dbell_host_context_notify() 306 pr_devel("Notifying an unknown doorbell (handle=0x%x:0x%x)\n", in vmci_dbell_host_context_notify() 393 * vmci_doorbell_create() - Creates a doorbell 397 * @notify_cb: The callback to be ivoked when the doorbell fires. [all …]
|
| /kernel/linux/linux-6.6/Documentation/PCI/endpoint/ |
| D | pci-ntb-function.rst | 54 4) Doorbell (DB) Registers 113 CMD_CONFIGURE_DOORBELL (0x1): Command to configure doorbell. Before 117 the outbound ATU such that transactions to Doorbell BAR will be routed 154 Memory Window 1 and Doorbell registers are packed together in the 155 same BAR. The initial portion of the region will have doorbell 178 in order to raise doorbell. EPF NTB can use either MSI or MSI-X to 179 ring doorbell (MSI-X support will be added later). MSI uses same 192 will ensure there is no difference while raising the doorbell. 198 for raising doorbell interrupt. This will be populated by EPF NTB 213 Doorbell Registers: [all …]
|
| /kernel/linux/linux-5.10/drivers/virt/ |
| D | fsl_hypervisor.c | 19 * shutdown doorbell from a manager partition. 313 * Ring a doorbell 323 param.ret = ev_doorbell_send(param.doorbell); in ioctl_doorbell() 459 /* The size of the doorbell event queue. This must be a power of two. */ 482 uint32_t doorbell; /* The doorbell handle */ member 487 * Add a doorbell to all of the doorbell queues 489 static void fsl_hv_queue_doorbell(uint32_t doorbell) in fsl_hv_queue_doorbell() argument 499 dbq->q[dbq->tail] = doorbell; in fsl_hv_queue_doorbell() 516 * We use the same interrupt handler for all doorbells. Whenever a doorbell 518 * doorbell (passed to us as *data) into all of the queues. [all …]
|
| /kernel/linux/linux-6.6/drivers/virt/ |
| D | fsl_hypervisor.c | 19 * shutdown doorbell from a manager partition. 313 * Ring a doorbell 323 param.ret = ev_doorbell_send(param.doorbell); in ioctl_doorbell() 459 /* The size of the doorbell event queue. This must be a power of two. */ 482 uint32_t doorbell; /* The doorbell handle */ member 487 * Add a doorbell to all of the doorbell queues 489 static void fsl_hv_queue_doorbell(uint32_t doorbell) in fsl_hv_queue_doorbell() argument 499 dbq->q[dbq->tail] = doorbell; in fsl_hv_queue_doorbell() 516 * We use the same interrupt handler for all doorbells. Whenever a doorbell 518 * doorbell (passed to us as *data) into all of the queues. [all …]
|
| /kernel/linux/linux-5.10/arch/powerpc/include/asm/ |
| D | dbell.h | 25 PPC_DBELL = 0, /* doorbell */ 26 PPC_DBELL_CRIT = 1, /* critical doorbell */ 27 PPC_G_DBELL = 2, /* guest doorbell */ 28 PPC_G_DBELL_CRIT = 3, /* guest critical doorbell */ 29 PPC_G_DBELL_MC = 4, /* guest mcheck doorbell */ 30 PPC_DBELL_SERVER = 5, /* doorbell on server */ 141 * Attempt to cause a core doorbell if destination is on the same core.
|
| /kernel/linux/linux-6.6/arch/powerpc/include/asm/ |
| D | dbell.h | 25 PPC_DBELL = 0, /* doorbell */ 26 PPC_DBELL_CRIT = 1, /* critical doorbell */ 27 PPC_G_DBELL = 2, /* guest doorbell */ 28 PPC_G_DBELL_CRIT = 3, /* guest critical doorbell */ 29 PPC_G_DBELL_MC = 4, /* guest mcheck doorbell */ 30 PPC_DBELL_SERVER = 5, /* doorbell on server */ 141 * Attempt to cause a core doorbell if destination is on the same core.
|