Lines Matching full:ulp

58 	struct bnxt_ulp *ulp;  in bnxt_register_dev()  local
65 ulp = &edev->ulp_tbl[ulp_id]; in bnxt_register_dev()
66 if (rcu_access_pointer(ulp->ulp_ops)) { in bnxt_register_dev()
67 device_printf(bp->dev, "ulp id %d already registered\n", ulp_id); in bnxt_register_dev()
73 atomic_set(&ulp->ref_count, 0); in bnxt_register_dev()
74 ulp->handle = handle; in bnxt_register_dev()
75 rcu_assign_pointer(ulp->ulp_ops, ulp_ops); in bnxt_register_dev()
90 struct bnxt_ulp *ulp; in bnxt_unregister_dev() local
96 ulp = &edev->ulp_tbl[ulp_id]; in bnxt_unregister_dev()
97 if (!rcu_access_pointer(ulp->ulp_ops)) { in bnxt_unregister_dev()
98 device_printf(bp->dev, "ulp id %d not registered\n", ulp_id); in bnxt_unregister_dev()
101 if (ulp_id == BNXT_ROCE_ULP && ulp->msix_requested) in bnxt_unregister_dev()
105 RCU_INIT_POINTER(ulp->ulp_ops, NULL); in bnxt_unregister_dev()
107 ulp->max_async_event_id = 0; in bnxt_unregister_dev()
108 ulp->async_events_bmap = NULL; in bnxt_unregister_dev()
109 while (atomic_read(&ulp->ref_count) != 0 && i < 10) { in bnxt_unregister_dev()
217 static void bnxt_ulp_get(struct bnxt_ulp *ulp) in bnxt_ulp_get() argument
219 atomic_inc(&ulp->ref_count); in bnxt_ulp_get()
222 static void bnxt_ulp_put(struct bnxt_ulp *ulp) in bnxt_ulp_put() argument
224 atomic_dec(&ulp->ref_count); in bnxt_ulp_put()
239 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_stop() local
241 ops = ulp->ulp_ops; in bnxt_ulp_stop()
244 ops->ulp_stop(ulp->handle); in bnxt_ulp_stop()
264 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_start() local
266 ops = ulp->ulp_ops; in bnxt_ulp_start()
269 ops->ulp_start(ulp->handle); in bnxt_ulp_start()
283 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_sriov_cfg() local
286 ops = rcu_dereference(ulp->ulp_ops); in bnxt_ulp_sriov_cfg()
291 bnxt_ulp_get(ulp); in bnxt_ulp_sriov_cfg()
293 ops->ulp_sriov_config(ulp->handle, num_vfs); in bnxt_ulp_sriov_cfg()
294 bnxt_ulp_put(ulp); in bnxt_ulp_sriov_cfg()
308 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_shutdown() local
310 ops = ulp->ulp_ops; in bnxt_ulp_shutdown()
313 ops->ulp_shutdown(ulp->handle); in bnxt_ulp_shutdown()
326 struct bnxt_ulp *ulp = &edev->ulp_tbl[BNXT_ROCE_ULP]; in bnxt_ulp_irq_stop() local
328 if (!ulp->msix_requested) in bnxt_ulp_irq_stop()
331 ops = ulp->ulp_ops; in bnxt_ulp_irq_stop()
334 ops->ulp_irq_stop(ulp->handle); in bnxt_ulp_irq_stop()
350 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_async_events() local
352 ops = rcu_dereference(ulp->ulp_ops); in bnxt_ulp_async_events()
355 if (!ulp->async_events_bmap || in bnxt_ulp_async_events()
356 event_id > ulp->max_async_event_id) in bnxt_ulp_async_events()
364 if (test_bit(event_id, ulp->async_events_bmap)) in bnxt_ulp_async_events()
365 ops->ulp_async_notifier(ulp->handle, cmpl); in bnxt_ulp_async_events()
374 struct bnxt_ulp *ulp; in bnxt_register_async_events() local
380 ulp = &edev->ulp_tbl[ulp_id]; in bnxt_register_async_events()
381 ulp->async_events_bmap = events_bmap; in bnxt_register_async_events()
383 ulp->max_async_event_id = max_id; in bnxt_register_async_events()