| /drivers/pci/endpoint/functions/ |
| A D | pci-epf-vntb.c | 176 ntb_link_event(&ntb->ntb); in epf_ntb_link_up() 264 ntb_db_event(&ntb->ntb, i); in epf_ntb_cmd_handler() 350 pci_epc_clear_bar(ntb->epf->epc, ntb->epf->func_no, ntb->epf->vfunc_no, epf_bar); in epf_ntb_config_sspad_bar_clear() 397 pci_epf_free_space(ntb->epf, ntb->reg, barno, 0); in epf_ntb_config_spad_bar_free() 474 epc_features = pci_epc_get_features(ntb->epf->epc, ntb->epf->func_no, ntb->epf->vfunc_no); in epf_ntb_configure_interrupt() 534 ret = pci_epc_set_bar(ntb->epf->epc, ntb->epf->func_no, ntb->epf->vfunc_no, epf_bar); in epf_ntb_db_bar_init() 655 pci_epc_remove_epf(ntb->epf->epc, ntb->epf, 0); in epf_ntb_epc_destroy() 735 epc_features = pci_epc_get_features(ntb->epf->epc, ntb->epf->func_no, ntb->epf->vfunc_no); in epf_ntb_init_epc_bar() 820 epf_ntb_mw_bar_clear(ntb, ntb->num_mws); in epf_ntb_epc_init() 839 epf_ntb_mw_bar_clear(ntb, ntb->num_mws); in epf_ntb_epc_cleanup() [all …]
|
| A D | pci-epf-ntb.c | 266 ntb->mws_size[mw]); in epf_ntb_configure_mw() 626 struct epf_ntb *ntb; in epf_ntb_cmd_handler() local 955 epf = ntb->epf; in epf_ntb_config_spad_bar_free() 1009 epf = ntb->epf; in epf_ntb_config_spad_bar_alloc() 1515 epf = ntb->epf; in epf_ntb_epc_destroy_interface() 1563 epf = ntb->epf; in epf_ntb_epc_create_interface() 1606 epf = ntb->epf; in epf_ntb_epc_create() 1728 epf = ntb->epf; in epf_ntb_epc_init_interface() 2091 ntb = devm_kzalloc(dev, sizeof(*ntb), GFP_KERNEL); in epf_ntb_probe() 2092 if (!ntb) in epf_ntb_probe() [all …]
|
| A D | Makefile | 7 obj-$(CONFIG_PCI_EPF_NTB) += pci-epf-ntb.o
|
| /drivers/ntb/ |
| A D | core.c | 105 if (!ntb) in ntb_register_device() 107 if (!ntb->pdev) in ntb_register_device() 109 if (!ntb->ops) in ntb_register_device() 117 ntb->dev.parent = &ntb->pdev->dev; in ntb_register_device() 119 dev_set_name(&ntb->dev, "%s", pci_name(ntb->pdev)); in ntb_register_device() 180 if (ntb->ctx_ops && ntb->ctx_ops->link_event) in ntb_link_event() 181 ntb->ctx_ops->link_event(ntb->ctx); in ntb_link_event() 193 if (ntb->ctx_ops && ntb->ctx_ops->db_event) in ntb_db_event() 194 ntb->ctx_ops->db_event(ntb->ctx, vector); in ntb_db_event() 206 if (ntb->ctx_ops && ntb->ctx_ops->msg_event) in ntb_msg_event() [all …]
|
| A D | msi.c | 45 ntb->msi = devm_kzalloc(&ntb->dev, struct_size(ntb->msi, peer_mws, peers), in ntb_msi_init() 47 if (!ntb->msi) in ntb_msi_init() 60 ntb->msi->peer_mws[i] = devm_ioremap(&ntb->dev, mw_phys_addr, in ntb_msi_init() 73 devm_iounmap(&ntb->dev, ntb->msi->peer_mws[i]); in ntb_msi_init() 75 devm_kfree(&ntb->dev, ntb->msi); in ntb_msi_init() 76 ntb->msi = NULL; in ntb_msi_init() 106 if (!ntb->msi) in ntb_msi_setup_mws() 224 dr->ntb->msi->desc_changed(dr->ntb->ctx); in ntb_msi_write_msg() 245 dr->ntb = ntb; in ntbm_msi_setup_callback() 289 if (!ntb->msi) in ntbm_msi_request_threaded_irq() [all …]
|
| A D | Makefile | 2 obj-$(CONFIG_NTB) += ntb.o hw/ test/ 5 ntb-y := core.o 6 ntb-$(CONFIG_NTB_MSI) += msi.o
|
| A D | Kconfig | 9 ntb Linux driver uses this point-to-point communication as a method to 27 source "drivers/ntb/hw/Kconfig" 29 source "drivers/ntb/test/Kconfig" 35 messages over the ntb hardware. The transport exposes a queue pair api
|
| /drivers/ntb/test/ |
| A D | ntb_pingpong.c | 100 struct ntb_dev *ntb; member 246 if (ntb_db_is_unsafe(ntb)) { in pp_check_ntb() 264 if (ntb_spad_count(ntb) < 1 && ntb_msg_count(ntb) < 1) { in pp_check_ntb() 284 pp->ntb = ntb; in pp_create_data() 326 msg_mask = ntb_msg_outbits(pp->ntb) | ntb_msg_inbits(pp->ntb); in pp_mask_events() 340 ntb_link_event(pp->ntb); in pp_setup_ctx() 347 ntb_link_disable(pp->ntb); in pp_clear_ctx() 349 ntb_clear_ctx(pp->ntb); in pp_clear_ctx() 371 ret = pp_check_ntb(ntb); in pp_probe() 375 pp = pp_create_data(ntb); in pp_probe() [all …]
|
| A D | ntb_msi_test.c | 20 struct ntb_dev *ntb; member 65 ret = ntb_msi_setup_mws(nm->ntb); in ntb_msit_setup_work() 101 ntb_peer_db_set(nm->ntb, BIT(ntb_port_number(nm->ntb))); in ntb_msit_setup_work() 118 ntb_peer_db_set(nm->ntb, BIT(ntb_port_number(nm->ntb))); in ntb_msit_desc_changed() 329 if (ntb_spad_is_unsafe(ntb) || ntb_spad_count(ntb) < 2 * num_irqs + 1) { in ntb_msit_probe() 364 nm->ntb = ntb; in ntb_msit_probe() 384 devm_kfree(&ntb->dev, nm); in ntb_msit_probe() 393 ntb_link_disable(ntb); in ntb_msit_remove() 394 ntb_db_set_mask(ntb, ntb_db_valid_mask(ntb)); in ntb_msit_remove() 395 ntb_msi_clear_mws(ntb); in ntb_msit_remove() [all …]
|
| A D | ntb_perf.c | 188 struct ntb_dev *ntb; member 509 ntb_db_vector_mask(perf->ntb, vec), ntb_db_read(perf->ntb)); in perf_db_event() 520 ntb_msg_read_sts(perf->ntb)); in perf_msg_event() 649 dev_warn(&peer->perf->ntb->dev, in perf_service_work() 729 ntb_clear_ctx(perf->ntb); in perf_enable_service() 735 ntb_link_event(perf->ntb); in perf_enable_service() 753 ntb_clear_ctx(perf->ntb); in perf_disable_service() 769 ntb_link_disable(perf->ntb); in perf_disable_service() 1402 perf->ntb = ntb; in perf_create_data() 1428 dev_warn(&peer->perf->ntb->dev, in perf_setup_peer_mw() [all …]
|
| A D | ntb_tool.c | 257 struct ntb_dev *ntb; member 310 db_bits = ntb_db_read(tc->ntb); in tool_db_event() 387 ret = fn_set(tc->ntb, bits); in tool_fn_write() 392 ret = fn_clear(tc->ntb, bits); in tool_fn_write() 1039 tc->ntb->ops->db_clear); in tool_db_write() 1446 tc->ntb = ntb; in tool_create_data() 1451 if (ntb_db_is_unsafe(ntb)) in tool_create_data() 1454 if (ntb_spad_is_unsafe(ntb)) in tool_create_data() 1474 ntb_clear_ctx(tc->ntb); in tool_clear_ntb() 1475 ntb_link_disable(tc->ntb); in tool_clear_ntb() [all …]
|
| A D | Kconfig | 6 doorbells of the ntb hardware. This driver may be used to test that 7 your ntb hardware and drivers are functioning at a basic level. 17 This driver may be used to test that your ntb hardware and drivers are
|
| /drivers/ntb/hw/amd/ |
| A D | ntb_hw_amd.c | 89 return ntb_ndev(ntb)->mw_count; in amd_ntb_mw_count() 232 pdev = ndev->ntb.pdev; in amd_ntb_get_link_status() 606 ntb_link_event(&ndev->ntb); in amd_handle_event() 623 ntb_link_event(&ndev->ntb); in amd_handle_event() 667 ntb_link_event(&ndev->ntb); in amd_handle_db_event() 715 pdev = ndev->ntb.pdev; in ndev_init_isr() 816 pdev = ndev->ntb.pdev; in ndev_deinit_isr() 959 ndev->ntb.pdev = pdev; in ndev_init_struct() 1066 switch (ndev->ntb.topo) { in amd_init_ntb() 1112 pdev = ndev->ntb.pdev; in amd_init_dev() [all …]
|
| A D | ntb_hw_amd.h | 181 struct ntb_dev ntb; member 216 #define ntb_ndev(__ntb) container_of(__ntb, struct amd_ntb_dev, ntb)
|
| /drivers/ntb/hw/epf/ |
| A D | ntb_hw_epf.c | 61 struct ntb_dev ntb; member 325 ntb_link_event(&ndev->ntb); in ntb_epf_vec_isr() 327 ntb_db_event(&ndev->ntb, irq_no); in ntb_epf_vec_isr() 334 struct pci_dev *pdev = ndev->ntb.pdev; in ntb_epf_init_isr() 385 return ntb_ndev(ntb)->mw_count; in ntb_epf_peer_mw_count() 390 return ntb_ndev(ntb)->spad_count; in ntb_epf_spad_count() 395 return ntb_ndev(ntb)->db_valid_mask; in ntb_epf_db_valid_mask() 541 ndev->ntb.pdev = pdev; in ntb_epf_init_struct() 542 ndev->ntb.topo = NTB_TOPO_NONE; in ntb_epf_init_struct() 543 ndev->ntb.ops = &ntb_epf_ops; in ntb_epf_init_struct() [all …]
|
| /drivers/ntb/hw/intel/ |
| A D | ntb_hw_gen1.h | 159 int intel_ntb_mw_count(struct ntb_dev *ntb, int pidx); 163 int intel_ntb_peer_mw_count(struct ntb_dev *ntb); 164 int intel_ntb_peer_mw_get_addr(struct ntb_dev *ntb, int idx, 168 int intel_ntb_link_disable(struct ntb_dev *ntb); 169 u64 intel_ntb_db_valid_mask(struct ntb_dev *ntb); 170 int intel_ntb_db_vector_count(struct ntb_dev *ntb); 172 int intel_ntb_db_set_mask(struct ntb_dev *ntb, u64 db_bits); 173 int intel_ntb_db_clear_mask(struct ntb_dev *ntb, u64 db_bits); 174 int intel_ntb_spad_is_unsafe(struct ntb_dev *ntb); 175 int intel_ntb_spad_count(struct ntb_dev *ntb); [all …]
|
| A D | ntb_hw_gen3.c | 102 rc = pci_read_config_word(ndev->ntb.pdev, in gen3_poll_link() 150 pdev = ndev->ntb.pdev; in gen3_setup_b2b_mw() 187 switch (ndev->ntb.topo) { in gen3_init_ntb() 194 if (ndev->ntb.topo == NTB_TOPO_B2B_USD) { in gen3_init_ntb() 235 pdev = ndev->ntb.pdev; in gen3_init_dev() 245 ntb_topo_string(ndev->ntb.topo)); in gen3_init_dev() 246 if (ndev->ntb.topo == NTB_TOPO_NONE) in gen3_init_dev() 284 ntb_topo_string(ndev->ntb.topo)); in ndev_ntb3_debugfs_read() 350 if (ntb_topo_is_b2b(ndev->ntb.topo)) { in ndev_ntb3_debugfs_read() 427 ndev = container_of(ntb, struct intel_ntb_dev, ntb); in intel_ntb3_link_enable() [all …]
|
| A D | ntb_hw_gen1.c | 370 pdev = ndev->ntb.pdev; in ndev_init_isr() 469 pdev = ndev->ntb.pdev; in ndev_deinit_isr() 503 pdev = ndev->ntb.pdev; in ndev_ntb_debugfs_read() 766 else if (pdev_is_gen4(ndev->ntb.pdev) || pdev_is_gen5(ndev->ntb.pdev)) in ndev_debugfs_read() 972 ndev = container_of(ntb, struct intel_ntb_dev, ntb); in intel_ntb_link_enable() 1001 ndev = container_of(ntb, struct intel_ntb_dev, ntb); in intel_ntb_link_disable() 1064 ndev = container_of(ntb, struct intel_ntb_dev, ntb); in intel_ntb_db_vector_count() 1157 ndev = container_of(ntb, struct intel_ntb_dev, ntb); in intel_ntb_spad_count() 1302 pdev = ndev->ntb.pdev; in xeon_setup_b2b_mw() 1649 pdev = ndev->ntb.pdev; in xeon_init_dev() [all …]
|
| A D | ntb_hw_gen4.c | 104 pdev = ndev->ntb.pdev; in gen4_setup_b2b_mw() 141 if (ndev->ntb.topo == NTB_TOPO_B2B_USD) in gen4_init_ntb() 185 struct pci_dev *pdev = ndev->ntb.pdev; in gen4_init_dev() 203 ntb_topo_string(ndev->ntb.topo)); in gen4_init_dev() 204 if (ndev->ntb.topo == NTB_TOPO_NONE) in gen4_init_dev() 245 ntb_topo_string(ndev->ntb.topo)); in ndev_ntb4_debugfs_read() 438 ndev = container_of(ntb, struct intel_ntb_dev, ntb); in intel_ntb4_link_enable() 440 dev_dbg(&ntb->pdev->dev, in intel_ntb4_link_enable() 445 dev_dbg(&ntb->pdev->dev, in intel_ntb4_link_enable() 448 dev_dbg(&ntb->pdev->dev, in intel_ntb4_link_enable() [all …]
|
| A D | ntb_hw_gen3.h | 107 int intel_ntb3_link_enable(struct ntb_dev *ntb, enum ntb_speed max_speed, 109 u64 intel_ntb3_db_read(struct ntb_dev *ntb); 110 int intel_ntb3_db_clear(struct ntb_dev *ntb, u64 db_bits); 111 int intel_ntb3_peer_db_set(struct ntb_dev *ntb, u64 db_bits); 112 int intel_ntb3_peer_db_addr(struct ntb_dev *ntb, phys_addr_t *db_addr,
|
| A D | ntb_hw_intel.h | 139 struct ntb_dev ntb; member 190 #define ntb_ndev(__ntb) container_of(__ntb, struct intel_ntb_dev, ntb)
|
| /drivers/ntb/hw/idt/ |
| A D | ntb_hw_idt.c | 718 ntb_link_event(&ndev->ntb); in idt_se_isr() 1131 dev_err(&ndev->ntb.pdev->dev, in idt_init_mws() 1141 dev_err(&ndev->ntb.pdev->dev, in idt_init_mws() 1431 ntb_db_event(&ndev->ntb, 0); in idt_db_isr() 1614 ntb_msg_event(&ndev->ntb); in idt_msg_isr() 2123 struct pci_dev *pdev = ndev->ntb.pdev; in idt_init_isr() 2280 ndev->ntb.ops = &idt_ntb_ops; in idt_register_device() 2281 ndev->ntb.topo = NTB_TOPO_SWITCH; in idt_register_device() 2301 ntb_unregister_device(&ndev->ntb); in idt_unregister_device() 2456 data = idt_ntb_db_read(&ndev->ntb); in idt_dbgfs_info_read() [all …]
|
| /drivers/ntb/hw/mscc/ |
| A D | ntb_hw_switchtec.c | 46 struct ntb_dev ntb; member 95 return container_of(ntb, struct switchtec_ntb, ntb); in ntb_sndev() 511 ntb_link_event(&sndev->ntb); in switchtec_ntb_link_status_update() 533 ntb_link_event(&sndev->ntb); in check_link_status_work() 846 sndev->ntb.pdev = sndev->stdev->pdev; in switchtec_ntb_init_sndev() 847 sndev->ntb.topo = NTB_TOPO_SWITCH; in switchtec_ntb_init_sndev() 848 sndev->ntb.ops = &switchtec_ntb_ops; in switchtec_ntb_init_sndev() 1133 sndev->ntb.topo = NTB_TOPO_CROSSLINK; in switchtec_ntb_init_crosslink() 1379 ntb_db_event(&sndev->ntb, 0); in switchtec_ntb_doorbell_isr() 1521 rc = ntb_register_device(&sndev->ntb); in switchtec_ntb_add() [all …]
|
| /drivers/ntb/hw/ |
| A D | Kconfig | 2 source "drivers/ntb/hw/amd/Kconfig" 3 source "drivers/ntb/hw/idt/Kconfig" 4 source "drivers/ntb/hw/intel/Kconfig" 5 source "drivers/ntb/hw/epf/Kconfig" 6 source "drivers/ntb/hw/mscc/Kconfig"
|
| /drivers/net/ |
| A D | ntb_netdev.c | 403 struct ntb_dev *ntb; in ntb_netdev_probe() local 409 ntb = dev_ntb(client_dev->parent); in ntb_netdev_probe() 410 pdev = ntb->pdev; in ntb_netdev_probe()
|