| 2063 | } |
| 2064 | |
| 2065 | static int |
| 2066 | cpfl_init_ctrl_vport(struct cpfl_adapter_ext *adapter) |
| 2067 | { |
| 2068 | struct cpfl_vport *vport = &adapter->ctrl_vport; |
| 2069 | struct virtchnl2_create_vport *vport_info = |
| 2070 | (struct virtchnl2_create_vport *)adapter->ctrl_vport_recv_info; |
| 2071 | int i; |
| 2072 | |
| 2073 | vport->itf.adapter = adapter; |
| 2074 | vport->base.adapter = &adapter->base; |
| 2075 | vport->base.vport_id = vport_info->vport_id; |
| 2076 | |
| 2077 | for (i = 0; i < vport_info->chunks.num_chunks; i++) { |
| 2078 | if (vport_info->chunks.chunks[i].type == VIRTCHNL2_QUEUE_TYPE_TX) { |
| 2079 | vport->base.chunks_info.tx_start_qid = |
| 2080 | vport_info->chunks.chunks[i].start_queue_id; |
| 2081 | vport->base.chunks_info.tx_qtail_start = |
| 2082 | vport_info->chunks.chunks[i].qtail_reg_start; |
| 2083 | vport->base.chunks_info.tx_qtail_spacing = |
| 2084 | vport_info->chunks.chunks[i].qtail_reg_spacing; |
| 2085 | } else if (vport_info->chunks.chunks[i].type == VIRTCHNL2_QUEUE_TYPE_RX) { |
| 2086 | vport->base.chunks_info.rx_start_qid = |
| 2087 | vport_info->chunks.chunks[i].start_queue_id; |
| 2088 | vport->base.chunks_info.rx_qtail_start = |
| 2089 | vport_info->chunks.chunks[i].qtail_reg_start; |
| 2090 | vport->base.chunks_info.rx_qtail_spacing = |
| 2091 | vport_info->chunks.chunks[i].qtail_reg_spacing; |
| 2092 | } else { |
| 2093 | PMD_INIT_LOG(ERR, "Unsupported chunk type"); |
| 2094 | return -EINVAL; |
| 2095 | } |
| 2096 | } |
| 2097 | |
| 2098 | return 0; |
| 2099 | } |
| 2100 | |
| 2101 | static void |
| 2102 | cpfl_ctrl_path_close(struct cpfl_adapter_ext *adapter) |
no outgoing calls
no test coverage detected