| 994 | } |
| 995 | |
| 996 | static int |
| 997 | dpaa_event_dev_create(const char *name, const char *params, struct rte_vdev_device *vdev) |
| 998 | { |
| 999 | struct rte_eventdev *eventdev; |
| 1000 | struct dpaa_eventdev *priv; |
| 1001 | |
| 1002 | eventdev = rte_event_pmd_vdev_init(name, |
| 1003 | sizeof(struct dpaa_eventdev), |
| 1004 | rte_socket_id(), vdev); |
| 1005 | if (eventdev == NULL) { |
| 1006 | DPAA_EVENTDEV_ERR("Failed to create eventdev vdev %s", name); |
| 1007 | goto fail; |
| 1008 | } |
| 1009 | priv = eventdev->data->dev_private; |
| 1010 | |
| 1011 | eventdev->dev_ops = &dpaa_eventdev_ops; |
| 1012 | eventdev->enqueue = dpaa_event_enqueue; |
| 1013 | eventdev->enqueue_burst = dpaa_event_enqueue_burst; |
| 1014 | |
| 1015 | if (dpaa_event_check_flags(params)) { |
| 1016 | eventdev->dequeue = dpaa_event_dequeue; |
| 1017 | eventdev->dequeue_burst = dpaa_event_dequeue_burst; |
| 1018 | } else { |
| 1019 | priv->intr_mode = 1; |
| 1020 | eventdev->dev_ops->timeout_ticks = |
| 1021 | dpaa_event_dequeue_timeout_ticks_intr; |
| 1022 | eventdev->dequeue = dpaa_event_dequeue_intr; |
| 1023 | eventdev->dequeue_burst = dpaa_event_dequeue_burst_intr; |
| 1024 | } |
| 1025 | eventdev->txa_enqueue = dpaa_eventdev_txa_enqueue; |
| 1026 | eventdev->txa_enqueue_same_dest = dpaa_eventdev_txa_enqueue_same_dest; |
| 1027 | |
| 1028 | RTE_LOG(INFO, PMD, "%s eventdev added", name); |
| 1029 | |
| 1030 | /* For secondary processes, the primary has done all the work */ |
| 1031 | if (rte_eal_process_type() != RTE_PROC_PRIMARY) |
| 1032 | goto done; |
| 1033 | |
| 1034 | priv->max_event_queues = DPAA_EVENT_MAX_QUEUES; |
| 1035 | |
| 1036 | done: |
| 1037 | event_dev_probing_finish(eventdev); |
| 1038 | return 0; |
| 1039 | fail: |
| 1040 | return -EFAULT; |
| 1041 | } |
| 1042 | |
| 1043 | static int |
| 1044 | dpaa_event_dev_probe(struct rte_vdev_device *vdev) |
no test coverage detected