Home
last modified time | relevance | path

Searched refs:doorbell (Results 1 – 25 of 162) sorted by relevance

1234567

/Linux-v6.6/drivers/gpu/drm/amd/amdgpu/
Damdgpu_doorbell_mgr.c41 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()
146 if (adev->doorbell.num_kernel_doorbells == 0) in amdgpu_doorbell_create_kernel_doorbells()
150 size = ALIGN(adev->doorbell.num_kernel_doorbells * sizeof(u32), PAGE_SIZE); in amdgpu_doorbell_create_kernel_doorbells()
[all …]
/Linux-v6.6/drivers/mailbox/
Darm_mhu_db.c55 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 …]
Darm_mhuv2.c235 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()
796 int channel = 0, i, offset, doorbell, protocol, windows; in mhuv2_mbox_of_xlate() local
802 doorbell = pa->args[1]; in mhuv2_mbox_of_xlate()
803 if (doorbell >= MHUV2_STAT_BITS) in mhuv2_mbox_of_xlate()
812 return &chans[channel + MHUV2_STAT_BITS * offset + doorbell]; in mhuv2_mbox_of_xlate()
[all …]
/Linux-v6.6/drivers/accel/qaic/
Dmhi_controller.c33 .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-v6.6/drivers/fpga/
Dintel-m10-bmc-sec-update.c262 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-v6.6/drivers/scsi/esas2r/
Desas2r_int.c48 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 …]
Desas2r_init.c940 u32 doorbell; in esas2r_check_adapter() local
966 doorbell = esas2r_read_register_dword(a, MU_DOORBELL_OUT); in esas2r_check_adapter()
967 if (doorbell == 0xFFFFFFFF) { in esas2r_check_adapter()
975 } else if (doorbell & DRBL_FORCE_INT) { in esas2r_check_adapter()
976 u32 ver = (doorbell & DRBL_FW_VER_MSK); in esas2r_check_adapter()
983 doorbell); in esas2r_check_adapter()
1018 doorbell = esas2r_read_register_dword(a, MU_DOORBELL_OUT); in esas2r_check_adapter()
1019 if (doorbell & DRBL_MSG_IFC_DOWN) { in esas2r_check_adapter()
1021 doorbell); in esas2r_check_adapter()
1107 doorbell = esas2r_read_register_dword(a, MU_DOORBELL_OUT); in esas2r_check_adapter()
[all …]
/Linux-v6.6/drivers/gpu/drm/radeon/
Dradeon_device.c341 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-v6.6/drivers/cpufreq/
Dpcc-cpufreq.c98 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-v6.6/include/linux/mlx4/
Dcq.h151 __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-v6.6/Documentation/driver-api/
Dntb.rst7 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-v6.6/drivers/net/wireless/ath/ath11k/
Dmhi.c31 .doorbell = MHI_DB_BRST_DISABLE,
45 .doorbell = MHI_DB_BRST_DISABLE,
59 .doorbell = MHI_DB_BRST_DISABLE,
73 .doorbell = MHI_DB_BRST_DISABLE,
124 .doorbell = MHI_DB_BRST_DISABLE,
138 .doorbell = MHI_DB_BRST_DISABLE,
152 .doorbell = MHI_DB_BRST_DISABLE,
166 .doorbell = MHI_DB_BRST_DISABLE,
/Linux-v6.6/include/linux/mlx5/
Dcq.h155 __be32 doorbell[2]; in mlx5_cq_arm() local
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()
/Linux-v6.6/drivers/net/wireless/ath/ath12k/
Dmhi.c26 .doorbell = MHI_DB_BRST_DISABLE,
40 .doorbell = MHI_DB_BRST_DISABLE,
54 .doorbell = MHI_DB_BRST_DISABLE,
68 .doorbell = MHI_DB_BRST_DISABLE,
119 .doorbell = MHI_DB_BRST_DISABLE,
133 .doorbell = MHI_DB_BRST_DISABLE,
147 .doorbell = MHI_DB_BRST_DISABLE,
161 .doorbell = MHI_DB_BRST_DISABLE,
/Linux-v6.6/arch/mips/include/asm/octeon/
Dcvmx-pko-defs.h797 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 …]
Dcvmx-pko.h120 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-v6.6/drivers/usb/host/
Dxhci-trace.h544 TP_PROTO(u32 slot, u32 doorbell),
545 TP_ARGS(slot, doorbell),
548 __field(u32, doorbell)
552 __entry->doorbell = doorbell;
555 xhci_decode_doorbell(__get_buf(XHCI_MSG_MAX), __entry->slot, __entry->doorbell)
560 TP_PROTO(u32 slot, u32 doorbell),
561 TP_ARGS(slot, doorbell)
565 TP_PROTO(u32 slot, u32 doorbell),
566 TP_ARGS(slot, doorbell)
/Linux-v6.6/Documentation/PCI/endpoint/
Dpci-ntb-function.rst113 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-v6.6/drivers/irqchip/
Dirq-loongson-pch-msi.c22 phys_addr_t doorbell; member
83 msg->address_hi = upper_32_bits(priv->doorbell); in pch_msi_compose_msi_msg()
84 msg->address_lo = lower_32_bits(priv->doorbell); in pch_msi_compose_msi_msg()
201 priv->doorbell = msg_address; in pch_msi_init()
/Linux-v6.6/Documentation/devicetree/bindings/powerpc/fsl/
Dsrio-rmu.txt23 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-v6.6/include/linux/mfd/
Dintel-m10-bmc.h99 #define rsu_prog(doorbell) FIELD_GET(DRBL_RSU_PROGRESS, doorbell) argument
196 unsigned int doorbell; member
/Linux-v6.6/include/trace/events/
Dufs.h271 unsigned int tag, u32 doorbell, u32 hwq_id, int transfer_len,
274 TP_ARGS(dev_name, str_t, tag, doorbell, hwq_id, transfer_len,
281 __field(u32, doorbell)
294 __entry->doorbell = doorbell;
306 __entry->tag, __entry->doorbell, __entry->transfer_len, __entry->intr,
/Linux-v6.6/drivers/virt/
Dfsl_hypervisor.c323 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-v6.6/drivers/net/ethernet/mellanox/mlx5/core/lib/
Deq.h29 __be32 __iomem *doorbell; member
70 __be32 __iomem *addr = eq->doorbell + (arm ? 0 : 2); in eq_update_ci()
/Linux-v6.6/drivers/bus/mhi/host/
Dpci_generic.c62 .doorbell = MHI_DB_BRST_DISABLE, \
77 .doorbell = MHI_DB_BRST_DISABLE, \
92 .doorbell = MHI_DB_BRST_DISABLE, \
121 .doorbell = MHI_DB_BRST_ENABLE, \
136 .doorbell = MHI_DB_BRST_ENABLE, \
151 .doorbell = MHI_DB_BRST_DISABLE, \
166 .doorbell = MHI_DB_BRST_DISABLE, \
181 .doorbell = MHI_DB_BRST_DISABLE, \
196 .doorbell = MHI_DB_BRST_DISABLE, \

1234567