| 155 | } |
| 156 | |
| 157 | static int |
| 158 | dlb2_hw_query_resources(struct dlb2_eventdev *dlb2) |
| 159 | { |
| 160 | struct dlb2_hw_dev *handle = &dlb2->qm_instance; |
| 161 | int num_ldb_ports; |
| 162 | int ret; |
| 163 | |
| 164 | /* Query driver resources provisioned for this device */ |
| 165 | |
| 166 | ret = dlb2_iface_get_num_resources(handle, |
| 167 | &dlb2->hw_rsrc_query_results); |
| 168 | if (ret) { |
| 169 | DLB2_LOG_ERR("ioctl get dlb2 num resources, err=%d", ret); |
| 170 | return ret; |
| 171 | } |
| 172 | |
| 173 | /* Complete filling in device resource info returned to evdev app, |
| 174 | * overriding any default values. |
| 175 | * The capabilities (CAPs) were set at compile time. |
| 176 | */ |
| 177 | |
| 178 | num_ldb_ports = dlb2->hw_rsrc_query_results.num_ldb_ports; |
| 179 | |
| 180 | evdev_dlb2_default_info.max_event_queues = |
| 181 | dlb2->hw_rsrc_query_results.num_ldb_queues; |
| 182 | |
| 183 | evdev_dlb2_default_info.max_event_ports = num_ldb_ports; |
| 184 | |
| 185 | evdev_dlb2_default_info.max_single_link_event_port_queue_pairs = |
| 186 | dlb2->hw_rsrc_query_results.num_dir_ports; |
| 187 | |
| 188 | if (dlb2->version == DLB2_HW_V2_5) { |
| 189 | evdev_dlb2_default_info.max_num_events = |
| 190 | dlb2->hw_rsrc_query_results.num_credits; |
| 191 | } else { |
| 192 | evdev_dlb2_default_info.max_num_events = |
| 193 | dlb2->hw_rsrc_query_results.num_ldb_credits; |
| 194 | } |
| 195 | /* Save off values used when creating the scheduling domain. */ |
| 196 | |
| 197 | handle->info.num_sched_domains = |
| 198 | dlb2->hw_rsrc_query_results.num_sched_domains; |
| 199 | |
| 200 | if (dlb2->version == DLB2_HW_V2_5) { |
| 201 | handle->info.hw_rsrc_max.nb_events_limit = |
| 202 | dlb2->hw_rsrc_query_results.num_credits; |
| 203 | } else { |
| 204 | handle->info.hw_rsrc_max.nb_events_limit = |
| 205 | dlb2->hw_rsrc_query_results.num_ldb_credits; |
| 206 | } |
| 207 | handle->info.hw_rsrc_max.num_queues = |
| 208 | dlb2->hw_rsrc_query_results.num_ldb_queues + |
| 209 | dlb2->hw_rsrc_query_results.num_dir_ports; |
| 210 | |
| 211 | handle->info.hw_rsrc_max.num_ldb_queues = |
| 212 | dlb2->hw_rsrc_query_results.num_ldb_queues; |
| 213 | |
| 214 | handle->info.hw_rsrc_max.num_ldb_ports = num_ldb_ports; |
no outgoing calls
no test coverage detected