MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ena_com_get_feature_ex

Function ena_com_get_feature_ex

dpdk/drivers/net/ena/base/ena_com.c:1027–1079  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1025}
1026
1027static int ena_com_get_feature_ex(struct ena_com_dev *ena_dev,
1028 struct ena_admin_get_feat_resp *get_resp,
1029 enum ena_admin_aq_feature_id feature_id,
1030 dma_addr_t control_buf_dma_addr,
1031 u32 control_buff_size,
1032 u8 feature_ver)
1033{
1034 struct ena_com_admin_queue *admin_queue;
1035 struct ena_admin_get_feat_cmd get_cmd;
1036 int ret;
1037
1038 if (!ena_com_check_supported_feature_id(ena_dev, feature_id)) {
1039 ena_trc_dbg(ena_dev, "Feature %d isn't supported\n", feature_id);
1040 return ENA_COM_UNSUPPORTED;
1041 }
1042
1043 memset(&get_cmd, 0x0, sizeof(get_cmd));
1044 admin_queue = &ena_dev->admin_queue;
1045
1046 get_cmd.aq_common_descriptor.opcode = ENA_ADMIN_GET_FEATURE;
1047
1048 if (control_buff_size)
1049 get_cmd.aq_common_descriptor.flags =
1050 ENA_ADMIN_AQ_COMMON_DESC_CTRL_DATA_INDIRECT_MASK;
1051 else
1052 get_cmd.aq_common_descriptor.flags = 0;
1053
1054 ret = ena_com_mem_addr_set(ena_dev,
1055 &get_cmd.control_buffer.address,
1056 control_buf_dma_addr);
1057 if (unlikely(ret)) {
1058 ena_trc_err(ena_dev, "Memory address set failed\n");
1059 return ret;
1060 }
1061
1062 get_cmd.control_buffer.length = control_buff_size;
1063 get_cmd.feat_common.feature_version = feature_ver;
1064 get_cmd.feat_common.feature_id = feature_id;
1065
1066 ret = ena_com_execute_admin_command(admin_queue,
1067 (struct ena_admin_aq_entry *)
1068 &get_cmd,
1069 sizeof(get_cmd),
1070 (struct ena_admin_acq_entry *)
1071 get_resp,
1072 sizeof(*get_resp));
1073
1074 if (unlikely(ret))
1075 ena_trc_err(ena_dev, "Failed to submit get_feature command %d error: %d\n",
1076 feature_id, ret);
1077
1078 return ret;
1079}
1080
1081static int ena_com_get_feature(struct ena_com_dev *ena_dev,
1082 struct ena_admin_get_feat_resp *get_resp,

Callers 5

ena_com_get_featureFunction · 0.70
ena_com_get_hash_ctrlFunction · 0.70

Calls 4

memsetFunction · 0.85
ena_com_mem_addr_setFunction · 0.70

Tested by

no test coverage detected