event/octeontx2: add build infra and device probe
[dpdk.git] / drivers / event / octeontx2 / otx2_evdev.c
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2019 Marvell International Ltd.
3  */
4
5 #include <inttypes.h>
6
7 #include <rte_bus_pci.h>
8 #include <rte_common.h>
9 #include <rte_eal.h>
10 #include <rte_eventdev_pmd_pci.h>
11 #include <rte_pci.h>
12
13 #include "otx2_evdev.h"
14
15 static int
16 otx2_sso_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
17 {
18         return rte_event_pmd_pci_probe(pci_drv, pci_dev,
19                                        sizeof(struct otx2_sso_evdev),
20                                        otx2_sso_init);
21 }
22
23 static int
24 otx2_sso_remove(struct rte_pci_device *pci_dev)
25 {
26         return rte_event_pmd_pci_remove(pci_dev, otx2_sso_fini);
27 }
28
29 static const struct rte_pci_id pci_sso_map[] = {
30         {
31                 RTE_PCI_DEVICE(PCI_VENDOR_ID_CAVIUM,
32                                PCI_DEVID_OCTEONTX2_RVU_SSO_TIM_PF)
33         },
34         {
35                 .vendor_id = 0,
36         },
37 };
38
39 static struct rte_pci_driver pci_sso = {
40         .id_table = pci_sso_map,
41         .drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_IOVA_AS_VA,
42         .probe = otx2_sso_probe,
43         .remove = otx2_sso_remove,
44 };
45
46 int
47 otx2_sso_init(struct rte_eventdev *event_dev)
48 {
49         RTE_SET_USED(event_dev);
50         /* For secondary processes, the primary has done all the work */
51         if (rte_eal_process_type() != RTE_PROC_PRIMARY)
52                 return 0;
53
54         return 0;
55 }
56
57 int
58 otx2_sso_fini(struct rte_eventdev *event_dev)
59 {
60         RTE_SET_USED(event_dev);
61         /* For secondary processes, nothing to be done */
62         if (rte_eal_process_type() != RTE_PROC_PRIMARY)
63                 return 0;
64
65         return 0;
66 }
67
68 RTE_PMD_REGISTER_PCI(event_octeontx2, pci_sso);
69 RTE_PMD_REGISTER_PCI_TABLE(event_octeontx2, pci_sso_map);
70 RTE_PMD_REGISTER_KMOD_DEP(event_octeontx2, "vfio-pci");