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()
260 static void bnxt_ulp_get(struct bnxt_ulp *ulp) in bnxt_ulp_get() argument
262 atomic_inc(&ulp->ref_count); in bnxt_ulp_get()
265 static void bnxt_ulp_put(struct bnxt_ulp *ulp) in bnxt_ulp_put() argument
267 atomic_dec(&ulp->ref_count); in bnxt_ulp_put()
281 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_stop() local
283 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_stop()
286 ops->ulp_stop(ulp->handle); in bnxt_ulp_stop()
305 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_start() local
307 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_start()
310 ops->ulp_start(ulp->handle); in bnxt_ulp_start()
324 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_sriov_cfg() local
327 ops = rcu_dereference(ulp->ulp_ops); in bnxt_ulp_sriov_cfg()
332 bnxt_ulp_get(ulp); in bnxt_ulp_sriov_cfg()
334 ops->ulp_sriov_config(ulp->handle, num_vfs); in bnxt_ulp_sriov_cfg()
335 bnxt_ulp_put(ulp); in bnxt_ulp_sriov_cfg()
349 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_shutdown() local
351 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_shutdown()
354 ops->ulp_shutdown(ulp->handle); in bnxt_ulp_shutdown()
367 struct bnxt_ulp *ulp = &edev->ulp_tbl[BNXT_ROCE_ULP]; in bnxt_ulp_irq_stop() local
369 if (!ulp->msix_requested) in bnxt_ulp_irq_stop()
372 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_irq_stop()
375 ops->ulp_irq_stop(ulp->handle); in bnxt_ulp_irq_stop()
388 struct bnxt_ulp *ulp = &edev->ulp_tbl[BNXT_ROCE_ULP]; in bnxt_ulp_irq_restart() local
391 if (!ulp->msix_requested) in bnxt_ulp_irq_restart()
394 ops = rtnl_dereference(ulp->ulp_ops); in bnxt_ulp_irq_restart()
399 ent = kcalloc(ulp->msix_requested, sizeof(*ent), in bnxt_ulp_irq_restart()
405 ops->ulp_irq_restart(ulp->handle, ent); in bnxt_ulp_irq_restart()
422 struct bnxt_ulp *ulp = &edev->ulp_tbl[i]; in bnxt_ulp_async_events() local
424 ops = rcu_dereference(ulp->ulp_ops); in bnxt_ulp_async_events()
427 if (!ulp->async_events_bmap || in bnxt_ulp_async_events()
428 event_id > ulp->max_async_event_id) in bnxt_ulp_async_events()
433 if (test_bit(event_id, ulp->async_events_bmap)) in bnxt_ulp_async_events()
434 ops->ulp_async_notifier(ulp->handle, cmpl); in bnxt_ulp_async_events()
444 struct bnxt_ulp *ulp; in bnxt_register_async_events() local
449 ulp = &edev->ulp_tbl[ulp_id]; in bnxt_register_async_events()
450 ulp->async_events_bmap = events_bmap; in bnxt_register_async_events()
453 ulp->max_async_event_id = max_id; in bnxt_register_async_events()