Lines Matching refs:mleq

888 mlxcx_eq_alloc_dma(mlxcx_t *mlxp, mlxcx_event_queue_t *mleq)  in mlxcx_eq_alloc_dma()  argument
895 VERIFY0(mleq->mleq_state & MLXCX_EQ_ALLOC); in mlxcx_eq_alloc_dma()
897 mleq->mleq_entshift = mlxp->mlx_props.mldp_eq_size_shift; in mlxcx_eq_alloc_dma()
898 mleq->mleq_nents = (1 << mleq->mleq_entshift); in mlxcx_eq_alloc_dma()
899 sz = mleq->mleq_nents * sizeof (mlxcx_eventq_ent_t); in mlxcx_eq_alloc_dma()
905 ret = mlxcx_dma_alloc(mlxp, &mleq->mleq_dma, &attr, &acc, in mlxcx_eq_alloc_dma()
912 mleq->mleq_ent = (mlxcx_eventq_ent_t *)mleq->mleq_dma.mxdb_va; in mlxcx_eq_alloc_dma()
914 for (i = 0; i < mleq->mleq_nents; ++i) in mlxcx_eq_alloc_dma()
915 mleq->mleq_ent[i].mleqe_owner = MLXCX_EQ_OWNER_INIT; in mlxcx_eq_alloc_dma()
917 mleq->mleq_state |= MLXCX_EQ_ALLOC; in mlxcx_eq_alloc_dma()
923 mlxcx_eq_rele_dma(mlxcx_t *mlxp, mlxcx_event_queue_t *mleq) in mlxcx_eq_rele_dma() argument
925 VERIFY(mleq->mleq_state & MLXCX_EQ_ALLOC); in mlxcx_eq_rele_dma()
926 if (mleq->mleq_state & MLXCX_EQ_CREATED) in mlxcx_eq_rele_dma()
927 VERIFY(mleq->mleq_state & MLXCX_EQ_DESTROYED); in mlxcx_eq_rele_dma()
929 mlxcx_dma_free(&mleq->mleq_dma); in mlxcx_eq_rele_dma()
930 mleq->mleq_ent = NULL; in mlxcx_eq_rele_dma()
932 mleq->mleq_state &= ~MLXCX_EQ_ALLOC; in mlxcx_eq_rele_dma()
1037 mlxcx_event_queue_t *mleq; in mlxcx_teardown_eqs() local
1041 mleq = &mlxp->mlx_eqs[i]; in mlxcx_teardown_eqs()
1042 mutex_enter(&mleq->mleq_mtx); in mlxcx_teardown_eqs()
1043 if ((mleq->mleq_state & MLXCX_EQ_CREATED) && in mlxcx_teardown_eqs()
1044 !(mleq->mleq_state & MLXCX_EQ_DESTROYED)) { in mlxcx_teardown_eqs()
1045 if (!mlxcx_cmd_destroy_eq(mlxp, mleq)) { in mlxcx_teardown_eqs()
1048 i, mleq->mleq_num); in mlxcx_teardown_eqs()
1051 if (mleq->mleq_state & MLXCX_EQ_ALLOC) { in mlxcx_teardown_eqs()
1052 mlxcx_eq_rele_dma(mlxp, mleq); in mlxcx_teardown_eqs()
1054 mutex_exit(&mleq->mleq_mtx); in mlxcx_teardown_eqs()
2391 mlxcx_event_queue_t *mleq = &mlxp->mlx_eqs[vec]; in mlxcx_setup_eq() local
2393 mutex_enter(&mleq->mleq_mtx); in mlxcx_setup_eq()
2394 if (!mlxcx_eq_alloc_dma(mlxp, mleq)) { in mlxcx_setup_eq()
2396 mutex_exit(&mleq->mleq_mtx); in mlxcx_setup_eq()
2399 mleq->mleq_mlx = mlxp; in mlxcx_setup_eq()
2400 mleq->mleq_uar = &mlxp->mlx_uar; in mlxcx_setup_eq()
2401 mleq->mleq_events = events; in mlxcx_setup_eq()
2402 mleq->mleq_intr_index = vec; in mlxcx_setup_eq()
2404 if (!mlxcx_cmd_create_eq(mlxp, mleq)) { in mlxcx_setup_eq()
2406 mutex_exit(&mleq->mleq_mtx); in mlxcx_setup_eq()
2415 mutex_exit(&mleq->mleq_mtx); in mlxcx_setup_eq()
2418 mleq->mleq_state |= MLXCX_EQ_INTR_ENABLED; in mlxcx_setup_eq()
2419 mleq->mleq_state |= MLXCX_EQ_ATTACHING; in mlxcx_setup_eq()
2420 mlxcx_arm_eq(mlxp, mleq); in mlxcx_setup_eq()
2421 mutex_exit(&mleq->mleq_mtx); in mlxcx_setup_eq()
2430 mlxcx_event_queue_t *mleq; in mlxcx_eq_set_attached() local
2433 mleq = &mlxp->mlx_eqs[vec]; in mlxcx_eq_set_attached()
2435 mutex_enter(&mleq->mleq_mtx); in mlxcx_eq_set_attached()
2436 mleq->mleq_state &= ~MLXCX_EQ_ATTACHING; in mlxcx_eq_set_attached()
2437 mutex_exit(&mleq->mleq_mtx); in mlxcx_eq_set_attached()
2487 mlxcx_event_queue_t *mleq; in mlxcx_setup_eqs() local
2492 mleq = &mlxp->mlx_eqs[i]; in mlxcx_setup_eqs()
2493 mutex_enter(&mleq->mleq_mtx); in mlxcx_setup_eqs()
2494 if (!mlxcx_eq_alloc_dma(mlxp, mleq)) { in mlxcx_setup_eqs()
2495 mutex_exit(&mleq->mleq_mtx); in mlxcx_setup_eqs()
2498 mleq->mleq_uar = &mlxp->mlx_uar; in mlxcx_setup_eqs()
2499 if (!mlxcx_cmd_create_eq(mlxp, mleq)) { in mlxcx_setup_eqs()
2501 mutex_exit(&mleq->mleq_mtx); in mlxcx_setup_eqs()
2507 mutex_exit(&mleq->mleq_mtx); in mlxcx_setup_eqs()
2511 mutex_exit(&mleq->mleq_mtx); in mlxcx_setup_eqs()
2514 mleq->mleq_state |= MLXCX_EQ_INTR_ENABLED; in mlxcx_setup_eqs()
2515 mlxcx_arm_eq(mlxp, mleq); in mlxcx_setup_eqs()
2516 mutex_exit(&mleq->mleq_mtx); in mlxcx_setup_eqs()