[PATCH v2 2/5] PCI: dwc: add doorbell support by use MSI controller

From: Frank Li
Date: Mon Sep 11 2023 - 20:46:13 EST


Call pci_epc_generic_alloc_doorbell() to alloc an platform MSI address
space.The Endpoint (EP) function drver can maps the memory assigned for the
BAR region by the PCI host to the message address of the platform MSI
interrupt controller in the PCI EP. As a result, when the PCI RC writes to
the BAR region, it triggers an IRQ at the EP.

Signed-off-by: Frank Li <Frank.Li@xxxxxxx>
---
drivers/pci/controller/dwc/pcie-designware-ep.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c
index f9182f8d552f4..4f6be5f4ba18a 100644
--- a/drivers/pci/controller/dwc/pcie-designware-ep.c
+++ b/drivers/pci/controller/dwc/pcie-designware-ep.c
@@ -477,6 +477,8 @@ static const struct pci_epc_ops epc_ops = {
.start = dw_pcie_ep_start,
.stop = dw_pcie_ep_stop,
.get_features = dw_pcie_ep_get_features,
+ .alloc_doorbell = pci_epc_generic_alloc_doorbell,
+ .free_doorbell = pci_epc_generic_free_doorbell,
};

int dw_pcie_ep_raise_legacy_irq(struct dw_pcie_ep *ep, u8 func_no)
--
2.34.1