Lines Matching defs:ep

38 	struct cdns_pcie_ep *ep = epc_get_drvdata(epc);
40 struct cdns_pcie *pcie = &ep->pcie;
80 struct cdns_pcie_ep *ep = epc_get_drvdata(epc);
81 struct cdns_pcie_epf *epf = &ep->epf[fn];
82 struct cdns_pcie *pcie = &ep->pcie;
151 struct cdns_pcie_ep *ep = epc_get_drvdata(epc);
152 struct cdns_pcie_epf *epf = &ep->epf[fn];
153 struct cdns_pcie *pcie = &ep->pcie;
184 struct cdns_pcie_ep *ep = epc_get_drvdata(epc);
185 struct cdns_pcie *pcie = &ep->pcie;
188 r = find_first_zero_bit(&ep->ob_region_map, BITS_PER_LONG);
189 if (r >= ep->max_regions - 1) {
197 set_bit(r, &ep->ob_region_map);
198 ep->ob_addr[r] = addr;
206 struct cdns_pcie_ep *ep = epc_get_drvdata(epc);
207 struct cdns_pcie *pcie = &ep->pcie;
210 for (r = 0; r < ep->max_regions - 1; r++)
211 if (ep->ob_addr[r] == addr)
214 if (r == ep->max_regions - 1)
219 ep->ob_addr[r] = 0;
220 clear_bit(r, &ep->ob_region_map);
225 struct cdns_pcie_ep *ep = epc_get_drvdata(epc);
226 struct cdns_pcie *pcie = &ep->pcie;
247 struct cdns_pcie_ep *ep = epc_get_drvdata(epc);
248 struct cdns_pcie *pcie = &ep->pcie;
270 struct cdns_pcie_ep *ep = epc_get_drvdata(epc);
271 struct cdns_pcie *pcie = &ep->pcie;
291 struct cdns_pcie_ep *ep = epc_get_drvdata(epc);
292 struct cdns_pcie *pcie = &ep->pcie;
317 static void cdns_pcie_ep_assert_intx(struct cdns_pcie_ep *ep, u8 fn, u8 intx,
320 struct cdns_pcie *pcie = &ep->pcie;
329 if (unlikely(ep->irq_pci_addr != CDNS_PCIE_EP_IRQ_PCI_ADDR_LEGACY ||
330 ep->irq_pci_fn != fn)) {
333 ep->irq_phys_addr);
334 ep->irq_pci_addr = CDNS_PCIE_EP_IRQ_PCI_ADDR_LEGACY;
335 ep->irq_pci_fn = fn;
339 ep->irq_pending |= BIT(intx);
342 ep->irq_pending &= ~BIT(intx);
346 spin_lock_irqsave(&ep->lock, flags);
348 if (((status & PCI_STATUS_INTERRUPT) != 0) ^ (ep->irq_pending != 0)) {
352 spin_unlock_irqrestore(&ep->lock, flags);
357 writel(0, ep->irq_cpu_addr + offset);
360 static int cdns_pcie_ep_send_intx_irq(struct cdns_pcie_ep *ep, u8 fn, u8 vfn,
365 cmd = cdns_pcie_ep_fn_readw(&ep->pcie, fn, PCI_COMMAND);
369 cdns_pcie_ep_assert_intx(ep, fn, intx, true);
374 cdns_pcie_ep_assert_intx(ep, fn, intx, false);
378 static int cdns_pcie_ep_send_msi_irq(struct cdns_pcie_ep *ep, u8 fn, u8 vfn,
381 struct cdns_pcie *pcie = &ep->pcie;
412 if (unlikely(ep->irq_pci_addr != (pci_addr & ~pci_addr_mask) ||
413 ep->irq_pci_fn != fn)) {
417 ep->irq_phys_addr,
420 ep->irq_pci_addr = (pci_addr & ~pci_addr_mask);
421 ep->irq_pci_fn = fn;
423 writel(data, ep->irq_cpu_addr + (pci_addr & pci_addr_mask));
433 struct cdns_pcie_ep *ep = epc_get_drvdata(epc);
435 struct cdns_pcie *pcie = &ep->pcie;
481 static int cdns_pcie_ep_send_msix_irq(struct cdns_pcie_ep *ep, u8 fn, u8 vfn,
486 struct cdns_pcie *pcie = &ep->pcie;
494 epf = &ep->epf[fn];
515 if (ep->irq_pci_addr != (msg_addr & ~pci_addr_mask) ||
516 ep->irq_pci_fn != fn) {
520 ep->irq_phys_addr,
523 ep->irq_pci_addr = (msg_addr & ~pci_addr_mask);
524 ep->irq_pci_fn = fn;
526 writel(msg_data, ep->irq_cpu_addr + (msg_addr & pci_addr_mask));
534 struct cdns_pcie_ep *ep = epc_get_drvdata(epc);
535 struct cdns_pcie *pcie = &ep->pcie;
544 return cdns_pcie_ep_send_intx_irq(ep, fn, vfn, 0);
547 return cdns_pcie_ep_send_msi_irq(ep, fn, vfn, interrupt_num);
550 return cdns_pcie_ep_send_msix_irq(ep, fn, vfn, interrupt_num);
561 struct cdns_pcie_ep *ep = epc_get_drvdata(epc);
562 struct cdns_pcie *pcie = &ep->pcie;
585 if (ep->quirk_disable_flr) {
649 int cdns_pcie_ep_setup(struct cdns_pcie_ep *ep)
651 struct device *dev = ep->pcie.dev;
654 struct cdns_pcie *pcie = &ep->pcie;
676 ep->max_regions = CDNS_PCIE_MAX_OB;
677 of_property_read_u32(np, "cdns,max-outbound-regions", &ep->max_regions);
679 ep->ob_addr = devm_kcalloc(dev,
680 ep->max_regions, sizeof(*ep->ob_addr),
682 if (!ep->ob_addr)
694 epc_set_drvdata(epc, ep);
699 ep->epf = devm_kcalloc(dev, epc->max_functions, sizeof(*ep->epf),
701 if (!ep->epf)
713 epf = &ep->epf[i];
717 sizeof(*ep->epf), GFP_KERNEL);
730 ep->irq_cpu_addr = pci_epc_mem_alloc_addr(epc, &ep->irq_phys_addr,
732 if (!ep->irq_cpu_addr) {
737 ep->irq_pci_addr = CDNS_PCIE_EP_IRQ_PCI_ADDR_NONE;
739 set_bit(0, &ep->ob_region_map);
741 if (ep->quirk_detect_quiet_flag)
742 cdns_pcie_detect_quiet_min_delay_set(&ep->pcie);
744 spin_lock_init(&ep->lock);