Lines Matching full:fn

19 static int cdns_pcie_ep_write_header(struct pci_epc *epc, u8 fn,  in cdns_pcie_ep_write_header()  argument
25 cdns_pcie_ep_fn_writew(pcie, fn, PCI_DEVICE_ID, hdr->deviceid); in cdns_pcie_ep_write_header()
26 cdns_pcie_ep_fn_writeb(pcie, fn, PCI_REVISION_ID, hdr->revid); in cdns_pcie_ep_write_header()
27 cdns_pcie_ep_fn_writeb(pcie, fn, PCI_CLASS_PROG, hdr->progif_code); in cdns_pcie_ep_write_header()
28 cdns_pcie_ep_fn_writew(pcie, fn, PCI_CLASS_DEVICE, in cdns_pcie_ep_write_header()
30 cdns_pcie_ep_fn_writeb(pcie, fn, PCI_CACHE_LINE_SIZE, in cdns_pcie_ep_write_header()
32 cdns_pcie_ep_fn_writew(pcie, fn, PCI_SUBSYSTEM_ID, hdr->subsys_id); in cdns_pcie_ep_write_header()
33 cdns_pcie_ep_fn_writeb(pcie, fn, PCI_INTERRUPT_PIN, hdr->interrupt_pin); in cdns_pcie_ep_write_header()
39 if (fn == 0) { in cdns_pcie_ep_write_header()
50 static int cdns_pcie_ep_set_bar(struct pci_epc *epc, u8 fn, in cdns_pcie_ep_set_bar() argument
54 struct cdns_pcie_epf *epf = &ep->epf[fn]; in cdns_pcie_ep_set_bar()
95 cdns_pcie_writel(pcie, CDNS_PCIE_AT_IB_EP_FUNC_BAR_ADDR0(fn, bar), in cdns_pcie_ep_set_bar()
97 cdns_pcie_writel(pcie, CDNS_PCIE_AT_IB_EP_FUNC_BAR_ADDR1(fn, bar), in cdns_pcie_ep_set_bar()
101 reg = CDNS_PCIE_LM_EP_FUNC_BAR_CFG0(fn); in cdns_pcie_ep_set_bar()
104 reg = CDNS_PCIE_LM_EP_FUNC_BAR_CFG1(fn); in cdns_pcie_ep_set_bar()
120 static void cdns_pcie_ep_clear_bar(struct pci_epc *epc, u8 fn, in cdns_pcie_ep_clear_bar() argument
124 struct cdns_pcie_epf *epf = &ep->epf[fn]; in cdns_pcie_ep_clear_bar()
130 reg = CDNS_PCIE_LM_EP_FUNC_BAR_CFG0(fn); in cdns_pcie_ep_clear_bar()
133 reg = CDNS_PCIE_LM_EP_FUNC_BAR_CFG1(fn); in cdns_pcie_ep_clear_bar()
144 cdns_pcie_writel(pcie, CDNS_PCIE_AT_IB_EP_FUNC_BAR_ADDR0(fn, bar), 0); in cdns_pcie_ep_clear_bar()
145 cdns_pcie_writel(pcie, CDNS_PCIE_AT_IB_EP_FUNC_BAR_ADDR1(fn, bar), 0); in cdns_pcie_ep_clear_bar()
150 static int cdns_pcie_ep_map_addr(struct pci_epc *epc, u8 fn, phys_addr_t addr, in cdns_pcie_ep_map_addr() argument
164 cdns_pcie_set_outbound_region(pcie, 0, fn, r, false, addr, pci_addr, size); in cdns_pcie_ep_map_addr()
172 static void cdns_pcie_ep_unmap_addr(struct pci_epc *epc, u8 fn, in cdns_pcie_ep_unmap_addr() argument
192 static int cdns_pcie_ep_set_msi(struct pci_epc *epc, u8 fn, u8 mmc) in cdns_pcie_ep_set_msi() argument
203 flags = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSI_FLAGS); in cdns_pcie_ep_set_msi()
207 cdns_pcie_ep_fn_writew(pcie, fn, cap + PCI_MSI_FLAGS, flags); in cdns_pcie_ep_set_msi()
212 static int cdns_pcie_ep_get_msi(struct pci_epc *epc, u8 fn) in cdns_pcie_ep_get_msi() argument
220 flags = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSI_FLAGS); in cdns_pcie_ep_get_msi()
250 static int cdns_pcie_ep_set_msix(struct pci_epc *epc, u8 fn, u16 interrupts, in cdns_pcie_ep_set_msix() argument
259 val = cdns_pcie_ep_fn_readw(pcie, fn, reg); in cdns_pcie_ep_set_msix()
262 cdns_pcie_ep_fn_writew(pcie, fn, reg, val); in cdns_pcie_ep_set_msix()
267 cdns_pcie_ep_fn_writel(pcie, fn, reg, val); in cdns_pcie_ep_set_msix()
272 cdns_pcie_ep_fn_writel(pcie, fn, reg, val); in cdns_pcie_ep_set_msix()
277 static void cdns_pcie_ep_assert_intx(struct cdns_pcie_ep *ep, u8 fn, in cdns_pcie_ep_assert_intx() argument
290 ep->irq_pci_fn != fn)) { in cdns_pcie_ep_assert_intx()
292 cdns_pcie_set_outbound_region_for_normal_msg(pcie, 0, fn, 0, in cdns_pcie_ep_assert_intx()
295 ep->irq_pci_fn = fn; in cdns_pcie_ep_assert_intx()
307 status = cdns_pcie_ep_fn_readw(pcie, fn, PCI_STATUS); in cdns_pcie_ep_assert_intx()
310 cdns_pcie_ep_fn_writew(pcie, fn, PCI_STATUS, status); in cdns_pcie_ep_assert_intx()
320 static int cdns_pcie_ep_send_legacy_irq(struct cdns_pcie_ep *ep, u8 fn, u8 intx) in cdns_pcie_ep_send_legacy_irq() argument
324 cmd = cdns_pcie_ep_fn_readw(&ep->pcie, fn, PCI_COMMAND); in cdns_pcie_ep_send_legacy_irq()
328 cdns_pcie_ep_assert_intx(ep, fn, intx, true); in cdns_pcie_ep_send_legacy_irq()
333 cdns_pcie_ep_assert_intx(ep, fn, intx, false); in cdns_pcie_ep_send_legacy_irq()
337 static int cdns_pcie_ep_send_msi_irq(struct cdns_pcie_ep *ep, u8 fn, in cdns_pcie_ep_send_msi_irq() argument
347 flags = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSI_FLAGS); in cdns_pcie_ep_send_msi_irq()
359 data = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSI_DATA_64); in cdns_pcie_ep_send_msi_irq()
363 pci_addr = cdns_pcie_ep_fn_readl(pcie, fn, cap + PCI_MSI_ADDRESS_HI); in cdns_pcie_ep_send_msi_irq()
365 pci_addr |= cdns_pcie_ep_fn_readl(pcie, fn, cap + PCI_MSI_ADDRESS_LO); in cdns_pcie_ep_send_msi_irq()
370 ep->irq_pci_fn != fn)) { in cdns_pcie_ep_send_msi_irq()
372 cdns_pcie_set_outbound_region(pcie, 0, fn, 0, in cdns_pcie_ep_send_msi_irq()
378 ep->irq_pci_fn = fn; in cdns_pcie_ep_send_msi_irq()
385 static int cdns_pcie_ep_send_msix_irq(struct cdns_pcie_ep *ep, u8 fn, in cdns_pcie_ep_send_msix_irq() argument
399 flags = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSIX_FLAGS); in cdns_pcie_ep_send_msix_irq()
404 tbl_offset = cdns_pcie_ep_fn_readl(pcie, fn, reg); in cdns_pcie_ep_send_msix_irq()
408 epf = &ep->epf[fn]; in cdns_pcie_ep_send_msix_irq()
415 ep->irq_pci_fn != fn) { in cdns_pcie_ep_send_msix_irq()
417 cdns_pcie_set_outbound_region(pcie, 0, fn, 0, in cdns_pcie_ep_send_msix_irq()
423 ep->irq_pci_fn = fn; in cdns_pcie_ep_send_msix_irq()
430 static int cdns_pcie_ep_raise_irq(struct pci_epc *epc, u8 fn, in cdns_pcie_ep_raise_irq() argument
438 return cdns_pcie_ep_send_legacy_irq(ep, fn, 0); in cdns_pcie_ep_raise_irq()
441 return cdns_pcie_ep_send_msi_irq(ep, fn, interrupt_num); in cdns_pcie_ep_raise_irq()
444 return cdns_pcie_ep_send_msix_irq(ep, fn, interrupt_num); in cdns_pcie_ep_raise_irq()