Lines Matching refs:ulp

32 	struct bnxt_ulp *ulp;  in bnxt_register_dev()  local
38 ulp = &edev->ulp_tbl[ulp_id]; in bnxt_register_dev()
39 if (rcu_access_pointer(ulp->ulp_ops)) { in bnxt_register_dev()
54 atomic_set(&ulp->ref_count, 0); in bnxt_register_dev()
55 ulp->handle = handle; in bnxt_register_dev()
56 rcu_assign_pointer(ulp->ulp_ops, ulp_ops); in bnxt_register_dev()
70 struct bnxt_ulp *ulp; in bnxt_unregister_dev() local
77 ulp = &edev->ulp_tbl[ulp_id]; in bnxt_unregister_dev()
78 if (!rcu_access_pointer(ulp->ulp_ops)) { in bnxt_unregister_dev()
87 if (ulp->msix_requested) in bnxt_unregister_dev()
90 if (ulp->max_async_event_id) in bnxt_unregister_dev()
93 RCU_INIT_POINTER(ulp->ulp_ops, NULL); in bnxt_unregister_dev()
95 ulp->max_async_event_id = 0; in bnxt_unregister_dev()
96 ulp->async_events_bmap = NULL; in bnxt_unregister_dev()
97 while (atomic_read(&ulp->ref_count) != 0 && i < 10) { in bnxt_unregister_dev()
244 static void bnxt_ulp_get(struct bnxt_ulp *ulp) in bnxt_ulp_get() argument
246 atomic_inc(&ulp->ref_count); in bnxt_ulp_get()
249 static void bnxt_ulp_put(struct bnxt_ulp *ulp) in bnxt_ulp_put() argument
251 atomic_dec(&ulp->ref_count); in bnxt_ulp_put()
264 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_stop() local
266 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_stop()
269 ops->ulp_stop(ulp->handle); in bnxt_ulp_stop()
283 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_start() local
285 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_start()
288 ops->ulp_start(ulp->handle); in bnxt_ulp_start()
302 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_sriov_cfg() local
305 ops = rcu_dereference(ulp->ulp_ops); in bnxt_ulp_sriov_cfg()
310 bnxt_ulp_get(ulp); in bnxt_ulp_sriov_cfg()
312 ops->ulp_sriov_config(ulp->handle, num_vfs); in bnxt_ulp_sriov_cfg()
313 bnxt_ulp_put(ulp); in bnxt_ulp_sriov_cfg()
327 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_shutdown() local
329 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_shutdown()
332 ops->ulp_shutdown(ulp->handle); in bnxt_ulp_shutdown()
345 struct bnxt_ulp *ulp = &edev->ulp_tbl[BNXT_ROCE_ULP]; in bnxt_ulp_irq_stop() local
347 if (!ulp->msix_requested) in bnxt_ulp_irq_stop()
350 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_irq_stop()
353 ops->ulp_irq_stop(ulp->handle); in bnxt_ulp_irq_stop()
366 struct bnxt_ulp *ulp = &edev->ulp_tbl[BNXT_ROCE_ULP]; in bnxt_ulp_irq_restart() local
369 if (!ulp->msix_requested) in bnxt_ulp_irq_restart()
372 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_irq_restart()
377 ent = kcalloc(ulp->msix_requested, sizeof(*ent), in bnxt_ulp_irq_restart()
383 ops->ulp_irq_restart(ulp->handle, ent); in bnxt_ulp_irq_restart()
400 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_async_events() local
402 ops = rcu_dereference(ulp->ulp_ops); in bnxt_ulp_async_events()
405 if (!ulp->async_events_bmap || in bnxt_ulp_async_events()
406 event_id > ulp->max_async_event_id) in bnxt_ulp_async_events()
411 if (test_bit(event_id, ulp->async_events_bmap)) in bnxt_ulp_async_events()
412 ops->ulp_async_notifier(ulp->handle, cmpl); in bnxt_ulp_async_events()
422 struct bnxt_ulp *ulp; in bnxt_register_async_events() local
427 ulp = &edev->ulp_tbl[ulp_id]; in bnxt_register_async_events()
428 ulp->async_events_bmap = events_bmap; in bnxt_register_async_events()
431 ulp->max_async_event_id = max_id; in bnxt_register_async_events()