Lines Matching refs:pcie

19 static u8 cdns_pcie_get_fn_from_vfn(struct cdns_pcie *pcie, u8 fn, u8 vfn)  in cdns_pcie_get_fn_from_vfn()  argument
27 first_vf_offset = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_SRIOV_VF_OFFSET); in cdns_pcie_get_fn_from_vfn()
28 stride = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_SRIOV_VF_STRIDE); in cdns_pcie_get_fn_from_vfn()
39 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_write_header() local
47 cdns_pcie_ep_fn_writew(pcie, fn, reg, hdr->deviceid); in cdns_pcie_ep_write_header()
51 cdns_pcie_ep_fn_writew(pcie, fn, PCI_DEVICE_ID, hdr->deviceid); in cdns_pcie_ep_write_header()
52 cdns_pcie_ep_fn_writeb(pcie, fn, PCI_REVISION_ID, hdr->revid); in cdns_pcie_ep_write_header()
53 cdns_pcie_ep_fn_writeb(pcie, fn, PCI_CLASS_PROG, hdr->progif_code); in cdns_pcie_ep_write_header()
54 cdns_pcie_ep_fn_writew(pcie, fn, PCI_CLASS_DEVICE, in cdns_pcie_ep_write_header()
56 cdns_pcie_ep_fn_writeb(pcie, fn, PCI_CACHE_LINE_SIZE, in cdns_pcie_ep_write_header()
58 cdns_pcie_ep_fn_writew(pcie, fn, PCI_SUBSYSTEM_ID, hdr->subsys_id); in cdns_pcie_ep_write_header()
59 cdns_pcie_ep_fn_writeb(pcie, fn, PCI_INTERRUPT_PIN, hdr->interrupt_pin); in cdns_pcie_ep_write_header()
70 cdns_pcie_writel(pcie, CDNS_PCIE_LM_ID, id); in cdns_pcie_ep_write_header()
81 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_set_bar() local
129 cfg = cdns_pcie_readl(pcie, reg); in cdns_pcie_ep_set_bar()
134 cdns_pcie_writel(pcie, reg, cfg); in cdns_pcie_ep_set_bar()
137 fn = cdns_pcie_get_fn_from_vfn(pcie, fn, vfn); in cdns_pcie_ep_set_bar()
138 cdns_pcie_writel(pcie, CDNS_PCIE_AT_IB_EP_FUNC_BAR_ADDR0(fn, bar), in cdns_pcie_ep_set_bar()
140 cdns_pcie_writel(pcie, CDNS_PCIE_AT_IB_EP_FUNC_BAR_ADDR1(fn, bar), in cdns_pcie_ep_set_bar()
155 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_clear_bar() local
167 cfg = cdns_pcie_readl(pcie, reg); in cdns_pcie_ep_clear_bar()
171 cdns_pcie_writel(pcie, reg, cfg); in cdns_pcie_ep_clear_bar()
174 fn = cdns_pcie_get_fn_from_vfn(pcie, fn, vfn); in cdns_pcie_ep_clear_bar()
175 cdns_pcie_writel(pcie, CDNS_PCIE_AT_IB_EP_FUNC_BAR_ADDR0(fn, bar), 0); in cdns_pcie_ep_clear_bar()
176 cdns_pcie_writel(pcie, CDNS_PCIE_AT_IB_EP_FUNC_BAR_ADDR1(fn, bar), 0); in cdns_pcie_ep_clear_bar()
187 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_map_addr() local
196 fn = cdns_pcie_get_fn_from_vfn(pcie, fn, vfn); in cdns_pcie_ep_map_addr()
197 cdns_pcie_set_outbound_region(pcie, 0, fn, r, false, addr, pci_addr, size); in cdns_pcie_ep_map_addr()
209 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_unmap_addr() local
219 cdns_pcie_reset_outbound_region(pcie, r); in cdns_pcie_ep_unmap_addr()
228 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_set_msi() local
232 fn = cdns_pcie_get_fn_from_vfn(pcie, fn, vfn); in cdns_pcie_ep_set_msi()
238 flags = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSI_FLAGS); in cdns_pcie_ep_set_msi()
242 cdns_pcie_ep_fn_writew(pcie, fn, cap + PCI_MSI_FLAGS, flags); in cdns_pcie_ep_set_msi()
250 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_get_msi() local
254 fn = cdns_pcie_get_fn_from_vfn(pcie, fn, vfn); in cdns_pcie_ep_get_msi()
257 flags = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSI_FLAGS); in cdns_pcie_ep_get_msi()
273 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_get_msix() local
277 func_no = cdns_pcie_get_fn_from_vfn(pcie, func_no, vfunc_no); in cdns_pcie_ep_get_msix()
280 val = cdns_pcie_ep_fn_readw(pcie, func_no, reg); in cdns_pcie_ep_get_msix()
294 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_set_msix() local
298 fn = cdns_pcie_get_fn_from_vfn(pcie, fn, vfn); in cdns_pcie_ep_set_msix()
301 val = cdns_pcie_ep_fn_readw(pcie, fn, reg); in cdns_pcie_ep_set_msix()
304 cdns_pcie_ep_fn_writew(pcie, fn, reg, val); in cdns_pcie_ep_set_msix()
309 cdns_pcie_ep_fn_writel(pcie, fn, reg, val); in cdns_pcie_ep_set_msix()
314 cdns_pcie_ep_fn_writel(pcie, fn, reg, val); in cdns_pcie_ep_set_msix()
322 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_assert_intx() local
334 cdns_pcie_set_outbound_region_for_normal_msg(pcie, 0, fn, 0, in cdns_pcie_ep_assert_intx()
349 status = cdns_pcie_ep_fn_readw(pcie, fn, PCI_STATUS); in cdns_pcie_ep_assert_intx()
352 cdns_pcie_ep_fn_writew(pcie, fn, PCI_STATUS, status); in cdns_pcie_ep_assert_intx()
367 cmd = cdns_pcie_ep_fn_readw(&ep->pcie, fn, PCI_COMMAND); in cdns_pcie_ep_send_legacy_irq()
383 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_send_msi_irq() local
389 fn = cdns_pcie_get_fn_from_vfn(pcie, fn, vfn); in cdns_pcie_ep_send_msi_irq()
392 flags = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSI_FLAGS); in cdns_pcie_ep_send_msi_irq()
404 data = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSI_DATA_64); in cdns_pcie_ep_send_msi_irq()
408 pci_addr = cdns_pcie_ep_fn_readl(pcie, fn, cap + PCI_MSI_ADDRESS_HI); in cdns_pcie_ep_send_msi_irq()
410 pci_addr |= cdns_pcie_ep_fn_readl(pcie, fn, cap + PCI_MSI_ADDRESS_LO); in cdns_pcie_ep_send_msi_irq()
417 cdns_pcie_set_outbound_region(pcie, 0, fn, 0, in cdns_pcie_ep_send_msi_irq()
437 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_map_msi_irq() local
444 fn = cdns_pcie_get_fn_from_vfn(pcie, fn, vfn); in cdns_pcie_ep_map_msi_irq()
447 flags = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSI_FLAGS); in cdns_pcie_ep_map_msi_irq()
459 data = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSI_DATA_64); in cdns_pcie_ep_map_msi_irq()
463 pci_addr = cdns_pcie_ep_fn_readl(pcie, fn, cap + PCI_MSI_ADDRESS_HI); in cdns_pcie_ep_map_msi_irq()
465 pci_addr |= cdns_pcie_ep_fn_readl(pcie, fn, cap + PCI_MSI_ADDRESS_LO); in cdns_pcie_ep_map_msi_irq()
488 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_send_msix_irq() local
500 fn = cdns_pcie_get_fn_from_vfn(pcie, fn, vfn); in cdns_pcie_ep_send_msix_irq()
503 flags = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSIX_FLAGS); in cdns_pcie_ep_send_msix_irq()
508 tbl_offset = cdns_pcie_ep_fn_readl(pcie, fn, reg); in cdns_pcie_ep_send_msix_irq()
520 cdns_pcie_set_outbound_region(pcie, 0, fn, 0, in cdns_pcie_ep_send_msix_irq()
538 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_raise_irq() local
539 struct device *dev = pcie->dev; in cdns_pcie_ep_raise_irq()
565 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_start() local
566 struct device *dev = pcie->dev; in cdns_pcie_ep_start()
574 cdns_pcie_writel(pcie, CDNS_PCIE_LM_EP_FUNC_CFG, epc->function_num_map); in cdns_pcie_ep_start()
581 value = cdns_pcie_ep_fn_readl(pcie, epf, in cdns_pcie_ep_start()
585 cdns_pcie_ep_fn_writel(pcie, epf, in cdns_pcie_ep_start()
591 ret = cdns_pcie_start_link(pcie); in cdns_pcie_ep_start()
642 struct device *dev = ep->pcie.dev; in cdns_pcie_ep_setup()
645 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_setup() local
652 pcie->is_rc = false; in cdns_pcie_ep_setup()
654 pcie->reg_base = devm_platform_ioremap_resource_byname(pdev, "reg"); in cdns_pcie_ep_setup()
655 if (IS_ERR(pcie->reg_base)) { in cdns_pcie_ep_setup()
657 return PTR_ERR(pcie->reg_base); in cdns_pcie_ep_setup()
665 pcie->mem_res = res; in cdns_pcie_ep_setup()
677 cdns_pcie_writel(pcie, CDNS_PCIE_LM_EP_FUNC_CFG, BIT(0)); in cdns_pcie_ep_setup()
714 ret = pci_epc_mem_init(epc, pcie->mem_res->start, in cdns_pcie_ep_setup()
715 resource_size(pcie->mem_res), PAGE_SIZE); in cdns_pcie_ep_setup()
733 cdns_pcie_detect_quiet_min_delay_set(&ep->pcie); in cdns_pcie_ep_setup()