X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fevent%2Fdlb2%2Fpf%2Fdlb2_pf.c;h=a6cd1780bfc752a3c9fddf82657afdf61eccfbac;hb=7e668e575b97df89a0c08366a5f6618c886a2926;hp=9310f7265ae126b416a9f711c4d15162e070ea1f;hpb=99f66f33c1906344ee107c07abef180164b17af1;p=dpdk.git diff --git a/drivers/event/dlb2/pf/dlb2_pf.c b/drivers/event/dlb2/pf/dlb2_pf.c index 9310f7265a..a6cd1780bf 100644 --- a/drivers/event/dlb2/pf/dlb2_pf.c +++ b/drivers/event/dlb2/pf/dlb2_pf.c @@ -150,6 +150,84 @@ dlb2_pf_domain_reset(struct dlb2_eventdev *dlb2) DLB2_LOG_ERR("dlb2_pf_reset_domain err %d", ret); } +static int +dlb2_pf_ldb_queue_create(struct dlb2_hw_dev *handle, + struct dlb2_create_ldb_queue_args *cfg) +{ + struct dlb2_dev *dlb2_dev = (struct dlb2_dev *)handle->pf_dev; + struct dlb2_cmd_response response = {0}; + int ret; + + DLB2_INFO(dev->dlb2_device, "Entering %s()\n", __func__); + + ret = dlb2_pf_create_ldb_queue(&dlb2_dev->hw, + handle->domain_id, + cfg, + &response); + + cfg->response = response; + + DLB2_INFO(dev->dlb2_device, "Exiting %s() with ret=%d\n", + __func__, ret); + + return ret; +} + +static int +dlb2_pf_get_sn_occupancy(struct dlb2_hw_dev *handle, + struct dlb2_get_sn_occupancy_args *args) +{ + struct dlb2_dev *dlb2_dev = (struct dlb2_dev *)handle->pf_dev; + struct dlb2_cmd_response response = {0}; + int ret; + + ret = dlb2_get_group_sequence_number_occupancy(&dlb2_dev->hw, + args->group); + + response.id = ret; + response.status = 0; + + args->response = response; + + return ret; +} + +static int +dlb2_pf_get_sn_allocation(struct dlb2_hw_dev *handle, + struct dlb2_get_sn_allocation_args *args) +{ + struct dlb2_dev *dlb2_dev = (struct dlb2_dev *)handle->pf_dev; + struct dlb2_cmd_response response = {0}; + int ret; + + ret = dlb2_get_group_sequence_numbers(&dlb2_dev->hw, args->group); + + response.id = ret; + response.status = 0; + + args->response = response; + + return ret; +} + +static int +dlb2_pf_set_sn_allocation(struct dlb2_hw_dev *handle, + struct dlb2_set_sn_allocation_args *args) +{ + struct dlb2_dev *dlb2_dev = (struct dlb2_dev *)handle->pf_dev; + struct dlb2_cmd_response response = {0}; + int ret; + + ret = dlb2_set_group_sequence_numbers(&dlb2_dev->hw, args->group, + args->num); + + response.status = 0; + + args->response = response; + + return ret; +} + static void dlb2_pf_iface_fn_ptrs_init(void) { @@ -161,6 +239,10 @@ dlb2_pf_iface_fn_ptrs_init(void) dlb2_iface_get_num_resources = dlb2_pf_get_num_resources; dlb2_iface_get_cq_poll_mode = dlb2_pf_get_cq_poll_mode; dlb2_iface_sched_domain_create = dlb2_pf_sched_domain_create; + dlb2_iface_ldb_queue_create = dlb2_pf_ldb_queue_create; + dlb2_iface_get_sn_allocation = dlb2_pf_get_sn_allocation; + dlb2_iface_set_sn_allocation = dlb2_pf_set_sn_allocation; + dlb2_iface_get_sn_occupancy = dlb2_pf_get_sn_occupancy; } /* PCI DEV HOOKS */