| 4578 | } |
| 4579 | |
| 4580 | int |
| 4581 | dlb2_primary_eventdev_probe(struct rte_eventdev *dev, |
| 4582 | const char *name, |
| 4583 | struct dlb2_devargs *dlb2_args) |
| 4584 | { |
| 4585 | struct dlb2_eventdev *dlb2; |
| 4586 | int err, i; |
| 4587 | |
| 4588 | dlb2 = dev->data->dev_private; |
| 4589 | |
| 4590 | dlb2->event_dev = dev; /* backlink */ |
| 4591 | |
| 4592 | evdev_dlb2_default_info.driver_name = name; |
| 4593 | |
| 4594 | dlb2->max_num_events_override = dlb2_args->max_num_events; |
| 4595 | dlb2->num_dir_credits_override = dlb2_args->num_dir_credits_override; |
| 4596 | dlb2->poll_interval = dlb2_args->poll_interval; |
| 4597 | dlb2->sw_credit_quanta = dlb2_args->sw_credit_quanta; |
| 4598 | dlb2->hw_credit_quanta = dlb2_args->hw_credit_quanta; |
| 4599 | dlb2->default_depth_thresh = dlb2_args->default_depth_thresh; |
| 4600 | dlb2->vector_opts_enabled = dlb2_args->vector_opts_enabled; |
| 4601 | dlb2->enable_cq_weight = dlb2_args->enable_cq_weight; |
| 4602 | |
| 4603 | |
| 4604 | if (dlb2_args->max_cq_depth != 0) |
| 4605 | dlb2->max_cq_depth = dlb2_args->max_cq_depth; |
| 4606 | else |
| 4607 | dlb2->max_cq_depth = DLB2_DEFAULT_CQ_DEPTH; |
| 4608 | |
| 4609 | evdev_dlb2_default_info.max_event_port_dequeue_depth = dlb2->max_cq_depth; |
| 4610 | |
| 4611 | if (dlb2_args->max_enq_depth != 0) |
| 4612 | dlb2->max_enq_depth = dlb2_args->max_enq_depth; |
| 4613 | else |
| 4614 | dlb2->max_enq_depth = DLB2_DEFAULT_CQ_DEPTH; |
| 4615 | |
| 4616 | evdev_dlb2_default_info.max_event_port_enqueue_depth = |
| 4617 | dlb2->max_enq_depth; |
| 4618 | |
| 4619 | dlb2_init_queue_depth_thresholds(dlb2, |
| 4620 | dlb2_args->qid_depth_thresholds.val); |
| 4621 | |
| 4622 | dlb2_init_port_cos(dlb2, |
| 4623 | dlb2_args->port_cos.cos_id); |
| 4624 | |
| 4625 | dlb2_init_cos_bw(dlb2, |
| 4626 | &dlb2_args->cos_bw); |
| 4627 | |
| 4628 | err = dlb2_iface_open(&dlb2->qm_instance, name); |
| 4629 | if (err < 0) { |
| 4630 | DLB2_LOG_ERR("could not open event hardware device, err=%d", |
| 4631 | err); |
| 4632 | return err; |
| 4633 | } |
| 4634 | |
| 4635 | err = dlb2_iface_get_device_version(&dlb2->qm_instance, |
| 4636 | &dlb2->revision); |
| 4637 | if (err < 0) { |
no test coverage detected