Lines Matching refs:ntb
60 #include <linux/ntb.h>
63 #define DRIVER_NAME "ntb"
101 int ntb_register_device(struct ntb_dev *ntb)
103 if (!ntb)
105 if (!ntb->pdev)
107 if (!ntb->ops)
109 if (!ntb_dev_ops_is_valid(ntb->ops))
112 init_completion(&ntb->released);
114 ntb->dev.bus = &ntb_bus;
115 ntb->dev.parent = &ntb->pdev->dev;
116 ntb->dev.release = ntb_dev_release;
117 dev_set_name(&ntb->dev, "%s", pci_name(ntb->pdev));
119 ntb->ctx = NULL;
120 ntb->ctx_ops = NULL;
121 spin_lock_init(&ntb->ctx_lock);
123 return device_register(&ntb->dev);
127 void ntb_unregister_device(struct ntb_dev *ntb)
129 device_unregister(&ntb->dev);
130 wait_for_completion(&ntb->released);
134 int ntb_set_ctx(struct ntb_dev *ntb, void *ctx,
141 if (ntb->ctx_ops)
144 spin_lock_irqsave(&ntb->ctx_lock, irqflags);
146 ntb->ctx = ctx;
147 ntb->ctx_ops = ctx_ops;
149 spin_unlock_irqrestore(&ntb->ctx_lock, irqflags);
155 void ntb_clear_ctx(struct ntb_dev *ntb)
159 spin_lock_irqsave(&ntb->ctx_lock, irqflags);
161 ntb->ctx_ops = NULL;
162 ntb->ctx = NULL;
164 spin_unlock_irqrestore(&ntb->ctx_lock, irqflags);
168 void ntb_link_event(struct ntb_dev *ntb)
172 spin_lock_irqsave(&ntb->ctx_lock, irqflags);
174 if (ntb->ctx_ops && ntb->ctx_ops->link_event)
175 ntb->ctx_ops->link_event(ntb->ctx);
177 spin_unlock_irqrestore(&ntb->ctx_lock, irqflags);
181 void ntb_db_event(struct ntb_dev *ntb, int vector)
185 spin_lock_irqsave(&ntb->ctx_lock, irqflags);
187 if (ntb->ctx_ops && ntb->ctx_ops->db_event)
188 ntb->ctx_ops->db_event(ntb->ctx, vector);
190 spin_unlock_irqrestore(&ntb->ctx_lock, irqflags);
194 void ntb_msg_event(struct ntb_dev *ntb)
198 spin_lock_irqsave(&ntb->ctx_lock, irqflags);
200 if (ntb->ctx_ops && ntb->ctx_ops->msg_event)
201 ntb->ctx_ops->msg_event(ntb->ctx);
203 spin_unlock_irqrestore(&ntb->ctx_lock, irqflags);
207 int ntb_default_port_number(struct ntb_dev *ntb)
209 switch (ntb->topo) {
222 int ntb_default_peer_port_count(struct ntb_dev *ntb)
228 int ntb_default_peer_port_number(struct ntb_dev *ntb, int pidx)
233 switch (ntb->topo) {
246 int ntb_default_peer_port_idx(struct ntb_dev *ntb, int port)
248 int peer_port = ntb_default_peer_port_number(ntb, NTB_DEF_PEER_IDX);
259 struct ntb_dev *ntb;
264 ntb = dev_ntb(dev);
267 rc = client->ops.probe(client, ntb);
276 struct ntb_dev *ntb;
280 ntb = dev_ntb(dev);
283 client->ops.remove(client, ntb);
292 struct ntb_dev *ntb = dev_ntb(dev);
294 complete(&ntb->released);
298 .name = "ntb",