/linux-6.12.1/drivers/gpu/drm/amd/amdgpu/ |
D | amdgpu_doorbell_mgr.c | 41 if (index < adev->doorbell.num_kernel_doorbells) in amdgpu_mm_rdoorbell() 42 return readl(adev->doorbell.cpu_addr + index); in amdgpu_mm_rdoorbell() 63 if (index < adev->doorbell.num_kernel_doorbells) in amdgpu_mm_wdoorbell() 64 writel(v, adev->doorbell.cpu_addr + index); in amdgpu_mm_wdoorbell() 83 if (index < adev->doorbell.num_kernel_doorbells) in amdgpu_mm_rdoorbell64() 84 return atomic64_read((atomic64_t *)(adev->doorbell.cpu_addr + index)); in amdgpu_mm_rdoorbell64() 105 if (index < adev->doorbell.num_kernel_doorbells) in amdgpu_mm_wdoorbell64() 106 atomic64_set((atomic64_t *)(adev->doorbell.cpu_addr + index), v); in amdgpu_mm_wdoorbell64() 151 if (adev->doorbell.num_kernel_doorbells == 0) in amdgpu_doorbell_create_kernel_doorbells() 155 size = ALIGN(adev->doorbell.num_kernel_doorbells * sizeof(u32), PAGE_SIZE); in amdgpu_doorbell_create_kernel_doorbells() [all …]
|
D | vpe_v6_1.c | 210 uint32_t doorbell, doorbell_offset; in vpe_v6_1_ring_start() local 254 doorbell = RREG32(vpe_get_reg_offset(vpe, i, regVPEC_QUEUE0_DOORBELL)); in vpe_v6_1_ring_start() 255 doorbell = REG_SET_FIELD(doorbell, VPEC_QUEUE0_DOORBELL, ENABLE, ring->use_doorbell ? 1 : 0); in vpe_v6_1_ring_start() 256 WREG32(vpe_get_reg_offset(vpe, i, regVPEC_QUEUE0_DOORBELL), doorbell); in vpe_v6_1_ring_start()
|
/linux-6.12.1/drivers/mailbox/ |
D | arm_mhu_db.c | 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() 117 pchan, doorbell); in mhu_db_mbox_irq_to_channel() 142 if (readl_relaxed(base + INTR_STAT_OFS) & BIT(chan_info->doorbell)) in mhu_db_last_tx_done() [all …]
|
D | arm_mhuv3.c | 290 u32 doorbell; member 399 writel_relaxed(BIT(priv->doorbell), &mhu->mbx->dbcw[priv->ch_idx].msk_clr); in mhuv3_doorbell_rx_startup() 410 writel_relaxed(BIT(priv->doorbell), &mhu->mbx->dbcw[priv->ch_idx].msk_set); in mhuv3_doorbell_rx_shutdown() 418 writel_relaxed(BIT(priv->doorbell), &mhu->mbx->dbcw[priv->ch_idx].clr); in mhuv3_doorbell_rx_complete() 428 BIT(priv->doorbell)); in mhuv3_doorbell_last_tx_done() 435 e->pending_db[priv->ch_idx] &= ~BIT(priv->doorbell); in mhuv3_doorbell_last_tx_done() 450 if (e->pending_db[priv->ch_idx] & BIT(priv->doorbell)) in mhuv3_doorbell_send_data() 453 e->pending_db[priv->ch_idx] |= BIT(priv->doorbell); in mhuv3_doorbell_send_data() 456 writel_relaxed(BIT(priv->doorbell), &mhu->pbx->dbcw[priv->ch_idx].set); in mhuv3_doorbell_send_data() 556 unsigned int doorbell) in mhuv3_dbe_mbox_of_xlate() argument [all …]
|
D | arm_mhuv2.c | 235 u32 doorbell; member 265 writel_relaxed(BIT(priv->doorbell), in mhuv2_doorbell_rx_startup() 275 writel_relaxed(BIT(priv->doorbell), in mhuv2_doorbell_rx_shutdown() 283 writel_relaxed(BIT(priv->doorbell), in mhuv2_doorbell_read_data() 294 BIT(priv->doorbell)); in mhuv2_doorbell_last_tx_done() 306 writel_relaxed(BIT(priv->doorbell), in mhuv2_doorbell_send_data() 797 int channel = 0, i, offset, doorbell, protocol, windows; in mhuv2_mbox_of_xlate() local 803 doorbell = pa->args[1]; in mhuv2_mbox_of_xlate() 804 if (doorbell >= MHUV2_STAT_BITS) in mhuv2_mbox_of_xlate() 813 return &chans[channel + MHUV2_STAT_BITS * offset + doorbell]; in mhuv2_mbox_of_xlate() [all …]
|
/linux-6.12.1/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 …]
|
/linux-6.12.1/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 …]
|
/linux-6.12.1/drivers/scsi/esas2r/ |
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 …]
|
D | esas2r_init.c | 939 u32 doorbell; in esas2r_check_adapter() local 965 doorbell = esas2r_read_register_dword(a, MU_DOORBELL_OUT); in esas2r_check_adapter() 966 if (doorbell == 0xFFFFFFFF) { in esas2r_check_adapter() 974 } else if (doorbell & DRBL_FORCE_INT) { in esas2r_check_adapter() 975 u32 ver = (doorbell & DRBL_FW_VER_MSK); in esas2r_check_adapter() 982 doorbell); in esas2r_check_adapter() 1017 doorbell = esas2r_read_register_dword(a, MU_DOORBELL_OUT); in esas2r_check_adapter() 1018 if (doorbell & DRBL_MSG_IFC_DOWN) { in esas2r_check_adapter() 1020 doorbell); in esas2r_check_adapter() 1106 doorbell = esas2r_read_register_dword(a, MU_DOORBELL_OUT); in esas2r_check_adapter() [all …]
|
/linux-6.12.1/drivers/gpu/drm/radeon/ |
D | radeon_device.c | 341 rdev->doorbell.base = pci_resource_start(rdev->pdev, 2); in radeon_doorbell_init() 342 rdev->doorbell.size = pci_resource_len(rdev->pdev, 2); in radeon_doorbell_init() 344 rdev->doorbell.num_doorbells = min_t(u32, rdev->doorbell.size / sizeof(u32), RADEON_MAX_DOORBELLS); in radeon_doorbell_init() 345 if (rdev->doorbell.num_doorbells == 0) in radeon_doorbell_init() 348 rdev->doorbell.ptr = ioremap(rdev->doorbell.base, rdev->doorbell.num_doorbells * sizeof(u32)); in radeon_doorbell_init() 349 if (rdev->doorbell.ptr == NULL) { in radeon_doorbell_init() 352 DRM_INFO("doorbell mmio base: 0x%08X\n", (uint32_t)rdev->doorbell.base); in radeon_doorbell_init() 353 DRM_INFO("doorbell mmio size: %u\n", (unsigned)rdev->doorbell.size); in radeon_doorbell_init() 355 memset(&rdev->doorbell.used, 0, sizeof(rdev->doorbell.used)); in radeon_doorbell_init() 369 iounmap(rdev->doorbell.ptr); in radeon_doorbell_fini() [all …]
|
/linux-6.12.1/drivers/cpufreq/ |
D | pcc-cpufreq.c | 98 static struct acpi_generic_address doorbell; variable 124 acpi_read(&doorbell_value, &doorbell); in pcc_cmd() 126 &doorbell); in pcc_cmd() 488 doorbell.space_id = reg_resource->space_id; in pcc_cpufreq_evaluate() 489 doorbell.bit_width = reg_resource->bit_width; in pcc_cpufreq_evaluate() 490 doorbell.bit_offset = reg_resource->bit_offset; in pcc_cpufreq_evaluate() 491 doorbell.access_width = 4; in pcc_cpufreq_evaluate() 492 doorbell.address = reg_resource->address; in pcc_cpufreq_evaluate() 496 doorbell.space_id, doorbell.bit_width, doorbell.bit_offset, in pcc_cpufreq_evaluate() 497 doorbell.access_width, reg_resource->address); in pcc_cpufreq_evaluate()
|
/linux-6.12.1/include/linux/mlx4/ |
D | cq.h | 151 __be32 doorbell[2]; in mlx4_cq_arm() local 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()
|
/linux-6.12.1/Documentation/driver-api/ |
D | ntb.rst | 7 fabric. Existing NTB hardware supports a common feature set: doorbell 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 157 * init\_db - Specify the doorbell bits to start new series of rounds. A new [all …]
|
/linux-6.12.1/include/linux/mlx5/ |
D | cq.h | 156 __be32 doorbell[2]; in mlx5_cq_arm() local 170 doorbell[0] = cpu_to_be32(sn << 28 | cmd | ci); in mlx5_cq_arm() 171 doorbell[1] = cpu_to_be32(cq->cqn); in mlx5_cq_arm() 173 mlx5_write64(doorbell, uar_page + MLX5_CQ_DOORBELL); in mlx5_cq_arm()
|
/linux-6.12.1/drivers/infiniband/hw/mana/ |
D | cq.c | 19 u32 doorbell; in mana_ib_create_cq() local 53 doorbell = mana_ucontext->doorbell; in mana_ib_create_cq() 56 err = mana_ib_gd_create_cq(mdev, cq, doorbell); in mana_ib_create_cq()
|
/linux-6.12.1/arch/mips/include/asm/octeon/ |
D | cvmx-pko-defs.h | 797 uint64_t doorbell:20; member 809 uint64_t doorbell:20; 817 uint64_t doorbell:20; member 831 uint64_t doorbell:20; 843 uint64_t doorbell:20; member 857 uint64_t doorbell:20; 869 uint64_t doorbell:20; member 883 uint64_t doorbell:20; 906 uint64_t doorbell:20; member 916 uint64_t doorbell:20; [all …]
|
D | cvmx-pko.h | 120 uint64_t doorbell; member 606 status->doorbell = debug9.cn38xx.doorbell; in cvmx_pko_get_port_status() 612 status->doorbell = debug8.cn50xx.doorbell; in cvmx_pko_get_port_status()
|
/linux-6.12.1/drivers/usb/host/ |
D | xhci-trace.h | 548 TP_PROTO(u32 slot, u32 doorbell), 549 TP_ARGS(slot, doorbell), 552 __field(u32, doorbell) 556 __entry->doorbell = doorbell; 559 xhci_decode_doorbell(__get_buf(XHCI_MSG_MAX), __entry->slot, __entry->doorbell) 564 TP_PROTO(u32 slot, u32 doorbell), 565 TP_ARGS(slot, doorbell) 569 TP_PROTO(u32 slot, u32 doorbell), 570 TP_ARGS(slot, doorbell)
|
/linux-6.12.1/Documentation/PCI/endpoint/ |
D | pci-ntb-function.rst | 113 CMD_CONFIGURE_DOORBELL (0x1): Command to configure doorbell. Before 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 228 scratchpad, doorbell, one or more memory windows) to be modeled to achieve 335 Above diagram shows how the doorbell and memory window 1 is mapped so that 336 HOST1 can raise doorbell interrupt on HOST2 and also how HOST1 can access 337 buffers exposed by HOST2 using memory window1 (MW1). Here doorbell and [all …]
|
/linux-6.12.1/Documentation/devicetree/bindings/powerpc/fsl/ |
D | srio-rmu.txt | 23 and doorbell units. 33 (msg-unit, doorbell, port-write). 54 and doorbell units. 84 and doorbell units. 114 and doorbell units. 151 doorbell-unit@400 {
|
/linux-6.12.1/drivers/irqchip/ |
D | irq-loongson-pch-msi.c | 25 phys_addr_t doorbell; member 66 msg->address_hi = upper_32_bits(priv->doorbell); in pch_msi_compose_msi_msg() 67 msg->address_lo = lower_32_bits(priv->doorbell); in pch_msi_compose_msi_msg() 190 priv->doorbell = msg_address; in pch_msi_init()
|
/linux-6.12.1/drivers/ufs/core/ |
D | ufs_trace.h | 272 unsigned int tag, u32 doorbell, u32 hwq_id, int transfer_len, 275 TP_ARGS(sdev, str_t, tag, doorbell, hwq_id, transfer_len, intr, lba, 282 __field(u32, doorbell) 295 __entry->doorbell = doorbell; 308 __entry->doorbell, __entry->transfer_len, __entry->intr,
|
/linux-6.12.1/include/linux/mfd/ |
D | intel-m10-bmc.h | 99 #define rsu_prog(doorbell) FIELD_GET(DRBL_RSU_PROGRESS, doorbell) argument 196 unsigned int doorbell; member
|
/linux-6.12.1/drivers/virt/ |
D | fsl_hypervisor.c | 323 param.ret = ev_doorbell_send(param.doorbell); in ioctl_doorbell() 482 uint32_t doorbell; /* The doorbell handle */ member 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() 557 fsl_hv_queue_doorbell(dbisr->doorbell); in fsl_hv_state_change_isr() 853 dbisr->doorbell = be32_to_cpup(handle); in fsl_hypervisor_init() 892 dbisr->doorbell); in fsl_hypervisor_init()
|
/linux-6.12.1/drivers/net/wireless/ath/ath11k/ |
D | mhi.c | 33 .doorbell = MHI_DB_BRST_DISABLE, 47 .doorbell = MHI_DB_BRST_DISABLE, 98 .doorbell = MHI_DB_BRST_DISABLE, 112 .doorbell = MHI_DB_BRST_DISABLE,
|