Lines Matching full:pci

15 #include <linux/pci-epc.h>
16 #include <linux/pci-epf.h>
39 static void __dw_pcie_ep_reset_bar(struct dw_pcie *pci, u8 func_no, in __dw_pcie_ep_reset_bar() argument
42 struct dw_pcie_ep *ep = &pci->ep; in __dw_pcie_ep_reset_bar()
46 dw_pcie_dbi_ro_wr_en(pci); in __dw_pcie_ep_reset_bar()
53 dw_pcie_dbi_ro_wr_dis(pci); in __dw_pcie_ep_reset_bar()
58 * @pci: DWC PCI device
61 void dw_pcie_ep_reset_bar(struct dw_pcie *pci, enum pci_barno bar) in dw_pcie_ep_reset_bar() argument
65 funcs = pci->ep.epc->max_functions; in dw_pcie_ep_reset_bar()
68 __dw_pcie_ep_reset_bar(pci, func_no, bar, 0); in dw_pcie_ep_reset_bar()
109 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_write_header() local
111 dw_pcie_dbi_ro_wr_en(pci); in dw_pcie_ep_write_header()
125 dw_pcie_dbi_ro_wr_dis(pci); in dw_pcie_ep_write_header()
135 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_inbound_atu() local
138 free_win = find_first_zero_bit(ep->ib_window_map, pci->num_ib_windows); in dw_pcie_ep_inbound_atu()
142 if (free_win >= pci->num_ib_windows) { in dw_pcie_ep_inbound_atu()
143 dev_err(pci->dev, "No free inbound window\n"); in dw_pcie_ep_inbound_atu()
147 ret = dw_pcie_prog_ep_inbound_atu(pci, func_no, free_win, type, in dw_pcie_ep_inbound_atu()
150 dev_err(pci->dev, "Failed to program IB window\n"); in dw_pcie_ep_inbound_atu()
167 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_outbound_atu() local
171 free_win = find_first_zero_bit(ep->ob_window_map, pci->num_ob_windows); in dw_pcie_ep_outbound_atu()
172 if (free_win >= pci->num_ob_windows) { in dw_pcie_ep_outbound_atu()
173 dev_err(pci->dev, "No free outbound window\n"); in dw_pcie_ep_outbound_atu()
178 ret = dw_pcie_prog_outbound_atu(pci, atu); in dw_pcie_ep_outbound_atu()
192 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_clear_bar() local
199 __dw_pcie_ep_reset_bar(pci, func_no, bar, epf_bar->flags); in dw_pcie_ep_clear_bar()
201 dw_pcie_disable_atu(pci, PCIE_ATU_REGION_DIR_IB, atu_index); in dw_pcie_ep_clear_bar()
211 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_set_bar() local
239 dw_pcie_dbi_ro_wr_en(pci); in dw_pcie_ep_set_bar()
250 dw_pcie_dbi_ro_wr_dis(pci); in dw_pcie_ep_set_bar()
259 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_find_index() local
261 for (index = 0; index < pci->num_ob_windows; index++) { in dw_pcie_find_index()
277 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_unmap_addr() local
283 dw_pcie_disable_atu(pci, PCIE_ATU_REGION_DIR_OB, atu_index); in dw_pcie_ep_unmap_addr()
292 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_map_addr() local
302 dev_err(pci->dev, "Failed to enable address\n"); in dw_pcie_ep_map_addr()
333 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_set_msi() local
345 dw_pcie_dbi_ro_wr_en(pci); in dw_pcie_ep_set_msi()
347 dw_pcie_dbi_ro_wr_dis(pci); in dw_pcie_ep_set_msi()
376 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_set_msix() local
384 dw_pcie_dbi_ro_wr_en(pci); in dw_pcie_ep_set_msix()
390 dw_pcie_writew_dbi(pci, reg, val); in dw_pcie_ep_set_msix()
400 dw_pcie_dbi_ro_wr_dis(pci); in dw_pcie_ep_set_msix()
419 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_stop() local
421 dw_pcie_stop_link(pci); in dw_pcie_ep_stop()
427 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_start() local
429 return dw_pcie_start_link(pci); in dw_pcie_ep_start()
468 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_raise_intx_irq() local
469 struct device *dev = pci->dev; in dw_pcie_ep_raise_intx_irq()
501 /* Raise MSI per the PCI Local Bus Specification Revision 3.0, 6.8.1. */ in dw_pcie_ep_raise_msi_irq()
546 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_raise_msix_irq_doorbell() local
557 dw_pcie_writel_dbi(pci, PCIE_MSIX_DOORBELL, msg_data); in dw_pcie_ep_raise_msix_irq_doorbell()
573 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_raise_msix_irq() local
599 dev_dbg(pci->dev, "MSI-X entry ctrl set\n"); in dw_pcie_ep_raise_msix_irq()
627 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_cleanup() local
629 dw_pcie_edma_remove(pci); in dw_pcie_ep_cleanup()
653 static unsigned int dw_pcie_ep_find_ext_capability(struct dw_pcie *pci, int cap) in dw_pcie_ep_find_ext_capability() argument
659 header = dw_pcie_readl_dbi(pci, pos); in dw_pcie_ep_find_ext_capability()
671 static void dw_pcie_ep_init_non_sticky_registers(struct dw_pcie *pci) in dw_pcie_ep_init_non_sticky_registers() argument
677 offset = dw_pcie_ep_find_ext_capability(pci, PCI_EXT_CAP_ID_REBAR); in dw_pcie_ep_init_non_sticky_registers()
679 dw_pcie_dbi_ro_wr_en(pci); in dw_pcie_ep_init_non_sticky_registers()
682 reg = dw_pcie_readl_dbi(pci, offset + PCI_REBAR_CTRL); in dw_pcie_ep_init_non_sticky_registers()
692 dw_pcie_writel_dbi(pci, offset + PCI_REBAR_CAP, 0x0); in dw_pcie_ep_init_non_sticky_registers()
695 dw_pcie_setup(pci); in dw_pcie_ep_init_non_sticky_registers()
696 dw_pcie_dbi_ro_wr_dis(pci); in dw_pcie_ep_init_non_sticky_registers()
709 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_init_registers() local
711 struct device *dev = pci->dev; in dw_pcie_ep_init_registers()
719 hdr_type = dw_pcie_readb_dbi(pci, PCI_HEADER_TYPE) & in dw_pcie_ep_init_registers()
722 dev_err(pci->dev, in dw_pcie_ep_init_registers()
728 dw_pcie_version_detect(pci); in dw_pcie_ep_init_registers()
730 dw_pcie_iatu_detect(pci); in dw_pcie_ep_init_registers()
732 ret = dw_pcie_edma_detect(pci); in dw_pcie_ep_init_registers()
737 ep->ib_window_map = devm_bitmap_zalloc(dev, pci->num_ib_windows, in dw_pcie_ep_init_registers()
744 ep->ob_window_map = devm_bitmap_zalloc(dev, pci->num_ob_windows, in dw_pcie_ep_init_registers()
751 addr = devm_kcalloc(dev, pci->num_ob_windows, sizeof(phys_addr_t), in dw_pcie_ep_init_registers()
780 ptm_cap_base = dw_pcie_ep_find_ext_capability(pci, PCI_EXT_CAP_ID_PTM); in dw_pcie_ep_init_registers()
787 dw_pcie_dbi_ro_wr_en(pci); in dw_pcie_ep_init_registers()
788 reg = dw_pcie_readl_dbi(pci, ptm_cap_base + PCI_PTM_CAP); in dw_pcie_ep_init_registers()
790 dw_pcie_writel_dbi(pci, ptm_cap_base + PCI_PTM_CAP, reg); in dw_pcie_ep_init_registers()
792 reg = dw_pcie_readl_dbi(pci, ptm_cap_base + PCI_PTM_CAP); in dw_pcie_ep_init_registers()
794 dw_pcie_writel_dbi(pci, ptm_cap_base + PCI_PTM_CAP, reg); in dw_pcie_ep_init_registers()
795 dw_pcie_dbi_ro_wr_dis(pci); in dw_pcie_ep_init_registers()
798 dw_pcie_ep_init_non_sticky_registers(pci); in dw_pcie_ep_init_registers()
803 dw_pcie_edma_remove(pci); in dw_pcie_ep_init_registers()
831 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_linkdown() local
840 dw_pcie_ep_init_non_sticky_registers(pci); in dw_pcie_ep_linkdown()
860 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_init() local
861 struct device *dev = pci->dev; in dw_pcie_ep_init()
867 ret = dw_pcie_get_resources(pci); in dw_pcie_ep_init()