Lines Matching refs:ena
46 ena_release_cmd_ctx(ena_t *ena, ena_cmd_ctx_t *ctx) in ena_release_cmd_ctx() argument
51 mutex_enter(&ena->ena_aq.ea_sq_lock); in ena_release_cmd_ctx()
58 list_remove(&ena->ena_aq.ea_cmd_ctxs_used, ctx); in ena_release_cmd_ctx()
59 list_insert_tail(&ena->ena_aq.ea_cmd_ctxs_free, ctx); in ena_release_cmd_ctx()
60 ena->ena_aq.ea_pending_cmds--; in ena_release_cmd_ctx()
61 mutex_exit(&ena->ena_aq.ea_sq_lock); in ena_release_cmd_ctx()
65 ena_release_all_cmd_ctx(ena_t *ena) in ena_release_all_cmd_ctx() argument
67 ena_adminq_t *aq = &ena->ena_aq; in ena_release_all_cmd_ctx()
80 ena_create_cmd_ctx(ena_t *ena) in ena_create_cmd_ctx() argument
82 ena_adminq_t *aq = &ena->ena_aq; in ena_create_cmd_ctx()
112 ena_admin_submit_cmd(ena_t *ena, enahw_cmd_desc_t *cmd, enahw_resp_desc_t *resp, in ena_admin_submit_cmd() argument
116 ena_adminq_t *aq = &ena->ena_aq; in ena_admin_submit_cmd()
155 ena_hw_abs_write32(ena, sq->eas_dbaddr, sq->eas_tail); in ena_admin_submit_cmd()
165 ena_admin_read_resp(ena_t *ena, enahw_resp_desc_t *hwresp) in ena_admin_read_resp() argument
167 ena_adminq_t *aq = &ena->ena_aq; in ena_admin_read_resp()
200 ena_admin_process_responses(ena_t *ena) in ena_admin_process_responses() argument
202 ena_adminq_t *aq = &ena->ena_aq; in ena_admin_process_responses()
214 ena_admin_read_resp(ena, hwresp); in ena_admin_process_responses()
235 ena_admin_poll_for_resp(ena_t *ena, ena_cmd_ctx_t *ctx) in ena_admin_poll_for_resp() argument
238 hrtime_t expire = gethrtime() + ena->ena_aq.ea_cmd_timeout_ns; in ena_admin_poll_for_resp()
241 ena_admin_process_responses(ena); in ena_admin_poll_for_resp()
266 ena_err(ena, "timed out waiting for admin response"); in ena_admin_poll_for_resp()
267 ena_trigger_reset(ena, ENAHW_RESET_ADMIN_TO); in ena_admin_poll_for_resp()
272 ret = enahw_resp_status_to_errno(ena, ctx->ectx_resp->erd_status); in ena_admin_poll_for_resp()
273 ena_release_cmd_ctx(ena, ctx); in ena_admin_poll_for_resp()
278 ena_free_host_info(ena_t *ena) in ena_free_host_info() argument
280 ena_dma_free(&ena->ena_host_info); in ena_free_host_info()
284 ena_init_host_info(ena_t *ena) in ena_init_host_info() argument
296 hi_dma = &ena->ena_host_info; in ena_init_host_info()
307 if (!ena_dma_alloc(ena, hi_dma, &conf, 4096)) { in ena_init_host_info()
308 ena_err(ena, "failed to allocate DMA for host info"); in ena_init_host_info()
319 if (ddi_prop_lookup_int_array(DDI_DEV_T_ANY, ena->ena_dip, in ena_init_host_info()
411 ena_set_dma_addr(ena, hi_dma->edb_cookie->dmac_laddress, in ena_init_host_info()
436 ret = ena_set_feature(ena, &cmd, &resp, ENAHW_FEAT_HOST_ATTR_CONFIG, in ena_init_host_info()
439 ena_err(ena, "failed to set host attributes: %d", ret); in ena_init_host_info()
448 ena_create_cq(ena_t *ena, uint16_t num_descs, uint64_t phys_addr, in ena_create_cq() argument
470 ena_set_dma_addr(ena, phys_addr, &cmd_cq->ecq_addr); in ena_create_cq()
472 if ((ret = ena_admin_submit_cmd(ena, &cmd, &resp, &ctx)) != 0) { in ena_create_cq()
473 ena_err(ena, "failed to submit Create CQ command: %d", ret); in ena_create_cq()
477 if ((ret = ena_admin_poll_for_resp(ena, ctx)) != 0) { in ena_create_cq()
478 ena_err(ena, "failed to Create CQ: %d", ret); in ena_create_cq()
483 *unmask_addr = (uint32_t *)(ena->ena_reg_base + in ena_create_cq()
487 *numanode = (uint32_t *)(ena->ena_reg_base + in ena_create_cq()
503 ena_destroy_cq(ena_t *ena, uint16_t hw_idx) in ena_destroy_cq() argument
515 if ((ret = ena_admin_submit_cmd(ena, &cmd, &resp, &ctx)) != 0) { in ena_destroy_cq()
516 ena_err(ena, "failed to submit Destroy CQ command: %d", ret); in ena_destroy_cq()
520 if ((ret = ena_admin_poll_for_resp(ena, ctx)) != 0) { in ena_destroy_cq()
521 ena_err(ena, "failed to Destroy CQ: %d", ret); in ena_destroy_cq()
529 ena_create_sq(ena_t *ena, uint16_t num_descs, uint64_t phys_addr, in ena_create_sq() argument
542 ena_err(ena, "the number of descs must be a power of 2, but " in ena_create_sq()
568 ena_set_dma_addr(ena, phys_addr, &cmd_sq->ecsq_base); in ena_create_sq()
570 if ((ret = ena_admin_submit_cmd(ena, &cmd, &resp, &ctx)) != 0) { in ena_create_sq()
571 ena_err(ena, "failed to submit Create SQ command: %d", ret); in ena_create_sq()
575 if ((ret = ena_admin_poll_for_resp(ena, ctx)) != 0) { in ena_create_sq()
576 ena_err(ena, "failed to Create SQ: %d", ret); in ena_create_sq()
581 *db_addr = (uint32_t *)(ena->ena_reg_base + in ena_create_sq()
587 ena_destroy_sq(ena_t *ena, uint16_t hw_idx, bool is_tx) in ena_destroy_sq() argument
603 if ((ret = ena_admin_submit_cmd(ena, &cmd, &resp, &ctx)) != 0) { in ena_destroy_sq()
604 ena_err(ena, "failed to submit Destroy SQ command: %d", ret); in ena_destroy_sq()
608 if ((ret = ena_admin_poll_for_resp(ena, ctx)) != 0) { in ena_destroy_sq()
609 ena_err(ena, "failed Destroy SQ: %d", ret); in ena_destroy_sq()
617 ena_set_feature(ena_t *ena, enahw_cmd_desc_t *cmd, enahw_resp_desc_t *resp, in ena_set_feature() argument
624 if (!ena_is_feat_avail(ena, feat_id)) { in ena_set_feature()
625 ena_err(ena, "attempted to set unsupported feature: 0x%x %d" in ena_set_feature()
626 " (0x%x)", feat_id, feat_ver, ena->ena_supported_features); in ena_set_feature()
635 if ((ret = ena_admin_submit_cmd(ena, cmd, resp, &ctx)) != 0) { in ena_set_feature()
636 ena_err(ena, "failed to submit Set Feature command: %d", ret); in ena_set_feature()
640 return (ena_admin_poll_for_resp(ena, ctx)); in ena_set_feature()
644 ena_get_feature(ena_t *ena, enahw_resp_desc_t *resp, in ena_get_feature() argument
652 if (!ena_is_feat_avail(ena, feat_id)) { in ena_get_feature()
662 if ((ret = ena_admin_submit_cmd(ena, &cmd, resp, &ctx)) != 0) { in ena_get_feature()
663 ena_err(ena, "failed to submit Get Feature command: %d", ret); in ena_get_feature()
667 return (ena_admin_poll_for_resp(ena, ctx)); in ena_get_feature()
671 ena_admin_get_basic_stats(ena_t *ena, enahw_resp_desc_t *resp) in ena_admin_get_basic_stats() argument
685 if ((ret = ena_admin_submit_cmd(ena, &cmd, resp, &ctx)) != 0) { in ena_admin_get_basic_stats()
686 ena_err(ena, "failed to submit Get Basic Stats command: %d", in ena_admin_get_basic_stats()
691 if ((ret = ena_admin_poll_for_resp(ena, ctx)) != 0) { in ena_admin_get_basic_stats()
692 ena_err(ena, "failed to Get Basic Stats: %d", ret); in ena_admin_get_basic_stats()
700 ena_admin_get_eni_stats(ena_t *ena, enahw_resp_desc_t *resp) in ena_admin_get_eni_stats() argument
714 if ((ret = ena_admin_submit_cmd(ena, &cmd, resp, &ctx)) != 0) { in ena_admin_get_eni_stats()
715 ena_err(ena, "failed to submit Get ENI Stats command: %d", ret); in ena_admin_get_eni_stats()
719 if ((ret = ena_admin_poll_for_resp(ena, ctx)) != 0) { in ena_admin_get_eni_stats()
720 ena_err(ena, "failed to Get ENI Stats: %d", ret); in ena_admin_get_eni_stats()