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()
52 atomic_set(&ulp->ref_count, 0); in bnxt_register_dev()
53 ulp->handle = handle; in bnxt_register_dev()
54 rcu_assign_pointer(ulp->ulp_ops, ulp_ops); in bnxt_register_dev()
68 struct bnxt_ulp *ulp; in bnxt_unregister_dev() local
75 ulp = &edev->ulp_tbl[ulp_id]; in bnxt_unregister_dev()
76 if (!rcu_access_pointer(ulp->ulp_ops)) { in bnxt_unregister_dev()
80 if (ulp_id == BNXT_ROCE_ULP && ulp->msix_requested) in bnxt_unregister_dev()
83 if (ulp->max_async_event_id) in bnxt_unregister_dev()
86 RCU_INIT_POINTER(ulp->ulp_ops, NULL); in bnxt_unregister_dev()
88 ulp->max_async_event_id = 0; in bnxt_unregister_dev()
89 ulp->async_events_bmap = NULL; in bnxt_unregister_dev()
90 while (atomic_read(&ulp->ref_count) != 0 && i < 10) { in bnxt_unregister_dev()
250 static void bnxt_ulp_get(struct bnxt_ulp *ulp) in bnxt_ulp_get() argument
252 atomic_inc(&ulp->ref_count); in bnxt_ulp_get()
255 static void bnxt_ulp_put(struct bnxt_ulp *ulp) in bnxt_ulp_put() argument
257 atomic_dec(&ulp->ref_count); in bnxt_ulp_put()
270 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_stop() local
272 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_stop()
275 ops->ulp_stop(ulp->handle); in bnxt_ulp_stop()
289 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_start() local
291 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_start()
294 ops->ulp_start(ulp->handle); in bnxt_ulp_start()
308 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_sriov_cfg() local
311 ops = rcu_dereference(ulp->ulp_ops); in bnxt_ulp_sriov_cfg()
316 bnxt_ulp_get(ulp); in bnxt_ulp_sriov_cfg()
318 ops->ulp_sriov_config(ulp->handle, num_vfs); in bnxt_ulp_sriov_cfg()
319 bnxt_ulp_put(ulp); in bnxt_ulp_sriov_cfg()
333 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_shutdown() local
335 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_shutdown()
338 ops->ulp_shutdown(ulp->handle); in bnxt_ulp_shutdown()
351 struct bnxt_ulp *ulp = &edev->ulp_tbl[BNXT_ROCE_ULP]; in bnxt_ulp_irq_stop() local
353 if (!ulp->msix_requested) in bnxt_ulp_irq_stop()
356 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_irq_stop()
359 ops->ulp_irq_stop(ulp->handle); in bnxt_ulp_irq_stop()
372 struct bnxt_ulp *ulp = &edev->ulp_tbl[BNXT_ROCE_ULP]; in bnxt_ulp_irq_restart() local
375 if (!ulp->msix_requested) in bnxt_ulp_irq_restart()
378 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_irq_restart()
383 ent = kcalloc(ulp->msix_requested, sizeof(*ent), in bnxt_ulp_irq_restart()
389 ops->ulp_irq_restart(ulp->handle, ent); in bnxt_ulp_irq_restart()
406 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_async_events() local
408 ops = rcu_dereference(ulp->ulp_ops); in bnxt_ulp_async_events()
411 if (!ulp->async_events_bmap || in bnxt_ulp_async_events()
412 event_id > ulp->max_async_event_id) in bnxt_ulp_async_events()
417 if (test_bit(event_id, ulp->async_events_bmap)) in bnxt_ulp_async_events()
418 ops->ulp_async_notifier(ulp->handle, cmpl); in bnxt_ulp_async_events()
428 struct bnxt_ulp *ulp; in bnxt_register_async_events() local
433 ulp = &edev->ulp_tbl[ulp_id]; in bnxt_register_async_events()
434 ulp->async_events_bmap = events_bmap; in bnxt_register_async_events()
437 ulp->max_async_event_id = max_id; in bnxt_register_async_events()