Searched refs:ntb (Results 1 - 10 of 10) sorted by relevance

/linux-4.4.14/include/linux/
H A Dntb.h67 * @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 Dgenl_magic_func.h153 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 Dntb.c58 #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 Dntb_transport.c62 #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 Dntb_pingpong.c65 #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 Dntb_tool.c93 #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 Dntb_hw_intel.c59 #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 Dntb_hw_intel.h54 #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 Dntb_netdev.c54 #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 Dtree_trace.c217 seq_printf(m, "%d:%d tasks=%c%c%c%c kt=%c ntb=%lu neb=%lu nnb=%lu ", print_one_rcu_node_boost()

Completed in 239 milliseconds