| /linux/drivers/pci/endpoint/functions/ |
| H A D | pci-epf-test.c | 74 struct pci_epf *epf; member 159 struct pci_epf *epf = epf_test->epf; in pci_epf_test_data_transfer() local 162 struct device *dev = &epf->dev; in pci_epf_test_data_transfer() 248 struct pci_epf *epf = epf_test->epf; in pci_epf_test_init_dma_chan() local 249 struct device *dev = &epf->dev; in pci_epf_test_init_dma_chan() 255 filter.dev = epf->epc->dev.parent; in pci_epf_test_init_dma_chan() 345 dev_info(&epf_test->epf->dev, in pci_epf_test_print_rate() 355 struct pci_epf *epf = epf_test->epf; in pci_epf_test_copy() local 356 struct pci_epc *epc = epf->epc; in pci_epf_test_copy() 357 struct device *dev = &epf->dev; in pci_epf_test_copy() [all …]
|
| H A D | pci-epf-vntb.c | 124 struct pci_epf *epf; member 218 func_no = ntb->epf->func_no; in epf_ntb_configure_mw() 219 vfunc_no = ntb->epf->vfunc_no; in epf_ntb_configure_mw() 221 ret = pci_epc_map_addr(ntb->epf->epc, func_no, vfunc_no, phys_addr, addr, size); in epf_ntb_configure_mw() 223 dev_err(&ntb->epf->epc->dev, in epf_ntb_configure_mw() 238 pci_epc_unmap_addr(ntb->epf->epc, in epf_ntb_teardown_mw() 239 ntb->epf->func_no, in epf_ntb_teardown_mw() 240 ntb->epf->vfunc_no, in epf_ntb_teardown_mw() 282 dev = &ntb->epf->dev; in epf_ntb_cmd_handler() 334 if (irq == ntb->epf->db_msg[i].virq) { in epf_ntb_doorbell_handler() [all …]
|
| H A D | pci-epf-mhi.c | 147 struct pci_epf *epf; member 171 struct pci_epf *epf = epf_mhi->epf; in __pci_epf_mhi_alloc_map() local 172 struct pci_epc *epc = epf->epc; in __pci_epf_mhi_alloc_map() 179 ret = pci_epc_map_addr(epc, epf->func_no, epf->vfunc_no, *paddr, in __pci_epf_mhi_alloc_map() 209 struct pci_epf *epf = epf_mhi->epf; in __pci_epf_mhi_unmap_free() local 210 struct pci_epc *epc = epf->epc; in __pci_epf_mhi_unmap_free() 212 pci_epc_unmap_addr(epc, epf->func_no, epf->vfunc_no, paddr - offset); in __pci_epf_mhi_unmap_free() 231 struct pci_epf *epf = epf_mhi->epf; in pci_epf_mhi_raise_irq() local 232 struct pci_epc *epc = epf->epc; in pci_epf_mhi_raise_irq() 238 pci_epc_raise_irq(epc, epf->func_no, epf->vfunc_no, PCI_IRQ_MSI, in pci_epf_mhi_raise_irq() [all …]
|
| H A D | pci-epf-ntb.c | 80 struct pci_epf *epf; member 645 dev = &ntb->epf->dev; in epf_ntb_cmd_handler() 791 dev = &ntb->epf->dev; in epf_ntb_peer_spad_bar_set() 906 dev = &ntb->epf->dev; in epf_ntb_config_sspad_bar_set() 953 struct pci_epf *epf; in epf_ntb_config_spad_bar_free() local 955 epf = ntb->epf; in epf_ntb_config_spad_bar_free() 960 pci_epf_free_space(epf, ntb_epc->reg, barno, type); in epf_ntb_config_spad_bar_free() 1003 struct pci_epf *epf; in epf_ntb_config_spad_bar_alloc() local 1009 epf = ntb->epf; in epf_ntb_config_spad_bar_alloc() 1010 dev = &epf->dev; in epf_ntb_config_spad_bar_alloc() [all …]
|
| H A D | Makefile | 6 obj-$(CONFIG_PCI_EPF_TEST) += pci-epf-test.o 7 obj-$(CONFIG_PCI_EPF_NTB) += pci-epf-ntb.o 8 obj-$(CONFIG_PCI_EPF_VNTB) += pci-epf-vntb.o 9 obj-$(CONFIG_PCI_EPF_MHI) += pci-epf-mhi.o
|
| /linux/drivers/pci/endpoint/ |
| H A D | pci-epf-core.c | 31 void pci_epf_unbind(struct pci_epf *epf) in pci_epf_unbind() argument 35 if (!epf->driver) { in pci_epf_unbind() 36 dev_WARN(&epf->dev, "epf device not bound to driver\n"); in pci_epf_unbind() 40 mutex_lock(&epf->lock); in pci_epf_unbind() 41 list_for_each_entry(epf_vf, &epf->pci_vepf, list) { in pci_epf_unbind() 45 if (epf->is_bound) in pci_epf_unbind() 46 epf->driver->ops->unbind(epf); in pci_epf_unbind() 47 mutex_unlock(&epf->lock); in pci_epf_unbind() 48 module_put(epf->driver->owner); in pci_epf_unbind() 59 int pci_epf_bind(struct pci_epf *epf) in pci_epf_bind() argument [all …]
|
| H A D | pci-ep-cfs.c | 26 struct pci_epf *epf; member 53 struct pci_epf *epf = epf_group->epf; in pci_secondary_epc_epf_link() local 55 ret = pci_epc_add_epf(epc, epf, SECONDARY_INTERFACE); in pci_secondary_epc_epf_link() 59 ret = pci_epf_bind(epf); in pci_secondary_epc_epf_link() 61 pci_epc_remove_epf(epc, epf, SECONDARY_INTERFACE); in pci_secondary_epc_epf_link() 66 pci_epc_notify_pending_init(epc, epf); in pci_secondary_epc_epf_link() 77 struct pci_epf *epf; in pci_secondary_epc_epf_unlink() local 82 epf = epf_group->epf; in pci_secondary_epc_epf_unlink() 83 pci_epf_unbind(epf); in pci_secondary_epc_epf_unlink() 84 pci_epc_remove_epf(epc, epf, SECONDARY_INTERFACE); in pci_secondary_epc_epf_unlink() [all …]
|
| H A D | pci-ep-msi.c | 24 struct pci_epf *epf; in pci_epf_write_msi_msg() local 30 epf = list_first_entry_or_null(&epc->pci_epf, struct pci_epf, list); in pci_epf_write_msi_msg() 32 if (epf && epf->db_msg && desc->msi_index < epf->num_db) in pci_epf_write_msi_msg() 33 memcpy(&epf->db_msg[desc->msi_index].msg, msg, sizeof(*msg)); in pci_epf_write_msi_msg() 38 int pci_epf_alloc_doorbell(struct pci_epf *epf, u16 num_db) in pci_epf_alloc_doorbell() argument 40 struct pci_epc *epc = epf->epc; in pci_epf_alloc_doorbell() 41 struct device *dev = &epf->dev; in pci_epf_alloc_doorbell() 48 if (list_first_entry_or_null(&epc->pci_epf, struct pci_epf, list) != epf) { in pci_epf_alloc_doorbell() 74 epf->num_db = num_db; in pci_epf_alloc_doorbell() 75 epf->db_msg = msg; in pci_epf_alloc_doorbell() [all …]
|
| H A D | pci-epc-core.c | 709 int pci_epc_add_epf(struct pci_epc *epc, struct pci_epf *epf, in pci_epc_add_epf() argument 716 if (IS_ERR_OR_NULL(epc) || epf->is_vf) in pci_epc_add_epf() 719 if (type == PRIMARY_INTERFACE && epf->epc) in pci_epc_add_epf() 722 if (type == SECONDARY_INTERFACE && epf->sec_epc) in pci_epc_add_epf() 741 epf->func_no = func_no; in pci_epc_add_epf() 742 epf->epc = epc; in pci_epc_add_epf() 743 list = &epf->list; in pci_epc_add_epf() 745 epf->sec_epc_func_no = func_no; in pci_epc_add_epf() 746 epf->sec_epc = epc; in pci_epc_add_epf() 747 list = &epf->sec_epc_list; in pci_epc_add_epf() [all …]
|
| H A D | Makefile | 7 obj-$(CONFIG_PCI_ENDPOINT) += pci-epc-core.o pci-epf-core.o\
|
| /linux/include/linux/ |
| H A D | pci-epf.h | 66 int (*bind)(struct pci_epf *epf); 67 void (*unbind)(struct pci_epf *epf); 68 struct config_group *(*add_cfs)(struct pci_epf *epf, 81 int (*epc_init)(struct pci_epf *epf); 82 void (*epc_deinit)(struct pci_epf *epf); 83 int (*link_up)(struct pci_epf *epf); 84 int (*link_down)(struct pci_epf *epf); 85 int (*bus_master_enable)(struct pci_epf *epf); 100 int (*probe)(struct pci_epf *epf, 102 void (*remove)(struct pci_epf *epf); [all …]
|
| H A D | pci-ep-msi.h | 15 int pci_epf_alloc_doorbell(struct pci_epf *epf, u16 nums); 16 void pci_epf_free_doorbell(struct pci_epf *epf); 18 static inline int pci_epf_alloc_doorbell(struct pci_epf *epf, u16 nums) in pci_epf_alloc_doorbell() argument 23 static inline void pci_epf_free_doorbell(struct pci_epf *epf) in pci_epf_free_doorbell() argument
|
| H A D | pci-epc.h | 276 int pci_epc_add_epf(struct pci_epc *epc, struct pci_epf *epf, 281 void pci_epc_notify_pending_init(struct pci_epc *epc, struct pci_epf *epf); 284 void pci_epc_remove_epf(struct pci_epc *epc, struct pci_epf *epf,
|
| /linux/drivers/nvme/target/ |
| H A D | pci-epf.c | 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() 343 dev_info(&epf->dev, "DMA not supported, falling back to MMIO\n"); in nvmet_pci_epf_init_dma() 363 struct pci_epf *epf = nvme_epf->epf; in nvmet_pci_epf_dma_transfer() local [all …]
|
| H A D | Makefile | 11 obj-$(CONFIG_NVME_TARGET_PCI_EPF) += nvmet-pci-epf.o 24 nvmet-pci-epf-y += pci-epf.o
|
| /linux/drivers/pci/controller/cadence/ |
| H A D | pcie-cadence-ep.c | 85 struct cdns_pcie_epf *epf = &ep->epf[fn]; in cdns_pcie_ep_set_bar() local 146 epf = &epf->epf[vfn - 1]; in cdns_pcie_ep_set_bar() 147 epf->epf_bar[bar] = epf_bar; in cdns_pcie_ep_set_bar() 156 struct cdns_pcie_epf *epf = &ep->epf[fn]; in cdns_pcie_ep_clear_bar() local 181 epf = &epf->epf[vfn - 1]; in cdns_pcie_ep_clear_bar() 182 epf->epf_bar[bar] = NULL; in cdns_pcie_ep_clear_bar() 494 struct cdns_pcie_epf *epf; in cdns_pcie_ep_send_msix_irq() local 501 epf = &ep->epf[fn]; in cdns_pcie_ep_send_msix_irq() 503 epf = &epf->epf[vfn - 1]; in cdns_pcie_ep_send_msix_irq() 517 msix_tbl = epf->epf_bar[bir]->addr + tbl_offset; in cdns_pcie_ep_send_msix_irq() [all …]
|
| H A D | pcie-cadence.h | 138 struct cdns_pcie_epf *epf; member 177 struct cdns_pcie_epf *epf; member
|
| /linux/Documentation/PCI/endpoint/ |
| H A D | pci-ntb-howto.rst | 9 This document is a guide to help users use pci-epf-ntb function driver 40 # ls /sys/bus/pci-epf/drivers 49 Creating pci-epf-ntb Device 53 pci-epf-ntb device, the following commands can be used:: 59 The "mkdir func1" above creates the pci-epf-ntb function device that will 66 baseclass_code deviceid msi_interrupts pci-epf-ntb.0 72 when the device is bound to the driver. The pci-epf-ntb driver populates 81 Configuring pci-epf-ntb Device 84 The user can configure the pci-epf-ntb device using its configfs entry. In order 108 Binding pci-epf-ntb Device to EP Controller [all …]
|
| H A D | pci-vntb-howto.rst | 9 This document is a guide to help users use pci-epf-vntb function driver 36 # ls /sys/bus/pci-epf/drivers 45 Creating pci-epf-vntb Device 49 pci-epf-vntb device, the following commands can be used:: 55 The "mkdir func1" above creates the pci-epf-vntb function device that will 62 baseclass_code deviceid msi_interrupts pci-epf-vntb.0 68 when the device is bound to the driver. The pci-epf-vntb driver populates 77 Configuring pci-epf-vntb Device 80 The user can configure the pci-epf-vntb device using its configfs entry. In order 114 Binding pci-epf-vntb Device to EP Controller [all …]
|
| H A D | pci-test-howto.rst | 9 This document is a guide to help users use pci-epf-test function driver 35 # ls /sys/bus/pci-epf/drivers 44 Creating pci-epf-test Device 48 pci-epf-test device, the following commands can be used:: 54 The "mkdir func1" above creates the pci-epf-test function device that will 66 when the device is bound to the driver. The pci-epf-test driver populates 75 Configuring pci-epf-test Device 78 The user can configure the pci-epf-test device using configfs entry. In order 87 By default, pci-epf-test uses the following BAR sizes:: 101 pci-epf-test device to a PCI endpoint controller driver. [all …]
|
| H A D | pci-nvme-function.rst | 11 subsystem as drivers/nvme/target/pci-epf.c.
|
| /linux/drivers/ntb/hw/ |
| H A D | Makefile | 5 obj-$(CONFIG_NTB_EPF) += epf/
|
| H A D | Kconfig | 5 source "drivers/ntb/hw/epf/Kconfig"
|
| /linux/drivers/pci/controller/ |
| H A D | pcie-rockchip-ep.c | 474 struct pci_epf *epf; in rockchip_pcie_ep_start() local 478 list_for_each_entry(epf, &epc->pci_epf, list) in rockchip_pcie_ep_start() 479 cfg |= BIT(epf->func_no); in rockchip_pcie_ep_start()
|
| /linux/Documentation/nvme/ |
| H A D | nvme-pci-endpoint-target.rst | 216 # echo -n "Linux-pci-epf" > nvmepf.0.nqn/attr_model 327 mn : Linux-pci-epf
|