Lines Matching refs:ntb
100 int ntb_register_device(struct ntb_dev *ntb) in ntb_register_device() argument
102 if (!ntb) in ntb_register_device()
104 if (!ntb->pdev) in ntb_register_device()
106 if (!ntb->ops) in ntb_register_device()
108 if (!ntb_dev_ops_is_valid(ntb->ops)) in ntb_register_device()
111 init_completion(&ntb->released); in ntb_register_device()
113 memset(&ntb->dev, 0, sizeof(ntb->dev)); in ntb_register_device()
114 ntb->dev.bus = &ntb_bus; in ntb_register_device()
115 ntb->dev.parent = &ntb->pdev->dev; in ntb_register_device()
116 ntb->dev.release = ntb_dev_release; in ntb_register_device()
117 dev_set_name(&ntb->dev, "%s", pci_name(ntb->pdev)); in ntb_register_device()
119 ntb->ctx = NULL; in ntb_register_device()
120 ntb->ctx_ops = NULL; in ntb_register_device()
121 spin_lock_init(&ntb->ctx_lock); in ntb_register_device()
123 return device_register(&ntb->dev); in ntb_register_device()
127 void ntb_unregister_device(struct ntb_dev *ntb) in ntb_unregister_device() argument
129 device_unregister(&ntb->dev); in ntb_unregister_device()
130 wait_for_completion(&ntb->released); in ntb_unregister_device()
134 int ntb_set_ctx(struct ntb_dev *ntb, void *ctx, in ntb_set_ctx() argument
141 if (ntb->ctx_ops) in ntb_set_ctx()
144 spin_lock_irqsave(&ntb->ctx_lock, irqflags); in ntb_set_ctx()
146 ntb->ctx = ctx; in ntb_set_ctx()
147 ntb->ctx_ops = ctx_ops; in ntb_set_ctx()
149 spin_unlock_irqrestore(&ntb->ctx_lock, irqflags); in ntb_set_ctx()
155 void ntb_clear_ctx(struct ntb_dev *ntb) in ntb_clear_ctx() argument
159 spin_lock_irqsave(&ntb->ctx_lock, irqflags); in ntb_clear_ctx()
161 ntb->ctx_ops = NULL; in ntb_clear_ctx()
162 ntb->ctx = NULL; in ntb_clear_ctx()
164 spin_unlock_irqrestore(&ntb->ctx_lock, irqflags); in ntb_clear_ctx()
168 void ntb_link_event(struct ntb_dev *ntb) in ntb_link_event() argument
172 spin_lock_irqsave(&ntb->ctx_lock, irqflags); in ntb_link_event()
174 if (ntb->ctx_ops && ntb->ctx_ops->link_event) in ntb_link_event()
175 ntb->ctx_ops->link_event(ntb->ctx); in ntb_link_event()
177 spin_unlock_irqrestore(&ntb->ctx_lock, irqflags); in ntb_link_event()
181 void ntb_db_event(struct ntb_dev *ntb, int vector) in ntb_db_event() argument
185 spin_lock_irqsave(&ntb->ctx_lock, irqflags); in ntb_db_event()
187 if (ntb->ctx_ops && ntb->ctx_ops->db_event) in ntb_db_event()
188 ntb->ctx_ops->db_event(ntb->ctx, vector); in ntb_db_event()
190 spin_unlock_irqrestore(&ntb->ctx_lock, irqflags); in ntb_db_event()
196 struct ntb_dev *ntb; in ntb_probe() local
201 ntb = dev_ntb(dev); in ntb_probe()
204 rc = client->ops.probe(client, ntb); in ntb_probe()
213 struct ntb_dev *ntb; in ntb_remove() local
217 ntb = dev_ntb(dev); in ntb_remove()
220 client->ops.remove(client, ntb); in ntb_remove()
229 struct ntb_dev *ntb = dev_ntb(dev); in ntb_dev_release() local
231 complete(&ntb->released); in ntb_dev_release()