Lines Matching refs:db_cb
202 struct ntb_db_cb *db_cb = (struct ntb_db_cb *)data; in ntb_irq_work() local
205 rc = db_cb->callback(db_cb->data, db_cb->db_num); in ntb_irq_work()
207 tasklet_schedule(&db_cb->irq_work); in ntb_irq_work()
209 struct ntb_device *ndev = db_cb->ndev; in ntb_irq_work()
213 clear_bit(db_cb->db_num * ndev->bits_per_vector, &mask); in ntb_irq_work()
236 if (idx >= ndev->max_cbs || ndev->db_cb[idx].callback) { in ntb_register_db_callback()
241 ndev->db_cb[idx].callback = func; in ntb_register_db_callback()
242 ndev->db_cb[idx].data = data; in ntb_register_db_callback()
243 ndev->db_cb[idx].ndev = ndev; in ntb_register_db_callback()
245 tasklet_init(&ndev->db_cb[idx].irq_work, ntb_irq_work, in ntb_register_db_callback()
246 (unsigned long) &ndev->db_cb[idx]); in ntb_register_db_callback()
268 if (idx >= ndev->max_cbs || !ndev->db_cb[idx].callback) in ntb_unregister_db_callback()
275 tasklet_disable(&ndev->db_cb[idx].irq_work); in ntb_unregister_db_callback()
277 ndev->db_cb[idx].callback = NULL; in ntb_unregister_db_callback()
1062 struct ntb_db_cb *db_cb = data; in bwd_callback_msix_irq() local
1063 struct ntb_device *ndev = db_cb->ndev; in bwd_callback_msix_irq()
1067 db_cb->db_num); in bwd_callback_msix_irq()
1070 set_bit(db_cb->db_num * ndev->bits_per_vector, &mask); in bwd_callback_msix_irq()
1073 tasklet_schedule(&db_cb->irq_work); in bwd_callback_msix_irq()
1080 writeq((u64) 1 << db_cb->db_num, ndev->reg_ofs.ldb); in bwd_callback_msix_irq()
1087 struct ntb_db_cb *db_cb = data; in xeon_callback_msix_irq() local
1088 struct ntb_device *ndev = db_cb->ndev; in xeon_callback_msix_irq()
1092 db_cb->db_num); in xeon_callback_msix_irq()
1095 set_bit(db_cb->db_num * ndev->bits_per_vector, &mask); in xeon_callback_msix_irq()
1098 tasklet_schedule(&db_cb->irq_work); in xeon_callback_msix_irq()
1106 (db_cb->db_num * ndev->bits_per_vector), ndev->reg_ofs.ldb); in xeon_callback_msix_irq()
1142 bwd_callback_msix_irq(irq, &ndev->db_cb[i]); in ntb_interrupt()
1157 xeon_callback_msix_irq(irq, &ndev->db_cb[i]); in ntb_interrupt()
1191 &ndev->db_cb[i]); in ntb_setup_snb_msix()
1206 free_irq(msix->vector, &ndev->db_cb[i]); in ntb_setup_snb_msix()
1231 "ntb-callback-msix", &ndev->db_cb[i]); in ntb_setup_bwd_msix()
1243 free_irq(msix->vector, &ndev->db_cb[i]); in ntb_setup_bwd_msix()
1383 free_irq(msix->vector, &ndev->db_cb[i]); in ntb_free_interrupts()
1404 ndev->db_cb = kcalloc(ndev->limits.max_db_bits, in ntb_create_callbacks()
1407 if (!ndev->db_cb) in ntb_create_callbacks()
1411 ndev->db_cb[i].db_num = i; in ntb_create_callbacks()
1412 ndev->db_cb[i].ndev = ndev; in ntb_create_callbacks()
1425 kfree(ndev->db_cb); in ntb_free_callbacks()