| /OK3568_Linux_fs/kernel/drivers/mailbox/ |
| H A 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 …]
|
| H A 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 …]
|
| /OK3568_Linux_fs/kernel/drivers/gpu/drm/amd/amdkfd/ |
| H A 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 …]
|
| /OK3568_Linux_fs/kernel/drivers/gpu/drm/amd/amdgpu/ |
| H A 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 …]
|
| H A D | amdgpu_amdkfd.c | 80 * amdgpu_doorbell_get_kfd_info - Report doorbell configuration required to 84 * @aperture_base: output returning doorbell aperture base physical address 85 * @aperture_size: output returning doorbell aperture size in bytes 86 * @start_offset: output returning # of doorbell bytes reserved for amdgpu. 88 * amdgpu and amdkfd share the doorbell aperture. amdgpu sets it up, 90 * amdgpu reserved doorbells are at the start of the doorbell aperture. 101 if (adev->doorbell.size > adev->doorbell.num_doorbells * sizeof(u32)) { in amdgpu_doorbell_get_kfd_info() 102 *aperture_base = adev->doorbell.base; in amdgpu_doorbell_get_kfd_info() 103 *aperture_size = adev->doorbell.size; in amdgpu_doorbell_get_kfd_info() 104 *start_offset = adev->doorbell.num_doorbells * sizeof(u32); in amdgpu_doorbell_get_kfd_info() [all …]
|
| /OK3568_Linux_fs/kernel/include/linux/ |
| H A 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 …]
|
| H A D | rio_drv.h | 234 * rio_send_doorbell - Send a doorbell message to a device 236 * @data: Doorbell message data 238 * Send a doorbell message to a RIO device. The doorbell message 265 * rio_init_dbell_res - Initialize a RIO doorbell resource 267 * @start: start of doorbell range 268 * @end: end of doorbell range 271 * for use as a doorbell resource. It initializes a range of 272 * doorbell messages using the start and end arguments. 350 /* Doorbell management */
|
| /OK3568_Linux_fs/kernel/Documentation/driver-api/ |
| H A 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 …]
|
| /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/mailbox/ |
| H A 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 */
|
| /OK3568_Linux_fs/kernel/drivers/misc/vmw_vmci/ |
| H A 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 …]
|
| /OK3568_Linux_fs/kernel/drivers/virt/ |
| H A 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 …]
|
| /OK3568_Linux_fs/kernel/drivers/scsi/esas2r/ |
| H A D | esas2r_int.c | 48 static void esas2r_doorbell_interrupt(struct esas2r_adapter *a, u32 doorbell); 59 u32 doorbell; in esas2r_polled_interrupt() local 76 doorbell = esas2r_read_register_dword(a, MU_DOORBELL_OUT); in esas2r_polled_interrupt() 77 if (doorbell != 0) in esas2r_polled_interrupt() 78 esas2r_doorbell_interrupt(a, doorbell); in esas2r_polled_interrupt() 107 u32 doorbell; in esas2r_adapter_interrupt() local 118 doorbell = esas2r_read_register_dword(a, MU_DOORBELL_OUT); in esas2r_adapter_interrupt() 119 if (doorbell != 0) in esas2r_adapter_interrupt() 120 esas2r_doorbell_interrupt(a, doorbell); in esas2r_adapter_interrupt() 135 u32 doorbell; in esas2r_msi_interrupt() local [all …]
|
| H A D | esas2r_init.c | 963 u32 doorbell; in esas2r_check_adapter() local 989 doorbell = esas2r_read_register_dword(a, MU_DOORBELL_OUT); in esas2r_check_adapter() 990 if (doorbell == 0xFFFFFFFF) { in esas2r_check_adapter() 998 } else if (doorbell & DRBL_FORCE_INT) { in esas2r_check_adapter() 999 u32 ver = (doorbell & DRBL_FW_VER_MSK); in esas2r_check_adapter() 1006 doorbell); in esas2r_check_adapter() 1041 doorbell = esas2r_read_register_dword(a, MU_DOORBELL_OUT); in esas2r_check_adapter() 1042 if (doorbell & DRBL_MSG_IFC_DOWN) { in esas2r_check_adapter() 1044 doorbell); in esas2r_check_adapter() 1130 doorbell = esas2r_read_register_dword(a, MU_DOORBELL_OUT); in esas2r_check_adapter() [all …]
|
| /OK3568_Linux_fs/kernel/drivers/gpu/drm/radeon/ |
| H A D | radeon_device.c | 327 * GPU doorbell aperture helpers function. 330 * radeon_doorbell_init - Init doorbell driver information. 334 * Init doorbell driver information (CIK) 339 /* doorbell bar mapping */ in radeon_doorbell_init() 340 rdev->doorbell.base = pci_resource_start(rdev->pdev, 2); in radeon_doorbell_init() 341 rdev->doorbell.size = pci_resource_len(rdev->pdev, 2); in radeon_doorbell_init() 343 rdev->doorbell.num_doorbells = min_t(u32, rdev->doorbell.size / sizeof(u32), RADEON_MAX_DOORBELLS); in radeon_doorbell_init() 344 if (rdev->doorbell.num_doorbells == 0) in radeon_doorbell_init() 347 rdev->doorbell.ptr = ioremap(rdev->doorbell.base, rdev->doorbell.num_doorbells * sizeof(u32)); in radeon_doorbell_init() 348 if (rdev->doorbell.ptr == NULL) { in radeon_doorbell_init() [all …]
|
| /OK3568_Linux_fs/kernel/arch/powerpc/include/asm/ |
| H A 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.
|
| /OK3568_Linux_fs/kernel/include/linux/mlx4/ |
| H A D | cq.h | 40 #include <linux/mlx4/doorbell.h> 151 __be32 doorbell[2]; in mlx4_cq_arm() local 161 * Make sure that the doorbell record in host memory is in mlx4_cq_arm() 162 * written before ringing the doorbell via PCI MMIO. in mlx4_cq_arm() 166 doorbell[0] = cpu_to_be32(sn << 28 | cmd | cq->cqn); in mlx4_cq_arm() 167 doorbell[1] = cpu_to_be32(ci); in mlx4_cq_arm() 169 mlx4_write64(doorbell, uar_page + MLX4_CQ_DOORBELL, doorbell_lock); in mlx4_cq_arm()
|
| /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/powerpc/fsl/ |
| H A D | srio-rmu.txt | 23 and doorbell units. 33 (msg-unit, doorbell, port-write). 54 and doorbell units. 68 Doorbell Unit: 84 and doorbell units. 114 and doorbell units. 151 doorbell-unit@400 {
|
| /OK3568_Linux_fs/kernel/include/uapi/rdma/ |
| H A D | qedr-abi.h | 141 /* address of SQ doorbell recovery user entry */ 144 /* address of RQ doorbell recovery user entry */ 166 /* doorbell recovery entry allocated and populated by userspace doorbelling 167 * entities and mapped to kernel. Kernel uses this to register doorbell 168 * information with doorbell drop recovery mechanism. 171 __aligned_u64 db_data; /* doorbell data */
|
| /OK3568_Linux_fs/kernel/drivers/gpu/arm/bifrost/csf/ |
| H A D | mali_kbase_csf.h | 39 /* Indicate invalid user doorbell number for a GPU command queue 137 * command queue, and also release the hardware doorbell page, that were mapped 158 * firmware address space. Also reserves a hardware doorbell page for the queue. 318 * doorbell page. 324 * HW doorbell page after the suspend of queue group. 332 * to update the userspace mapping of HW doorbell page 364 * kbase_csf_ring_csg_doorbell - ring the doorbell for a CSG interface. 374 * kbase_csf_ring_csg_slots_doorbell - ring the doorbell for a set of CSG 386 * kbase_csf_ring_cs_kernel_doorbell - ring the kernel doorbell for a CSI 393 * @ring_csg_doorbell: Flag to indicate if the CSG doorbell needs to be rung [all …]
|
| /OK3568_Linux_fs/kernel/drivers/cpufreq/ |
| H A D | pcc-cpufreq.c | 97 static struct acpi_generic_address doorbell; variable 123 acpi_read(&doorbell_value, &doorbell); in pcc_cmd() 125 &doorbell); in pcc_cmd() 487 doorbell.space_id = reg_resource->space_id; in pcc_cpufreq_probe() 488 doorbell.bit_width = reg_resource->bit_width; in pcc_cpufreq_probe() 489 doorbell.bit_offset = reg_resource->bit_offset; in pcc_cpufreq_probe() 490 doorbell.access_width = 4; in pcc_cpufreq_probe() 491 doorbell.address = reg_resource->address; in pcc_cpufreq_probe() 493 pr_debug("probe: doorbell: space_id is %d, bit_width is %d, " in pcc_cpufreq_probe() 495 doorbell.space_id, doorbell.bit_width, doorbell.bit_offset, in pcc_cpufreq_probe() [all …]
|
| /OK3568_Linux_fs/kernel/include/linux/mlx5/ |
| H A D | cq.h | 155 __be32 doorbell[2]; in mlx5_cq_arm() local 164 /* Make sure that the doorbell record in host memory is in mlx5_cq_arm() 165 * written before ringing the doorbell via PCI MMIO. in mlx5_cq_arm() 169 doorbell[0] = cpu_to_be32(sn << 28 | cmd | ci); in mlx5_cq_arm() 170 doorbell[1] = cpu_to_be32(cq->cqn); in mlx5_cq_arm() 172 mlx5_write64(doorbell, uar_page + MLX5_CQ_DOORBELL); in mlx5_cq_arm()
|
| /OK3568_Linux_fs/prebuilts/gcc/linux-x86/arm/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/libc/usr/include/linux/ |
| H A D | fsl_hypervisor.h | 152 * struct fsl_hv_ioctl_doorbell - ring a doorbell 154 * @doorbell: the handle of the doorbell to ring doorbell 160 __u32 doorbell; member 208 /* Ring a doorbell */
|
| /OK3568_Linux_fs/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/aarch64-none-linux-gnu/libc/usr/include/linux/ |
| H A D | fsl_hypervisor.h | 152 * struct fsl_hv_ioctl_doorbell - ring a doorbell 154 * @doorbell: the handle of the doorbell to ring doorbell 160 __u32 doorbell; member 208 /* Ring a doorbell */
|
| /OK3568_Linux_fs/kernel/include/uapi/linux/ |
| H A D | fsl_hypervisor.h | 152 * struct fsl_hv_ioctl_doorbell - ring a doorbell 154 * @doorbell: the handle of the doorbell to ring doorbell 160 __u32 doorbell; member 208 /* Ring a doorbell */
|
| /OK3568_Linux_fs/kernel/arch/arm64/kvm/vgic/ |
| H A D | vgic-v4.c | 75 * Finally, the doorbell handling: Each vcpu is allocated an interrupt 77 * not running. Each time the vcpu gets blocked, the doorbell 79 * reason), the doorbell interrupt is disabled. 94 * The v4.1 doorbell can fire concurrently with the vPE being in vgic_v4_doorbell_handler() 253 * Don't automatically enable the doorbell, as we're in vgic_v4_init() 256 * doorbell could kick us out of the guest too in vgic_v4_init() 259 * On GICv4.1, the doorbell is managed in HW and must in vgic_v4_init() 347 * doorbell interrupt that would still be pending. This is a in vgic_v4_load() 395 * doorbell for any of our vITSs). in kvm_vgic_v4_set_forwarding() 450 * doorbell for any of our vITSs). in kvm_vgic_v4_unset_forwarding()
|