ntb 403 drivers/net/ntb_netdev.c struct ntb_dev *ntb; ntb 409 drivers/net/ntb_netdev.c ntb = dev_ntb(client_dev->parent); ntb 410 drivers/net/ntb_netdev.c pdev = ntb->pdev; ntb 101 drivers/ntb/core.c int ntb_register_device(struct ntb_dev *ntb) ntb 103 drivers/ntb/core.c if (!ntb) ntb 105 drivers/ntb/core.c if (!ntb->pdev) ntb 107 drivers/ntb/core.c if (!ntb->ops) ntb 109 drivers/ntb/core.c if (!ntb_dev_ops_is_valid(ntb->ops)) ntb 112 drivers/ntb/core.c init_completion(&ntb->released); ntb 114 drivers/ntb/core.c ntb->dev.bus = &ntb_bus; ntb 115 drivers/ntb/core.c ntb->dev.parent = &ntb->pdev->dev; ntb 116 drivers/ntb/core.c ntb->dev.release = ntb_dev_release; ntb 117 drivers/ntb/core.c dev_set_name(&ntb->dev, "%s", pci_name(ntb->pdev)); ntb 119 drivers/ntb/core.c ntb->ctx = NULL; ntb 120 drivers/ntb/core.c ntb->ctx_ops = NULL; ntb 121 drivers/ntb/core.c spin_lock_init(&ntb->ctx_lock); ntb 123 drivers/ntb/core.c return device_register(&ntb->dev); ntb 127 drivers/ntb/core.c void ntb_unregister_device(struct ntb_dev *ntb) ntb 129 drivers/ntb/core.c device_unregister(&ntb->dev); ntb 130 drivers/ntb/core.c wait_for_completion(&ntb->released); ntb 134 drivers/ntb/core.c int ntb_set_ctx(struct ntb_dev *ntb, void *ctx, ntb 141 drivers/ntb/core.c if (ntb->ctx_ops) ntb 144 drivers/ntb/core.c spin_lock_irqsave(&ntb->ctx_lock, irqflags); ntb 146 drivers/ntb/core.c ntb->ctx = ctx; ntb 147 drivers/ntb/core.c ntb->ctx_ops = ctx_ops; ntb 149 drivers/ntb/core.c spin_unlock_irqrestore(&ntb->ctx_lock, irqflags); ntb 155 drivers/ntb/core.c void ntb_clear_ctx(struct ntb_dev *ntb) ntb 159 drivers/ntb/core.c spin_lock_irqsave(&ntb->ctx_lock, irqflags); ntb 161 drivers/ntb/core.c ntb->ctx_ops = NULL; ntb 162 drivers/ntb/core.c ntb->ctx = NULL; ntb 164 drivers/ntb/core.c spin_unlock_irqrestore(&ntb->ctx_lock, irqflags); ntb 168 drivers/ntb/core.c void ntb_link_event(struct ntb_dev *ntb) ntb 172 drivers/ntb/core.c spin_lock_irqsave(&ntb->ctx_lock, irqflags); ntb 174 drivers/ntb/core.c if (ntb->ctx_ops && ntb->ctx_ops->link_event) ntb 175 drivers/ntb/core.c ntb->ctx_ops->link_event(ntb->ctx); ntb 177 drivers/ntb/core.c spin_unlock_irqrestore(&ntb->ctx_lock, irqflags); ntb 181 drivers/ntb/core.c void ntb_db_event(struct ntb_dev *ntb, int vector) ntb 185 drivers/ntb/core.c spin_lock_irqsave(&ntb->ctx_lock, irqflags); ntb 187 drivers/ntb/core.c if (ntb->ctx_ops && ntb->ctx_ops->db_event) ntb 188 drivers/ntb/core.c ntb->ctx_ops->db_event(ntb->ctx, vector); ntb 190 drivers/ntb/core.c spin_unlock_irqrestore(&ntb->ctx_lock, irqflags); ntb 194 drivers/ntb/core.c void ntb_msg_event(struct ntb_dev *ntb) ntb 198 drivers/ntb/core.c spin_lock_irqsave(&ntb->ctx_lock, irqflags); ntb 200 drivers/ntb/core.c if (ntb->ctx_ops && ntb->ctx_ops->msg_event) ntb 201 drivers/ntb/core.c ntb->ctx_ops->msg_event(ntb->ctx); ntb 203 drivers/ntb/core.c spin_unlock_irqrestore(&ntb->ctx_lock, irqflags); ntb 207 drivers/ntb/core.c int ntb_default_port_number(struct ntb_dev *ntb) ntb 209 drivers/ntb/core.c switch (ntb->topo) { ntb 224 drivers/ntb/core.c int ntb_default_peer_port_count(struct ntb_dev *ntb) ntb 230 drivers/ntb/core.c int ntb_default_peer_port_number(struct ntb_dev *ntb, int pidx) ntb 235 drivers/ntb/core.c switch (ntb->topo) { ntb 250 drivers/ntb/core.c int ntb_default_peer_port_idx(struct ntb_dev *ntb, int port) ntb 252 drivers/ntb/core.c int peer_port = ntb_default_peer_port_number(ntb, NTB_DEF_PEER_IDX); ntb 263 drivers/ntb/core.c struct ntb_dev *ntb; ntb 268 drivers/ntb/core.c ntb = dev_ntb(dev); ntb 271 drivers/ntb/core.c rc = client->ops.probe(client, ntb); ntb 280 drivers/ntb/core.c struct ntb_dev *ntb; ntb 284 drivers/ntb/core.c ntb = dev_ntb(dev); ntb 287 drivers/ntb/core.c client->ops.remove(client, ntb); ntb 296 drivers/ntb/core.c struct ntb_dev *ntb = dev_ntb(dev); ntb 298 drivers/ntb/core.c complete(&ntb->released); ntb 84 drivers/ntb/hw/amd/ntb_hw_amd.c static int amd_ntb_mw_count(struct ntb_dev *ntb, int pidx) ntb 89 drivers/ntb/hw/amd/ntb_hw_amd.c return ntb_ndev(ntb)->mw_count; ntb 92 drivers/ntb/hw/amd/ntb_hw_amd.c static int amd_ntb_mw_get_align(struct ntb_dev *ntb, int pidx, int idx, ntb 97 drivers/ntb/hw/amd/ntb_hw_amd.c struct amd_ntb_dev *ndev = ntb_ndev(ntb); ntb 114 drivers/ntb/hw/amd/ntb_hw_amd.c *size_max = pci_resource_len(ndev->ntb.pdev, bar); ntb 119 drivers/ntb/hw/amd/ntb_hw_amd.c static int amd_ntb_mw_set_trans(struct ntb_dev *ntb, int pidx, int idx, ntb 122 drivers/ntb/hw/amd/ntb_hw_amd.c struct amd_ntb_dev *ndev = ntb_ndev(ntb); ntb 136 drivers/ntb/hw/amd/ntb_hw_amd.c mw_size = pci_resource_len(ntb->pdev, bar); ntb 145 drivers/ntb/hw/amd/ntb_hw_amd.c base_addr = pci_resource_start(ntb->pdev, bar); ntb 222 drivers/ntb/hw/amd/ntb_hw_amd.c static u64 amd_ntb_link_is_up(struct ntb_dev *ntb, ntb 226 drivers/ntb/hw/amd/ntb_hw_amd.c struct amd_ntb_dev *ndev = ntb_ndev(ntb); ntb 235 drivers/ntb/hw/amd/ntb_hw_amd.c dev_dbg(&ntb->pdev->dev, "link is up.\n"); ntb 244 drivers/ntb/hw/amd/ntb_hw_amd.c dev_dbg(&ntb->pdev->dev, "link is down.\n"); ntb 250 drivers/ntb/hw/amd/ntb_hw_amd.c static int amd_ntb_link_enable(struct ntb_dev *ntb, ntb 254 drivers/ntb/hw/amd/ntb_hw_amd.c struct amd_ntb_dev *ndev = ntb_ndev(ntb); ntb 262 drivers/ntb/hw/amd/ntb_hw_amd.c if (ndev->ntb.topo == NTB_TOPO_SEC) ntb 264 drivers/ntb/hw/amd/ntb_hw_amd.c dev_dbg(&ntb->pdev->dev, "Enabling Link.\n"); ntb 273 drivers/ntb/hw/amd/ntb_hw_amd.c static int amd_ntb_link_disable(struct ntb_dev *ntb) ntb 275 drivers/ntb/hw/amd/ntb_hw_amd.c struct amd_ntb_dev *ndev = ntb_ndev(ntb); ntb 283 drivers/ntb/hw/amd/ntb_hw_amd.c if (ndev->ntb.topo == NTB_TOPO_SEC) ntb 285 drivers/ntb/hw/amd/ntb_hw_amd.c dev_dbg(&ntb->pdev->dev, "Enabling Link.\n"); ntb 294 drivers/ntb/hw/amd/ntb_hw_amd.c static int amd_ntb_peer_mw_count(struct ntb_dev *ntb) ntb 297 drivers/ntb/hw/amd/ntb_hw_amd.c return ntb_ndev(ntb)->mw_count; ntb 300 drivers/ntb/hw/amd/ntb_hw_amd.c static int amd_ntb_peer_mw_get_addr(struct ntb_dev *ntb, int idx, ntb 303 drivers/ntb/hw/amd/ntb_hw_amd.c struct amd_ntb_dev *ndev = ntb_ndev(ntb); ntb 311 drivers/ntb/hw/amd/ntb_hw_amd.c *base = pci_resource_start(ndev->ntb.pdev, bar); ntb 314 drivers/ntb/hw/amd/ntb_hw_amd.c *size = pci_resource_len(ndev->ntb.pdev, bar); ntb 319 drivers/ntb/hw/amd/ntb_hw_amd.c static u64 amd_ntb_db_valid_mask(struct ntb_dev *ntb) ntb 321 drivers/ntb/hw/amd/ntb_hw_amd.c return ntb_ndev(ntb)->db_valid_mask; ntb 324 drivers/ntb/hw/amd/ntb_hw_amd.c static int amd_ntb_db_vector_count(struct ntb_dev *ntb) ntb 326 drivers/ntb/hw/amd/ntb_hw_amd.c return ntb_ndev(ntb)->db_count; ntb 329 drivers/ntb/hw/amd/ntb_hw_amd.c static u64 amd_ntb_db_vector_mask(struct ntb_dev *ntb, int db_vector) ntb 331 drivers/ntb/hw/amd/ntb_hw_amd.c struct amd_ntb_dev *ndev = ntb_ndev(ntb); ntb 336 drivers/ntb/hw/amd/ntb_hw_amd.c return ntb_ndev(ntb)->db_valid_mask & (1ULL << db_vector); ntb 339 drivers/ntb/hw/amd/ntb_hw_amd.c static u64 amd_ntb_db_read(struct ntb_dev *ntb) ntb 341 drivers/ntb/hw/amd/ntb_hw_amd.c struct amd_ntb_dev *ndev = ntb_ndev(ntb); ntb 347 drivers/ntb/hw/amd/ntb_hw_amd.c static int amd_ntb_db_clear(struct ntb_dev *ntb, u64 db_bits) ntb 349 drivers/ntb/hw/amd/ntb_hw_amd.c struct amd_ntb_dev *ndev = ntb_ndev(ntb); ntb 357 drivers/ntb/hw/amd/ntb_hw_amd.c static int amd_ntb_db_set_mask(struct ntb_dev *ntb, u64 db_bits) ntb 359 drivers/ntb/hw/amd/ntb_hw_amd.c struct amd_ntb_dev *ndev = ntb_ndev(ntb); ntb 374 drivers/ntb/hw/amd/ntb_hw_amd.c static int amd_ntb_db_clear_mask(struct ntb_dev *ntb, u64 db_bits) ntb 376 drivers/ntb/hw/amd/ntb_hw_amd.c struct amd_ntb_dev *ndev = ntb_ndev(ntb); ntb 391 drivers/ntb/hw/amd/ntb_hw_amd.c static int amd_ntb_peer_db_set(struct ntb_dev *ntb, u64 db_bits) ntb 393 drivers/ntb/hw/amd/ntb_hw_amd.c struct amd_ntb_dev *ndev = ntb_ndev(ntb); ntb 401 drivers/ntb/hw/amd/ntb_hw_amd.c static int amd_ntb_spad_count(struct ntb_dev *ntb) ntb 403 drivers/ntb/hw/amd/ntb_hw_amd.c return ntb_ndev(ntb)->spad_count; ntb 406 drivers/ntb/hw/amd/ntb_hw_amd.c static u32 amd_ntb_spad_read(struct ntb_dev *ntb, int idx) ntb 408 drivers/ntb/hw/amd/ntb_hw_amd.c struct amd_ntb_dev *ndev = ntb_ndev(ntb); ntb 419 drivers/ntb/hw/amd/ntb_hw_amd.c static int amd_ntb_spad_write(struct ntb_dev *ntb, ntb 422 drivers/ntb/hw/amd/ntb_hw_amd.c struct amd_ntb_dev *ndev = ntb_ndev(ntb); ntb 435 drivers/ntb/hw/amd/ntb_hw_amd.c static u32 amd_ntb_peer_spad_read(struct ntb_dev *ntb, int pidx, int sidx) ntb 437 drivers/ntb/hw/amd/ntb_hw_amd.c struct amd_ntb_dev *ndev = ntb_ndev(ntb); ntb 448 drivers/ntb/hw/amd/ntb_hw_amd.c static int amd_ntb_peer_spad_write(struct ntb_dev *ntb, int pidx, ntb 451 drivers/ntb/hw/amd/ntb_hw_amd.c struct amd_ntb_dev *ndev = ntb_ndev(ntb); ntb 503 drivers/ntb/hw/amd/ntb_hw_amd.c struct device *dev = &ndev->ntb.pdev->dev; ntb 521 drivers/ntb/hw/amd/ntb_hw_amd.c ntb_link_event(&ndev->ntb); ntb 533 drivers/ntb/hw/amd/ntb_hw_amd.c ntb_link_event(&ndev->ntb); ntb 557 drivers/ntb/hw/amd/ntb_hw_amd.c dev_dbg(&ndev->ntb.pdev->dev, "vec %d\n", vec); ntb 563 drivers/ntb/hw/amd/ntb_hw_amd.c ntb_db_event(&ndev->ntb, vec); ntb 579 drivers/ntb/hw/amd/ntb_hw_amd.c return ndev_interrupt(ndev, irq - ndev->ntb.pdev->irq); ntb 588 drivers/ntb/hw/amd/ntb_hw_amd.c pdev = ndev->ntb.pdev; ntb 689 drivers/ntb/hw/amd/ntb_hw_amd.c pdev = ndev->ntb.pdev; ntb 737 drivers/ntb/hw/amd/ntb_hw_amd.c ntb_topo_string(ndev->ntb.topo)); ntb 815 drivers/ntb/hw/amd/ntb_hw_amd.c debugfs_create_dir(pci_name(ndev->ntb.pdev), ntb 835 drivers/ntb/hw/amd/ntb_hw_amd.c ndev->ntb.pdev = pdev; ntb 836 drivers/ntb/hw/amd/ntb_hw_amd.c ndev->ntb.topo = NTB_TOPO_NONE; ntb 837 drivers/ntb/hw/amd/ntb_hw_amd.c ndev->ntb.ops = &amd_ntb_ops; ntb 851 drivers/ntb/hw/amd/ntb_hw_amd.c dev_dbg(&ndev->ntb.pdev->dev, "%s: reg_val = 0x%x.\n", __func__, reg); ntb 858 drivers/ntb/hw/amd/ntb_hw_amd.c rc = pci_read_config_dword(ndev->ntb.pdev, ntb 872 drivers/ntb/hw/amd/ntb_hw_amd.c ntb_link_event(&ndev->ntb); ntb 916 drivers/ntb/hw/amd/ntb_hw_amd.c switch (ndev->ntb.topo) { ntb 920 drivers/ntb/hw/amd/ntb_hw_amd.c if (ndev->ntb.topo == NTB_TOPO_PRI) { ntb 933 drivers/ntb/hw/amd/ntb_hw_amd.c dev_err(&ndev->ntb.pdev->dev, ntb 963 drivers/ntb/hw/amd/ntb_hw_amd.c pdev = ndev->ntb.pdev; ntb 965 drivers/ntb/hw/amd/ntb_hw_amd.c ndev->ntb.topo = amd_get_topo(ndev); ntb 967 drivers/ntb/hw/amd/ntb_hw_amd.c ntb_topo_string(ndev->ntb.topo)); ntb 1023 drivers/ntb/hw/amd/ntb_hw_amd.c rc = dma_coerce_mask_and_coherent(&ndev->ntb.dev, ntb 1048 drivers/ntb/hw/amd/ntb_hw_amd.c struct pci_dev *pdev = ndev->ntb.pdev; ntb 1091 drivers/ntb/hw/amd/ntb_hw_amd.c rc = ntb_register_device(&ndev->ntb); ntb 1114 drivers/ntb/hw/amd/ntb_hw_amd.c ntb_unregister_device(&ndev->ntb); ntb 184 drivers/ntb/hw/amd/ntb_hw_amd.h struct ntb_dev ntb; ntb 218 drivers/ntb/hw/amd/ntb_hw_amd.h #define ntb_ndev(__ntb) container_of(__ntb, struct amd_ntb_dev, ntb) ntb 530 drivers/ntb/hw/idt/ntb_hw_idt.c dev_dbg(&ndev->ntb.pdev->dev, "Local port: %hhu, num of peers: %hhu\n", ntb 535 drivers/ntb/hw/idt/ntb_hw_idt.c dev_warn(&ndev->ntb.pdev->dev, "No active peer found\n"); ntb 548 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_port_number(struct ntb_dev *ntb) ntb 550 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 563 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_peer_port_count(struct ntb_dev *ntb) ntb 565 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 577 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_peer_port_number(struct ntb_dev *ntb, int pidx) ntb 579 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 598 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_peer_port_idx(struct ntb_dev *ntb, int port) ntb 600 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 672 drivers/ntb/hw/idt/ntb_hw_idt.c dev_dbg(&ndev->ntb.pdev->dev, "NTB link status events initialized"); ntb 686 drivers/ntb/hw/idt/ntb_hw_idt.c dev_dbg(&ndev->ntb.pdev->dev, "NTB link status events deinitialized"); ntb 714 drivers/ntb/hw/idt/ntb_hw_idt.c dev_dbg(&ndev->ntb.pdev->dev, "SE IRQ detected %#08x (SESTS %#08x)", ntb 718 drivers/ntb/hw/idt/ntb_hw_idt.c ntb_link_event(&ndev->ntb); ntb 879 drivers/ntb/hw/idt/ntb_hw_idt.c static u64 idt_ntb_link_is_up(struct ntb_dev *ntb, ntb 882 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 920 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_link_enable(struct ntb_dev *ntb, enum ntb_speed speed, ntb 923 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 928 drivers/ntb/hw/idt/ntb_hw_idt.c dev_dbg(&ndev->ntb.pdev->dev, "Local NTB link enabled"); ntb 941 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_link_disable(struct ntb_dev *ntb) ntb 943 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 948 drivers/ntb/hw/idt/ntb_hw_idt.c dev_dbg(&ndev->ntb.pdev->dev, "Local NTB link disabled"); ntb 1107 drivers/ntb/hw/idt/ntb_hw_idt.c ret_mws = devm_kcalloc(&ndev->ntb.pdev->dev, *mw_cnt, sizeof(*ret_mws), ntb 1135 drivers/ntb/hw/idt/ntb_hw_idt.c dev_err(&ndev->ntb.pdev->dev, ntb 1145 drivers/ntb/hw/idt/ntb_hw_idt.c dev_err(&ndev->ntb.pdev->dev, ntb 1154 drivers/ntb/hw/idt/ntb_hw_idt.c dev_dbg(&ndev->ntb.pdev->dev, "Outbound and inbound MWs initialized"); ntb 1170 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_mw_count(struct ntb_dev *ntb, int pidx) ntb 1172 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 1194 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_mw_get_align(struct ntb_dev *ntb, int pidx, int widx, ntb 1199 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 1232 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_peer_mw_count(struct ntb_dev *ntb) ntb 1234 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 1252 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_peer_mw_get_addr(struct ntb_dev *ntb, int widx, ntb 1255 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 1262 drivers/ntb/hw/idt/ntb_hw_idt.c *base = pci_resource_start(ntb->pdev, ndev->mws[widx].bar) + ntb 1287 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_peer_mw_set_trans(struct ntb_dev *ntb, int pidx, int widx, ntb 1290 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 1322 drivers/ntb/hw/idt/ntb_hw_idt.c limit = pci_bus_address(ntb->pdev, mw_cfg->bar) + size; ntb 1356 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_peer_mw_clear_trans(struct ntb_dev *ntb, int pidx, ntb 1359 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 1432 drivers/ntb/hw/idt/ntb_hw_idt.c dev_dbg(&ndev->ntb.pdev->dev, "DB IRQ detected %#08x", ntint_sts); ntb 1435 drivers/ntb/hw/idt/ntb_hw_idt.c ntb_db_event(&ndev->ntb, 0); ntb 1447 drivers/ntb/hw/idt/ntb_hw_idt.c static u64 idt_ntb_db_valid_mask(struct ntb_dev *ntb) ntb 1461 drivers/ntb/hw/idt/ntb_hw_idt.c static u64 idt_ntb_db_read(struct ntb_dev *ntb) ntb 1463 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 1481 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_db_clear(struct ntb_dev *ntb, u64 db_bits) ntb 1483 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 1500 drivers/ntb/hw/idt/ntb_hw_idt.c static u64 idt_ntb_db_read_mask(struct ntb_dev *ntb) ntb 1502 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 1518 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_db_set_mask(struct ntb_dev *ntb, u64 db_bits) ntb 1520 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 1539 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_db_clear_mask(struct ntb_dev *ntb, u64 db_bits) ntb 1541 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 1560 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_peer_db_set(struct ntb_dev *ntb, u64 db_bits) ntb 1562 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 1596 drivers/ntb/hw/idt/ntb_hw_idt.c dev_dbg(&ndev->ntb.pdev->dev, "NTB Messaging initialized"); ntb 1615 drivers/ntb/hw/idt/ntb_hw_idt.c dev_dbg(&ndev->ntb.pdev->dev, "Message IRQ detected %#08x", ntint_sts); ntb 1618 drivers/ntb/hw/idt/ntb_hw_idt.c ntb_msg_event(&ndev->ntb); ntb 1629 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_msg_count(struct ntb_dev *ntb) ntb 1644 drivers/ntb/hw/idt/ntb_hw_idt.c static u64 idt_ntb_msg_inbits(struct ntb_dev *ntb) ntb 1659 drivers/ntb/hw/idt/ntb_hw_idt.c static u64 idt_ntb_msg_outbits(struct ntb_dev *ntb) ntb 1673 drivers/ntb/hw/idt/ntb_hw_idt.c static u64 idt_ntb_msg_read_sts(struct ntb_dev *ntb) ntb 1675 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 1693 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_msg_clear_sts(struct ntb_dev *ntb, u64 sts_bits) ntb 1695 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 1712 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_msg_set_mask(struct ntb_dev *ntb, u64 mask_bits) ntb 1714 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 1730 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_msg_clear_mask(struct ntb_dev *ntb, u64 mask_bits) ntb 1732 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 1751 drivers/ntb/hw/idt/ntb_hw_idt.c static u32 idt_ntb_msg_read(struct ntb_dev *ntb, int *pidx, int midx) ntb 1753 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 1787 drivers/ntb/hw/idt/ntb_hw_idt.c static int idt_ntb_peer_msg_write(struct ntb_dev *ntb, int pidx, int midx, ntb 1790 drivers/ntb/hw/idt/ntb_hw_idt.c struct idt_ntb_dev *ndev = to_ndev_ntb(ntb); ntb 2090 drivers/ntb/hw/idt/ntb_hw_idt.c hwmon = devm_hwmon_device_register_with_groups(&ndev->ntb.pdev->dev, ntb 2093 drivers/ntb/hw/idt/ntb_hw_idt.c dev_err(&ndev->ntb.pdev->dev, "Couldn't create hwmon device"); ntb 2097 drivers/ntb/hw/idt/ntb_hw_idt.c dev_dbg(&ndev->ntb.pdev->dev, "Temperature HWmon interface registered"); ntb 2127 drivers/ntb/hw/idt/ntb_hw_idt.c struct pci_dev *pdev = ndev->ntb.pdev; ntb 2176 drivers/ntb/hw/idt/ntb_hw_idt.c struct pci_dev *pdev = ndev->ntb.pdev; ntb 2228 drivers/ntb/hw/idt/ntb_hw_idt.c dev_dbg(&ndev->ntb.pdev->dev, "IDT IRQs 0x%08x handled", ntint_sts); ntb 2284 drivers/ntb/hw/idt/ntb_hw_idt.c ndev->ntb.ops = &idt_ntb_ops; ntb 2285 drivers/ntb/hw/idt/ntb_hw_idt.c ndev->ntb.topo = NTB_TOPO_SWITCH; ntb 2287 drivers/ntb/hw/idt/ntb_hw_idt.c ret = ntb_register_device(&ndev->ntb); ntb 2289 drivers/ntb/hw/idt/ntb_hw_idt.c dev_err(&ndev->ntb.pdev->dev, "Failed to register NTB device"); ntb 2293 drivers/ntb/hw/idt/ntb_hw_idt.c dev_dbg(&ndev->ntb.pdev->dev, "NTB device successfully registered"); ntb 2305 drivers/ntb/hw/idt/ntb_hw_idt.c ntb_unregister_device(&ndev->ntb); ntb 2307 drivers/ntb/hw/idt/ntb_hw_idt.c dev_dbg(&ndev->ntb.pdev->dev, "NTB device unregistered"); ntb 2372 drivers/ntb/hw/idt/ntb_hw_idt.c data = idt_ntb_link_is_up(&ndev->ntb, &speed, &width); ntb 2460 drivers/ntb/hw/idt/ntb_hw_idt.c data = idt_ntb_db_read(&ndev->ntb); ntb 2471 drivers/ntb/hw/idt/ntb_hw_idt.c data = idt_ntb_msg_read_sts(&ndev->ntb); ntb 2481 drivers/ntb/hw/idt/ntb_hw_idt.c data = idt_ntb_msg_read(&ndev->ntb, &src, idx); ntb 2513 drivers/ntb/hw/idt/ntb_hw_idt.c dev_info(&ndev->ntb.pdev->dev, "Top DebugFS directory absent"); ntb 2518 drivers/ntb/hw/idt/ntb_hw_idt.c snprintf(devname, 64, "info:%s", pci_name(ndev->ntb.pdev)); ntb 2522 drivers/ntb/hw/idt/ntb_hw_idt.c dev_dbg(&ndev->ntb.pdev->dev, "Failed to create DebugFS node"); ntb 2526 drivers/ntb/hw/idt/ntb_hw_idt.c dev_dbg(&ndev->ntb.pdev->dev, "NTB device DebugFS node created"); ntb 2541 drivers/ntb/hw/idt/ntb_hw_idt.c dev_dbg(&ndev->ntb.pdev->dev, "NTB device DebugFS node discarded"); ntb 2614 drivers/ntb/hw/idt/ntb_hw_idt.c ndev->ntb.pdev = pdev; ntb 2639 drivers/ntb/hw/idt/ntb_hw_idt.c struct pci_dev *pdev = ndev->ntb.pdev; ntb 2663 drivers/ntb/hw/idt/ntb_hw_idt.c ret = dma_coerce_mask_and_coherent(&ndev->ntb.dev, ntb 2726 drivers/ntb/hw/idt/ntb_hw_idt.c struct pci_dev *pdev = ndev->ntb.pdev; ntb 1125 drivers/ntb/hw/idt/ntb_hw_idt.h struct ntb_dev ntb; ntb 1153 drivers/ntb/hw/idt/ntb_hw_idt.h #define to_ndev_ntb(__ntb) container_of(__ntb, struct idt_ntb_dev, ntb) ntb 151 drivers/ntb/hw/intel/ntb_hw_gen1.c if (!ntb_topo_is_b2b(ndev->ntb.topo)) ntb 192 drivers/ntb/hw/intel/ntb_hw_gen1.c dev_dbg(&ndev->ntb.pdev->dev, "Peer db addr %llx\n", *db_addr); ntb 197 drivers/ntb/hw/intel/ntb_hw_gen1.c dev_dbg(&ndev->ntb.pdev->dev, "Peer db size %llx\n", *db_size); ntb 288 drivers/ntb/hw/intel/ntb_hw_gen1.c dev_dbg(&ndev->ntb.pdev->dev, "Peer spad addr %llx\n", ntb 330 drivers/ntb/hw/intel/ntb_hw_gen1.c dev_dbg(&ndev->ntb.pdev->dev, "vec %d vec_mask %llx\n", vec, vec_mask); ntb 336 drivers/ntb/hw/intel/ntb_hw_gen1.c ntb_link_event(&ndev->ntb); ntb 340 drivers/ntb/hw/intel/ntb_hw_gen1.c ntb_db_event(&ndev->ntb, vec); ntb 349 drivers/ntb/hw/intel/ntb_hw_gen1.c dev_dbg(&nvec->ndev->ntb.pdev->dev, "irq: %d nvec->num: %d\n", ntb 359 drivers/ntb/hw/intel/ntb_hw_gen1.c return ndev_interrupt(ndev, irq - ndev->ntb.pdev->irq); ntb 369 drivers/ntb/hw/intel/ntb_hw_gen1.c pdev = ndev->ntb.pdev; ntb 468 drivers/ntb/hw/intel/ntb_hw_gen1.c pdev = ndev->ntb.pdev; ntb 502 drivers/ntb/hw/intel/ntb_hw_gen1.c pdev = ndev->ntb.pdev; ntb 518 drivers/ntb/hw/intel/ntb_hw_gen1.c ntb_topo_string(ndev->ntb.topo)); ntb 650 drivers/ntb/hw/intel/ntb_hw_gen1.c if (ntb_topo_is_b2b(ndev->ntb.topo)) { ntb 761 drivers/ntb/hw/intel/ntb_hw_gen1.c if (pdev_is_gen1(ndev->ntb.pdev)) ntb 763 drivers/ntb/hw/intel/ntb_hw_gen1.c else if (pdev_is_gen3(ndev->ntb.pdev)) ntb 776 drivers/ntb/hw/intel/ntb_hw_gen1.c debugfs_create_dir(pci_name(ndev->ntb.pdev), ntb 793 drivers/ntb/hw/intel/ntb_hw_gen1.c int intel_ntb_mw_count(struct ntb_dev *ntb, int pidx) ntb 798 drivers/ntb/hw/intel/ntb_hw_gen1.c return ntb_ndev(ntb)->mw_count; ntb 801 drivers/ntb/hw/intel/ntb_hw_gen1.c int intel_ntb_mw_get_align(struct ntb_dev *ntb, int pidx, int idx, ntb 806 drivers/ntb/hw/intel/ntb_hw_gen1.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 820 drivers/ntb/hw/intel/ntb_hw_gen1.c bar_size = pci_resource_len(ndev->ntb.pdev, bar); ntb 828 drivers/ntb/hw/intel/ntb_hw_gen1.c *addr_align = pci_resource_len(ndev->ntb.pdev, bar); ntb 839 drivers/ntb/hw/intel/ntb_hw_gen1.c static int intel_ntb_mw_set_trans(struct ntb_dev *ntb, int pidx, int idx, ntb 842 drivers/ntb/hw/intel/ntb_hw_gen1.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 859 drivers/ntb/hw/intel/ntb_hw_gen1.c bar_size = pci_resource_len(ndev->ntb.pdev, bar); ntb 940 drivers/ntb/hw/intel/ntb_hw_gen1.c u64 intel_ntb_link_is_up(struct ntb_dev *ntb, enum ntb_speed *speed, ntb 943 drivers/ntb/hw/intel/ntb_hw_gen1.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 962 drivers/ntb/hw/intel/ntb_hw_gen1.c static int intel_ntb_link_enable(struct ntb_dev *ntb, ntb 969 drivers/ntb/hw/intel/ntb_hw_gen1.c ndev = container_of(ntb, struct intel_ntb_dev, ntb); ntb 971 drivers/ntb/hw/intel/ntb_hw_gen1.c if (ndev->ntb.topo == NTB_TOPO_SEC) ntb 974 drivers/ntb/hw/intel/ntb_hw_gen1.c dev_dbg(&ntb->pdev->dev, ntb 978 drivers/ntb/hw/intel/ntb_hw_gen1.c dev_dbg(&ntb->pdev->dev, "ignoring max_speed %d\n", max_speed); ntb 980 drivers/ntb/hw/intel/ntb_hw_gen1.c dev_dbg(&ntb->pdev->dev, "ignoring max_width %d\n", max_width); ntb 993 drivers/ntb/hw/intel/ntb_hw_gen1.c int intel_ntb_link_disable(struct ntb_dev *ntb) ntb 998 drivers/ntb/hw/intel/ntb_hw_gen1.c ndev = container_of(ntb, struct intel_ntb_dev, ntb); ntb 1000 drivers/ntb/hw/intel/ntb_hw_gen1.c if (ndev->ntb.topo == NTB_TOPO_SEC) ntb 1003 drivers/ntb/hw/intel/ntb_hw_gen1.c dev_dbg(&ntb->pdev->dev, "Disabling link\n"); ntb 1017 drivers/ntb/hw/intel/ntb_hw_gen1.c int intel_ntb_peer_mw_count(struct ntb_dev *ntb) ntb 1020 drivers/ntb/hw/intel/ntb_hw_gen1.c return ntb_ndev(ntb)->mw_count; ntb 1023 drivers/ntb/hw/intel/ntb_hw_gen1.c int intel_ntb_peer_mw_get_addr(struct ntb_dev *ntb, int idx, ntb 1026 drivers/ntb/hw/intel/ntb_hw_gen1.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 1037 drivers/ntb/hw/intel/ntb_hw_gen1.c *base = pci_resource_start(ndev->ntb.pdev, bar) + ntb 1041 drivers/ntb/hw/intel/ntb_hw_gen1.c *size = pci_resource_len(ndev->ntb.pdev, bar) - ntb 1047 drivers/ntb/hw/intel/ntb_hw_gen1.c static int intel_ntb_db_is_unsafe(struct ntb_dev *ntb) ntb 1049 drivers/ntb/hw/intel/ntb_hw_gen1.c return ndev_ignore_unsafe(ntb_ndev(ntb), NTB_UNSAFE_DB); ntb 1052 drivers/ntb/hw/intel/ntb_hw_gen1.c u64 intel_ntb_db_valid_mask(struct ntb_dev *ntb) ntb 1054 drivers/ntb/hw/intel/ntb_hw_gen1.c return ntb_ndev(ntb)->db_valid_mask; ntb 1057 drivers/ntb/hw/intel/ntb_hw_gen1.c int intel_ntb_db_vector_count(struct ntb_dev *ntb) ntb 1061 drivers/ntb/hw/intel/ntb_hw_gen1.c ndev = container_of(ntb, struct intel_ntb_dev, ntb); ntb 1066 drivers/ntb/hw/intel/ntb_hw_gen1.c u64 intel_ntb_db_vector_mask(struct ntb_dev *ntb, int db_vector) ntb 1068 drivers/ntb/hw/intel/ntb_hw_gen1.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 1076 drivers/ntb/hw/intel/ntb_hw_gen1.c static u64 intel_ntb_db_read(struct ntb_dev *ntb) ntb 1078 drivers/ntb/hw/intel/ntb_hw_gen1.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 1085 drivers/ntb/hw/intel/ntb_hw_gen1.c static int intel_ntb_db_clear(struct ntb_dev *ntb, u64 db_bits) ntb 1087 drivers/ntb/hw/intel/ntb_hw_gen1.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 1094 drivers/ntb/hw/intel/ntb_hw_gen1.c int intel_ntb_db_set_mask(struct ntb_dev *ntb, u64 db_bits) ntb 1096 drivers/ntb/hw/intel/ntb_hw_gen1.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 1103 drivers/ntb/hw/intel/ntb_hw_gen1.c int intel_ntb_db_clear_mask(struct ntb_dev *ntb, u64 db_bits) ntb 1105 drivers/ntb/hw/intel/ntb_hw_gen1.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 1112 drivers/ntb/hw/intel/ntb_hw_gen1.c static int intel_ntb_peer_db_addr(struct ntb_dev *ntb, phys_addr_t *db_addr, ntb 1116 drivers/ntb/hw/intel/ntb_hw_gen1.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 1123 drivers/ntb/hw/intel/ntb_hw_gen1.c if (unlikely(db_bits & ~ntb_ndev(ntb)->db_valid_mask)) ntb 1136 drivers/ntb/hw/intel/ntb_hw_gen1.c static int intel_ntb_peer_db_set(struct ntb_dev *ntb, u64 db_bits) ntb 1138 drivers/ntb/hw/intel/ntb_hw_gen1.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 1145 drivers/ntb/hw/intel/ntb_hw_gen1.c int intel_ntb_spad_is_unsafe(struct ntb_dev *ntb) ntb 1147 drivers/ntb/hw/intel/ntb_hw_gen1.c return ndev_ignore_unsafe(ntb_ndev(ntb), NTB_UNSAFE_SPAD); ntb 1150 drivers/ntb/hw/intel/ntb_hw_gen1.c int intel_ntb_spad_count(struct ntb_dev *ntb) ntb 1154 drivers/ntb/hw/intel/ntb_hw_gen1.c ndev = container_of(ntb, struct intel_ntb_dev, ntb); ntb 1159 drivers/ntb/hw/intel/ntb_hw_gen1.c u32 intel_ntb_spad_read(struct ntb_dev *ntb, int idx) ntb 1161 drivers/ntb/hw/intel/ntb_hw_gen1.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 1168 drivers/ntb/hw/intel/ntb_hw_gen1.c int intel_ntb_spad_write(struct ntb_dev *ntb, int idx, u32 val) ntb 1170 drivers/ntb/hw/intel/ntb_hw_gen1.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 1177 drivers/ntb/hw/intel/ntb_hw_gen1.c int intel_ntb_peer_spad_addr(struct ntb_dev *ntb, int pidx, int sidx, ntb 1180 drivers/ntb/hw/intel/ntb_hw_gen1.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 1186 drivers/ntb/hw/intel/ntb_hw_gen1.c u32 intel_ntb_peer_spad_read(struct ntb_dev *ntb, int pidx, int sidx) ntb 1188 drivers/ntb/hw/intel/ntb_hw_gen1.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 1195 drivers/ntb/hw/intel/ntb_hw_gen1.c int intel_ntb_peer_spad_write(struct ntb_dev *ntb, int pidx, int sidx, ntb 1198 drivers/ntb/hw/intel/ntb_hw_gen1.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 1224 drivers/ntb/hw/intel/ntb_hw_gen1.c rc = pci_read_config_word(ndev->ntb.pdev, ntb 1239 drivers/ntb/hw/intel/ntb_hw_gen1.c if (ndev->ntb.topo == NTB_TOPO_SEC) ntb 1269 drivers/ntb/hw/intel/ntb_hw_gen1.c dev_dbg(&ndev->ntb.pdev->dev, "PPD %d split bar\n", ppd); ntb 1299 drivers/ntb/hw/intel/ntb_hw_gen1.c pdev = ndev->ntb.pdev; ntb 1313 drivers/ntb/hw/intel/ntb_hw_gen1.c bar_size = pci_resource_len(ndev->ntb.pdev, b2b_bar); ntb 1536 drivers/ntb/hw/intel/ntb_hw_gen1.c struct device *dev = &ndev->ntb.pdev->dev; ntb 1549 drivers/ntb/hw/intel/ntb_hw_gen1.c switch (ndev->ntb.topo) { ntb 1609 drivers/ntb/hw/intel/ntb_hw_gen1.c if (ndev->ntb.topo == NTB_TOPO_B2B_USD) { ntb 1646 drivers/ntb/hw/intel/ntb_hw_gen1.c pdev = ndev->ntb.pdev; ntb 1721 drivers/ntb/hw/intel/ntb_hw_gen1.c ndev->ntb.topo = xeon_ppd_topo(ndev, ppd); ntb 1723 drivers/ntb/hw/intel/ntb_hw_gen1.c ntb_topo_string(ndev->ntb.topo)); ntb 1724 drivers/ntb/hw/intel/ntb_hw_gen1.c if (ndev->ntb.topo == NTB_TOPO_NONE) ntb 1727 drivers/ntb/hw/intel/ntb_hw_gen1.c if (ndev->ntb.topo != NTB_TOPO_SEC) { ntb 1786 drivers/ntb/hw/intel/ntb_hw_gen1.c rc = dma_coerce_mask_and_coherent(&ndev->ntb.dev, ntb 1814 drivers/ntb/hw/intel/ntb_hw_gen1.c struct pci_dev *pdev = ndev->ntb.pdev; ntb 1829 drivers/ntb/hw/intel/ntb_hw_gen1.c ndev->ntb.pdev = pdev; ntb 1830 drivers/ntb/hw/intel/ntb_hw_gen1.c ndev->ntb.topo = NTB_TOPO_NONE; ntb 1831 drivers/ntb/hw/intel/ntb_hw_gen1.c ndev->ntb.ops = &intel_ntb_ops; ntb 1887 drivers/ntb/hw/intel/ntb_hw_gen1.c ndev->ntb.ops = &intel_ntb3_ops; ntb 1908 drivers/ntb/hw/intel/ntb_hw_gen1.c rc = ntb_register_device(&ndev->ntb); ntb 1932 drivers/ntb/hw/intel/ntb_hw_gen1.c ntb_unregister_device(&ndev->ntb); ntb 157 drivers/ntb/hw/intel/ntb_hw_gen1.h int intel_ntb_mw_count(struct ntb_dev *ntb, int pidx); ntb 158 drivers/ntb/hw/intel/ntb_hw_gen1.h int intel_ntb_mw_get_align(struct ntb_dev *ntb, int pidx, int idx, ntb 161 drivers/ntb/hw/intel/ntb_hw_gen1.h int intel_ntb_peer_mw_count(struct ntb_dev *ntb); ntb 162 drivers/ntb/hw/intel/ntb_hw_gen1.h int intel_ntb_peer_mw_get_addr(struct ntb_dev *ntb, int idx, ntb 164 drivers/ntb/hw/intel/ntb_hw_gen1.h u64 intel_ntb_link_is_up(struct ntb_dev *ntb, enum ntb_speed *speed, ntb 166 drivers/ntb/hw/intel/ntb_hw_gen1.h int intel_ntb_link_disable(struct ntb_dev *ntb); ntb 167 drivers/ntb/hw/intel/ntb_hw_gen1.h u64 intel_ntb_db_valid_mask(struct ntb_dev *ntb); ntb 168 drivers/ntb/hw/intel/ntb_hw_gen1.h int intel_ntb_db_vector_count(struct ntb_dev *ntb); ntb 169 drivers/ntb/hw/intel/ntb_hw_gen1.h u64 intel_ntb_db_vector_mask(struct ntb_dev *ntb, int db_vector); ntb 170 drivers/ntb/hw/intel/ntb_hw_gen1.h int intel_ntb_db_set_mask(struct ntb_dev *ntb, u64 db_bits); ntb 171 drivers/ntb/hw/intel/ntb_hw_gen1.h int intel_ntb_db_clear_mask(struct ntb_dev *ntb, u64 db_bits); ntb 172 drivers/ntb/hw/intel/ntb_hw_gen1.h int intel_ntb_spad_is_unsafe(struct ntb_dev *ntb); ntb 173 drivers/ntb/hw/intel/ntb_hw_gen1.h int intel_ntb_spad_count(struct ntb_dev *ntb); ntb 174 drivers/ntb/hw/intel/ntb_hw_gen1.h u32 intel_ntb_spad_read(struct ntb_dev *ntb, int idx); ntb 175 drivers/ntb/hw/intel/ntb_hw_gen1.h int intel_ntb_spad_write(struct ntb_dev *ntb, int idx, u32 val); ntb 176 drivers/ntb/hw/intel/ntb_hw_gen1.h u32 intel_ntb_peer_spad_read(struct ntb_dev *ntb, int pidx, int sidx); ntb 177 drivers/ntb/hw/intel/ntb_hw_gen1.h int intel_ntb_peer_spad_write(struct ntb_dev *ntb, int pidx, int sidx, ntb 179 drivers/ntb/hw/intel/ntb_hw_gen1.h int intel_ntb_peer_spad_addr(struct ntb_dev *ntb, int pidx, int sidx, ntb 102 drivers/ntb/hw/intel/ntb_hw_gen3.c rc = pci_read_config_word(ndev->ntb.pdev, ntb 150 drivers/ntb/hw/intel/ntb_hw_gen3.c pdev = ndev->ntb.pdev; ntb 187 drivers/ntb/hw/intel/ntb_hw_gen3.c switch (ndev->ntb.topo) { ntb 194 drivers/ntb/hw/intel/ntb_hw_gen3.c if (ndev->ntb.topo == NTB_TOPO_B2B_USD) { ntb 232 drivers/ntb/hw/intel/ntb_hw_gen3.c pdev = ndev->ntb.pdev; ntb 240 drivers/ntb/hw/intel/ntb_hw_gen3.c ndev->ntb.topo = xeon_ppd_topo(ndev, ppd); ntb 242 drivers/ntb/hw/intel/ntb_hw_gen3.c ntb_topo_string(ndev->ntb.topo)); ntb 243 drivers/ntb/hw/intel/ntb_hw_gen3.c if (ndev->ntb.topo == NTB_TOPO_NONE) ntb 281 drivers/ntb/hw/intel/ntb_hw_gen3.c ntb_topo_string(ndev->ntb.topo)); ntb 347 drivers/ntb/hw/intel/ntb_hw_gen3.c if (ntb_topo_is_b2b(ndev->ntb.topo)) { ntb 393 drivers/ntb/hw/intel/ntb_hw_gen3.c if (!pci_read_config_word(ndev->ntb.pdev, ntb 398 drivers/ntb/hw/intel/ntb_hw_gen3.c if (!pci_read_config_word(ndev->ntb.pdev, ntb 403 drivers/ntb/hw/intel/ntb_hw_gen3.c if (!pci_read_config_dword(ndev->ntb.pdev, ntb 408 drivers/ntb/hw/intel/ntb_hw_gen3.c if (!pci_read_config_dword(ndev->ntb.pdev, ntb 418 drivers/ntb/hw/intel/ntb_hw_gen3.c static int intel_ntb3_link_enable(struct ntb_dev *ntb, ntb 425 drivers/ntb/hw/intel/ntb_hw_gen3.c ndev = container_of(ntb, struct intel_ntb_dev, ntb); ntb 427 drivers/ntb/hw/intel/ntb_hw_gen3.c dev_dbg(&ntb->pdev->dev, ntb 432 drivers/ntb/hw/intel/ntb_hw_gen3.c dev_dbg(&ntb->pdev->dev, "ignoring max_speed %d\n", max_speed); ntb 434 drivers/ntb/hw/intel/ntb_hw_gen3.c dev_dbg(&ntb->pdev->dev, "ignoring max_width %d\n", max_width); ntb 444 drivers/ntb/hw/intel/ntb_hw_gen3.c static int intel_ntb3_mw_set_trans(struct ntb_dev *ntb, int pidx, int idx, ntb 447 drivers/ntb/hw/intel/ntb_hw_gen3.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 464 drivers/ntb/hw/intel/ntb_hw_gen3.c bar_size = pci_resource_len(ndev->ntb.pdev, bar); ntb 482 drivers/ntb/hw/intel/ntb_hw_gen3.c base = pci_resource_start(ndev->ntb.pdev, bar); ntb 498 drivers/ntb/hw/intel/ntb_hw_gen3.c dev_dbg(&ntb->pdev->dev, "BAR %d IMBARXBASE: %#Lx\n", bar, reg_val); ntb 509 drivers/ntb/hw/intel/ntb_hw_gen3.c dev_dbg(&ntb->pdev->dev, "BAR %d IMBARXLMT: %#Lx\n", bar, reg_val); ntb 530 drivers/ntb/hw/intel/ntb_hw_gen3.c dev_dbg(&ntb->pdev->dev, "BAR %d EMBARXLMT: %#Lx\n", bar, reg_val); ntb 535 drivers/ntb/hw/intel/ntb_hw_gen3.c static int intel_ntb3_peer_db_addr(struct ntb_dev *ntb, phys_addr_t *db_addr, ntb 540 drivers/ntb/hw/intel/ntb_hw_gen3.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 545 drivers/ntb/hw/intel/ntb_hw_gen3.c if (unlikely(BIT_ULL(db_bit) & ~ntb_ndev(ntb)->db_valid_mask)) ntb 553 drivers/ntb/hw/intel/ntb_hw_gen3.c dev_dbg(&ndev->ntb.pdev->dev, "Peer db addr %llx db bit %d\n", ntb 559 drivers/ntb/hw/intel/ntb_hw_gen3.c dev_dbg(&ndev->ntb.pdev->dev, "Peer db data %llx db bit %d\n", ntb 566 drivers/ntb/hw/intel/ntb_hw_gen3.c static int intel_ntb3_peer_db_set(struct ntb_dev *ntb, u64 db_bits) ntb 568 drivers/ntb/hw/intel/ntb_hw_gen3.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 584 drivers/ntb/hw/intel/ntb_hw_gen3.c static u64 intel_ntb3_db_read(struct ntb_dev *ntb) ntb 586 drivers/ntb/hw/intel/ntb_hw_gen3.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 593 drivers/ntb/hw/intel/ntb_hw_gen3.c static int intel_ntb3_db_clear(struct ntb_dev *ntb, u64 db_bits) ntb 595 drivers/ntb/hw/intel/ntb_hw_gen3.c struct intel_ntb_dev *ndev = ntb_ndev(ntb); ntb 139 drivers/ntb/hw/intel/ntb_hw_intel.h struct ntb_dev ntb; ntb 187 drivers/ntb/hw/intel/ntb_hw_intel.h #define ntb_ndev(__ntb) container_of(__ntb, struct intel_ntb_dev, ntb) ntb 46 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct ntb_dev ntb; ntb 93 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static struct switchtec_ntb *ntb_sndev(struct ntb_dev *ntb) ntb 95 drivers/ntb/hw/mscc/ntb_hw_switchtec.c return container_of(ntb, struct switchtec_ntb, ntb); ntb 166 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static int switchtec_ntb_mw_count(struct ntb_dev *ntb, int pidx) ntb 168 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 191 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static int switchtec_ntb_mw_get_align(struct ntb_dev *ntb, int pidx, ntb 196 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 270 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static int switchtec_ntb_mw_set_trans(struct ntb_dev *ntb, int pidx, int widx, ntb 273 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 285 drivers/ntb/hw/mscc/ntb_hw_switchtec.c if (widx >= switchtec_ntb_mw_count(ntb, pidx)) ntb 341 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static int switchtec_ntb_peer_mw_count(struct ntb_dev *ntb) ntb 343 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 370 drivers/ntb/hw/mscc/ntb_hw_switchtec.c *base = pci_resource_start(sndev->ntb.pdev, bar) + offset; ntb 373 drivers/ntb/hw/mscc/ntb_hw_switchtec.c *size = pci_resource_len(sndev->ntb.pdev, bar) - offset; ntb 394 drivers/ntb/hw/mscc/ntb_hw_switchtec.c *base = pci_resource_start(sndev->ntb.pdev, bar) + offset; ntb 402 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static int switchtec_ntb_peer_mw_get_addr(struct ntb_dev *ntb, int idx, ntb 406 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 410 drivers/ntb/hw/mscc/ntb_hw_switchtec.c else if (idx < switchtec_ntb_peer_mw_count(ntb)) ntb 509 drivers/ntb/hw/mscc/ntb_hw_switchtec.c ntb_link_event(&sndev->ntb); ntb 531 drivers/ntb/hw/mscc/ntb_hw_switchtec.c ntb_link_event(&sndev->ntb); ntb 557 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static u64 switchtec_ntb_link_is_up(struct ntb_dev *ntb, ntb 561 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 571 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static int switchtec_ntb_link_enable(struct ntb_dev *ntb, ntb 575 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 587 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static int switchtec_ntb_link_disable(struct ntb_dev *ntb) ntb 589 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 601 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static u64 switchtec_ntb_db_valid_mask(struct ntb_dev *ntb) ntb 603 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 608 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static int switchtec_ntb_db_vector_count(struct ntb_dev *ntb) ntb 613 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static u64 switchtec_ntb_db_vector_mask(struct ntb_dev *ntb, int db_vector) ntb 615 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 623 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static u64 switchtec_ntb_db_read(struct ntb_dev *ntb) ntb 626 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 633 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static int switchtec_ntb_db_clear(struct ntb_dev *ntb, u64 db_bits) ntb 635 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 642 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static int switchtec_ntb_db_set_mask(struct ntb_dev *ntb, u64 db_bits) ntb 645 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 660 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static int switchtec_ntb_db_clear_mask(struct ntb_dev *ntb, u64 db_bits) ntb 663 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 678 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static u64 switchtec_ntb_db_read_mask(struct ntb_dev *ntb) ntb 680 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 685 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static int switchtec_ntb_peer_db_addr(struct ntb_dev *ntb, ntb 691 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 703 drivers/ntb/hw/mscc/ntb_hw_switchtec.c *db_addr = pci_resource_start(ntb->pdev, 0) + offset; ntb 712 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static int switchtec_ntb_peer_db_set(struct ntb_dev *ntb, u64 db_bits) ntb 714 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 722 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static int switchtec_ntb_spad_count(struct ntb_dev *ntb) ntb 724 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 729 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static u32 switchtec_ntb_spad_read(struct ntb_dev *ntb, int idx) ntb 731 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 742 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static int switchtec_ntb_spad_write(struct ntb_dev *ntb, int idx, u32 val) ntb 744 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 757 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static u32 switchtec_ntb_peer_spad_read(struct ntb_dev *ntb, int pidx, ntb 760 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 774 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static int switchtec_ntb_peer_spad_write(struct ntb_dev *ntb, int pidx, ntb 777 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 793 drivers/ntb/hw/mscc/ntb_hw_switchtec.c static int switchtec_ntb_peer_spad_addr(struct ntb_dev *ntb, int pidx, ntb 796 drivers/ntb/hw/mscc/ntb_hw_switchtec.c struct switchtec_ntb *sndev = ntb_sndev(ntb); ntb 806 drivers/ntb/hw/mscc/ntb_hw_switchtec.c *spad_addr = pci_resource_start(ntb->pdev, 0) + offset; ntb 845 drivers/ntb/hw/mscc/ntb_hw_switchtec.c sndev->ntb.pdev = sndev->stdev->pdev; ntb 846 drivers/ntb/hw/mscc/ntb_hw_switchtec.c sndev->ntb.topo = NTB_TOPO_SWITCH; ntb 847 drivers/ntb/hw/mscc/ntb_hw_switchtec.c sndev->ntb.ops = &switchtec_ntb_ops; ntb 1031 drivers/ntb/hw/mscc/ntb_hw_switchtec.c size = pci_resource_len(sndev->ntb.pdev, bar) - offset; ntb 1135 drivers/ntb/hw/mscc/ntb_hw_switchtec.c sndev->ntb.topo = NTB_TOPO_CROSSLINK; ntb 1381 drivers/ntb/hw/mscc/ntb_hw_switchtec.c ntb_db_event(&sndev->ntb, 0); ntb 1524 drivers/ntb/hw/mscc/ntb_hw_switchtec.c rc = ntb_register_device(&sndev->ntb); ntb 1557 drivers/ntb/hw/mscc/ntb_hw_switchtec.c ntb_unregister_device(&sndev->ntb); ntb 31 drivers/ntb/msi.c int ntb_msi_init(struct ntb_dev *ntb, ntb 42 drivers/ntb/msi.c peers = ntb_peer_port_count(ntb); ntb 46 drivers/ntb/msi.c struct_size = sizeof(*ntb->msi) + sizeof(*ntb->msi->peer_mws) * peers; ntb 48 drivers/ntb/msi.c ntb->msi = devm_kzalloc(&ntb->dev, struct_size, GFP_KERNEL); ntb 49 drivers/ntb/msi.c if (!ntb->msi) ntb 52 drivers/ntb/msi.c ntb->msi->desc_changed = desc_changed; ntb 55 drivers/ntb/msi.c peer_widx = ntb_peer_mw_count(ntb) - 1 - i; ntb 57 drivers/ntb/msi.c ret = ntb_peer_mw_get_addr(ntb, peer_widx, &mw_phys_addr, ntb 62 drivers/ntb/msi.c ntb->msi->peer_mws[i] = devm_ioremap(&ntb->dev, mw_phys_addr, ntb 64 drivers/ntb/msi.c if (!ntb->msi->peer_mws[i]) { ntb 74 drivers/ntb/msi.c if (ntb->msi->peer_mws[i]) ntb 75 drivers/ntb/msi.c devm_iounmap(&ntb->dev, ntb->msi->peer_mws[i]); ntb 77 drivers/ntb/msi.c devm_kfree(&ntb->dev, ntb->msi); ntb 78 drivers/ntb/msi.c ntb->msi = NULL; ntb 97 drivers/ntb/msi.c int ntb_msi_setup_mws(struct ntb_dev *ntb) ntb 108 drivers/ntb/msi.c if (!ntb->msi) ntb 111 drivers/ntb/msi.c desc = first_msi_entry(&ntb->pdev->dev); ntb 114 drivers/ntb/msi.c for (peer = 0; peer < ntb_peer_port_count(ntb); peer++) { ntb 115 drivers/ntb/msi.c peer_widx = ntb_peer_highest_mw_idx(ntb, peer); ntb 119 drivers/ntb/msi.c ret = ntb_mw_get_align(ntb, peer, peer_widx, &addr_align, ntb 127 drivers/ntb/msi.c for (peer = 0; peer < ntb_peer_port_count(ntb); peer++) { ntb 128 drivers/ntb/msi.c peer_widx = ntb_peer_highest_mw_idx(ntb, peer); ntb 134 drivers/ntb/msi.c ret = ntb_mw_get_align(ntb, peer, peer_widx, NULL, ntb 144 drivers/ntb/msi.c ret = ntb_mw_set_trans(ntb, peer, peer_widx, ntb 150 drivers/ntb/msi.c ntb->msi->base_addr = addr; ntb 151 drivers/ntb/msi.c ntb->msi->end_addr = addr + mw_min_size; ntb 157 drivers/ntb/msi.c peer_widx = ntb_peer_highest_mw_idx(ntb, peer); ntb 161 drivers/ntb/msi.c ntb_mw_clear_trans(ntb, i, peer_widx); ntb 174 drivers/ntb/msi.c void ntb_msi_clear_mws(struct ntb_dev *ntb) ntb 179 drivers/ntb/msi.c for (peer = 0; peer < ntb_peer_port_count(ntb); peer++) { ntb 180 drivers/ntb/msi.c peer_widx = ntb_peer_highest_mw_idx(ntb, peer); ntb 184 drivers/ntb/msi.c ntb_mw_clear_trans(ntb, peer, peer_widx); ntb 190 drivers/ntb/msi.c struct ntb_dev *ntb; ntb 195 drivers/ntb/msi.c static int ntb_msi_set_desc(struct ntb_dev *ntb, struct msi_desc *entry, ntb 203 drivers/ntb/msi.c if (addr < ntb->msi->base_addr || addr >= ntb->msi->end_addr) { ntb 204 drivers/ntb/msi.c dev_warn_once(&ntb->dev, ntb 206 drivers/ntb/msi.c entry->irq, addr, ntb->msi->base_addr, ntb 207 drivers/ntb/msi.c ntb->msi->end_addr); ntb 211 drivers/ntb/msi.c msi_desc->addr_offset = addr - ntb->msi->base_addr; ntb 221 drivers/ntb/msi.c WARN_ON(ntb_msi_set_desc(dr->ntb, entry, dr->msi_desc)); ntb 223 drivers/ntb/msi.c if (dr->ntb->msi->desc_changed) ntb 224 drivers/ntb/msi.c dr->ntb->msi->desc_changed(dr->ntb->ctx); ntb 235 drivers/ntb/msi.c static int ntbm_msi_setup_callback(struct ntb_dev *ntb, struct msi_desc *entry, ntb 245 drivers/ntb/msi.c dr->ntb = ntb; ntb 249 drivers/ntb/msi.c devres_add(&ntb->dev, dr); ntb 279 drivers/ntb/msi.c int ntbm_msi_request_threaded_irq(struct ntb_dev *ntb, irq_handler_t handler, ntb 288 drivers/ntb/msi.c if (!ntb->msi) ntb 291 drivers/ntb/msi.c for_each_pci_msi_entry(entry, ntb->pdev) { ntb 296 drivers/ntb/msi.c ret = devm_request_threaded_irq(&ntb->dev, entry->irq, handler, ntb 301 drivers/ntb/msi.c if (ntb_msi_set_desc(ntb, entry, msi_desc)) { ntb 302 drivers/ntb/msi.c devm_free_irq(&ntb->dev, entry->irq, dev_id); ntb 306 drivers/ntb/msi.c ret = ntbm_msi_setup_callback(ntb, entry, msi_desc); ntb 308 drivers/ntb/msi.c devm_free_irq(&ntb->dev, entry->irq, dev_id); ntb 322 drivers/ntb/msi.c struct ntb_dev *ntb = dev_ntb(dev); ntb 325 drivers/ntb/msi.c return dr->ntb == ntb && dr->entry == data; ntb 337 drivers/ntb/msi.c void ntbm_msi_free_irq(struct ntb_dev *ntb, unsigned int irq, void *dev_id) ntb 344 drivers/ntb/msi.c WARN_ON(devres_destroy(&ntb->dev, ntbm_msi_callback_release, ntb 347 drivers/ntb/msi.c devm_free_irq(&ntb->dev, irq, dev_id); ntb 363 drivers/ntb/msi.c int ntb_msi_peer_trigger(struct ntb_dev *ntb, int peer, ntb 368 drivers/ntb/msi.c if (!ntb->msi) ntb 371 drivers/ntb/msi.c idx = desc->addr_offset / sizeof(*ntb->msi->peer_mws[peer]); ntb 373 drivers/ntb/msi.c iowrite32(desc->data, &ntb->msi->peer_mws[peer][idx]); ntb 393 drivers/ntb/msi.c int ntb_msi_peer_addr(struct ntb_dev *ntb, int peer, ntb 397 drivers/ntb/msi.c int peer_widx = ntb_peer_mw_count(ntb) - 1 - peer; ntb 401 drivers/ntb/msi.c ret = ntb_peer_mw_get_addr(ntb, peer_widx, &mw_phys_addr, NULL); ntb 20 drivers/ntb/test/ntb_msi_test.c struct ntb_dev *ntb; ntb 48 drivers/ntb/test/ntb_msi_test.c dev_dbg(&nm->ntb->dev, "Interrupt Occurred: %d", ntb 65 drivers/ntb/test/ntb_msi_test.c ret = ntb_msi_setup_mws(nm->ntb); ntb 67 drivers/ntb/test/ntb_msi_test.c dev_err(&nm->ntb->dev, "Unable to setup MSI windows: %d\n", ntb 77 drivers/ntb/test/ntb_msi_test.c irq = ntbm_msi_request_irq(nm->ntb, ntb_msit_isr, ntb 87 drivers/ntb/test/ntb_msi_test.c ret = ntb_spad_write(nm->ntb, 2 * i + 1, ntb 92 drivers/ntb/test/ntb_msi_test.c ret = ntb_spad_write(nm->ntb, 2 * i + 2, ntb 100 drivers/ntb/test/ntb_msi_test.c ntb_spad_write(nm->ntb, 0, irq_count); ntb 101 drivers/ntb/test/ntb_msi_test.c ntb_peer_db_set(nm->ntb, BIT(ntb_port_number(nm->ntb))); ntb 109 drivers/ntb/test/ntb_msi_test.c dev_dbg(&nm->ntb->dev, "MSI Descriptors Changed\n"); ntb 112 drivers/ntb/test/ntb_msi_test.c ntb_spad_write(nm->ntb, 2 * i + 1, ntb 114 drivers/ntb/test/ntb_msi_test.c ntb_spad_write(nm->ntb, 2 * i + 2, ntb 118 drivers/ntb/test/ntb_msi_test.c ntb_peer_db_set(nm->ntb, BIT(ntb_port_number(nm->ntb))); ntb 125 drivers/ntb/test/ntb_msi_test.c if (!ntb_link_is_up(nm->ntb, NULL, NULL)) ntb 138 drivers/ntb/test/ntb_msi_test.c desc[i].addr_offset = ntb_peer_spad_read(nm->ntb, peer, ntb 140 drivers/ntb/test/ntb_msi_test.c desc[i].data = ntb_peer_spad_read(nm->ntb, peer, 2 * i + 2); ntb 143 drivers/ntb/test/ntb_msi_test.c dev_info(&nm->ntb->dev, "Found %d interrupts on peer %d\n", ntb 153 drivers/ntb/test/ntb_msi_test.c u64 peer_mask = ntb_db_read(nm->ntb); ntb 157 drivers/ntb/test/ntb_msi_test.c ntb_db_clear(nm->ntb, peer_mask); ntb 163 drivers/ntb/test/ntb_msi_test.c irq_count = ntb_peer_spad_read(nm->ntb, peer, 0); ntb 191 drivers/ntb/test/ntb_msi_test.c dev_dbg(&peer->nm->ntb->dev, "trigger irq %llu on peer %u\n", ntb 194 drivers/ntb/test/ntb_msi_test.c return ntb_msi_peer_trigger(peer->nm->ntb, peer->pidx, ntb 205 drivers/ntb/test/ntb_msi_test.c *port = ntb_peer_port_number(peer->nm->ntb, peer->pidx); ntb 261 drivers/ntb/test/ntb_msi_test.c *port = ntb_port_number(nm->ntb); ntb 272 drivers/ntb/test/ntb_msi_test.c struct pci_dev *pdev = nm->ntb->pdev; ntb 282 drivers/ntb/test/ntb_msi_test.c for (i = 0; i < ntb_peer_port_count(nm->ntb); i++) { ntb 319 drivers/ntb/test/ntb_msi_test.c static int ntb_msit_probe(struct ntb_client *client, struct ntb_dev *ntb) ntb 326 drivers/ntb/test/ntb_msi_test.c peers = ntb_peer_port_count(ntb); ntb 330 drivers/ntb/test/ntb_msi_test.c if (ntb_spad_is_unsafe(ntb) || ntb_spad_count(ntb) < 2 * num_irqs + 1) { ntb 331 drivers/ntb/test/ntb_msi_test.c dev_err(&ntb->dev, "NTB MSI test requires at least %d spads for %d irqs\n", ntb 336 drivers/ntb/test/ntb_msi_test.c ret = ntb_spad_write(ntb, 0, -1); ntb 338 drivers/ntb/test/ntb_msi_test.c dev_err(&ntb->dev, "Unable to write spads: %d\n", ret); ntb 342 drivers/ntb/test/ntb_msi_test.c ret = ntb_db_clear_mask(ntb, GENMASK(peers - 1, 0)); ntb 344 drivers/ntb/test/ntb_msi_test.c dev_err(&ntb->dev, "Unable to clear doorbell mask: %d\n", ret); ntb 348 drivers/ntb/test/ntb_msi_test.c ret = ntb_msi_init(ntb, ntb_msit_desc_changed); ntb 350 drivers/ntb/test/ntb_msi_test.c dev_err(&ntb->dev, "Unable to initialize MSI library: %d\n", ntb 357 drivers/ntb/test/ntb_msi_test.c nm = devm_kzalloc(&ntb->dev, struct_size, GFP_KERNEL); ntb 361 drivers/ntb/test/ntb_msi_test.c nm->isr_ctx = devm_kcalloc(&ntb->dev, num_irqs, sizeof(*nm->isr_ctx), ntb 367 drivers/ntb/test/ntb_msi_test.c nm->ntb = ntb; ntb 371 drivers/ntb/test/ntb_msi_test.c ret = ntb_set_ctx(ntb, nm, &ntb_msit_ops); ntb 378 drivers/ntb/test/ntb_msi_test.c ntb_link_enable(ntb, NTB_SPEED_AUTO, NTB_WIDTH_AUTO); ntb 384 drivers/ntb/test/ntb_msi_test.c devm_kfree(&ntb->dev, nm->isr_ctx); ntb 385 drivers/ntb/test/ntb_msi_test.c devm_kfree(&ntb->dev, nm); ntb 389 drivers/ntb/test/ntb_msi_test.c static void ntb_msit_remove(struct ntb_client *client, struct ntb_dev *ntb) ntb 391 drivers/ntb/test/ntb_msi_test.c struct ntb_msit_ctx *nm = ntb->ctx; ntb 394 drivers/ntb/test/ntb_msi_test.c ntb_link_disable(ntb); ntb 395 drivers/ntb/test/ntb_msi_test.c ntb_db_set_mask(ntb, ntb_db_valid_mask(ntb)); ntb 396 drivers/ntb/test/ntb_msi_test.c ntb_msi_clear_mws(ntb); ntb 398 drivers/ntb/test/ntb_msi_test.c for (i = 0; i < ntb_peer_port_count(ntb); i++) ntb 401 drivers/ntb/test/ntb_msi_test.c ntb_clear_ctx(ntb); ntb 185 drivers/ntb/test/ntb_perf.c struct ntb_dev *ntb; ntb 250 drivers/ntb/test/ntb_perf.c link = ntb_link_is_up(peer->perf->ntb, NULL, NULL); ntb 261 drivers/ntb/test/ntb_perf.c dev_dbg(&perf->ntb->dev, "CMD send: %d 0x%llx\n", cmd, data); ntb 274 drivers/ntb/test/ntb_perf.c sts = ntb_peer_spad_read(perf->ntb, peer->pidx, ntb 281 drivers/ntb/test/ntb_perf.c ntb_peer_spad_write(perf->ntb, peer->pidx, ntb 284 drivers/ntb/test/ntb_perf.c ntb_peer_spad_write(perf->ntb, peer->pidx, ntb 287 drivers/ntb/test/ntb_perf.c ntb_peer_spad_write(perf->ntb, peer->pidx, ntb 290 drivers/ntb/test/ntb_perf.c ntb_peer_db_set(perf->ntb, PERF_SPAD_NOTIFY(peer->gidx)); ntb 292 drivers/ntb/test/ntb_perf.c dev_dbg(&perf->ntb->dev, "DB ring peer %#llx\n", ntb 307 drivers/ntb/test/ntb_perf.c ntb_db_clear(perf->ntb, PERF_SPAD_NOTIFY(perf->gidx)); ntb 321 drivers/ntb/test/ntb_perf.c val = ntb_spad_read(perf->ntb, PERF_SPAD_CMD(peer->gidx)); ntb 327 drivers/ntb/test/ntb_perf.c val = ntb_spad_read(perf->ntb, PERF_SPAD_LDATA(peer->gidx)); ntb 330 drivers/ntb/test/ntb_perf.c val = ntb_spad_read(perf->ntb, PERF_SPAD_HDATA(peer->gidx)); ntb 334 drivers/ntb/test/ntb_perf.c ntb_spad_write(perf->ntb, PERF_SPAD_CMD(peer->gidx), ntb 337 drivers/ntb/test/ntb_perf.c dev_dbg(&perf->ntb->dev, "CMD recv: %d 0x%llx\n", *cmd, *data); ntb 352 drivers/ntb/test/ntb_perf.c dev_dbg(&perf->ntb->dev, "CMD send: %d 0x%llx\n", cmd, data); ntb 361 drivers/ntb/test/ntb_perf.c outbits = ntb_msg_outbits(perf->ntb); ntb 366 drivers/ntb/test/ntb_perf.c ret = ntb_msg_clear_sts(perf->ntb, outbits); ntb 370 drivers/ntb/test/ntb_perf.c ntb_peer_msg_write(perf->ntb, peer->pidx, PERF_MSG_LDATA, ntb 373 drivers/ntb/test/ntb_perf.c if (ntb_msg_read_sts(perf->ntb) & outbits) { ntb 378 drivers/ntb/test/ntb_perf.c ntb_peer_msg_write(perf->ntb, peer->pidx, PERF_MSG_HDATA, ntb 382 drivers/ntb/test/ntb_perf.c ntb_peer_msg_write(perf->ntb, peer->pidx, PERF_MSG_CMD, cmd); ntb 396 drivers/ntb/test/ntb_perf.c inbits = ntb_msg_inbits(perf->ntb); ntb 398 drivers/ntb/test/ntb_perf.c if (hweight64(ntb_msg_read_sts(perf->ntb) & inbits) < 3) ntb 401 drivers/ntb/test/ntb_perf.c val = ntb_msg_read(perf->ntb, pidx, PERF_MSG_CMD); ntb 404 drivers/ntb/test/ntb_perf.c val = ntb_msg_read(perf->ntb, pidx, PERF_MSG_LDATA); ntb 407 drivers/ntb/test/ntb_perf.c val = ntb_msg_read(perf->ntb, pidx, PERF_MSG_HDATA); ntb 411 drivers/ntb/test/ntb_perf.c ntb_msg_clear_sts(perf->ntb, inbits); ntb 413 drivers/ntb/test/ntb_perf.c dev_dbg(&perf->ntb->dev, "CMD recv: %d 0x%llx\n", *cmd, *data); ntb 425 drivers/ntb/test/ntb_perf.c dev_err(&perf->ntb->dev, "Send invalid command\n"); ntb 439 drivers/ntb/test/ntb_perf.c dev_err(&peer->perf->ntb->dev, "Exec invalid command\n"); ntb 446 drivers/ntb/test/ntb_perf.c dev_dbg(&peer->perf->ntb->dev, "CMD exec: %d\n", cmd); ntb 470 drivers/ntb/test/ntb_perf.c dev_err(&perf->ntb->dev, "Recv invalid command\n"); ntb 505 drivers/ntb/test/ntb_perf.c dev_dbg(&perf->ntb->dev, "DB vec %d mask %#llx bits %#llx\n", vec, ntb 506 drivers/ntb/test/ntb_perf.c ntb_db_vector_mask(perf->ntb, vec), ntb_db_read(perf->ntb)); ntb 516 drivers/ntb/test/ntb_perf.c dev_dbg(&perf->ntb->dev, "Msg status bits %#llx\n", ntb 517 drivers/ntb/test/ntb_perf.c ntb_msg_read_sts(perf->ntb)); ntb 531 drivers/ntb/test/ntb_perf.c (void)ntb_peer_mw_clear_trans(peer->perf->ntb, peer->pidx, peer->gidx); ntb 540 drivers/ntb/test/ntb_perf.c ret = ntb_peer_mw_set_trans(perf->ntb, peer->pidx, peer->gidx, ntb 543 drivers/ntb/test/ntb_perf.c dev_err(&perf->ntb->dev, "Failed to set outbuf translation\n"); ntb 558 drivers/ntb/test/ntb_perf.c (void)ntb_mw_clear_trans(peer->perf->ntb, peer->pidx, peer->gidx); ntb 559 drivers/ntb/test/ntb_perf.c dma_free_coherent(&peer->perf->ntb->dev, peer->inbuf_size, ntb 571 drivers/ntb/test/ntb_perf.c ret = ntb_mw_get_align(perf->ntb, peer->pidx, perf->gidx, ntb 574 drivers/ntb/test/ntb_perf.c dev_err(&perf->ntb->dev, "Couldn't get inbuf restrictions\n"); ntb 579 drivers/ntb/test/ntb_perf.c dev_err(&perf->ntb->dev, "Too big inbuf size %pa > %pa\n", ntb 588 drivers/ntb/test/ntb_perf.c peer->inbuf = dma_alloc_coherent(&perf->ntb->dev, peer->inbuf_size, ntb 591 drivers/ntb/test/ntb_perf.c dev_err(&perf->ntb->dev, "Failed to alloc inbuf of %pa\n", ntb 596 drivers/ntb/test/ntb_perf.c dev_err(&perf->ntb->dev, "Unaligned inbuf allocated\n"); ntb 600 drivers/ntb/test/ntb_perf.c ret = ntb_mw_set_trans(perf->ntb, peer->pidx, peer->gidx, ntb 603 drivers/ntb/test/ntb_perf.c dev_err(&perf->ntb->dev, "Failed to set inbuf translation\n"); ntb 642 drivers/ntb/test/ntb_perf.c dev_warn(&peer->perf->ntb->dev, ntb 655 drivers/ntb/test/ntb_perf.c if (ntb_peer_mw_count(perf->ntb) < perf->pcnt + 1) { ntb 656 drivers/ntb/test/ntb_perf.c dev_err(&perf->ntb->dev, "Not enough memory windows\n"); ntb 660 drivers/ntb/test/ntb_perf.c if (ntb_msg_count(perf->ntb) >= PERF_MSG_CNT) { ntb 664 drivers/ntb/test/ntb_perf.c dev_dbg(&perf->ntb->dev, "Message service initialized\n"); ntb 669 drivers/ntb/test/ntb_perf.c dev_dbg(&perf->ntb->dev, "Message service unsupported\n"); ntb 672 drivers/ntb/test/ntb_perf.c if (ntb_spad_count(perf->ntb) >= PERF_SPAD_CNT(perf->pcnt) && ntb 673 drivers/ntb/test/ntb_perf.c (ntb_db_valid_mask(perf->ntb) & mask) == mask) { ntb 677 drivers/ntb/test/ntb_perf.c dev_dbg(&perf->ntb->dev, "Scratchpad service initialized\n"); ntb 682 drivers/ntb/test/ntb_perf.c dev_dbg(&perf->ntb->dev, "Scratchpad service unsupported\n"); ntb 684 drivers/ntb/test/ntb_perf.c dev_err(&perf->ntb->dev, "Command services unsupported\n"); ntb 694 drivers/ntb/test/ntb_perf.c mask = ntb_db_valid_mask(perf->ntb); ntb 695 drivers/ntb/test/ntb_perf.c (void)ntb_db_set_mask(perf->ntb, mask); ntb 697 drivers/ntb/test/ntb_perf.c ret = ntb_set_ctx(perf->ntb, perf, &perf_ops); ntb 704 drivers/ntb/test/ntb_perf.c inbits = ntb_msg_inbits(perf->ntb); ntb 705 drivers/ntb/test/ntb_perf.c outbits = ntb_msg_outbits(perf->ntb); ntb 706 drivers/ntb/test/ntb_perf.c (void)ntb_msg_set_mask(perf->ntb, inbits | outbits); ntb 709 drivers/ntb/test/ntb_perf.c ret = ntb_msg_clear_mask(perf->ntb, incmd_bit); ntb 711 drivers/ntb/test/ntb_perf.c dev_dbg(&perf->ntb->dev, "MSG sts unmasked %#llx\n", incmd_bit); ntb 713 drivers/ntb/test/ntb_perf.c scnt = ntb_spad_count(perf->ntb); ntb 715 drivers/ntb/test/ntb_perf.c ntb_spad_write(perf->ntb, sidx, PERF_CMD_INVAL); ntb 717 drivers/ntb/test/ntb_perf.c ret = ntb_db_clear_mask(perf->ntb, incmd_bit); ntb 719 drivers/ntb/test/ntb_perf.c dev_dbg(&perf->ntb->dev, "DB bits unmasked %#llx\n", incmd_bit); ntb 722 drivers/ntb/test/ntb_perf.c ntb_clear_ctx(perf->ntb); ntb 726 drivers/ntb/test/ntb_perf.c ntb_link_enable(perf->ntb, NTB_SPEED_AUTO, NTB_WIDTH_AUTO); ntb 728 drivers/ntb/test/ntb_perf.c ntb_link_event(perf->ntb); ntb 740 drivers/ntb/test/ntb_perf.c inbits = ntb_msg_inbits(perf->ntb); ntb 741 drivers/ntb/test/ntb_perf.c (void)ntb_msg_set_mask(perf->ntb, inbits); ntb 743 drivers/ntb/test/ntb_perf.c (void)ntb_db_set_mask(perf->ntb, PERF_SPAD_NOTIFY(perf->gidx)); ntb 746 drivers/ntb/test/ntb_perf.c ntb_clear_ctx(perf->ntb); ntb 757 drivers/ntb/test/ntb_perf.c ntb_spad_write(perf->ntb, PERF_SPAD_CMD(peer->gidx), 0); ntb 760 drivers/ntb/test/ntb_perf.c ntb_db_clear(perf->ntb, PERF_SPAD_NOTIFY(perf->gidx)); ntb 762 drivers/ntb/test/ntb_perf.c ntb_link_disable(perf->ntb); ntb 859 drivers/ntb/test/ntb_perf.c node = dev_to_node(&perf->ntb->dev); ntb 870 drivers/ntb/test/ntb_perf.c dev_to_node(&perf->ntb->dev)); ntb 883 drivers/ntb/test/ntb_perf.c dev_err(&perf->ntb->dev, "%d: Failed to get DMA channel\n", ntb 919 drivers/ntb/test/ntb_perf.c dev_err(&perf->ntb->dev, "%d: Got error %d on test\n", ntb 957 drivers/ntb/test/ntb_perf.c dev_dbg(&perf->ntb->dev, "%d: copied %llu bytes\n", ntb 960 drivers/ntb/test/ntb_perf.c dev_dbg(&perf->ntb->dev, "%d: lasted %llu usecs\n", ntb 963 drivers/ntb/test/ntb_perf.c dev_dbg(&perf->ntb->dev, "%d: %llu MBytes/s\n", pthr->tidx, ntb 1170 drivers/ntb/test/ntb_perf.c "Local port %d, Global index %d\n", ntb_port_number(perf->ntb), ntb 1176 drivers/ntb/test/ntb_perf.c ntb_peer_port_number(perf->ntb, perf->test_peer->pidx), ntb 1187 drivers/ntb/test/ntb_perf.c ntb_peer_port_number(perf->ntb, peer->pidx), peer->pidx, ntb 1320 drivers/ntb/test/ntb_perf.c struct pci_dev *pdev = perf->ntb->pdev; ntb 1324 drivers/ntb/test/ntb_perf.c dev_warn(&perf->ntb->dev, "DebugFS unsupported\n"); ntb 1355 drivers/ntb/test/ntb_perf.c static struct perf_ctx *perf_create_data(struct ntb_dev *ntb) ntb 1359 drivers/ntb/test/ntb_perf.c perf = devm_kzalloc(&ntb->dev, sizeof(*perf), GFP_KERNEL); ntb 1363 drivers/ntb/test/ntb_perf.c perf->pcnt = ntb_peer_port_count(ntb); ntb 1364 drivers/ntb/test/ntb_perf.c perf->peers = devm_kcalloc(&ntb->dev, perf->pcnt, sizeof(*perf->peers), ntb 1369 drivers/ntb/test/ntb_perf.c perf->ntb = ntb; ntb 1381 drivers/ntb/test/ntb_perf.c ret = ntb_peer_mw_get_addr(perf->ntb, perf->gidx, &phys_addr, ntb 1386 drivers/ntb/test/ntb_perf.c peer->outbuf = devm_ioremap_wc(&perf->ntb->dev, phys_addr, ntb 1393 drivers/ntb/test/ntb_perf.c dev_warn(&peer->perf->ntb->dev, ntb 1406 drivers/ntb/test/ntb_perf.c lport = ntb_port_number(perf->ntb); ntb 1413 drivers/ntb/test/ntb_perf.c if (lport < ntb_peer_port_number(perf->ntb, pidx)) { ntb 1431 drivers/ntb/test/ntb_perf.c dev_dbg(&perf->ntb->dev, "Global port index %d\n", perf->gidx); ntb 1436 drivers/ntb/test/ntb_perf.c static int perf_probe(struct ntb_client *client, struct ntb_dev *ntb) ntb 1441 drivers/ntb/test/ntb_perf.c perf = perf_create_data(ntb); ntb 1464 drivers/ntb/test/ntb_perf.c static void perf_remove(struct ntb_client *client, struct ntb_dev *ntb) ntb 1466 drivers/ntb/test/ntb_perf.c struct perf_ctx *perf = ntb->ctx; ntb 100 drivers/ntb/test/ntb_pingpong.c struct ntb_dev *ntb; ntb 121 drivers/ntb/test/ntb_pingpong.c link = ntb_link_is_up(pp->ntb, NULL, NULL); ntb 146 drivers/ntb/test/ntb_pingpong.c ntb_db_set_mask(pp->ntb, pp->in_db); ntb 152 drivers/ntb/test/ntb_pingpong.c dev_dbg(&pp->ntb->dev, "Got no peers, so cancel\n"); ntb 156 drivers/ntb/test/ntb_pingpong.c dev_dbg(&pp->ntb->dev, "Ping-pong started with port %d, db %#llx\n", ntb 157 drivers/ntb/test/ntb_pingpong.c ntb_peer_port_number(pp->ntb, pp->out_pidx), pp->out_db); ntb 166 drivers/ntb/test/ntb_pingpong.c ntb_db_set_mask(pp->ntb, pp->in_db); ntb 168 drivers/ntb/test/ntb_pingpong.c dev_dbg(&pp->ntb->dev, "Ping-pong cancelled\n"); ntb 178 drivers/ntb/test/ntb_pingpong.c ntb_peer_spad_write(pp->ntb, pp->out_pidx, 0, count); ntb 179 drivers/ntb/test/ntb_pingpong.c ntb_peer_msg_write(pp->ntb, pp->out_pidx, 0, count); ntb 181 drivers/ntb/test/ntb_pingpong.c dev_dbg(&pp->ntb->dev, "Ping port %d spad %#x, msg %#x\n", ntb 182 drivers/ntb/test/ntb_pingpong.c ntb_peer_port_number(pp->ntb, pp->out_pidx), count, count); ntb 184 drivers/ntb/test/ntb_pingpong.c ntb_peer_db_set(pp->ntb, pp->out_db); ntb 185 drivers/ntb/test/ntb_pingpong.c ntb_db_clear_mask(pp->ntb, pp->in_db); ntb 195 drivers/ntb/test/ntb_pingpong.c spad_data = ntb_spad_read(pp->ntb, 0); ntb 196 drivers/ntb/test/ntb_pingpong.c msg_data = ntb_msg_read(pp->ntb, &pidx, 0); ntb 197 drivers/ntb/test/ntb_pingpong.c ntb_msg_clear_sts(pp->ntb, -1); ntb 204 drivers/ntb/test/ntb_pingpong.c dev_dbg(&pp->ntb->dev, "Pong spad %#x, msg %#x (port %d)\n", ntb 205 drivers/ntb/test/ntb_pingpong.c spad_data, msg_data, ntb_peer_port_number(pp->ntb, pidx)); ntb 209 drivers/ntb/test/ntb_pingpong.c ntb_db_set_mask(pp->ntb, pp->in_db); ntb 210 drivers/ntb/test/ntb_pingpong.c ntb_db_clear(pp->ntb, pp->in_db); ntb 243 drivers/ntb/test/ntb_pingpong.c static int pp_check_ntb(struct ntb_dev *ntb) ntb 247 drivers/ntb/test/ntb_pingpong.c if (ntb_db_is_unsafe(ntb)) { ntb 248 drivers/ntb/test/ntb_pingpong.c dev_dbg(&ntb->dev, "Doorbell is unsafe\n"); ntb 253 drivers/ntb/test/ntb_pingpong.c if (ntb_spad_is_unsafe(ntb)) { ntb 254 drivers/ntb/test/ntb_pingpong.c dev_dbg(&ntb->dev, "Scratchpad is unsafe\n"); ntb 259 drivers/ntb/test/ntb_pingpong.c pmask = GENMASK_ULL(ntb_peer_port_count(ntb), 0); ntb 260 drivers/ntb/test/ntb_pingpong.c if ((ntb_db_valid_mask(ntb) & pmask) != pmask) { ntb 261 drivers/ntb/test/ntb_pingpong.c dev_err(&ntb->dev, "Unsupported DB configuration\n"); ntb 265 drivers/ntb/test/ntb_pingpong.c if (ntb_spad_count(ntb) < 1 && ntb_msg_count(ntb) < 1) { ntb 266 drivers/ntb/test/ntb_pingpong.c dev_err(&ntb->dev, "Scratchpads and messages unsupported\n"); ntb 268 drivers/ntb/test/ntb_pingpong.c } else if (ntb_spad_count(ntb) < 1) { ntb 269 drivers/ntb/test/ntb_pingpong.c dev_dbg(&ntb->dev, "Scratchpads unsupported\n"); ntb 270 drivers/ntb/test/ntb_pingpong.c } else if (ntb_msg_count(ntb) < 1) { ntb 271 drivers/ntb/test/ntb_pingpong.c dev_dbg(&ntb->dev, "Messages unsupported\n"); ntb 277 drivers/ntb/test/ntb_pingpong.c static struct pp_ctx *pp_create_data(struct ntb_dev *ntb) ntb 281 drivers/ntb/test/ntb_pingpong.c pp = devm_kzalloc(&ntb->dev, sizeof(*pp), GFP_KERNEL); ntb 285 drivers/ntb/test/ntb_pingpong.c pp->ntb = ntb; ntb 299 drivers/ntb/test/ntb_pingpong.c lport = ntb_port_number(pp->ntb); ntb 300 drivers/ntb/test/ntb_pingpong.c pcnt = ntb_peer_port_count(pp->ntb); ntb 302 drivers/ntb/test/ntb_pingpong.c if (lport < ntb_peer_port_number(pp->ntb, pidx)) ntb 310 drivers/ntb/test/ntb_pingpong.c dev_dbg(&pp->ntb->dev, "Inbound db %#llx, prev %#llx, next %#llx\n", ntb 319 drivers/ntb/test/ntb_pingpong.c db_mask = ntb_db_valid_mask(pp->ntb); ntb 320 drivers/ntb/test/ntb_pingpong.c ret = ntb_db_set_mask(pp->ntb, db_mask); ntb 325 drivers/ntb/test/ntb_pingpong.c if (ntb_msg_count(pp->ntb) < 1) ntb 328 drivers/ntb/test/ntb_pingpong.c msg_mask = ntb_msg_outbits(pp->ntb) | ntb_msg_inbits(pp->ntb); ntb 329 drivers/ntb/test/ntb_pingpong.c return ntb_msg_set_mask(pp->ntb, msg_mask); ntb 336 drivers/ntb/test/ntb_pingpong.c ret = ntb_set_ctx(pp->ntb, pp, &pp_ops); ntb 340 drivers/ntb/test/ntb_pingpong.c ntb_link_enable(pp->ntb, NTB_SPEED_AUTO, NTB_WIDTH_AUTO); ntb 342 drivers/ntb/test/ntb_pingpong.c ntb_link_event(pp->ntb); ntb 349 drivers/ntb/test/ntb_pingpong.c ntb_link_disable(pp->ntb); ntb 351 drivers/ntb/test/ntb_pingpong.c ntb_clear_ctx(pp->ntb); ntb 356 drivers/ntb/test/ntb_pingpong.c struct pci_dev *pdev = pp->ntb->pdev; ntb 363 drivers/ntb/test/ntb_pingpong.c dev_warn(&pp->ntb->dev, "DebugFS unsupported\n"); ntb 371 drivers/ntb/test/ntb_pingpong.c static int pp_probe(struct ntb_client *client, struct ntb_dev *ntb) ntb 376 drivers/ntb/test/ntb_pingpong.c ret = pp_check_ntb(ntb); ntb 380 drivers/ntb/test/ntb_pingpong.c pp = pp_create_data(ntb); ntb 399 drivers/ntb/test/ntb_pingpong.c static void pp_remove(struct ntb_client *client, struct ntb_dev *ntb) ntb 401 drivers/ntb/test/ntb_pingpong.c struct pp_ctx *pp = ntb->ctx; ntb 257 drivers/ntb/test/ntb_tool.c struct ntb_dev *ntb; ntb 296 drivers/ntb/test/ntb_tool.c up = ntb_link_is_up(tc->ntb, &speed, &width); ntb 298 drivers/ntb/test/ntb_tool.c dev_dbg(&tc->ntb->dev, "link is %s speed %d width %d\n", ntb 309 drivers/ntb/test/ntb_tool.c db_mask = ntb_db_vector_mask(tc->ntb, vec); ntb 310 drivers/ntb/test/ntb_tool.c db_bits = ntb_db_read(tc->ntb); ntb 312 drivers/ntb/test/ntb_tool.c dev_dbg(&tc->ntb->dev, "doorbell vec %d mask %#llx bits %#llx\n", ntb 323 drivers/ntb/test/ntb_tool.c msg_sts = ntb_msg_read_sts(tc->ntb); ntb 325 drivers/ntb/test/ntb_tool.c dev_dbg(&tc->ntb->dev, "message bits %#llx\n", msg_sts); ntb 354 drivers/ntb/test/ntb_tool.c pos = scnprintf(buf, buf_size, "%#llx\n", fn_read(tc->ntb)); ntb 392 drivers/ntb/test/ntb_tool.c ret = fn_set(tc->ntb, bits); ntb 397 drivers/ntb/test/ntb_tool.c ret = fn_clear(tc->ntb, bits); ntb 417 drivers/ntb/test/ntb_tool.c pos = scnprintf(buf, sizeof(buf), "%d\n", ntb_port_number(tc->ntb)); ntb 435 drivers/ntb/test/ntb_tool.c ntb_peer_port_number(tc->ntb, peer->pidx)); ntb 448 drivers/ntb/test/ntb_tool.c tc->peer_cnt = ntb_peer_port_count(tc->ntb); ntb 449 drivers/ntb/test/ntb_tool.c tc->peers = devm_kcalloc(&tc->ntb->dev, tc->peer_cnt, ntb 479 drivers/ntb/test/ntb_tool.c ret = ntb_link_enable(tc->ntb, NTB_SPEED_AUTO, NTB_WIDTH_AUTO); ntb 481 drivers/ntb/test/ntb_tool.c ret = ntb_link_disable(tc->ntb); ntb 500 drivers/ntb/test/ntb_tool.c if (ntb_link_is_up(tc->ntb, NULL, NULL) & BIT(peer->pidx)) ntb 531 drivers/ntb/test/ntb_tool.c !!(ntb_link_is_up(tc->ntb, NULL, NULL) & link_msk) == val)) ntb 585 drivers/ntb/test/ntb_tool.c ret = ntb_mw_get_align(tc->ntb, pidx, widx, &addr_align, ntb 593 drivers/ntb/test/ntb_tool.c inmw->mm_base = dma_alloc_coherent(&tc->ntb->dev, inmw->size, ntb 603 drivers/ntb/test/ntb_tool.c ret = ntb_mw_set_trans(tc->ntb, pidx, widx, inmw->dma_base, inmw->size); ntb 615 drivers/ntb/test/ntb_tool.c dma_free_coherent(&tc->ntb->dev, inmw->size, inmw->mm_base, ntb 631 drivers/ntb/test/ntb_tool.c ntb_mw_clear_trans(tc->ntb, pidx, widx); ntb 632 drivers/ntb/test/ntb_tool.c dma_free_coherent(&tc->ntb->dev, inmw->size, ntb 659 drivers/ntb/test/ntb_tool.c ret = ntb_mw_get_align(inmw->tc->ntb, inmw->pidx, inmw->widx, ntb 670 drivers/ntb/test/ntb_tool.c ntb_peer_port_number(inmw->tc->ntb, inmw->pidx), ntb 821 drivers/ntb/test/ntb_tool.c ret = ntb_peer_mw_get_addr(tc->ntb, widx, &map_base, &map_size); ntb 825 drivers/ntb/test/ntb_tool.c ret = ntb_peer_mw_set_trans(tc->ntb, pidx, widx, req_addr, req_size); ntb 847 drivers/ntb/test/ntb_tool.c ntb_peer_mw_clear_trans(tc->ntb, pidx, widx); ntb 860 drivers/ntb/test/ntb_tool.c ntb_peer_mw_clear_trans(tc->ntb, outmw->pidx, widx); ntb 882 drivers/ntb/test/ntb_tool.c ret = ntb_peer_mw_get_addr(outmw->tc->ntb, outmw->widx, ntb 899 drivers/ntb/test/ntb_tool.c ntb_peer_port_number(outmw->tc->ntb, outmw->pidx), ntb 968 drivers/ntb/test/ntb_tool.c tc->outmw_cnt = ntb_peer_mw_count(tc->ntb); ntb 969 drivers/ntb/test/ntb_tool.c tc->outmws = devm_kcalloc(&tc->ntb->dev, tc->outmw_cnt, ntb 982 drivers/ntb/test/ntb_tool.c tc->peers[pidx].inmw_cnt = ntb_mw_count(tc->ntb, pidx); ntb 984 drivers/ntb/test/ntb_tool.c devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].inmw_cnt, ntb 995 drivers/ntb/test/ntb_tool.c tc->peers[pidx].outmw_cnt = ntb_peer_mw_count(tc->ntb); ntb 997 drivers/ntb/test/ntb_tool.c devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].outmw_cnt, ntb 1033 drivers/ntb/test/ntb_tool.c return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_read); ntb 1041 drivers/ntb/test/ntb_tool.c return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->db_set, ntb 1042 drivers/ntb/test/ntb_tool.c tc->ntb->ops->db_clear); ntb 1054 drivers/ntb/test/ntb_tool.c return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_valid_mask); ntb 1066 drivers/ntb/test/ntb_tool.c return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_read_mask); ntb 1074 drivers/ntb/test/ntb_tool.c return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->db_set_mask, ntb 1075 drivers/ntb/test/ntb_tool.c tc->ntb->ops->db_clear_mask); ntb 1087 drivers/ntb/test/ntb_tool.c return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->peer_db_read); ntb 1095 drivers/ntb/test/ntb_tool.c return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->peer_db_set, ntb 1096 drivers/ntb/test/ntb_tool.c tc->ntb->ops->peer_db_clear); ntb 1109 drivers/ntb/test/ntb_tool.c tc->ntb->ops->peer_db_read_mask); ntb 1119 drivers/ntb/test/ntb_tool.c tc->ntb->ops->peer_db_set_mask, ntb 1120 drivers/ntb/test/ntb_tool.c tc->ntb->ops->peer_db_clear_mask); ntb 1139 drivers/ntb/test/ntb_tool.c if (wait_event_interruptible(tc->db_wq, ntb_db_read(tc->ntb) == val)) ntb 1161 drivers/ntb/test/ntb_tool.c if (!spad->tc->ntb->ops->spad_read) ntb 1165 drivers/ntb/test/ntb_tool.c ntb_spad_read(spad->tc->ntb, spad->sidx)); ntb 1177 drivers/ntb/test/ntb_tool.c if (!spad->tc->ntb->ops->spad_write) { ntb 1178 drivers/ntb/test/ntb_tool.c dev_dbg(&spad->tc->ntb->dev, "no spad write fn\n"); ntb 1186 drivers/ntb/test/ntb_tool.c ret = ntb_spad_write(spad->tc->ntb, spad->sidx, val); ntb 1202 drivers/ntb/test/ntb_tool.c if (!spad->tc->ntb->ops->peer_spad_read) ntb 1206 drivers/ntb/test/ntb_tool.c ntb_peer_spad_read(spad->tc->ntb, spad->pidx, spad->sidx)); ntb 1218 drivers/ntb/test/ntb_tool.c if (!spad->tc->ntb->ops->peer_spad_write) { ntb 1219 drivers/ntb/test/ntb_tool.c dev_dbg(&spad->tc->ntb->dev, "no spad write fn\n"); ntb 1227 drivers/ntb/test/ntb_tool.c ret = ntb_peer_spad_write(spad->tc->ntb, spad->pidx, spad->sidx, val); ntb 1241 drivers/ntb/test/ntb_tool.c tc->inspad_cnt = ntb_spad_count(tc->ntb); ntb 1242 drivers/ntb/test/ntb_tool.c tc->inspads = devm_kcalloc(&tc->ntb->dev, tc->inspad_cnt, ntb 1255 drivers/ntb/test/ntb_tool.c tc->peers[pidx].outspad_cnt = ntb_spad_count(tc->ntb); ntb 1257 drivers/ntb/test/ntb_tool.c devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].outspad_cnt, ntb 1286 drivers/ntb/test/ntb_tool.c data = ntb_msg_read(msg->tc->ntb, &pidx, msg->midx); ntb 1309 drivers/ntb/test/ntb_tool.c ret = ntb_peer_msg_write(msg->tc->ntb, msg->pidx, msg->midx, val); ntb 1323 drivers/ntb/test/ntb_tool.c return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_read_sts); ntb 1332 drivers/ntb/test/ntb_tool.c tc->ntb->ops->msg_clear_sts); ntb 1344 drivers/ntb/test/ntb_tool.c return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_inbits); ntb 1356 drivers/ntb/test/ntb_tool.c return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_outbits); ntb 1369 drivers/ntb/test/ntb_tool.c tc->ntb->ops->msg_set_mask, ntb 1370 drivers/ntb/test/ntb_tool.c tc->ntb->ops->msg_clear_mask); ntb 1390 drivers/ntb/test/ntb_tool.c ntb_msg_read_sts(tc->ntb) == val)) ntb 1405 drivers/ntb/test/ntb_tool.c tc->inmsg_cnt = ntb_msg_count(tc->ntb); ntb 1406 drivers/ntb/test/ntb_tool.c tc->inmsgs = devm_kcalloc(&tc->ntb->dev, tc->inmsg_cnt, ntb 1419 drivers/ntb/test/ntb_tool.c tc->peers[pidx].outmsg_cnt = ntb_msg_count(tc->ntb); ntb 1421 drivers/ntb/test/ntb_tool.c devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].outmsg_cnt, ntb 1441 drivers/ntb/test/ntb_tool.c static struct tool_ctx *tool_create_data(struct ntb_dev *ntb) ntb 1445 drivers/ntb/test/ntb_tool.c tc = devm_kzalloc(&ntb->dev, sizeof(*tc), GFP_KERNEL); ntb 1449 drivers/ntb/test/ntb_tool.c tc->ntb = ntb; ntb 1454 drivers/ntb/test/ntb_tool.c if (ntb_db_is_unsafe(ntb)) ntb 1455 drivers/ntb/test/ntb_tool.c dev_dbg(&ntb->dev, "doorbell is unsafe\n"); ntb 1457 drivers/ntb/test/ntb_tool.c if (ntb_spad_is_unsafe(ntb)) ntb 1458 drivers/ntb/test/ntb_tool.c dev_dbg(&ntb->dev, "scratchpad is unsafe\n"); ntb 1472 drivers/ntb/test/ntb_tool.c return ntb_set_ctx(tc->ntb, tc, &tool_ops); ntb 1477 drivers/ntb/test/ntb_tool.c ntb_clear_ctx(tc->ntb); ntb 1478 drivers/ntb/test/ntb_tool.c ntb_link_disable(tc->ntb); ntb 1492 drivers/ntb/test/ntb_tool.c tc->dbgfs_dir = debugfs_create_dir(dev_name(&tc->ntb->dev), ntb 1610 drivers/ntb/test/ntb_tool.c static int tool_probe(struct ntb_client *self, struct ntb_dev *ntb) ntb 1615 drivers/ntb/test/ntb_tool.c tc = tool_create_data(ntb); ntb 1652 drivers/ntb/test/ntb_tool.c static void tool_remove(struct ntb_client *self, struct ntb_dev *ntb) ntb 1654 drivers/ntb/test/ntb_tool.c struct tool_ctx *tc = ntb->ctx; ntb 144 include/linux/genl_magic_func.h struct nlattr **ntb = nested_attr_tb; \ ntb 151 include/linux/genl_magic_func.h err = drbd_nla_parse_nested(ntb, maxtype, tla, s_name ## _nl_policy); \ ntb 170 include/linux/genl_magic_func.h nla = ntb[attr_nr]; \ ntb 174 include/linux/ntb.h int (*probe)(struct ntb_client *client, struct ntb_dev *ntb); ntb 175 include/linux/ntb.h void (*remove)(struct ntb_client *client, struct ntb_dev *ntb); ntb 261 include/linux/ntb.h int (*port_number)(struct ntb_dev *ntb); ntb 262 include/linux/ntb.h int (*peer_port_count)(struct ntb_dev *ntb); ntb 263 include/linux/ntb.h int (*peer_port_number)(struct ntb_dev *ntb, int pidx); ntb 264 include/linux/ntb.h int (*peer_port_idx)(struct ntb_dev *ntb, int port); ntb 266 include/linux/ntb.h u64 (*link_is_up)(struct ntb_dev *ntb, ntb 268 include/linux/ntb.h int (*link_enable)(struct ntb_dev *ntb, ntb 270 include/linux/ntb.h int (*link_disable)(struct ntb_dev *ntb); ntb 272 include/linux/ntb.h int (*mw_count)(struct ntb_dev *ntb, int pidx); ntb 273 include/linux/ntb.h int (*mw_get_align)(struct ntb_dev *ntb, int pidx, int widx, ntb 277 include/linux/ntb.h int (*mw_set_trans)(struct ntb_dev *ntb, int pidx, int widx, ntb 279 include/linux/ntb.h int (*mw_clear_trans)(struct ntb_dev *ntb, int pidx, int widx); ntb 280 include/linux/ntb.h int (*peer_mw_count)(struct ntb_dev *ntb); ntb 281 include/linux/ntb.h int (*peer_mw_get_addr)(struct ntb_dev *ntb, int widx, ntb 283 include/linux/ntb.h int (*peer_mw_set_trans)(struct ntb_dev *ntb, int pidx, int widx, ntb 285 include/linux/ntb.h int (*peer_mw_clear_trans)(struct ntb_dev *ntb, int pidx, int widx); ntb 287 include/linux/ntb.h int (*db_is_unsafe)(struct ntb_dev *ntb); ntb 288 include/linux/ntb.h u64 (*db_valid_mask)(struct ntb_dev *ntb); ntb 289 include/linux/ntb.h int (*db_vector_count)(struct ntb_dev *ntb); ntb 290 include/linux/ntb.h u64 (*db_vector_mask)(struct ntb_dev *ntb, int db_vector); ntb 292 include/linux/ntb.h u64 (*db_read)(struct ntb_dev *ntb); ntb 293 include/linux/ntb.h int (*db_set)(struct ntb_dev *ntb, u64 db_bits); ntb 294 include/linux/ntb.h int (*db_clear)(struct ntb_dev *ntb, u64 db_bits); ntb 296 include/linux/ntb.h u64 (*db_read_mask)(struct ntb_dev *ntb); ntb 297 include/linux/ntb.h int (*db_set_mask)(struct ntb_dev *ntb, u64 db_bits); ntb 298 include/linux/ntb.h int (*db_clear_mask)(struct ntb_dev *ntb, u64 db_bits); ntb 300 include/linux/ntb.h int (*peer_db_addr)(struct ntb_dev *ntb, ntb 303 include/linux/ntb.h u64 (*peer_db_read)(struct ntb_dev *ntb); ntb 304 include/linux/ntb.h int (*peer_db_set)(struct ntb_dev *ntb, u64 db_bits); ntb 305 include/linux/ntb.h int (*peer_db_clear)(struct ntb_dev *ntb, u64 db_bits); ntb 307 include/linux/ntb.h u64 (*peer_db_read_mask)(struct ntb_dev *ntb); ntb 308 include/linux/ntb.h int (*peer_db_set_mask)(struct ntb_dev *ntb, u64 db_bits); ntb 309 include/linux/ntb.h int (*peer_db_clear_mask)(struct ntb_dev *ntb, u64 db_bits); ntb 311 include/linux/ntb.h int (*spad_is_unsafe)(struct ntb_dev *ntb); ntb 312 include/linux/ntb.h int (*spad_count)(struct ntb_dev *ntb); ntb 314 include/linux/ntb.h u32 (*spad_read)(struct ntb_dev *ntb, int sidx); ntb 315 include/linux/ntb.h int (*spad_write)(struct ntb_dev *ntb, int sidx, u32 val); ntb 317 include/linux/ntb.h int (*peer_spad_addr)(struct ntb_dev *ntb, int pidx, int sidx, ntb 319 include/linux/ntb.h u32 (*peer_spad_read)(struct ntb_dev *ntb, int pidx, int sidx); ntb 320 include/linux/ntb.h int (*peer_spad_write)(struct ntb_dev *ntb, int pidx, int sidx, ntb 323 include/linux/ntb.h int (*msg_count)(struct ntb_dev *ntb); ntb 324 include/linux/ntb.h u64 (*msg_inbits)(struct ntb_dev *ntb); ntb 325 include/linux/ntb.h u64 (*msg_outbits)(struct ntb_dev *ntb); ntb 326 include/linux/ntb.h u64 (*msg_read_sts)(struct ntb_dev *ntb); ntb 327 include/linux/ntb.h int (*msg_clear_sts)(struct ntb_dev *ntb, u64 sts_bits); ntb 328 include/linux/ntb.h int (*msg_set_mask)(struct ntb_dev *ntb, u64 mask_bits); ntb 329 include/linux/ntb.h int (*msg_clear_mask)(struct ntb_dev *ntb, u64 mask_bits); ntb 330 include/linux/ntb.h u32 (*msg_read)(struct ntb_dev *ntb, int *pidx, int midx); ntb 331 include/linux/ntb.h int (*peer_msg_write)(struct ntb_dev *ntb, int pidx, int midx, u32 msg); ntb 478 include/linux/ntb.h int ntb_register_device(struct ntb_dev *ntb); ntb 488 include/linux/ntb.h void ntb_unregister_device(struct ntb_dev *ntb); ntb 502 include/linux/ntb.h int ntb_set_ctx(struct ntb_dev *ntb, void *ctx, ntb 512 include/linux/ntb.h void ntb_clear_ctx(struct ntb_dev *ntb); ntb 521 include/linux/ntb.h void ntb_link_event(struct ntb_dev *ntb); ntb 536 include/linux/ntb.h void ntb_db_event(struct ntb_dev *ntb, int vector); ntb 548 include/linux/ntb.h void ntb_msg_event(struct ntb_dev *ntb); ntb 563 include/linux/ntb.h int ntb_default_port_number(struct ntb_dev *ntb); ntb 576 include/linux/ntb.h int ntb_default_peer_port_count(struct ntb_dev *ntb); ntb 591 include/linux/ntb.h int ntb_default_peer_port_number(struct ntb_dev *ntb, int pidx); ntb 608 include/linux/ntb.h int ntb_default_peer_port_idx(struct ntb_dev *ntb, int port); ntb 618 include/linux/ntb.h static inline int ntb_port_number(struct ntb_dev *ntb) ntb 620 include/linux/ntb.h if (!ntb->ops->port_number) ntb 621 include/linux/ntb.h return ntb_default_port_number(ntb); ntb 623 include/linux/ntb.h return ntb->ops->port_number(ntb); ntb 635 include/linux/ntb.h static inline int ntb_peer_port_count(struct ntb_dev *ntb) ntb 637 include/linux/ntb.h if (!ntb->ops->peer_port_count) ntb 638 include/linux/ntb.h return ntb_default_peer_port_count(ntb); ntb 640 include/linux/ntb.h return ntb->ops->peer_port_count(ntb); ntb 653 include/linux/ntb.h static inline int ntb_peer_port_number(struct ntb_dev *ntb, int pidx) ntb 655 include/linux/ntb.h if (!ntb->ops->peer_port_number) ntb 656 include/linux/ntb.h return ntb_default_peer_port_number(ntb, pidx); ntb 658 include/linux/ntb.h return ntb->ops->peer_port_number(ntb, pidx); ntb 675 include/linux/ntb.h static inline int ntb_logical_port_number(struct ntb_dev *ntb) ntb 677 include/linux/ntb.h int lport = ntb_port_number(ntb); ntb 683 include/linux/ntb.h for (pidx = 0; pidx < ntb_peer_port_count(ntb); pidx++) ntb 684 include/linux/ntb.h if (lport <= ntb_peer_port_number(ntb, pidx)) ntb 705 include/linux/ntb.h static inline int ntb_peer_logical_port_number(struct ntb_dev *ntb, int pidx) ntb 707 include/linux/ntb.h if (ntb_peer_port_number(ntb, pidx) < ntb_port_number(ntb)) ntb 723 include/linux/ntb.h static inline int ntb_peer_port_idx(struct ntb_dev *ntb, int port) ntb 725 include/linux/ntb.h if (!ntb->ops->peer_port_idx) ntb 726 include/linux/ntb.h return ntb_default_peer_port_idx(ntb, port); ntb 728 include/linux/ntb.h return ntb->ops->peer_port_idx(ntb, port); ntb 744 include/linux/ntb.h static inline u64 ntb_link_is_up(struct ntb_dev *ntb, ntb 747 include/linux/ntb.h return ntb->ops->link_is_up(ntb, speed, width); ntb 764 include/linux/ntb.h static inline int ntb_link_enable(struct ntb_dev *ntb, ntb 768 include/linux/ntb.h return ntb->ops->link_enable(ntb, max_speed, max_width); ntb 783 include/linux/ntb.h static inline int ntb_link_disable(struct ntb_dev *ntb) ntb 785 include/linux/ntb.h return ntb->ops->link_disable(ntb); ntb 802 include/linux/ntb.h static inline int ntb_mw_count(struct ntb_dev *ntb, int pidx) ntb 804 include/linux/ntb.h return ntb->ops->mw_count(ntb, pidx); ntb 823 include/linux/ntb.h static inline int ntb_mw_get_align(struct ntb_dev *ntb, int pidx, int widx, ntb 828 include/linux/ntb.h if (!(ntb_link_is_up(ntb, NULL, NULL) & BIT_ULL(pidx))) ntb 831 include/linux/ntb.h return ntb->ops->mw_get_align(ntb, pidx, widx, addr_align, size_align, ntb 854 include/linux/ntb.h static inline int ntb_mw_set_trans(struct ntb_dev *ntb, int pidx, int widx, ntb 857 include/linux/ntb.h if (!ntb->ops->mw_set_trans) ntb 860 include/linux/ntb.h return ntb->ops->mw_set_trans(ntb, pidx, widx, addr, size); ntb 875 include/linux/ntb.h static inline int ntb_mw_clear_trans(struct ntb_dev *ntb, int pidx, int widx) ntb 877 include/linux/ntb.h if (!ntb->ops->mw_clear_trans) ntb 878 include/linux/ntb.h return ntb_mw_set_trans(ntb, pidx, widx, 0, 0); ntb 880 include/linux/ntb.h return ntb->ops->mw_clear_trans(ntb, pidx, widx); ntb 894 include/linux/ntb.h static inline int ntb_peer_mw_count(struct ntb_dev *ntb) ntb 896 include/linux/ntb.h return ntb->ops->peer_mw_count(ntb); ntb 912 include/linux/ntb.h static inline int ntb_peer_mw_get_addr(struct ntb_dev *ntb, int widx, ntb 915 include/linux/ntb.h return ntb->ops->peer_mw_get_addr(ntb, widx, base, size); ntb 936 include/linux/ntb.h static inline int ntb_peer_mw_set_trans(struct ntb_dev *ntb, int pidx, int widx, ntb 939 include/linux/ntb.h if (!ntb->ops->peer_mw_set_trans) ntb 942 include/linux/ntb.h return ntb->ops->peer_mw_set_trans(ntb, pidx, widx, addr, size); ntb 960 include/linux/ntb.h static inline int ntb_peer_mw_clear_trans(struct ntb_dev *ntb, int pidx, ntb 963 include/linux/ntb.h if (!ntb->ops->peer_mw_clear_trans) ntb 964 include/linux/ntb.h return ntb_peer_mw_set_trans(ntb, pidx, widx, 0, 0); ntb 966 include/linux/ntb.h return ntb->ops->peer_mw_clear_trans(ntb, pidx, widx); ntb 979 include/linux/ntb.h static inline int ntb_db_is_unsafe(struct ntb_dev *ntb) ntb 981 include/linux/ntb.h if (!ntb->ops->db_is_unsafe) ntb 984 include/linux/ntb.h return ntb->ops->db_is_unsafe(ntb); ntb 995 include/linux/ntb.h static inline u64 ntb_db_valid_mask(struct ntb_dev *ntb) ntb 997 include/linux/ntb.h return ntb->ops->db_valid_mask(ntb); ntb 1008 include/linux/ntb.h static inline int ntb_db_vector_count(struct ntb_dev *ntb) ntb 1010 include/linux/ntb.h if (!ntb->ops->db_vector_count) ntb 1013 include/linux/ntb.h return ntb->ops->db_vector_count(ntb); ntb 1025 include/linux/ntb.h static inline u64 ntb_db_vector_mask(struct ntb_dev *ntb, int vector) ntb 1027 include/linux/ntb.h if (!ntb->ops->db_vector_mask) ntb 1028 include/linux/ntb.h return ntb_db_valid_mask(ntb); ntb 1030 include/linux/ntb.h return ntb->ops->db_vector_mask(ntb, vector); ntb 1041 include/linux/ntb.h static inline u64 ntb_db_read(struct ntb_dev *ntb) ntb 1043 include/linux/ntb.h return ntb->ops->db_read(ntb); ntb 1058 include/linux/ntb.h static inline int ntb_db_set(struct ntb_dev *ntb, u64 db_bits) ntb 1060 include/linux/ntb.h if (!ntb->ops->db_set) ntb 1063 include/linux/ntb.h return ntb->ops->db_set(ntb, db_bits); ntb 1076 include/linux/ntb.h static inline int ntb_db_clear(struct ntb_dev *ntb, u64 db_bits) ntb 1078 include/linux/ntb.h return ntb->ops->db_clear(ntb, db_bits); ntb 1091 include/linux/ntb.h static inline u64 ntb_db_read_mask(struct ntb_dev *ntb) ntb 1093 include/linux/ntb.h if (!ntb->ops->db_read_mask) ntb 1096 include/linux/ntb.h return ntb->ops->db_read_mask(ntb); ntb 1110 include/linux/ntb.h static inline int ntb_db_set_mask(struct ntb_dev *ntb, u64 db_bits) ntb 1112 include/linux/ntb.h return ntb->ops->db_set_mask(ntb, db_bits); ntb 1129 include/linux/ntb.h static inline int ntb_db_clear_mask(struct ntb_dev *ntb, u64 db_bits) ntb 1131 include/linux/ntb.h return ntb->ops->db_clear_mask(ntb, db_bits); ntb 1152 include/linux/ntb.h static inline int ntb_peer_db_addr(struct ntb_dev *ntb, ntb 1157 include/linux/ntb.h if (!ntb->ops->peer_db_addr) ntb 1160 include/linux/ntb.h return ntb->ops->peer_db_addr(ntb, db_addr, db_size, db_data, db_bit); ntb 1173 include/linux/ntb.h static inline u64 ntb_peer_db_read(struct ntb_dev *ntb) ntb 1175 include/linux/ntb.h if (!ntb->ops->peer_db_read) ntb 1178 include/linux/ntb.h return ntb->ops->peer_db_read(ntb); ntb 1191 include/linux/ntb.h static inline int ntb_peer_db_set(struct ntb_dev *ntb, u64 db_bits) ntb 1193 include/linux/ntb.h return ntb->ops->peer_db_set(ntb, db_bits); ntb 1208 include/linux/ntb.h static inline int ntb_peer_db_clear(struct ntb_dev *ntb, u64 db_bits) ntb 1210 include/linux/ntb.h if (!ntb->ops->db_clear) ntb 1213 include/linux/ntb.h return ntb->ops->peer_db_clear(ntb, db_bits); ntb 1226 include/linux/ntb.h static inline u64 ntb_peer_db_read_mask(struct ntb_dev *ntb) ntb 1228 include/linux/ntb.h if (!ntb->ops->db_read_mask) ntb 1231 include/linux/ntb.h return ntb->ops->peer_db_read_mask(ntb); ntb 1247 include/linux/ntb.h static inline int ntb_peer_db_set_mask(struct ntb_dev *ntb, u64 db_bits) ntb 1249 include/linux/ntb.h if (!ntb->ops->db_set_mask) ntb 1252 include/linux/ntb.h return ntb->ops->peer_db_set_mask(ntb, db_bits); ntb 1269 include/linux/ntb.h static inline int ntb_peer_db_clear_mask(struct ntb_dev *ntb, u64 db_bits) ntb 1271 include/linux/ntb.h if (!ntb->ops->db_clear_mask) ntb 1274 include/linux/ntb.h return ntb->ops->peer_db_clear_mask(ntb, db_bits); ntb 1287 include/linux/ntb.h static inline int ntb_spad_is_unsafe(struct ntb_dev *ntb) ntb 1289 include/linux/ntb.h if (!ntb->ops->spad_is_unsafe) ntb 1292 include/linux/ntb.h return ntb->ops->spad_is_unsafe(ntb); ntb 1304 include/linux/ntb.h static inline int ntb_spad_count(struct ntb_dev *ntb) ntb 1306 include/linux/ntb.h if (!ntb->ops->spad_count) ntb 1309 include/linux/ntb.h return ntb->ops->spad_count(ntb); ntb 1321 include/linux/ntb.h static inline u32 ntb_spad_read(struct ntb_dev *ntb, int sidx) ntb 1323 include/linux/ntb.h if (!ntb->ops->spad_read) ntb 1326 include/linux/ntb.h return ntb->ops->spad_read(ntb, sidx); ntb 1339 include/linux/ntb.h static inline int ntb_spad_write(struct ntb_dev *ntb, int sidx, u32 val) ntb 1341 include/linux/ntb.h if (!ntb->ops->spad_write) ntb 1344 include/linux/ntb.h return ntb->ops->spad_write(ntb, sidx, val); ntb 1359 include/linux/ntb.h static inline int ntb_peer_spad_addr(struct ntb_dev *ntb, int pidx, int sidx, ntb 1362 include/linux/ntb.h if (!ntb->ops->peer_spad_addr) ntb 1365 include/linux/ntb.h return ntb->ops->peer_spad_addr(ntb, pidx, sidx, spad_addr); ntb 1378 include/linux/ntb.h static inline u32 ntb_peer_spad_read(struct ntb_dev *ntb, int pidx, int sidx) ntb 1380 include/linux/ntb.h if (!ntb->ops->peer_spad_read) ntb 1383 include/linux/ntb.h return ntb->ops->peer_spad_read(ntb, pidx, sidx); ntb 1397 include/linux/ntb.h static inline int ntb_peer_spad_write(struct ntb_dev *ntb, int pidx, int sidx, ntb 1400 include/linux/ntb.h if (!ntb->ops->peer_spad_write) ntb 1403 include/linux/ntb.h return ntb->ops->peer_spad_write(ntb, pidx, sidx, val); ntb 1414 include/linux/ntb.h static inline int ntb_msg_count(struct ntb_dev *ntb) ntb 1416 include/linux/ntb.h if (!ntb->ops->msg_count) ntb 1419 include/linux/ntb.h return ntb->ops->msg_count(ntb); ntb 1431 include/linux/ntb.h static inline u64 ntb_msg_inbits(struct ntb_dev *ntb) ntb 1433 include/linux/ntb.h if (!ntb->ops->msg_inbits) ntb 1436 include/linux/ntb.h return ntb->ops->msg_inbits(ntb); ntb 1448 include/linux/ntb.h static inline u64 ntb_msg_outbits(struct ntb_dev *ntb) ntb 1450 include/linux/ntb.h if (!ntb->ops->msg_outbits) ntb 1453 include/linux/ntb.h return ntb->ops->msg_outbits(ntb); ntb 1466 include/linux/ntb.h static inline u64 ntb_msg_read_sts(struct ntb_dev *ntb) ntb 1468 include/linux/ntb.h if (!ntb->ops->msg_read_sts) ntb 1471 include/linux/ntb.h return ntb->ops->msg_read_sts(ntb); ntb 1483 include/linux/ntb.h static inline int ntb_msg_clear_sts(struct ntb_dev *ntb, u64 sts_bits) ntb 1485 include/linux/ntb.h if (!ntb->ops->msg_clear_sts) ntb 1488 include/linux/ntb.h return ntb->ops->msg_clear_sts(ntb, sts_bits); ntb 1500 include/linux/ntb.h static inline int ntb_msg_set_mask(struct ntb_dev *ntb, u64 mask_bits) ntb 1502 include/linux/ntb.h if (!ntb->ops->msg_set_mask) ntb 1505 include/linux/ntb.h return ntb->ops->msg_set_mask(ntb, mask_bits); ntb 1517 include/linux/ntb.h static inline int ntb_msg_clear_mask(struct ntb_dev *ntb, u64 mask_bits) ntb 1519 include/linux/ntb.h if (!ntb->ops->msg_clear_mask) ntb 1522 include/linux/ntb.h return ntb->ops->msg_clear_mask(ntb, mask_bits); ntb 1536 include/linux/ntb.h static inline u32 ntb_msg_read(struct ntb_dev *ntb, int *pidx, int midx) ntb 1538 include/linux/ntb.h if (!ntb->ops->msg_read) ntb 1541 include/linux/ntb.h return ntb->ops->msg_read(ntb, pidx, midx); ntb 1557 include/linux/ntb.h static inline int ntb_peer_msg_write(struct ntb_dev *ntb, int pidx, int midx, ntb 1560 include/linux/ntb.h if (!ntb->ops->peer_msg_write) ntb 1563 include/linux/ntb.h return ntb->ops->peer_msg_write(ntb, pidx, midx, msg); ntb 1597 include/linux/ntb.h static inline int ntb_peer_resource_idx(struct ntb_dev *ntb, int pidx) ntb 1601 include/linux/ntb.h if (pidx >= ntb_peer_port_count(ntb)) ntb 1604 include/linux/ntb.h local_port = ntb_logical_port_number(ntb); ntb 1605 include/linux/ntb.h peer_port = ntb_peer_logical_port_number(ntb, pidx); ntb 1625 include/linux/ntb.h static inline int ntb_peer_highest_mw_idx(struct ntb_dev *ntb, int pidx) ntb 1629 include/linux/ntb.h ret = ntb_peer_resource_idx(ntb, pidx); ntb 1633 include/linux/ntb.h return ntb_mw_count(ntb, pidx) - ret - 1; ntb 1643 include/linux/ntb.h int ntb_msi_init(struct ntb_dev *ntb, void (*desc_changed)(void *ctx)); ntb 1644 include/linux/ntb.h int ntb_msi_setup_mws(struct ntb_dev *ntb); ntb 1645 include/linux/ntb.h void ntb_msi_clear_mws(struct ntb_dev *ntb); ntb 1646 include/linux/ntb.h int ntbm_msi_request_threaded_irq(struct ntb_dev *ntb, irq_handler_t handler, ntb 1650 include/linux/ntb.h void ntbm_msi_free_irq(struct ntb_dev *ntb, unsigned int irq, void *dev_id); ntb 1651 include/linux/ntb.h int ntb_msi_peer_trigger(struct ntb_dev *ntb, int peer, ntb 1653 include/linux/ntb.h int ntb_msi_peer_addr(struct ntb_dev *ntb, int peer, ntb 1659 include/linux/ntb.h static inline int ntb_msi_init(struct ntb_dev *ntb, ntb 1664 include/linux/ntb.h static inline int ntb_msi_setup_mws(struct ntb_dev *ntb) ntb 1668 include/linux/ntb.h static inline void ntb_msi_clear_mws(struct ntb_dev *ntb) {} ntb 1669 include/linux/ntb.h static inline int ntbm_msi_request_threaded_irq(struct ntb_dev *ntb, ntb 1677 include/linux/ntb.h static inline void ntbm_msi_free_irq(struct ntb_dev *ntb, unsigned int irq, ntb 1679 include/linux/ntb.h static inline int ntb_msi_peer_trigger(struct ntb_dev *ntb, int peer, ntb 1684 include/linux/ntb.h static inline int ntb_msi_peer_addr(struct ntb_dev *ntb, int peer, ntb 1694 include/linux/ntb.h static inline int ntbm_msi_request_irq(struct ntb_dev *ntb, ntb 1699 include/linux/ntb.h return ntbm_msi_request_threaded_irq(ntb, handler, NULL, name,