Lines Matching refs:ulp
33 struct bnxt_ulp *ulp; in bnxt_register_dev() local
39 ulp = &edev->ulp_tbl[ulp_id]; in bnxt_register_dev()
40 if (rcu_access_pointer(ulp->ulp_ops)) { in bnxt_register_dev()
53 atomic_set(&ulp->ref_count, 0); in bnxt_register_dev()
54 ulp->handle = handle; in bnxt_register_dev()
55 rcu_assign_pointer(ulp->ulp_ops, ulp_ops); in bnxt_register_dev()
69 struct bnxt_ulp *ulp; in bnxt_unregister_dev() local
76 ulp = &edev->ulp_tbl[ulp_id]; in bnxt_unregister_dev()
77 if (!rcu_access_pointer(ulp->ulp_ops)) { in bnxt_unregister_dev()
81 if (ulp_id == BNXT_ROCE_ULP && ulp->msix_requested) in bnxt_unregister_dev()
84 if (ulp->max_async_event_id) in bnxt_unregister_dev()
87 RCU_INIT_POINTER(ulp->ulp_ops, NULL); in bnxt_unregister_dev()
89 ulp->max_async_event_id = 0; in bnxt_unregister_dev()
90 ulp->async_events_bmap = NULL; in bnxt_unregister_dev()
91 while (atomic_read(&ulp->ref_count) != 0 && i < 10) { in bnxt_unregister_dev()
271 static void bnxt_ulp_get(struct bnxt_ulp *ulp) in bnxt_ulp_get() argument
273 atomic_inc(&ulp->ref_count); in bnxt_ulp_get()
276 static void bnxt_ulp_put(struct bnxt_ulp *ulp) in bnxt_ulp_put() argument
278 atomic_dec(&ulp->ref_count); in bnxt_ulp_put()
292 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_stop() local
294 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_stop()
297 ops->ulp_stop(ulp->handle); in bnxt_ulp_stop()
316 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_start() local
318 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_start()
321 ops->ulp_start(ulp->handle); in bnxt_ulp_start()
335 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_sriov_cfg() local
338 ops = rcu_dereference(ulp->ulp_ops); in bnxt_ulp_sriov_cfg()
343 bnxt_ulp_get(ulp); in bnxt_ulp_sriov_cfg()
345 ops->ulp_sriov_config(ulp->handle, num_vfs); in bnxt_ulp_sriov_cfg()
346 bnxt_ulp_put(ulp); in bnxt_ulp_sriov_cfg()
360 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_shutdown() local
362 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_shutdown()
365 ops->ulp_shutdown(ulp->handle); in bnxt_ulp_shutdown()
378 struct bnxt_ulp *ulp = &edev->ulp_tbl[BNXT_ROCE_ULP]; in bnxt_ulp_irq_stop() local
380 if (!ulp->msix_requested) in bnxt_ulp_irq_stop()
383 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_irq_stop()
386 ops->ulp_irq_stop(ulp->handle); in bnxt_ulp_irq_stop()
399 struct bnxt_ulp *ulp = &edev->ulp_tbl[BNXT_ROCE_ULP]; in bnxt_ulp_irq_restart() local
402 if (!ulp->msix_requested) in bnxt_ulp_irq_restart()
405 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_irq_restart()
410 ent = kcalloc(ulp->msix_requested, sizeof(*ent), in bnxt_ulp_irq_restart()
416 ops->ulp_irq_restart(ulp->handle, ent); in bnxt_ulp_irq_restart()
433 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_async_events() local
435 ops = rcu_dereference(ulp->ulp_ops); in bnxt_ulp_async_events()
438 if (!ulp->async_events_bmap || in bnxt_ulp_async_events()
439 event_id > ulp->max_async_event_id) in bnxt_ulp_async_events()
444 if (test_bit(event_id, ulp->async_events_bmap)) in bnxt_ulp_async_events()
445 ops->ulp_async_notifier(ulp->handle, cmpl); in bnxt_ulp_async_events()
455 struct bnxt_ulp *ulp; in bnxt_register_async_events() local
460 ulp = &edev->ulp_tbl[ulp_id]; in bnxt_register_async_events()
461 ulp->async_events_bmap = events_bmap; in bnxt_register_async_events()
464 ulp->max_async_event_id = max_id; in bnxt_register_async_events()