Lines Matching refs:epf

199 	struct pci_epf			*epf;  member
259 struct pci_epf *epf = nvme_epf->epf; in nvmet_pci_epf_mem_map() local
261 return pci_epc_mem_map(epf->epc, epf->func_no, epf->vfunc_no, in nvmet_pci_epf_mem_map()
268 struct pci_epf *epf = nvme_epf->epf; in nvmet_pci_epf_mem_unmap() local
270 pci_epc_mem_unmap(epf->epc, epf->func_no, epf->vfunc_no, map); in nvmet_pci_epf_mem_unmap()
292 struct pci_epf *epf = nvme_epf->epf; in nvmet_pci_epf_init_dma() local
293 struct device *dev = &epf->dev; in nvmet_pci_epf_init_dma()
304 filter.dev = epf->epc->dev.parent; in nvmet_pci_epf_init_dma()
341 dev_info(&epf->dev, "DMA not supported, falling back to MMIO\n"); in nvmet_pci_epf_init_dma()
361 struct pci_epf *epf = nvme_epf->epf; in nvmet_pci_epf_dma_transfer() local
364 struct device *dev = &epf->dev; in nvmet_pci_epf_dma_transfer()
621 struct pci_epf *epf = nvme_epf->epf; in nvmet_pci_epf_raise_irq() local
642 ret = pci_epc_raise_irq(epf->epc, epf->func_no, epf->vfunc_no, in nvmet_pci_epf_raise_irq()
648 ret = pci_epc_raise_irq(epf->epc, epf->func_no, epf->vfunc_no, in nvmet_pci_epf_raise_irq()
2031 ctrl->dev = &nvme_epf->epf->dev; in nvmet_pci_epf_create_ctrl()
2155 struct pci_epf *epf = nvme_epf->epf; in nvmet_pci_epf_configure_bar() local
2165 dev_err(&epf->dev, "BAR 0 is not free\n"); in nvmet_pci_epf_configure_bar()
2177 epf->bar[BAR_0].flags |= PCI_BASE_ADDRESS_MEM_TYPE_64; in nvmet_pci_epf_configure_bar()
2190 msix_table_size = PCI_MSIX_ENTRY_SIZE * epf->msix_interrupts; in nvmet_pci_epf_configure_bar()
2192 pba_size = ALIGN(DIV_ROUND_UP(epf->msix_interrupts, 8), 8); in nvmet_pci_epf_configure_bar()
2199 dev_err(&epf->dev, in nvmet_pci_epf_configure_bar()
2210 nvme_epf->reg_bar = pci_epf_alloc_space(epf, reg_bar_size, BAR_0, in nvmet_pci_epf_configure_bar()
2213 dev_err(&epf->dev, "Failed to allocate BAR 0\n"); in nvmet_pci_epf_configure_bar()
2223 struct pci_epf *epf = nvme_epf->epf; in nvmet_pci_epf_free_bar() local
2228 pci_epf_free_space(epf, nvme_epf->reg_bar, BAR_0, PRIMARY_INTERFACE); in nvmet_pci_epf_free_bar()
2234 struct pci_epf *epf = nvme_epf->epf; in nvmet_pci_epf_clear_bar() local
2236 pci_epc_clear_bar(epf->epc, epf->func_no, epf->vfunc_no, in nvmet_pci_epf_clear_bar()
2237 &epf->bar[BAR_0]); in nvmet_pci_epf_clear_bar()
2243 struct pci_epf *epf = nvme_epf->epf; in nvmet_pci_epf_init_irq() local
2247 if (epc_features->msix_capable && epf->msix_interrupts) { in nvmet_pci_epf_init_irq()
2248 ret = pci_epc_set_msix(epf->epc, epf->func_no, epf->vfunc_no, in nvmet_pci_epf_init_irq()
2249 epf->msix_interrupts, BAR_0, in nvmet_pci_epf_init_irq()
2252 dev_err(&epf->dev, "Failed to configure MSI-X\n"); in nvmet_pci_epf_init_irq()
2256 nvme_epf->nr_vectors = epf->msix_interrupts; in nvmet_pci_epf_init_irq()
2262 if (epc_features->msi_capable && epf->msi_interrupts) { in nvmet_pci_epf_init_irq()
2263 ret = pci_epc_set_msi(epf->epc, epf->func_no, epf->vfunc_no, in nvmet_pci_epf_init_irq()
2264 epf->msi_interrupts); in nvmet_pci_epf_init_irq()
2266 dev_err(&epf->dev, "Failed to configure MSI\n"); in nvmet_pci_epf_init_irq()
2270 nvme_epf->nr_vectors = epf->msi_interrupts; in nvmet_pci_epf_init_irq()
2283 static int nvmet_pci_epf_epc_init(struct pci_epf *epf) in nvmet_pci_epf_epc_init() argument
2285 struct nvmet_pci_epf *nvme_epf = epf_get_drvdata(epf); in nvmet_pci_epf_epc_init()
2292 if (epf->vfunc_no > 0) { in nvmet_pci_epf_epc_init()
2293 dev_err(&epf->dev, "Virtual functions are not supported\n"); in nvmet_pci_epf_epc_init()
2301 if (epc_features->msix_capable && epf->msix_interrupts) { in nvmet_pci_epf_epc_init()
2302 dev_info(&epf->dev, in nvmet_pci_epf_epc_init()
2304 epf->msix_interrupts); in nvmet_pci_epf_epc_init()
2305 max_nr_queues = min(max_nr_queues, epf->msix_interrupts); in nvmet_pci_epf_epc_init()
2306 } else if (epc_features->msi_capable && epf->msi_interrupts) { in nvmet_pci_epf_epc_init()
2307 dev_info(&epf->dev, in nvmet_pci_epf_epc_init()
2309 epf->msi_interrupts); in nvmet_pci_epf_epc_init()
2310 max_nr_queues = min(max_nr_queues, epf->msi_interrupts); in nvmet_pci_epf_epc_init()
2314 dev_err(&epf->dev, "Invalid maximum number of queues %u\n", in nvmet_pci_epf_epc_init()
2322 dev_err(&epf->dev, in nvmet_pci_epf_epc_init()
2329 epf->header->vendorid = ctrl->tctrl->subsys->vendor_id; in nvmet_pci_epf_epc_init()
2330 epf->header->subsys_vendor_id = ctrl->tctrl->subsys->subsys_vendor_id; in nvmet_pci_epf_epc_init()
2331 ret = pci_epc_write_header(epf->epc, epf->func_no, epf->vfunc_no, in nvmet_pci_epf_epc_init()
2332 epf->header); in nvmet_pci_epf_epc_init()
2334 dev_err(&epf->dev, in nvmet_pci_epf_epc_init()
2339 ret = pci_epc_set_bar(epf->epc, epf->func_no, epf->vfunc_no, in nvmet_pci_epf_epc_init()
2340 &epf->bar[BAR_0]); in nvmet_pci_epf_epc_init()
2342 dev_err(&epf->dev, "Failed to set BAR 0 (err=%d)\n", ret); in nvmet_pci_epf_epc_init()
2366 static void nvmet_pci_epf_epc_deinit(struct pci_epf *epf) in nvmet_pci_epf_epc_deinit() argument
2368 struct nvmet_pci_epf *nvme_epf = epf_get_drvdata(epf); in nvmet_pci_epf_epc_deinit()
2377 static int nvmet_pci_epf_link_up(struct pci_epf *epf) in nvmet_pci_epf_link_up() argument
2379 struct nvmet_pci_epf *nvme_epf = epf_get_drvdata(epf); in nvmet_pci_epf_link_up()
2387 static int nvmet_pci_epf_link_down(struct pci_epf *epf) in nvmet_pci_epf_link_down() argument
2389 struct nvmet_pci_epf *nvme_epf = epf_get_drvdata(epf); in nvmet_pci_epf_link_down()
2404 static int nvmet_pci_epf_bind(struct pci_epf *epf) in nvmet_pci_epf_bind() argument
2406 struct nvmet_pci_epf *nvme_epf = epf_get_drvdata(epf); in nvmet_pci_epf_bind()
2408 struct pci_epc *epc = epf->epc; in nvmet_pci_epf_bind()
2414 epc_features = pci_epc_get_features(epc, epf->func_no, epf->vfunc_no); in nvmet_pci_epf_bind()
2416 dev_err(&epf->dev, "epc_features not implemented\n"); in nvmet_pci_epf_bind()
2430 static void nvmet_pci_epf_unbind(struct pci_epf *epf) in nvmet_pci_epf_unbind() argument
2432 struct nvmet_pci_epf *nvme_epf = epf_get_drvdata(epf); in nvmet_pci_epf_unbind()
2433 struct pci_epc *epc = epf->epc; in nvmet_pci_epf_unbind()
2454 static int nvmet_pci_epf_probe(struct pci_epf *epf, in nvmet_pci_epf_probe() argument
2460 nvme_epf = devm_kzalloc(&epf->dev, sizeof(*nvme_epf), GFP_KERNEL); in nvmet_pci_epf_probe()
2464 ret = devm_mutex_init(&epf->dev, &nvme_epf->mmio_lock); in nvmet_pci_epf_probe()
2468 nvme_epf->epf = epf; in nvmet_pci_epf_probe()
2471 epf->event_ops = &nvmet_pci_epf_event_ops; in nvmet_pci_epf_probe()
2472 epf->header = &nvme_epf_pci_header; in nvmet_pci_epf_probe()
2473 epf_set_drvdata(epf, nvme_epf); in nvmet_pci_epf_probe()
2591 static struct config_group *nvmet_pci_epf_add_cfs(struct pci_epf *epf, in nvmet_pci_epf_add_cfs() argument
2594 struct nvmet_pci_epf *nvme_epf = epf_get_drvdata(epf); in nvmet_pci_epf_add_cfs()