Lines Matching refs:pci
57 static void __dw_pcie_ep_reset_bar(struct dw_pcie *pci, u8 func_no, in __dw_pcie_ep_reset_bar() argument
62 struct dw_pcie_ep *ep = &pci->ep; in __dw_pcie_ep_reset_bar()
67 dw_pcie_dbi_ro_wr_en(pci); in __dw_pcie_ep_reset_bar()
68 dw_pcie_writel_dbi2(pci, reg, 0x0); in __dw_pcie_ep_reset_bar()
69 dw_pcie_writel_dbi(pci, reg, 0x0); in __dw_pcie_ep_reset_bar()
71 dw_pcie_writel_dbi2(pci, reg + 4, 0x0); in __dw_pcie_ep_reset_bar()
72 dw_pcie_writel_dbi(pci, reg + 4, 0x0); in __dw_pcie_ep_reset_bar()
74 dw_pcie_dbi_ro_wr_dis(pci); in __dw_pcie_ep_reset_bar()
77 void dw_pcie_ep_reset_bar(struct dw_pcie *pci, enum pci_barno bar) in dw_pcie_ep_reset_bar() argument
81 funcs = pci->ep.epc->max_functions; in dw_pcie_ep_reset_bar()
84 __dw_pcie_ep_reset_bar(pci, func_no, bar, 0); in dw_pcie_ep_reset_bar()
91 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in __dw_pcie_ep_find_next_cap() local
101 reg = dw_pcie_readw_dbi(pci, func_offset + cap_ptr); in __dw_pcie_ep_find_next_cap()
116 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_find_capability() local
123 reg = dw_pcie_readw_dbi(pci, func_offset + PCI_CAPABILITY_LIST); in dw_pcie_ep_find_capability()
133 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_write_header() local
138 dw_pcie_dbi_ro_wr_en(pci); in dw_pcie_ep_write_header()
139 dw_pcie_writew_dbi(pci, func_offset + PCI_VENDOR_ID, hdr->vendorid); in dw_pcie_ep_write_header()
140 dw_pcie_writew_dbi(pci, func_offset + PCI_DEVICE_ID, hdr->deviceid); in dw_pcie_ep_write_header()
141 dw_pcie_writeb_dbi(pci, func_offset + PCI_REVISION_ID, hdr->revid); in dw_pcie_ep_write_header()
142 dw_pcie_writeb_dbi(pci, func_offset + PCI_CLASS_PROG, hdr->progif_code); in dw_pcie_ep_write_header()
143 dw_pcie_writew_dbi(pci, func_offset + PCI_CLASS_DEVICE, in dw_pcie_ep_write_header()
145 dw_pcie_writeb_dbi(pci, func_offset + PCI_CACHE_LINE_SIZE, in dw_pcie_ep_write_header()
147 dw_pcie_writew_dbi(pci, func_offset + PCI_SUBSYSTEM_VENDOR_ID, in dw_pcie_ep_write_header()
149 dw_pcie_writew_dbi(pci, func_offset + PCI_SUBSYSTEM_ID, hdr->subsys_id); in dw_pcie_ep_write_header()
150 dw_pcie_writeb_dbi(pci, func_offset + PCI_INTERRUPT_PIN, in dw_pcie_ep_write_header()
152 dw_pcie_dbi_ro_wr_dis(pci); in dw_pcie_ep_write_header()
163 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_inbound_atu() local
165 free_win = find_first_zero_bit(ep->ib_window_map, pci->num_ib_windows); in dw_pcie_ep_inbound_atu()
166 if (free_win >= pci->num_ib_windows) { in dw_pcie_ep_inbound_atu()
167 dev_err(pci->dev, "No free inbound window\n"); in dw_pcie_ep_inbound_atu()
171 ret = dw_pcie_prog_inbound_atu(pci, func_no, free_win, bar, cpu_addr, in dw_pcie_ep_inbound_atu()
174 dev_err(pci->dev, "Failed to program IB window\n"); in dw_pcie_ep_inbound_atu()
189 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_outbound_atu() local
191 free_win = find_first_zero_bit(ep->ob_window_map, pci->num_ob_windows); in dw_pcie_ep_outbound_atu()
192 if (free_win >= pci->num_ob_windows) { in dw_pcie_ep_outbound_atu()
193 dev_err(pci->dev, "No free outbound window\n"); in dw_pcie_ep_outbound_atu()
197 dw_pcie_prog_ep_outbound_atu(pci, func_no, free_win, PCIE_ATU_TYPE_MEM, in dw_pcie_ep_outbound_atu()
210 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_clear_bar() local
214 __dw_pcie_ep_reset_bar(pci, func_no, bar, epf_bar->flags); in dw_pcie_ep_clear_bar()
216 dw_pcie_disable_atu(pci, atu_index, DW_PCIE_REGION_INBOUND); in dw_pcie_ep_clear_bar()
226 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_set_bar() local
248 dw_pcie_dbi_ro_wr_en(pci); in dw_pcie_ep_set_bar()
250 dw_pcie_writel_dbi2(pci, reg, lower_32_bits(size - 1)); in dw_pcie_ep_set_bar()
251 dw_pcie_writel_dbi(pci, reg, flags); in dw_pcie_ep_set_bar()
254 dw_pcie_writel_dbi2(pci, reg + 4, upper_32_bits(size - 1)); in dw_pcie_ep_set_bar()
255 dw_pcie_writel_dbi(pci, reg + 4, 0); in dw_pcie_ep_set_bar()
259 dw_pcie_dbi_ro_wr_dis(pci); in dw_pcie_ep_set_bar()
268 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_find_index() local
270 for (index = 0; index < pci->num_ob_windows; index++) { in dw_pcie_find_index()
286 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_unmap_addr() local
292 dw_pcie_disable_atu(pci, atu_index, DW_PCIE_REGION_OUTBOUND); in dw_pcie_ep_unmap_addr()
301 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_map_addr() local
305 dev_err(pci->dev, "Failed to enable address\n"); in dw_pcie_ep_map_addr()
315 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_get_msi() local
327 val = dw_pcie_readw_dbi(pci, reg); in dw_pcie_ep_get_msi()
340 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_set_msi() local
352 val = dw_pcie_readw_dbi(pci, reg); in dw_pcie_ep_set_msi()
355 dw_pcie_dbi_ro_wr_en(pci); in dw_pcie_ep_set_msi()
356 dw_pcie_writew_dbi(pci, reg, val); in dw_pcie_ep_set_msi()
357 dw_pcie_dbi_ro_wr_dis(pci); in dw_pcie_ep_set_msi()
365 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_get_msix() local
377 val = dw_pcie_readw_dbi(pci, reg); in dw_pcie_ep_get_msix()
390 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_set_msix() local
399 dw_pcie_dbi_ro_wr_en(pci); in dw_pcie_ep_set_msix()
404 val = dw_pcie_readw_dbi(pci, reg); in dw_pcie_ep_set_msix()
407 dw_pcie_writew_dbi(pci, reg, val); in dw_pcie_ep_set_msix()
411 dw_pcie_writel_dbi(pci, reg, val); in dw_pcie_ep_set_msix()
415 dw_pcie_writel_dbi(pci, reg, val); in dw_pcie_ep_set_msix()
417 dw_pcie_dbi_ro_wr_dis(pci); in dw_pcie_ep_set_msix()
436 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_stop() local
438 if (pci->ops && pci->ops->stop_link) in dw_pcie_ep_stop()
439 pci->ops->stop_link(pci); in dw_pcie_ep_stop()
445 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_start() local
447 if (!pci->ops || !pci->ops->start_link) in dw_pcie_ep_start()
450 return pci->ops->start_link(pci); in dw_pcie_ep_start()
482 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_raise_legacy_irq() local
483 struct device *dev = pci->dev; in dw_pcie_ep_raise_legacy_irq()
494 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_raise_msi_irq() local
513 msg_ctrl = dw_pcie_readw_dbi(pci, reg); in dw_pcie_ep_raise_msi_irq()
516 msg_addr_lower = dw_pcie_readl_dbi(pci, reg); in dw_pcie_ep_raise_msi_irq()
519 msg_addr_upper = dw_pcie_readl_dbi(pci, reg); in dw_pcie_ep_raise_msi_irq()
521 msg_data = dw_pcie_readw_dbi(pci, reg); in dw_pcie_ep_raise_msi_irq()
525 msg_data = dw_pcie_readw_dbi(pci, reg); 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()
565 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_raise_msix_irq() local
584 tbl_offset = dw_pcie_readl_dbi(pci, reg); in dw_pcie_ep_raise_msix_irq()
594 dev_dbg(pci->dev, "MSI-X entry ctrl set\n"); in dw_pcie_ep_raise_msix_irq()
621 static unsigned int dw_pcie_ep_find_ext_capability(struct dw_pcie *pci, int cap) in dw_pcie_ep_find_ext_capability() argument
627 header = dw_pcie_readl_dbi(pci, pos); in dw_pcie_ep_find_ext_capability()
641 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_init_complete() local
648 hdr_type = dw_pcie_readb_dbi(pci, PCI_HEADER_TYPE) & in dw_pcie_ep_init_complete()
651 dev_err(pci->dev, in dw_pcie_ep_init_complete()
657 offset = dw_pcie_ep_find_ext_capability(pci, PCI_EXT_CAP_ID_REBAR); in dw_pcie_ep_init_complete()
659 dw_pcie_dbi_ro_wr_en(pci); in dw_pcie_ep_init_complete()
662 reg = dw_pcie_readl_dbi(pci, offset + PCI_REBAR_CTRL); in dw_pcie_ep_init_complete()
667 dw_pcie_writel_dbi(pci, offset + PCI_REBAR_CAP, 0x0); in dw_pcie_ep_init_complete()
670 dw_pcie_setup(pci); in dw_pcie_ep_init_complete()
671 dw_pcie_dbi_ro_wr_dis(pci); in dw_pcie_ep_init_complete()
684 struct dw_pcie *pci = to_dw_pcie_from_ep(ep); in dw_pcie_ep_init() local
685 struct device *dev = pci->dev; in dw_pcie_ep_init()
693 if (!pci->dbi_base) { in dw_pcie_ep_init()
695 pci->dbi_base = devm_pci_remap_cfg_resource(dev, res); in dw_pcie_ep_init()
696 if (IS_ERR(pci->dbi_base)) in dw_pcie_ep_init()
697 return PTR_ERR(pci->dbi_base); in dw_pcie_ep_init()
700 if (!pci->dbi_base2) { in dw_pcie_ep_init()
703 pci->dbi_base2 = pci->dbi_base + SZ_4K; in dw_pcie_ep_init()
705 pci->dbi_base2 = devm_pci_remap_cfg_resource(dev, res); in dw_pcie_ep_init()
706 if (IS_ERR(pci->dbi_base2)) in dw_pcie_ep_init()
707 return PTR_ERR(pci->dbi_base2); in dw_pcie_ep_init()
711 dw_pcie_iatu_detect(pci); in dw_pcie_ep_init()
721 BITS_TO_LONGS(pci->num_ib_windows), in dw_pcie_ep_init()
728 BITS_TO_LONGS(pci->num_ob_windows), in dw_pcie_ep_init()
734 addr = devm_kcalloc(dev, pci->num_ob_windows, sizeof(phys_addr_t), in dw_pcie_ep_init()
740 if (pci->link_gen < 1) in dw_pcie_ep_init()
741 pci->link_gen = of_pci_get_max_link_speed(np); in dw_pcie_ep_init()