Lines Matching full:pci
12 #include <linux/pci-epc.h>
13 #include <linux/pci-epf.h>
22 static void __dw_pcie_ep_reset_bar(struct dw_pcie *pci, enum pci_barno bar, in __dw_pcie_ep_reset_bar() argument
28 dw_pcie_dbi_ro_wr_en(pci); in __dw_pcie_ep_reset_bar()
29 dw_pcie_writel_dbi2(pci, reg, 0x0); in __dw_pcie_ep_reset_bar()
30 dw_pcie_writel_dbi(pci, reg, 0x0); in __dw_pcie_ep_reset_bar()
32 dw_pcie_writel_dbi2(pci, reg + 4, 0x0); in __dw_pcie_ep_reset_bar()
33 dw_pcie_writel_dbi(pci, reg + 4, 0x0); in __dw_pcie_ep_reset_bar()
35 dw_pcie_dbi_ro_wr_dis(pci); in __dw_pcie_ep_reset_bar()
38 void dw_pcie_ep_reset_bar(struct dw_pcie *pci, enum pci_barno bar) in dw_pcie_ep_reset_bar() argument
40 __dw_pcie_ep_reset_bar(pci, bar, 0); in dw_pcie_ep_reset_bar()
43 static u8 __dw_pcie_ep_find_next_cap(struct dw_pcie *pci, u8 cap_ptr, in __dw_pcie_ep_find_next_cap() argument
52 reg = dw_pcie_readw_dbi(pci, cap_ptr); in __dw_pcie_ep_find_next_cap()
62 return __dw_pcie_ep_find_next_cap(pci, next_cap_ptr, cap); in __dw_pcie_ep_find_next_cap()
65 static u8 dw_pcie_ep_find_capability(struct dw_pcie *pci, u8 cap) in dw_pcie_ep_find_capability() argument
70 reg = dw_pcie_readw_dbi(pci, PCI_CAPABILITY_LIST); in dw_pcie_ep_find_capability()
73 return __dw_pcie_ep_find_next_cap(pci, next_cap_ptr, cap); in dw_pcie_ep_find_capability()
80 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_write_header() local
82 dw_pcie_dbi_ro_wr_en(pci); in dw_pcie_ep_write_header()
83 dw_pcie_writew_dbi(pci, PCI_VENDOR_ID, hdr->vendorid); in dw_pcie_ep_write_header()
84 dw_pcie_writew_dbi(pci, PCI_DEVICE_ID, hdr->deviceid); in dw_pcie_ep_write_header()
85 dw_pcie_writeb_dbi(pci, PCI_REVISION_ID, hdr->revid); in dw_pcie_ep_write_header()
86 dw_pcie_writeb_dbi(pci, PCI_CLASS_PROG, hdr->progif_code); in dw_pcie_ep_write_header()
87 dw_pcie_writew_dbi(pci, PCI_CLASS_DEVICE, in dw_pcie_ep_write_header()
89 dw_pcie_writeb_dbi(pci, PCI_CACHE_LINE_SIZE, in dw_pcie_ep_write_header()
91 dw_pcie_writew_dbi(pci, PCI_SUBSYSTEM_VENDOR_ID, in dw_pcie_ep_write_header()
93 dw_pcie_writew_dbi(pci, PCI_SUBSYSTEM_ID, hdr->subsys_id); in dw_pcie_ep_write_header()
94 dw_pcie_writeb_dbi(pci, PCI_INTERRUPT_PIN, in dw_pcie_ep_write_header()
96 dw_pcie_dbi_ro_wr_dis(pci); in dw_pcie_ep_write_header()
107 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_inbound_atu() local
111 dev_err(pci->dev, "No free inbound window\n"); in dw_pcie_ep_inbound_atu()
115 ret = dw_pcie_prog_inbound_atu(pci, free_win, bar, cpu_addr, in dw_pcie_ep_inbound_atu()
118 dev_err(pci->dev, "Failed to program IB window\n"); in dw_pcie_ep_inbound_atu()
132 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_outbound_atu() local
136 dev_err(pci->dev, "No free outbound window\n"); in dw_pcie_ep_outbound_atu()
140 dw_pcie_prog_outbound_atu(pci, free_win, PCIE_ATU_TYPE_MEM, in dw_pcie_ep_outbound_atu()
153 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_clear_bar() local
157 __dw_pcie_ep_reset_bar(pci, bar, epf_bar->flags); in dw_pcie_ep_clear_bar()
159 dw_pcie_disable_atu(pci, atu_index, DW_PCIE_REGION_INBOUND); in dw_pcie_ep_clear_bar()
168 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_set_bar() local
184 dw_pcie_dbi_ro_wr_en(pci); in dw_pcie_ep_set_bar()
186 dw_pcie_writel_dbi2(pci, reg, lower_32_bits(size - 1)); in dw_pcie_ep_set_bar()
187 dw_pcie_writel_dbi(pci, reg, flags); in dw_pcie_ep_set_bar()
190 dw_pcie_writel_dbi2(pci, reg + 4, upper_32_bits(size - 1)); in dw_pcie_ep_set_bar()
191 dw_pcie_writel_dbi(pci, reg + 4, 0); in dw_pcie_ep_set_bar()
194 dw_pcie_dbi_ro_wr_dis(pci); in dw_pcie_ep_set_bar()
220 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_unmap_addr() local
226 dw_pcie_disable_atu(pci, atu_index, DW_PCIE_REGION_OUTBOUND); in dw_pcie_ep_unmap_addr()
236 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_map_addr() local
240 dev_err(pci->dev, "Failed to enable address\n"); in dw_pcie_ep_map_addr()
250 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_get_msi() local
257 val = dw_pcie_readw_dbi(pci, reg); in dw_pcie_ep_get_msi()
269 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_set_msi() local
276 val = dw_pcie_readw_dbi(pci, reg); in dw_pcie_ep_set_msi()
279 dw_pcie_dbi_ro_wr_en(pci); in dw_pcie_ep_set_msi()
280 dw_pcie_writew_dbi(pci, reg, val); in dw_pcie_ep_set_msi()
281 dw_pcie_dbi_ro_wr_dis(pci); in dw_pcie_ep_set_msi()
289 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_get_msix() local
296 val = dw_pcie_readw_dbi(pci, reg); in dw_pcie_ep_get_msix()
308 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_set_msix() local
315 val = dw_pcie_readw_dbi(pci, reg); in dw_pcie_ep_set_msix()
318 dw_pcie_dbi_ro_wr_en(pci); in dw_pcie_ep_set_msix()
319 dw_pcie_writew_dbi(pci, reg, val); in dw_pcie_ep_set_msix()
320 dw_pcie_dbi_ro_wr_dis(pci); in dw_pcie_ep_set_msix()
339 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_stop() local
341 if (!pci->ops->stop_link) in dw_pcie_ep_stop()
344 pci->ops->stop_link(pci); in dw_pcie_ep_stop()
350 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_start() local
352 if (!pci->ops->start_link) in dw_pcie_ep_start()
355 return pci->ops->start_link(pci); in dw_pcie_ep_start()
375 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_raise_legacy_irq() local
376 struct device *dev = pci->dev; in dw_pcie_ep_raise_legacy_irq()
386 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_raise_msi_irq() local
398 /* Raise MSI per the PCI Local Bus Specification Revision 3.0, 6.8.1. */ in dw_pcie_ep_raise_msi_irq()
400 msg_ctrl = dw_pcie_readw_dbi(pci, reg); in dw_pcie_ep_raise_msi_irq()
403 msg_addr_lower = dw_pcie_readl_dbi(pci, reg); in dw_pcie_ep_raise_msi_irq()
406 msg_addr_upper = dw_pcie_readl_dbi(pci, reg); in dw_pcie_ep_raise_msi_irq()
408 msg_data = dw_pcie_readw_dbi(pci, reg); in dw_pcie_ep_raise_msi_irq()
412 msg_data = dw_pcie_readw_dbi(pci, reg); in dw_pcie_ep_raise_msi_irq()
432 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_raise_msix_irq() local
443 tbl_offset = dw_pcie_readl_dbi(pci, reg); in dw_pcie_ep_raise_msix_irq()
449 bar_addr_lower = dw_pcie_readl_dbi(pci, reg); in dw_pcie_ep_raise_msix_irq()
452 bar_addr_upper = dw_pcie_readl_dbi(pci, reg + 4); in dw_pcie_ep_raise_msix_irq()
501 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_init() local
502 struct device *dev = pci->dev; in dw_pcie_ep_init()
505 if (!pci->dbi_base || !pci->dbi_base2) { in dw_pcie_ep_init()
579 ep->msi_cap = dw_pcie_ep_find_capability(pci, PCI_CAP_ID_MSI); in dw_pcie_ep_init()
581 ep->msix_cap = dw_pcie_ep_find_capability(pci, PCI_CAP_ID_MSIX); in dw_pcie_ep_init()
583 dw_pcie_setup(pci); in dw_pcie_ep_init()