xref: /dpdk/drivers/common/qat/dev/qat_dev_gens.h (revision 59cda512d9b52df884a611b21cac24f05b4134d3)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2021 Intel Corporation
3  */
4 
5 #ifndef _QAT_DEV_GENS_H_
6 #define _QAT_DEV_GENS_H_
7 
8 #include "qat_device.h"
9 #include "qat_qp.h"
10 
11 #include <stdint.h>
12 
13 extern const struct qat_qp_hw_data qat_gen1_qps[QAT_MAX_SERVICES]
14 					 [ADF_MAX_QPS_ON_ANY_SERVICE];
15 
16 int
17 qat_dev_get_extra_size_gen1(void);
18 
19 const struct qat_qp_hw_data *
20 qat_qp_get_hw_data_gen1(struct qat_pci_device *dev,
21 		enum qat_service_type service_type, uint16_t qp_id);
22 
23 int
24 qat_qp_rings_per_service_gen1(struct qat_pci_device *qat_dev,
25 		enum qat_service_type service);
26 
27 void
28 qat_qp_csr_build_ring_base_gen1(void *io_addr,
29 		struct qat_queue *queue);
30 
31 void
32 qat_qp_adf_arb_enable_gen1(const struct qat_queue *txq,
33 		void *base_addr, rte_spinlock_t *lock);
34 
35 void
36 qat_qp_adf_arb_disable_gen1(const struct qat_queue *txq,
37 		void *base_addr, rte_spinlock_t *lock);
38 
39 void
40 qat_qp_adf_configure_queues_gen1(struct qat_qp *qp);
41 
42 void
43 qat_qp_csr_write_tail_gen1(struct qat_qp *qp, struct qat_queue *q);
44 
45 void
46 qat_qp_csr_write_head_gen1(struct qat_qp *qp, struct qat_queue *q,
47 		uint32_t new_head);
48 
49 void
50 qat_qp_csr_setup_gen1(struct qat_pci_device *qat_dev,
51 		void *io_addr, struct qat_qp *qp);
52 
53 int
54 qat_reset_ring_pairs_gen1(
55 		struct qat_pci_device *qat_pci_dev);
56 const struct
57 rte_mem_resource *qat_dev_get_transport_bar_gen1(
58 		struct rte_pci_device *pci_dev);
59 int
60 qat_dev_get_misc_bar_gen1(struct rte_mem_resource **mem_resource,
61 		struct rte_pci_device *pci_dev);
62 int
63 qat_dev_read_config_gen1(struct qat_pci_device *qat_dev);
64 
65 int
66 qat_reset_ring_pairs_gen4(struct qat_pci_device *qat_pci_dev);
67 
68 const struct rte_mem_resource *
69 qat_dev_get_transport_bar_gen4(struct rte_pci_device *pci_dev);
70 
71 int
72 qat_dev_get_misc_bar_gen4(struct rte_mem_resource **mem_resource,
73 		struct rte_pci_device *pci_dev);
74 
75 int
76 qat_dev_read_config_gen4(struct qat_pci_device *qat_dev);
77 
78 int
79 qat_dev_get_extra_size_gen4(void);
80 
81 int
82 qat_dev_get_slice_map_gen4(uint32_t *map __rte_unused,
83 	const struct rte_pci_device *pci_dev __rte_unused);
84 
85 int
86 qat_qp_rings_per_service_gen4(struct qat_pci_device *qat_dev,
87 		enum qat_service_type service);
88 
89 void
90 qat_qp_build_ring_base_gen4(void *io_addr,
91 			struct qat_queue *queue);
92 
93 void
94 qat_qp_adf_arb_enable_gen4(const struct qat_queue *txq,
95 			void *base_addr, rte_spinlock_t *lock);
96 
97 void
98 qat_qp_adf_arb_disable_gen4(const struct qat_queue *txq,
99 			void *base_addr, rte_spinlock_t *lock);
100 
101 void
102 qat_qp_adf_configure_queues_gen4(struct qat_qp *qp);
103 
104 void
105 qat_qp_csr_write_tail_gen4(struct qat_qp *qp, struct qat_queue *q);
106 
107 void
108 qat_qp_csr_write_head_gen4(struct qat_qp *qp, struct qat_queue *q,
109 			uint32_t new_head);
110 
111 void
112 qat_qp_csr_setup_gen4(struct qat_pci_device *qat_dev,
113 			void *io_addr, struct qat_qp *qp);
114 
115 const struct qat_qp_hw_data *
116 qat_qp_get_hw_data_gen4(struct qat_pci_device *qat_dev,
117 		enum qat_service_type service_type, uint16_t qp_id);
118 
119 #endif
120