Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/drivers/accel/habanalabs/include/common/qman_if.h
26447 views
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
* S/W CTL FIELDS.
27
*
28
* BD_CTL_REPEAT_VALID tells the CP whether the repeat field in the BD CTL is
29
* valid. 1 means the repeat field is valid, 0 means not-valid,
30
* i.e. repeat == 1
31
*/
32
#define BD_CTL_REPEAT_VALID_SHIFT 24
33
#define BD_CTL_REPEAT_VALID_MASK 0x01000000
34
35
#define BD_CTL_SHADOW_INDEX_SHIFT 0
36
#define BD_CTL_SHADOW_INDEX_MASK 0x00000FFF
37
38
/*
39
* H/W CTL FIELDS
40
*/
41
42
#define BD_CTL_COMP_OFFSET_SHIFT 16
43
#define BD_CTL_COMP_OFFSET_MASK 0x0FFF0000
44
45
#define BD_CTL_COMP_DATA_SHIFT 0
46
#define BD_CTL_COMP_DATA_MASK 0x0000FFFF
47
48
/*
49
* COMPLETION QUEUE
50
*/
51
52
struct hl_cq_entry {
53
__le32 data;
54
};
55
56
#define HL_CQ_ENTRY_SIZE sizeof(struct hl_cq_entry)
57
58
#define CQ_ENTRY_READY_SHIFT 31
59
#define CQ_ENTRY_READY_MASK 0x80000000
60
61
#define CQ_ENTRY_SHADOW_INDEX_VALID_SHIFT 30
62
#define CQ_ENTRY_SHADOW_INDEX_VALID_MASK 0x40000000
63
64
#define CQ_ENTRY_SHADOW_INDEX_SHIFT BD_CTL_SHADOW_INDEX_SHIFT
65
#define CQ_ENTRY_SHADOW_INDEX_MASK BD_CTL_SHADOW_INDEX_MASK
66
67
68
#endif /* QMAN_IF_H */
69
70