Lines Matching refs:rc

32 	struct cdns_pcie_rc *rc = pci_host_bridge_priv(bridge);
33 struct cdns_pcie *pcie = &rc->pcie;
73 return rc->cfg_base + (where & 0xfff);
161 static int cdns_pcie_host_start_link(struct cdns_pcie_rc *rc)
163 struct cdns_pcie *pcie = &rc->pcie;
172 if (!ret && rc->quirk_retrain_flag)
178 static int cdns_pcie_host_init_root_port(struct cdns_pcie_rc *rc)
180 struct cdns_pcie *pcie = &rc->pcie;
202 if (rc->vendor_id != 0xffff) {
203 id = CDNS_PCIE_LM_ID_VENDOR(rc->vendor_id) |
204 CDNS_PCIE_LM_ID_SUBSYS(rc->vendor_id);
208 if (rc->device_id != 0xffff)
209 cdns_pcie_rp_writew(pcie, PCI_DEVICE_ID, rc->device_id);
218 static int cdns_pcie_host_bar_ib_config(struct cdns_pcie_rc *rc,
223 struct cdns_pcie *pcie = &rc->pcie;
226 if (!rc->avail_ib_bar[bar])
229 rc->avail_ib_bar[bar] = false;
264 cdns_pcie_host_find_min_bar(struct cdns_pcie_rc *rc, u64 size)
270 if (!rc->avail_ib_bar[bar])
288 cdns_pcie_host_find_max_bar(struct cdns_pcie_rc *rc, u64 size)
294 if (!rc->avail_ib_bar[bar])
311 static int cdns_pcie_host_bar_config(struct cdns_pcie_rc *rc,
315 struct cdns_pcie *pcie = &rc->pcie;
341 bar = cdns_pcie_host_find_min_bar(rc, size);
343 ret = cdns_pcie_host_bar_ib_config(rc, bar, cpu_addr,
361 bar = cdns_pcie_host_find_max_bar(rc, size);
369 ret = cdns_pcie_host_bar_ib_config(rc, bar, cpu_addr, winsize,
394 static int cdns_pcie_host_map_dma_ranges(struct cdns_pcie_rc *rc)
396 struct cdns_pcie *pcie = &rc->pcie;
404 bridge = pci_host_bridge_from_priv(rc);
411 err = cdns_pcie_host_bar_ib_config(rc, RP_NO_BAR, 0x0,
421 err = cdns_pcie_host_bar_config(rc, entry);
431 static int cdns_pcie_host_init_address_translation(struct cdns_pcie_rc *rc)
433 struct cdns_pcie *pcie = &rc->pcie;
434 struct pci_host_bridge *bridge = pci_host_bridge_from_priv(rc);
435 struct resource *cfg_res = rc->cfg_res;
485 return cdns_pcie_host_map_dma_ranges(rc);
489 struct cdns_pcie_rc *rc)
493 err = cdns_pcie_host_init_root_port(rc);
497 return cdns_pcie_host_init_address_translation(rc);
500 int cdns_pcie_host_setup(struct cdns_pcie_rc *rc)
502 struct device *dev = rc->pcie.dev;
511 bridge = pci_host_bridge_from_priv(rc);
515 pcie = &rc->pcie;
518 rc->vendor_id = 0xffff;
519 of_property_read_u32(np, "vendor-id", &rc->vendor_id);
521 rc->device_id = 0xffff;
522 of_property_read_u32(np, "device-id", &rc->device_id);
531 rc->cfg_base = devm_pci_remap_cfg_resource(dev, res);
532 if (IS_ERR(rc->cfg_base))
533 return PTR_ERR(rc->cfg_base);
534 rc->cfg_res = res;
536 if (rc->quirk_detect_quiet_flag)
537 cdns_pcie_detect_quiet_min_delay_set(&rc->pcie);
547 ret = cdns_pcie_host_start_link(rc);
552 rc->avail_ib_bar[bar] = true;
554 ret = cdns_pcie_host_init(dev, rc);