xref: /openbmc/linux/include/uapi/misc/uacce/hisi_qm.h (revision c832da79)
19e00df71SZhangfei Gao /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
29e00df71SZhangfei Gao #ifndef _UAPI_HISI_QM_H
39e00df71SZhangfei Gao #define _UAPI_HISI_QM_H
49e00df71SZhangfei Gao 
59e00df71SZhangfei Gao #include <linux/types.h>
69e00df71SZhangfei Gao 
79e00df71SZhangfei Gao /**
89e00df71SZhangfei Gao  * struct hisi_qp_ctx - User data for hisi qp.
99e00df71SZhangfei Gao  * @id: qp_index return to user space
109e00df71SZhangfei Gao  * @qc_type: Accelerator algorithm type
119e00df71SZhangfei Gao  */
129e00df71SZhangfei Gao struct hisi_qp_ctx {
139e00df71SZhangfei Gao 	__u16 id;
149e00df71SZhangfei Gao 	__u16 qc_type;
159e00df71SZhangfei Gao };
169e00df71SZhangfei Gao 
17*c832da79SWeili Qian /**
18*c832da79SWeili Qian  * struct hisi_qp_info - User data for hisi qp.
19*c832da79SWeili Qian  * @sqe_size: Submission queue element size
20*c832da79SWeili Qian  * @sq_depth: The number of sqe
21*c832da79SWeili Qian  * @cq_depth: The number of cqe
22*c832da79SWeili Qian  * @reserved: Reserved data
23*c832da79SWeili Qian  */
24*c832da79SWeili Qian struct hisi_qp_info {
25*c832da79SWeili Qian 	__u32 sqe_size;
26*c832da79SWeili Qian 	__u16 sq_depth;
27*c832da79SWeili Qian 	__u16 cq_depth;
28*c832da79SWeili Qian 	__u64 reserved;
29*c832da79SWeili Qian };
30*c832da79SWeili Qian 
319e00df71SZhangfei Gao #define HISI_QM_API_VER_BASE "hisi_qm_v1"
329e00df71SZhangfei Gao #define HISI_QM_API_VER2_BASE "hisi_qm_v2"
338bbecfb4SWeili Qian #define HISI_QM_API_VER3_BASE "hisi_qm_v3"
349e00df71SZhangfei Gao 
359e00df71SZhangfei Gao /* UACCE_CMD_QM_SET_QP_CTX: Set qp algorithm type */
369e00df71SZhangfei Gao #define UACCE_CMD_QM_SET_QP_CTX	_IOWR('H', 10, struct hisi_qp_ctx)
37*c832da79SWeili Qian /* UACCE_CMD_QM_SET_QP_INFO: Set qp depth and BD size */
38*c832da79SWeili Qian #define UACCE_CMD_QM_SET_QP_INFO _IOWR('H', 11, struct hisi_qp_info)
399e00df71SZhangfei Gao #endif
40