Lines Matching refs:ntb
60 #include <linux/ntb.h>
63 #define DRIVER_NAME "ntb"
101 int ntb_register_device(struct ntb_dev *ntb)
105 if (!ntb)
107 if (!ntb->pdev)
109 if (!ntb->ops)
111 if (!ntb_dev_ops_is_valid(ntb->ops))
114 init_completion(&ntb->released);
116 ntb->dev.bus = &ntb_bus;
117 ntb->dev.parent = &ntb->pdev->dev;
118 ntb->dev.release = ntb_dev_release;
119 dev_set_name(&ntb->dev, "%s", pci_name(ntb->pdev));
121 ntb->ctx = NULL;
122 ntb->ctx_ops = NULL;
123 spin_lock_init(&ntb->ctx_lock);
125 ret = device_register(&ntb->dev);
127 put_device(&ntb->dev);
133 void ntb_unregister_device(struct ntb_dev *ntb)
135 device_unregister(&ntb->dev);
136 wait_for_completion(&ntb->released);
140 int ntb_set_ctx(struct ntb_dev *ntb, void *ctx,
147 if (ntb->ctx_ops)
150 spin_lock_irqsave(&ntb->ctx_lock, irqflags);
152 ntb->ctx = ctx;
153 ntb->ctx_ops = ctx_ops;
155 spin_unlock_irqrestore(&ntb->ctx_lock, irqflags);
161 void ntb_clear_ctx(struct ntb_dev *ntb)
165 spin_lock_irqsave(&ntb->ctx_lock, irqflags);
167 ntb->ctx_ops = NULL;
168 ntb->ctx = NULL;
170 spin_unlock_irqrestore(&ntb->ctx_lock, irqflags);
174 void ntb_link_event(struct ntb_dev *ntb)
178 spin_lock_irqsave(&ntb->ctx_lock, irqflags);
180 if (ntb->ctx_ops && ntb->ctx_ops->link_event)
181 ntb->ctx_ops->link_event(ntb->ctx);
183 spin_unlock_irqrestore(&ntb->ctx_lock, irqflags);
187 void ntb_db_event(struct ntb_dev *ntb, int vector)
191 spin_lock_irqsave(&ntb->ctx_lock, irqflags);
193 if (ntb->ctx_ops && ntb->ctx_ops->db_event)
194 ntb->ctx_ops->db_event(ntb->ctx, vector);
196 spin_unlock_irqrestore(&ntb->ctx_lock, irqflags);
200 void ntb_msg_event(struct ntb_dev *ntb)
204 spin_lock_irqsave(&ntb->ctx_lock, irqflags);
206 if (ntb->ctx_ops && ntb->ctx_ops->msg_event)
207 ntb->ctx_ops->msg_event(ntb->ctx);
209 spin_unlock_irqrestore(&ntb->ctx_lock, irqflags);
213 int ntb_default_port_number(struct ntb_dev *ntb)
215 switch (ntb->topo) {
228 int ntb_default_peer_port_count(struct ntb_dev *ntb)
234 int ntb_default_peer_port_number(struct ntb_dev *ntb, int pidx)
239 switch (ntb->topo) {
252 int ntb_default_peer_port_idx(struct ntb_dev *ntb, int port)
254 int peer_port = ntb_default_peer_port_number(ntb, NTB_DEF_PEER_IDX);
265 struct ntb_dev *ntb;
270 ntb = dev_ntb(dev);
273 rc = client->ops.probe(client, ntb);
282 struct ntb_dev *ntb;
286 ntb = dev_ntb(dev);
289 client->ops.remove(client, ntb);
296 struct ntb_dev *ntb = dev_ntb(dev);
298 complete(&ntb->released);
302 .name = "ntb",