Lines Matching full:pci

19 #include "../../pci.h"
43 .name = "PCI-MSI",
62 struct dw_pcie *pci = to_dw_pcie_from_pp(pp); in dw_handle_msi_irq() local
67 status = dw_pcie_readl_dbi(pci, PCIE_MSI_INTR0_STATUS + in dw_handle_msi_irq()
104 struct dw_pcie *pci = to_dw_pcie_from_pp(pp); in dw_pci_setup_msi_msg() local
114 dev_dbg(pci->dev, "msi#%d address_hi %#x address_lo %#x\n", in dw_pci_setup_msi_msg()
127 struct dw_pcie *pci = to_dw_pcie_from_pp(pp); in dw_pci_bottom_mask() local
138 dw_pcie_writel_dbi(pci, PCIE_MSI_INTR0_MASK + res, pp->irq_mask[ctrl]); in dw_pci_bottom_mask()
146 struct dw_pcie *pci = to_dw_pcie_from_pp(pp); in dw_pci_bottom_unmask() local
157 dw_pcie_writel_dbi(pci, PCIE_MSI_INTR0_MASK + res, pp->irq_mask[ctrl]); in dw_pci_bottom_unmask()
165 struct dw_pcie *pci = to_dw_pcie_from_pp(pp); in dw_pci_bottom_ack() local
172 dw_pcie_writel_dbi(pci, PCIE_MSI_INTR0_STATUS + res, BIT(bit)); in dw_pci_bottom_ack()
234 struct dw_pcie *pci = to_dw_pcie_from_pp(pp); in dw_pcie_allocate_domains() local
235 struct fwnode_handle *fwnode = of_node_to_fwnode(pci->dev->of_node); in dw_pcie_allocate_domains()
240 dev_err(pci->dev, "Failed to create IRQ domain\n"); in dw_pcie_allocate_domains()
250 dev_err(pci->dev, "Failed to create MSI domain\n"); in dw_pcie_allocate_domains()
267 struct dw_pcie *pci = to_dw_pcie_from_pp(pp); in dw_pcie_free_msi() local
268 struct device *dev = pci->dev; in dw_pcie_free_msi()
277 struct dw_pcie *pci = to_dw_pcie_from_pp(pp); in dw_pcie_msi_init() local
284 dw_pcie_writel_dbi(pci, PCIE_MSI_ADDR_LO, lower_32_bits(msi_target)); in dw_pcie_msi_init()
285 dw_pcie_writel_dbi(pci, PCIE_MSI_ADDR_HI, upper_32_bits(msi_target)); in dw_pcie_msi_init()
290 struct dw_pcie *pci = to_dw_pcie_from_pp(pp); in dw_pcie_host_init() local
291 struct device *dev = pci->dev; in dw_pcie_host_init()
299 raw_spin_lock_init(&pci->pp.lock); in dw_pcie_host_init()
314 if (!pci->dbi_base) { in dw_pcie_host_init()
316 pci->dbi_base = devm_pci_remap_cfg_resource(dev, dbi_res); in dw_pcie_host_init()
317 if (IS_ERR(pci->dbi_base)) in dw_pcie_host_init()
318 return PTR_ERR(pci->dbi_base); in dw_pcie_host_init()
335 if (pci->link_gen < 1) in dw_pcie_host_init()
336 pci->link_gen = of_pci_get_max_link_speed(np); in dw_pcie_host_init()
375 ret = dma_set_mask(pci->dev, DMA_BIT_MASK(32)); in dw_pcie_host_init()
377 …dev_warn(pci->dev, "Failed to set DMA mask to 32-bit. Devices with only 32-bit MSI support may not… in dw_pcie_host_init()
379 pp->msi_data = dma_map_single_attrs(pci->dev, &pp->msi_msg, in dw_pcie_host_init()
383 if (dma_mapping_error(pci->dev, pp->msi_data)) { in dw_pcie_host_init()
384 dev_err(pci->dev, "Failed to map MSI data\n"); in dw_pcie_host_init()
400 dw_pcie_iatu_detect(pci); in dw_pcie_host_init()
404 if (!dw_pcie_link_up(pci) && pci->ops && pci->ops->start_link) { in dw_pcie_host_init()
405 ret = pci->ops->start_link(pci); in dw_pcie_host_init()
411 dw_pcie_wait_for_link(pci); in dw_pcie_host_init()
441 struct dw_pcie *pci = to_dw_pcie_from_pp(pp); in dw_pcie_other_conf_map_bus() local
446 * SError upon PCI configuration transactions issued when the link in dw_pcie_other_conf_map_bus()
451 if (!dw_pcie_link_up(pci)) in dw_pcie_other_conf_map_bus()
463 dw_pcie_prog_outbound_atu(pci, 0, type, pp->cfg0_base, busdev, pp->cfg0_size); in dw_pcie_other_conf_map_bus()
473 struct dw_pcie *pci = to_dw_pcie_from_pp(pp); in dw_pcie_rd_other_conf() local
477 if (!ret && pci->io_cfg_atu_shared) in dw_pcie_rd_other_conf()
478 dw_pcie_prog_outbound_atu(pci, 0, PCIE_ATU_TYPE_IO, pp->io_base, in dw_pcie_rd_other_conf()
489 struct dw_pcie *pci = to_dw_pcie_from_pp(pp); in dw_pcie_wr_other_conf() local
493 if (!ret && pci->io_cfg_atu_shared) in dw_pcie_wr_other_conf()
494 dw_pcie_prog_outbound_atu(pci, 0, PCIE_ATU_TYPE_IO, pp->io_base, in dw_pcie_wr_other_conf()
509 struct dw_pcie *pci = to_dw_pcie_from_pp(pp); in dw_pcie_own_conf_map_bus() local
514 return pci->dbi_base + where; in dw_pcie_own_conf_map_bus()
528 struct dw_pcie *pci = to_dw_pcie_from_pp(pp); in dw_pcie_setup_rc() local
534 dw_pcie_dbi_ro_wr_en(pci); in dw_pcie_setup_rc()
536 dw_pcie_setup(pci); in dw_pcie_setup_rc()
544 dw_pcie_writel_dbi(pci, PCIE_MSI_INTR0_MASK + in dw_pcie_setup_rc()
547 dw_pcie_writel_dbi(pci, PCIE_MSI_INTR0_ENABLE + in dw_pcie_setup_rc()
556 dw_pcie_writel_dbi(pci, PCI_BASE_ADDRESS_0, 0x00000004); in dw_pcie_setup_rc()
557 dw_pcie_writel_dbi(pci, PCI_BASE_ADDRESS_1, 0x00000000); in dw_pcie_setup_rc()
560 val = dw_pcie_readl_dbi(pci, PCI_INTERRUPT_LINE); in dw_pcie_setup_rc()
563 dw_pcie_writel_dbi(pci, PCI_INTERRUPT_LINE, val); in dw_pcie_setup_rc()
566 val = dw_pcie_readl_dbi(pci, PCI_PRIMARY_BUS); in dw_pcie_setup_rc()
569 dw_pcie_writel_dbi(pci, PCI_PRIMARY_BUS, val); in dw_pcie_setup_rc()
572 val = dw_pcie_readl_dbi(pci, PCI_COMMAND); in dw_pcie_setup_rc()
576 dw_pcie_writel_dbi(pci, PCI_COMMAND, val); in dw_pcie_setup_rc()
579 for (i = 0; i < pci->num_ob_windows; i++) in dw_pcie_setup_rc()
580 dw_pcie_disable_atu(pci, i, DW_PCIE_REGION_OUTBOUND); in dw_pcie_setup_rc()
596 if (pci->num_ob_windows <= ++atu_idx) in dw_pcie_setup_rc()
599 dw_pcie_prog_outbound_atu(pci, atu_idx, in dw_pcie_setup_rc()
606 if (pci->num_ob_windows > ++atu_idx) in dw_pcie_setup_rc()
607 dw_pcie_prog_outbound_atu(pci, atu_idx, in dw_pcie_setup_rc()
611 pci->io_cfg_atu_shared = true; in dw_pcie_setup_rc()
614 if (pci->num_ob_windows <= atu_idx) in dw_pcie_setup_rc()
615 dev_warn(pci->dev, "Resources exceed number of ATU entries (%d)", in dw_pcie_setup_rc()
616 pci->num_ob_windows); in dw_pcie_setup_rc()
619 dw_pcie_writel_dbi(pci, PCI_BASE_ADDRESS_0, 0); in dw_pcie_setup_rc()
622 dw_pcie_writew_dbi(pci, PCI_CLASS_DEVICE, PCI_CLASS_BRIDGE_PCI); in dw_pcie_setup_rc()
624 val = dw_pcie_readl_dbi(pci, PCIE_LINK_WIDTH_SPEED_CONTROL); in dw_pcie_setup_rc()
626 dw_pcie_writel_dbi(pci, PCIE_LINK_WIDTH_SPEED_CONTROL, val); in dw_pcie_setup_rc()
628 dw_pcie_dbi_ro_wr_dis(pci); in dw_pcie_setup_rc()