• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0
2  *
3  * Copyright 2016-2018 HabanaLabs, Ltd.
4  * All Rights Reserved.
5  *
6  */
7 
8 #ifndef QMAN_IF_H
9 #define QMAN_IF_H
10 
11 #include <linux/types.h>
12 
13 /*
14  * PRIMARY QUEUE
15  */
16 
17 struct hl_bd {
18 	__le64	ptr;
19 	__le32	len;
20 	__le32	ctl;
21 };
22 
23 #define HL_BD_SIZE			sizeof(struct hl_bd)
24 
25 /*
26  * BD_CTL_REPEAT_VALID tells the CP whether the repeat field in the BD CTL is
27  * valid. 1 means the repeat field is valid, 0 means not-valid,
28  * i.e. repeat == 1
29  */
30 #define BD_CTL_REPEAT_VALID_SHIFT	24
31 #define BD_CTL_REPEAT_VALID_MASK	0x01000000
32 
33 #define BD_CTL_SHADOW_INDEX_SHIFT	0
34 #define BD_CTL_SHADOW_INDEX_MASK	0x00000FFF
35 
36 /*
37  * COMPLETION QUEUE
38  */
39 
40 struct hl_cq_entry {
41 	__le32	data;
42 };
43 
44 #define HL_CQ_ENTRY_SIZE		sizeof(struct hl_cq_entry)
45 
46 #define CQ_ENTRY_READY_SHIFT			31
47 #define CQ_ENTRY_READY_MASK			0x80000000
48 
49 #define CQ_ENTRY_SHADOW_INDEX_VALID_SHIFT	30
50 #define CQ_ENTRY_SHADOW_INDEX_VALID_MASK	0x40000000
51 
52 #define CQ_ENTRY_SHADOW_INDEX_SHIFT		BD_CTL_SHADOW_INDEX_SHIFT
53 #define CQ_ENTRY_SHADOW_INDEX_MASK		BD_CTL_SHADOW_INDEX_MASK
54 
55 
56 #endif /* QMAN_IF_H */
57