/linux-4.4.14/include/linux/ |
H A D | ntb.h | 67 * @NTB_TOPO_PRI: On primary side of local ntb. 68 * @NTB_TOPO_SEC: On secondary side of remote ntb. 69 * @NTB_TOPO_B2B_USD: On primary side of local ntb upstream of remote ntb. 70 * @NTB_TOPO_B2B_DSD: On primary side of local ntb downstream of remote ntb. 143 * struct ntb_client_ops - ntb client operations 148 int (*probe)(struct ntb_client *client, struct ntb_dev *ntb); 149 void (*remove)(struct ntb_client *client, struct ntb_dev *ntb); 162 * struct ntb_ctx_ops - ntb driver context operations 181 * struct ntb_ctx_ops - ntb device operations 215 int (*mw_count)(struct ntb_dev *ntb); 216 int (*mw_get_range)(struct ntb_dev *ntb, int idx, 219 int (*mw_set_trans)(struct ntb_dev *ntb, int idx, 221 int (*mw_clear_trans)(struct ntb_dev *ntb, int idx); 223 int (*link_is_up)(struct ntb_dev *ntb, 225 int (*link_enable)(struct ntb_dev *ntb, 227 int (*link_disable)(struct ntb_dev *ntb); 229 int (*db_is_unsafe)(struct ntb_dev *ntb); 230 u64 (*db_valid_mask)(struct ntb_dev *ntb); 231 int (*db_vector_count)(struct ntb_dev *ntb); 232 u64 (*db_vector_mask)(struct ntb_dev *ntb, int db_vector); 234 u64 (*db_read)(struct ntb_dev *ntb); 235 int (*db_set)(struct ntb_dev *ntb, u64 db_bits); 236 int (*db_clear)(struct ntb_dev *ntb, u64 db_bits); 238 u64 (*db_read_mask)(struct ntb_dev *ntb); 239 int (*db_set_mask)(struct ntb_dev *ntb, u64 db_bits); 240 int (*db_clear_mask)(struct ntb_dev *ntb, u64 db_bits); 242 int (*peer_db_addr)(struct ntb_dev *ntb, 244 u64 (*peer_db_read)(struct ntb_dev *ntb); 245 int (*peer_db_set)(struct ntb_dev *ntb, u64 db_bits); 246 int (*peer_db_clear)(struct ntb_dev *ntb, u64 db_bits); 248 u64 (*peer_db_read_mask)(struct ntb_dev *ntb); 249 int (*peer_db_set_mask)(struct ntb_dev *ntb, u64 db_bits); 250 int (*peer_db_clear_mask)(struct ntb_dev *ntb, u64 db_bits); 252 int (*spad_is_unsafe)(struct ntb_dev *ntb); 253 int (*spad_count)(struct ntb_dev *ntb); 255 u32 (*spad_read)(struct ntb_dev *ntb, int idx); 256 int (*spad_write)(struct ntb_dev *ntb, int idx, u32 val); 258 int (*peer_spad_addr)(struct ntb_dev *ntb, int idx, 260 u32 (*peer_spad_read)(struct ntb_dev *ntb, int idx); 261 int (*peer_spad_write)(struct ntb_dev *ntb, int idx, u32 val); 305 * struct ntb_client - client interested in ntb devices 317 * struct ntb_device - ntb device 319 * @pdev: Pci device entry of the ntb. 320 * @topo: Detected topology of the ntb. 344 * ntb_register_client() - register a client for interest in ntb devices 347 * The client will be added to the list of clients interested in ntb devices. 348 * The client will be notified of any ntb devices that are not already 349 * associated with a client, or if ntb devices are registered later. 360 * ntb_unregister_client() - unregister a client for interest in ntb devices 363 * The client will be removed from the list of clients interested in ntb 364 * devices. If any ntb devices are associated with the client, the client will 374 * ntb_register_device() - register a ntb device 375 * @ntb: NTB device context. 377 * The device will be added to the list of ntb devices. If any clients are 378 * interested in ntb devices, each client will be notified of the ntb device, 383 int ntb_register_device(struct ntb_dev *ntb); 386 * ntb_register_device() - unregister a ntb device 387 * @ntb: NTB device context. 389 * The device will be removed from the list of ntb devices. If the ntb device 393 void ntb_unregister_device(struct ntb_dev *ntb); 396 * ntb_set_ctx() - associate a driver context with an ntb device 397 * @ntb: NTB device context. 401 * Associate a driver context and operations with a ntb device. The context is 403 * context with each ntb device. 407 int ntb_set_ctx(struct ntb_dev *ntb, void *ctx, 411 * ntb_clear_ctx() - disassociate any driver context from an ntb device 412 * @ntb: NTB device context. 414 * Clear any association that may exist between a driver context and the ntb 417 void ntb_clear_ctx(struct ntb_dev *ntb); 421 * @ntb: NTB device context. 426 void ntb_link_event(struct ntb_dev *ntb); 430 * @ntb: NTB device context. 441 void ntb_db_event(struct ntb_dev *ntb, int vector); 445 * @ntb: NTB device context. 451 static inline int ntb_mw_count(struct ntb_dev *ntb) ntb_mw_count() argument 453 return ntb->ops->mw_count(ntb); ntb_mw_count() 458 * @ntb: NTB device context. 473 static inline int ntb_mw_get_range(struct ntb_dev *ntb, int idx, ntb_mw_get_range() argument 477 return ntb->ops->mw_get_range(ntb, idx, base, size, ntb_mw_get_range() 483 * @ntb: NTB device context. 495 static inline int ntb_mw_set_trans(struct ntb_dev *ntb, int idx, ntb_mw_set_trans() argument 498 return ntb->ops->mw_set_trans(ntb, idx, addr, size); ntb_mw_set_trans() 503 * @ntb: NTB device context. 511 static inline int ntb_mw_clear_trans(struct ntb_dev *ntb, int idx) ntb_mw_clear_trans() argument 513 if (!ntb->ops->mw_clear_trans) ntb_mw_clear_trans() 514 return ntb->ops->mw_set_trans(ntb, idx, 0, 0); ntb_mw_clear_trans() 516 return ntb->ops->mw_clear_trans(ntb, idx); ntb_mw_clear_trans() 520 * ntb_link_is_up() - get the current ntb link state 521 * @ntb: NTB device context. 525 * Get the current state of the ntb link. It is recommended to query the link 532 static inline int ntb_link_is_up(struct ntb_dev *ntb, ntb_link_is_up() argument 535 return ntb->ops->link_is_up(ntb, speed, width); ntb_link_is_up() 539 * ntb_link_enable() - enable the link on the secondary side of the ntb 540 * @ntb: NTB device context. 544 * Enable the link on the secondary side of the ntb. This can only be done 545 * from the primary side of the ntb in primary or b2b topology. The ntb device 551 static inline int ntb_link_enable(struct ntb_dev *ntb, ntb_link_enable() argument 555 return ntb->ops->link_enable(ntb, max_speed, max_width); ntb_link_enable() 559 * ntb_link_disable() - disable the link on the secondary side of the ntb 560 * @ntb: NTB device context. 562 * Disable the link on the secondary side of the ntb. This can only be 563 * done from the primary side of the ntb in primary or b2b topology. The ntb 570 static inline int ntb_link_disable(struct ntb_dev *ntb) ntb_link_disable() argument 572 return ntb->ops->link_disable(ntb); ntb_link_disable() 577 * @ntb: NTB device context. 579 * It is possible for some ntb hardware to be affected by errata. Hardware 585 static inline int ntb_db_is_unsafe(struct ntb_dev *ntb) ntb_db_is_unsafe() argument 587 if (!ntb->ops->db_is_unsafe) ntb_db_is_unsafe() 590 return ntb->ops->db_is_unsafe(ntb); ntb_db_is_unsafe() 594 * ntb_db_valid_mask() - get a mask of doorbell bits supported by the ntb 595 * @ntb: NTB device context. 599 * Return: A mask of doorbell bits supported by the ntb. 601 static inline u64 ntb_db_valid_mask(struct ntb_dev *ntb) ntb_db_valid_mask() argument 603 return ntb->ops->db_valid_mask(ntb); ntb_db_valid_mask() 608 * @ntb: NTB device context. 614 static inline int ntb_db_vector_count(struct ntb_dev *ntb) ntb_db_vector_count() argument 616 if (!ntb->ops->db_vector_count) ntb_db_vector_count() 619 return ntb->ops->db_vector_count(ntb); ntb_db_vector_count() 624 * @ntb: NTB device context. 631 static inline u64 ntb_db_vector_mask(struct ntb_dev *ntb, int vector) ntb_db_vector_mask() argument 633 if (!ntb->ops->db_vector_mask) ntb_db_vector_mask() 634 return ntb_db_valid_mask(ntb); ntb_db_vector_mask() 636 return ntb->ops->db_vector_mask(ntb, vector); ntb_db_vector_mask() 641 * @ntb: NTB device context. 647 static inline u64 ntb_db_read(struct ntb_dev *ntb) ntb_db_read() argument 649 return ntb->ops->db_read(ntb); ntb_db_read() 654 * @ntb: NTB device context. 664 static inline int ntb_db_set(struct ntb_dev *ntb, u64 db_bits) ntb_db_set() argument 666 if (!ntb->ops->db_set) ntb_db_set() 669 return ntb->ops->db_set(ntb, db_bits); ntb_db_set() 674 * @ntb: NTB device context. 682 static inline int ntb_db_clear(struct ntb_dev *ntb, u64 db_bits) ntb_db_clear() argument 684 return ntb->ops->db_clear(ntb, db_bits); ntb_db_clear() 689 * @ntb: NTB device context. 697 static inline u64 ntb_db_read_mask(struct ntb_dev *ntb) ntb_db_read_mask() argument 699 if (!ntb->ops->db_read_mask) ntb_db_read_mask() 702 return ntb->ops->db_read_mask(ntb); ntb_db_read_mask() 707 * @ntb: NTB device context. 716 static inline int ntb_db_set_mask(struct ntb_dev *ntb, u64 db_bits) ntb_db_set_mask() argument 718 return ntb->ops->db_set_mask(ntb, db_bits); ntb_db_set_mask() 723 * @ntb: NTB device context. 729 * changed from set to clear, then the ntb driver must ensure that 735 static inline int ntb_db_clear_mask(struct ntb_dev *ntb, u64 db_bits) ntb_db_clear_mask() argument 737 return ntb->ops->db_clear_mask(ntb, db_bits); ntb_db_clear_mask() 742 * @ntb: NTB device context. 756 static inline int ntb_peer_db_addr(struct ntb_dev *ntb, ntb_peer_db_addr() argument 760 return ntb->ops->peer_db_addr(ntb, db_addr, db_size); ntb_peer_db_addr() 765 * @ntb: NTB device context. 773 static inline u64 ntb_peer_db_read(struct ntb_dev *ntb) ntb_peer_db_read() argument 775 if (!ntb->ops->peer_db_read) ntb_peer_db_read() 778 return ntb->ops->peer_db_read(ntb); ntb_peer_db_read() 783 * @ntb: NTB device context. 791 static inline int ntb_peer_db_set(struct ntb_dev *ntb, u64 db_bits) ntb_peer_db_set() argument 793 return ntb->ops->peer_db_set(ntb, db_bits); ntb_peer_db_set() 798 * @ntb: NTB device context. 808 static inline int ntb_peer_db_clear(struct ntb_dev *ntb, u64 db_bits) ntb_peer_db_clear() argument 810 if (!ntb->ops->db_clear) ntb_peer_db_clear() 813 return ntb->ops->peer_db_clear(ntb, db_bits); ntb_peer_db_clear() 818 * @ntb: NTB device context. 826 static inline u64 ntb_peer_db_read_mask(struct ntb_dev *ntb) ntb_peer_db_read_mask() argument 828 if (!ntb->ops->db_read_mask) ntb_peer_db_read_mask() 831 return ntb->ops->peer_db_read_mask(ntb); ntb_peer_db_read_mask() 836 * @ntb: NTB device context. 847 static inline int ntb_peer_db_set_mask(struct ntb_dev *ntb, u64 db_bits) ntb_peer_db_set_mask() argument 849 if (!ntb->ops->db_set_mask) ntb_peer_db_set_mask() 852 return ntb->ops->peer_db_set_mask(ntb, db_bits); ntb_peer_db_set_mask() 857 * @ntb: NTB device context. 869 static inline int ntb_peer_db_clear_mask(struct ntb_dev *ntb, u64 db_bits) ntb_peer_db_clear_mask() argument 871 if (!ntb->ops->db_clear_mask) ntb_peer_db_clear_mask() 874 return ntb->ops->peer_db_clear_mask(ntb, db_bits); ntb_peer_db_clear_mask() 879 * @ntb: NTB device context. 881 * It is possible for some ntb hardware to be affected by errata. Hardware 887 static inline int ntb_spad_is_unsafe(struct ntb_dev *ntb) ntb_spad_is_unsafe() argument 889 if (!ntb->ops->spad_is_unsafe) ntb_spad_is_unsafe() 892 return ntb->ops->spad_is_unsafe(ntb); ntb_spad_is_unsafe() 897 * @ntb: NTB device context. 903 static inline int ntb_spad_count(struct ntb_dev *ntb) ntb_spad_count() argument 905 return ntb->ops->spad_count(ntb); ntb_spad_count() 910 * @ntb: NTB device context. 917 static inline u32 ntb_spad_read(struct ntb_dev *ntb, int idx) ntb_spad_read() argument 919 return ntb->ops->spad_read(ntb, idx); ntb_spad_read() 924 * @ntb: NTB device context. 932 static inline int ntb_spad_write(struct ntb_dev *ntb, int idx, u32 val) ntb_spad_write() argument 934 return ntb->ops->spad_write(ntb, idx, val); ntb_spad_write() 939 * @ntb: NTB device context. 948 static inline int ntb_peer_spad_addr(struct ntb_dev *ntb, int idx, ntb_peer_spad_addr() argument 951 return ntb->ops->peer_spad_addr(ntb, idx, spad_addr); ntb_peer_spad_addr() 956 * @ntb: NTB device context. 963 static inline u32 ntb_peer_spad_read(struct ntb_dev *ntb, int idx) ntb_peer_spad_read() argument 965 return ntb->ops->peer_spad_read(ntb, idx); ntb_peer_spad_read() 970 * @ntb: NTB device context. 978 static inline int ntb_peer_spad_write(struct ntb_dev *ntb, int idx, u32 val) ntb_peer_spad_write() argument 980 return ntb->ops->peer_spad_write(ntb, idx, val); ntb_peer_spad_write()
|
H A D | genl_magic_func.h | 153 struct nlattr **ntb = nested_attr_tb; \ 160 err = drbd_nla_parse_nested(ntb, maxtype, tla, s_name ## _nl_policy); \ 179 nla = ntb[attr_nr]; \
|
/linux-4.4.14/drivers/ntb/ |
H A D | ntb.c | 58 #include <linux/ntb.h> 61 #define DRIVER_NAME "ntb" 100 int ntb_register_device(struct ntb_dev *ntb) ntb_register_device() argument 102 if (!ntb) ntb_register_device() 104 if (!ntb->pdev) ntb_register_device() 106 if (!ntb->ops) ntb_register_device() 108 if (!ntb_dev_ops_is_valid(ntb->ops)) ntb_register_device() 111 init_completion(&ntb->released); ntb_register_device() 113 memset(&ntb->dev, 0, sizeof(ntb->dev)); ntb_register_device() 114 ntb->dev.bus = &ntb_bus; ntb_register_device() 115 ntb->dev.parent = &ntb->pdev->dev; ntb_register_device() 116 ntb->dev.release = ntb_dev_release; ntb_register_device() 117 dev_set_name(&ntb->dev, "%s", pci_name(ntb->pdev)); ntb_register_device() 119 ntb->ctx = NULL; ntb_register_device() 120 ntb->ctx_ops = NULL; ntb_register_device() 121 spin_lock_init(&ntb->ctx_lock); ntb_register_device() 123 return device_register(&ntb->dev); ntb_register_device() 127 void ntb_unregister_device(struct ntb_dev *ntb) ntb_unregister_device() argument 129 device_unregister(&ntb->dev); ntb_unregister_device() 130 wait_for_completion(&ntb->released); ntb_unregister_device() 134 int ntb_set_ctx(struct ntb_dev *ntb, void *ctx, ntb_set_ctx() argument 141 if (ntb->ctx_ops) ntb_set_ctx() 144 spin_lock_irqsave(&ntb->ctx_lock, irqflags); ntb_set_ctx() 146 ntb->ctx = ctx; ntb_set_ctx() 147 ntb->ctx_ops = ctx_ops; ntb_set_ctx() 149 spin_unlock_irqrestore(&ntb->ctx_lock, irqflags); ntb_set_ctx() 155 void ntb_clear_ctx(struct ntb_dev *ntb) ntb_clear_ctx() argument 159 spin_lock_irqsave(&ntb->ctx_lock, irqflags); ntb_clear_ctx() 161 ntb->ctx_ops = NULL; ntb_clear_ctx() 162 ntb->ctx = NULL; ntb_clear_ctx() 164 spin_unlock_irqrestore(&ntb->ctx_lock, irqflags); ntb_clear_ctx() 168 void ntb_link_event(struct ntb_dev *ntb) ntb_link_event() argument 172 spin_lock_irqsave(&ntb->ctx_lock, irqflags); ntb_link_event() 174 if (ntb->ctx_ops && ntb->ctx_ops->link_event) ntb_link_event() 175 ntb->ctx_ops->link_event(ntb->ctx); ntb_link_event() 177 spin_unlock_irqrestore(&ntb->ctx_lock, irqflags); ntb_link_event() 181 void ntb_db_event(struct ntb_dev *ntb, int vector) ntb_db_event() argument 185 spin_lock_irqsave(&ntb->ctx_lock, irqflags); ntb_db_event() 187 if (ntb->ctx_ops && ntb->ctx_ops->db_event) ntb_db_event() 188 ntb->ctx_ops->db_event(ntb->ctx, vector); ntb_db_event() 190 spin_unlock_irqrestore(&ntb->ctx_lock, irqflags); ntb_db_event() 196 struct ntb_dev *ntb; ntb_probe() local 201 ntb = dev_ntb(dev); ntb_probe() 204 rc = client->ops.probe(client, ntb); ntb_probe() 213 struct ntb_dev *ntb; ntb_remove() local 217 ntb = dev_ntb(dev); ntb_remove() 220 client->ops.remove(client, ntb); ntb_remove() 229 struct ntb_dev *ntb = dev_ntb(dev); ntb_dev_release() local 231 complete(&ntb->released); ntb_dev_release() 235 .name = "ntb",
|
H A D | ntb_transport.c | 62 #include "linux/ntb.h" 1580 dev_err(&pdev->dev, "ntb: QP%d unable to send linkdown msg\n", ntb_send_link_down()
|
/linux-4.4.14/drivers/ntb/test/ |
H A D | ntb_pingpong.c | 65 #include <linux/ntb.h> 82 MODULE_PARM_DESC(unsafe, "Run even though ntb operations may be unsafe"); 93 struct ntb_dev *ntb; member in struct:pp_ctx 110 db_mask = ntb_db_valid_mask(pp->ntb); pp_ping() 111 db_bits = ntb_db_read(pp->ntb); pp_ping() 114 dev_dbg(&pp->ntb->dev, pp_ping() 117 ntb_db_clear(pp->ntb, db_bits); pp_ping() 125 spad_rd = ntb_spad_read(pp->ntb, 0); pp_ping() 128 dev_dbg(&pp->ntb->dev, pp_ping() 132 ntb_peer_spad_write(pp->ntb, 0, spad_wr); pp_ping() 133 ntb_peer_db_set(pp->ntb, db_bits); pp_ping() 134 ntb_db_clear_mask(pp->ntb, db_mask); pp_ping() 145 if (ntb_link_is_up(pp->ntb, NULL, NULL) == 1) { pp_link_event() 146 dev_dbg(&pp->ntb->dev, "link is up\n"); pp_link_event() 149 dev_dbg(&pp->ntb->dev, "link is down\n"); pp_link_event() 162 db_mask = ntb_db_vector_mask(pp->ntb, vec); pp_db_event() 163 db_bits = db_mask & ntb_db_read(pp->ntb); pp_db_event() 164 ntb_db_set_mask(pp->ntb, db_mask); pp_db_event() 165 ntb_db_clear(pp->ntb, db_bits); pp_db_event() 171 dev_dbg(&pp->ntb->dev, pp_db_event() 184 struct ntb_dev *ntb) pp_probe() 189 if (ntb_db_is_unsafe(ntb)) { pp_probe() 190 dev_dbg(&ntb->dev, "doorbell is unsafe\n"); pp_probe() 197 if (ntb_spad_is_unsafe(ntb)) { pp_probe() 198 dev_dbg(&ntb->dev, "scratchpad is unsafe\n"); pp_probe() 211 pp->ntb = ntb; pp_probe() 217 rc = ntb_set_ctx(ntb, pp, &pp_ops); pp_probe() 221 ntb_link_enable(ntb, NTB_SPEED_AUTO, NTB_WIDTH_AUTO); pp_probe() 222 ntb_link_event(ntb); pp_probe() 233 struct ntb_dev *ntb) pp_remove() 235 struct pp_ctx *pp = ntb->ctx; pp_remove() 237 ntb_clear_ctx(ntb); pp_remove() 239 ntb_link_disable(ntb); pp_remove() 183 pp_probe(struct ntb_client *client, struct ntb_dev *ntb) pp_probe() argument 232 pp_remove(struct ntb_client *client, struct ntb_dev *ntb) pp_remove() argument
|
H A D | ntb_tool.c | 93 #include <linux/ntb.h> 111 struct ntb_dev *ntb; member in struct:tool_ctx 134 up = ntb_link_is_up(tc->ntb, &speed, &width); tool_link_event() 136 dev_dbg(&tc->ntb->dev, "link is %s speed %d width %d\n", tool_link_event() 145 db_mask = ntb_db_vector_mask(tc->ntb, vec); tool_db_event() 146 db_bits = ntb_db_read(tc->ntb); tool_db_event() 148 dev_dbg(&tc->ntb->dev, "doorbell vec %d mask %#llx bits %#llx\n", tool_db_event() 175 db_read_fn(tc->ntb)); tool_dbfn_read() 217 rc = db_set_fn(tc->ntb, db_bits); tool_dbfn_write() 222 rc = db_clear_fn(tc->ntb, db_bits); tool_dbfn_write() 250 spad_count = ntb_spad_count(tc->ntb); tool_spadfn_read() 253 i, spad_read_fn(tc->ntb, i)); tool_spadfn_read() 276 dev_dbg(&tc->ntb->dev, "no spad write fn\n"); tool_spadfn_write() 294 rc = spad_write_fn(tc->ntb, spad_idx, spad_val); tool_spadfn_write() 315 tc->ntb->ops->db_read); tool_db_read() 324 tc->ntb->ops->db_set, tool_db_write() 325 tc->ntb->ops->db_clear); tool_db_write() 338 tc->ntb->ops->db_read_mask); tool_mask_read() 347 tc->ntb->ops->db_set_mask, tool_mask_write() 348 tc->ntb->ops->db_clear_mask); tool_mask_write() 361 tc->ntb->ops->peer_db_read); tool_peer_db_read() 370 tc->ntb->ops->peer_db_set, tool_peer_db_write() 371 tc->ntb->ops->peer_db_clear); tool_peer_db_write() 384 tc->ntb->ops->peer_db_read_mask); tool_peer_mask_read() 393 tc->ntb->ops->peer_db_set_mask, tool_peer_mask_write() 394 tc->ntb->ops->peer_db_clear_mask); tool_peer_mask_write() 407 tc->ntb->ops->spad_read); tool_spad_read() 416 tc->ntb->ops->spad_write); tool_spad_write() 429 tc->ntb->ops->peer_spad_read); tool_peer_spad_read() 438 tc->ntb->ops->peer_spad_write); tool_peer_spad_write() 453 tc->dbgfs = debugfs_create_dir(dev_name(&tc->ntb->dev), tool_setup_dbgfs() 477 static int tool_probe(struct ntb_client *self, struct ntb_dev *ntb) tool_probe() argument 482 if (ntb_db_is_unsafe(ntb)) tool_probe() 483 dev_dbg(&ntb->dev, "doorbell is unsafe\n"); tool_probe() 485 if (ntb_spad_is_unsafe(ntb)) tool_probe() 486 dev_dbg(&ntb->dev, "scratchpad is unsafe\n"); tool_probe() 494 tc->ntb = ntb; tool_probe() 498 rc = ntb_set_ctx(ntb, tc, &tool_ops); tool_probe() 502 ntb_link_enable(ntb, NTB_SPEED_AUTO, NTB_WIDTH_AUTO); tool_probe() 503 ntb_link_event(ntb); tool_probe() 514 static void tool_remove(struct ntb_client *self, struct ntb_dev *ntb) tool_remove() argument 516 struct tool_ctx *tc = ntb->ctx; tool_remove() 518 ntb_clear_ctx(ntb); tool_remove() 519 ntb_link_disable(ntb); tool_remove()
|
/linux-4.4.14/drivers/ntb/hw/intel/ |
H A D | ntb_hw_intel.c | 59 #include <linux/ntb.h> 96 MODULE_PARM_DESC(b2b_mw_idx, "Use this mw idx to access the peer ntb. A " 104 "ntb so that the peer ntb only occupies the first half of " 216 if (!ntb_topo_is_b2b(ndev->ntb.topo)) ndev_reset_unsafe_flags() 399 ntb_link_event(&ndev->ntb); ndev_interrupt() 403 ntb_db_event(&ndev->ntb, vec); ndev_interrupt() 576 ntb_topo_string(ndev->ntb.topo)); ndev_debugfs_read() 672 if (pdev_is_xeon(ndev->ntb.pdev)) { ndev_debugfs_read() 673 if (ntb_topo_is_b2b(ndev->ntb.topo)) { ndev_debugfs_read() 753 if (!pci_read_config_word(ndev->ntb.pdev, ndev_debugfs_read() 758 if (!pci_read_config_word(ndev->ntb.pdev, ndev_debugfs_read() 763 if (!pci_read_config_dword(ndev->ntb.pdev, ndev_debugfs_read() 768 if (!pci_read_config_dword(ndev->ntb.pdev, ndev_debugfs_read() 802 static int intel_ntb_mw_count(struct ntb_dev *ntb) intel_ntb_mw_count() argument 804 return ntb_ndev(ntb)->mw_count; intel_ntb_mw_count() 807 static int intel_ntb_mw_get_range(struct ntb_dev *ntb, int idx, intel_ntb_mw_get_range() argument 813 struct intel_ntb_dev *ndev = ntb_ndev(ntb); intel_ntb_mw_get_range() 824 *base = pci_resource_start(ndev->ntb.pdev, bar) + intel_ntb_mw_get_range() 828 *size = pci_resource_len(ndev->ntb.pdev, bar) - intel_ntb_mw_get_range() 832 *align = pci_resource_len(ndev->ntb.pdev, bar); intel_ntb_mw_get_range() 840 static int intel_ntb_mw_set_trans(struct ntb_dev *ntb, int idx, intel_ntb_mw_set_trans() argument 843 struct intel_ntb_dev *ndev = ntb_ndev(ntb); intel_ntb_mw_set_trans() 857 bar_size = pci_resource_len(ndev->ntb.pdev, bar); intel_ntb_mw_set_trans() 938 static int intel_ntb_link_is_up(struct ntb_dev *ntb, intel_ntb_link_is_up() argument 942 struct intel_ntb_dev *ndev = ntb_ndev(ntb); intel_ntb_link_is_up() 961 static int intel_ntb_link_enable(struct ntb_dev *ntb, intel_ntb_link_enable() argument 968 ndev = container_of(ntb, struct intel_ntb_dev, ntb); intel_ntb_link_enable() 970 if (ndev->ntb.topo == NTB_TOPO_SEC) intel_ntb_link_enable() 992 static int intel_ntb_link_disable(struct ntb_dev *ntb) intel_ntb_link_disable() argument 997 ndev = container_of(ntb, struct intel_ntb_dev, ntb); intel_ntb_link_disable() 999 if (ndev->ntb.topo == NTB_TOPO_SEC) intel_ntb_link_disable() 1016 static int intel_ntb_db_is_unsafe(struct ntb_dev *ntb) intel_ntb_db_is_unsafe() argument 1018 return ndev_ignore_unsafe(ntb_ndev(ntb), NTB_UNSAFE_DB); intel_ntb_db_is_unsafe() 1021 static u64 intel_ntb_db_valid_mask(struct ntb_dev *ntb) intel_ntb_db_valid_mask() argument 1023 return ntb_ndev(ntb)->db_valid_mask; intel_ntb_db_valid_mask() 1026 static int intel_ntb_db_vector_count(struct ntb_dev *ntb) intel_ntb_db_vector_count() argument 1030 ndev = container_of(ntb, struct intel_ntb_dev, ntb); intel_ntb_db_vector_count() 1035 static u64 intel_ntb_db_vector_mask(struct ntb_dev *ntb, int db_vector) intel_ntb_db_vector_mask() argument 1037 struct intel_ntb_dev *ndev = ntb_ndev(ntb); intel_ntb_db_vector_mask() 1045 static u64 intel_ntb_db_read(struct ntb_dev *ntb) intel_ntb_db_read() argument 1047 struct intel_ntb_dev *ndev = ntb_ndev(ntb); intel_ntb_db_read() 1054 static int intel_ntb_db_clear(struct ntb_dev *ntb, u64 db_bits) intel_ntb_db_clear() argument 1056 struct intel_ntb_dev *ndev = ntb_ndev(ntb); intel_ntb_db_clear() 1063 static int intel_ntb_db_set_mask(struct ntb_dev *ntb, u64 db_bits) intel_ntb_db_set_mask() argument 1065 struct intel_ntb_dev *ndev = ntb_ndev(ntb); intel_ntb_db_set_mask() 1072 static int intel_ntb_db_clear_mask(struct ntb_dev *ntb, u64 db_bits) intel_ntb_db_clear_mask() argument 1074 struct intel_ntb_dev *ndev = ntb_ndev(ntb); intel_ntb_db_clear_mask() 1081 static int intel_ntb_peer_db_addr(struct ntb_dev *ntb, intel_ntb_peer_db_addr() argument 1085 struct intel_ntb_dev *ndev = ntb_ndev(ntb); intel_ntb_peer_db_addr() 1091 static int intel_ntb_peer_db_set(struct ntb_dev *ntb, u64 db_bits) intel_ntb_peer_db_set() argument 1093 struct intel_ntb_dev *ndev = ntb_ndev(ntb); intel_ntb_peer_db_set() 1100 static int intel_ntb_spad_is_unsafe(struct ntb_dev *ntb) intel_ntb_spad_is_unsafe() argument 1102 return ndev_ignore_unsafe(ntb_ndev(ntb), NTB_UNSAFE_SPAD); intel_ntb_spad_is_unsafe() 1105 static int intel_ntb_spad_count(struct ntb_dev *ntb) intel_ntb_spad_count() argument 1109 ndev = container_of(ntb, struct intel_ntb_dev, ntb); intel_ntb_spad_count() 1114 static u32 intel_ntb_spad_read(struct ntb_dev *ntb, int idx) intel_ntb_spad_read() argument 1116 struct intel_ntb_dev *ndev = ntb_ndev(ntb); intel_ntb_spad_read() 1123 static int intel_ntb_spad_write(struct ntb_dev *ntb, intel_ntb_spad_write() argument 1126 struct intel_ntb_dev *ndev = ntb_ndev(ntb); intel_ntb_spad_write() 1133 static int intel_ntb_peer_spad_addr(struct ntb_dev *ntb, int idx, intel_ntb_peer_spad_addr() argument 1136 struct intel_ntb_dev *ndev = ntb_ndev(ntb); intel_ntb_peer_spad_addr() 1142 static u32 intel_ntb_peer_spad_read(struct ntb_dev *ntb, int idx) intel_ntb_peer_spad_read() argument 1144 struct intel_ntb_dev *ndev = ntb_ndev(ntb); intel_ntb_peer_spad_read() 1151 static int intel_ntb_peer_spad_write(struct ntb_dev *ntb, intel_ntb_peer_spad_write() argument 1154 struct intel_ntb_dev *ndev = ntb_ndev(ntb); intel_ntb_peer_spad_write() 1248 ntb_link_event(&ndev->ntb); atom_link_hb() 1335 switch (ndev->ntb.topo) { atom_init_ntb() 1362 rc = pci_read_config_dword(ndev->ntb.pdev, ATOM_PPD_OFFSET, &ppd); atom_init_dev() 1366 ndev->ntb.topo = atom_ppd_topo(ndev, ppd); atom_init_dev() 1367 if (ndev->ntb.topo == NTB_TOPO_NONE) atom_init_dev() 1378 if (ndev->ntb.topo != NTB_TOPO_SEC) { atom_init_dev() 1380 rc = pci_write_config_dword(ndev->ntb.pdev, ATOM_PPD_OFFSET, atom_init_dev() 1415 rc = pci_read_config_word(ndev->ntb.pdev, xeon_poll_link() 1430 if (ndev->ntb.topo == NTB_TOPO_SEC) xeon_link_is_up() 1504 bar_size = pci_resource_len(ndev->ntb.pdev, b2b_bar); xeon_setup_b2b_mw() 1716 /* map peer ntb mmio config space registers */ xeon_setup_b2b_mw() 1740 switch (ndev->ntb.topo) { xeon_init_ntb() 1801 if (ndev->ntb.topo == NTB_TOPO_B2B_USD) { xeon_init_ntb() 1913 ndev->ntb.topo = xeon_ppd_topo(ndev, ppd); xeon_init_dev() 1915 ntb_topo_string(ndev->ntb.topo)); xeon_init_dev() 1916 if (ndev->ntb.topo == NTB_TOPO_NONE) xeon_init_dev() 1919 if (ndev->ntb.topo != NTB_TOPO_SEC) { xeon_init_dev() 2016 ndev->ntb.pdev = pdev; ndev_init_struct() 2017 ndev->ntb.topo = NTB_TOPO_NONE; ndev_init_struct() 2018 ndev->ntb.ops = &intel_ntb_ops; ndev_init_struct() 2094 rc = ntb_register_device(&ndev->ntb); intel_ntb_pci_probe() 2120 ntb_unregister_device(&ndev->ntb); intel_ntb_pci_remove() 2220 /* operations for primary side of local ntb */
|
H A D | ntb_hw_intel.h | 54 #include <linux/ntb.h> 228 /* Use the following addresses for translation between b2b ntb devices in case 236 /* The peer ntb secondary config space is 32KB fixed size */ 286 struct ntb_dev ntb; member in struct:intel_ntb_dev 334 #define ndev_pdev(ndev) ((ndev)->ntb.pdev) 337 #define ntb_ndev(ntb) container_of(ntb, struct intel_ntb_dev, ntb)
|
/linux-4.4.14/drivers/net/ |
H A D | ntb_netdev.c | 54 #include <linux/ntb.h> 405 struct ntb_dev *ntb; ntb_netdev_probe() local 411 ntb = dev_ntb(client_dev->parent); ntb_netdev_probe() 412 pdev = ntb->pdev; ntb_netdev_probe() 462 struct ntb_dev *ntb; ntb_netdev_remove() local 468 ntb = dev_ntb(client_dev->parent); ntb_netdev_remove() 469 pdev = ntb->pdev; ntb_netdev_remove()
|
/linux-4.4.14/kernel/rcu/ |
H A D | tree_trace.c | 217 seq_printf(m, "%d:%d tasks=%c%c%c%c kt=%c ntb=%lu neb=%lu nnb=%lu ", print_one_rcu_node_boost()
|