Lines Matching refs:pci

14 #include <linux/pci-epc.h>
15 #include <linux/pci-epf.h>
56 static void __dw_pcie_ep_reset_bar(struct dw_pcie *pci, u8 func_no,
61 struct dw_pcie_ep *ep = &pci->ep;
66 dw_pcie_dbi_ro_wr_en(pci);
67 dw_pcie_writel_dbi2(pci, reg, 0x0);
68 dw_pcie_writel_dbi(pci, reg, 0x0);
70 dw_pcie_writel_dbi2(pci, reg + 4, 0x0);
71 dw_pcie_writel_dbi(pci, reg + 4, 0x0);
73 dw_pcie_dbi_ro_wr_dis(pci);
76 void dw_pcie_ep_reset_bar(struct dw_pcie *pci, enum pci_barno bar)
80 funcs = pci->ep.epc->max_functions;
83 __dw_pcie_ep_reset_bar(pci, func_no, bar, 0);
90 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
100 reg = dw_pcie_readw_dbi(pci, func_offset + cap_ptr);
115 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
122 reg = dw_pcie_readw_dbi(pci, func_offset + PCI_CAPABILITY_LIST);
132 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
137 dw_pcie_dbi_ro_wr_en(pci);
138 dw_pcie_writew_dbi(pci, func_offset + PCI_VENDOR_ID, hdr->vendorid);
139 dw_pcie_writew_dbi(pci, func_offset + PCI_DEVICE_ID, hdr->deviceid);
140 dw_pcie_writeb_dbi(pci, func_offset + PCI_REVISION_ID, hdr->revid);
141 dw_pcie_writeb_dbi(pci, func_offset + PCI_CLASS_PROG, hdr->progif_code);
142 dw_pcie_writew_dbi(pci, func_offset + PCI_CLASS_DEVICE,
144 dw_pcie_writeb_dbi(pci, func_offset + PCI_CACHE_LINE_SIZE,
146 dw_pcie_writew_dbi(pci, func_offset + PCI_SUBSYSTEM_VENDOR_ID,
148 dw_pcie_writew_dbi(pci, func_offset + PCI_SUBSYSTEM_ID, hdr->subsys_id);
149 dw_pcie_writeb_dbi(pci, func_offset + PCI_INTERRUPT_PIN,
151 dw_pcie_dbi_ro_wr_dis(pci);
161 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
164 free_win = find_first_zero_bit(ep->ib_window_map, pci->num_ib_windows);
168 if (free_win >= pci->num_ib_windows) {
169 dev_err(pci->dev, "No free inbound window\n");
173 ret = dw_pcie_prog_ep_inbound_atu(pci, func_no, free_win, type,
176 dev_err(pci->dev, "Failed to program IB window\n");
190 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
194 free_win = find_first_zero_bit(ep->ob_window_map, pci->num_ob_windows);
195 if (free_win >= pci->num_ob_windows) {
196 dev_err(pci->dev, "No free outbound window\n");
200 ret = dw_pcie_prog_ep_outbound_atu(pci, func_no, free_win, PCIE_ATU_TYPE_MEM,
215 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
219 __dw_pcie_ep_reset_bar(pci, func_no, bar, epf_bar->flags);
221 dw_pcie_disable_atu(pci, PCIE_ATU_REGION_DIR_IB, atu_index);
231 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
255 dw_pcie_dbi_ro_wr_en(pci);
257 dw_pcie_writel_dbi2(pci, reg, lower_32_bits(size - 1));
258 dw_pcie_writel_dbi(pci, reg, flags);
261 dw_pcie_writel_dbi2(pci, reg + 4, upper_32_bits(size - 1));
262 dw_pcie_writel_dbi(pci, reg + 4, 0);
266 dw_pcie_dbi_ro_wr_dis(pci);
275 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
277 for (index = 0; index < pci->num_ob_windows; index++) {
293 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
299 dw_pcie_disable_atu(pci, PCIE_ATU_REGION_DIR_OB, atu_index);
308 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
312 dev_err(pci->dev, "Failed to enable address\n");
322 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
334 val = dw_pcie_readw_dbi(pci, reg);
347 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
359 val = dw_pcie_readw_dbi(pci, reg);
362 dw_pcie_dbi_ro_wr_en(pci);
363 dw_pcie_writew_dbi(pci, reg, val);
364 dw_pcie_dbi_ro_wr_dis(pci);
372 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
384 val = dw_pcie_readw_dbi(pci, reg);
397 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
406 dw_pcie_dbi_ro_wr_en(pci);
411 val = dw_pcie_readw_dbi(pci, reg);
414 dw_pcie_writew_dbi(pci, reg, val);
418 dw_pcie_writel_dbi(pci, reg, val);
422 dw_pcie_writel_dbi(pci, reg, val);
424 dw_pcie_dbi_ro_wr_dis(pci);
443 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
445 dw_pcie_stop_link(pci);
451 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
453 return dw_pcie_start_link(pci);
485 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
486 struct device *dev = pci->dev;
497 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
516 msg_ctrl = dw_pcie_readw_dbi(pci, reg);
519 msg_addr_lower = dw_pcie_readl_dbi(pci, reg);
522 msg_addr_upper = dw_pcie_readl_dbi(pci, reg);
524 msg_data = dw_pcie_readw_dbi(pci, reg);
528 msg_data = dw_pcie_readw_dbi(pci, reg);
549 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
560 dw_pcie_writel_dbi(pci, PCIE_MSIX_DOORBELL, msg_data);
568 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
587 tbl_offset = dw_pcie_readl_dbi(pci, reg);
597 dev_dbg(pci->dev, "MSI-X entry ctrl set\n");
617 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
620 dw_pcie_edma_remove(pci);
628 static unsigned int dw_pcie_ep_find_ext_capability(struct dw_pcie *pci, int cap)
634 header = dw_pcie_readl_dbi(pci, pos);
648 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
655 hdr_type = dw_pcie_readb_dbi(pci, PCI_HEADER_TYPE) &
658 dev_err(pci->dev,
664 offset = dw_pcie_ep_find_ext_capability(pci, PCI_EXT_CAP_ID_REBAR);
665 ptm_cap_base = dw_pcie_ep_find_ext_capability(pci, PCI_EXT_CAP_ID_PTM);
667 dw_pcie_dbi_ro_wr_en(pci);
670 reg = dw_pcie_readl_dbi(pci, offset + PCI_REBAR_CTRL);
680 dw_pcie_writel_dbi(pci, offset + PCI_REBAR_CAP, BIT(4));
688 dw_pcie_dbi_ro_wr_en(pci);
689 reg = dw_pcie_readl_dbi(pci, ptm_cap_base + PCI_PTM_CAP);
691 dw_pcie_writel_dbi(pci, ptm_cap_base + PCI_PTM_CAP, reg);
693 reg = dw_pcie_readl_dbi(pci, ptm_cap_base + PCI_PTM_CAP);
695 dw_pcie_writel_dbi(pci, ptm_cap_base + PCI_PTM_CAP, reg);
696 dw_pcie_dbi_ro_wr_dis(pci);
699 dw_pcie_setup(pci);
700 dw_pcie_dbi_ro_wr_dis(pci);
713 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
714 struct device *dev = pci->dev;
722 ret = dw_pcie_get_resources(pci);
733 dw_pcie_version_detect(pci);
735 dw_pcie_iatu_detect(pci);
737 ep->ib_window_map = devm_bitmap_zalloc(dev, pci->num_ib_windows,
742 ep->ob_window_map = devm_bitmap_zalloc(dev, pci->num_ob_windows,
747 addr = devm_kcalloc(dev, pci->num_ob_windows, sizeof(phys_addr_t),
798 ret = dw_pcie_edma_detect(pci);
815 dw_pcie_edma_remove(pci);