Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0
0002  *
0003  * Copyright 2016-2018 HabanaLabs, Ltd.
0004  * All Rights Reserved.
0005  *
0006  */
0007 
0008 #ifndef QMAN_IF_H
0009 #define QMAN_IF_H
0010 
0011 #include <linux/types.h>
0012 
0013 /*
0014  * PRIMARY QUEUE
0015  */
0016 
0017 struct hl_bd {
0018     __le64  ptr;
0019     __le32  len;
0020     __le32  ctl;
0021 };
0022 
0023 #define HL_BD_SIZE          sizeof(struct hl_bd)
0024 
0025 /*
0026  * S/W CTL FIELDS.
0027  *
0028  * BD_CTL_REPEAT_VALID tells the CP whether the repeat field in the BD CTL is
0029  * valid. 1 means the repeat field is valid, 0 means not-valid,
0030  * i.e. repeat == 1
0031  */
0032 #define BD_CTL_REPEAT_VALID_SHIFT   24
0033 #define BD_CTL_REPEAT_VALID_MASK    0x01000000
0034 
0035 #define BD_CTL_SHADOW_INDEX_SHIFT   0
0036 #define BD_CTL_SHADOW_INDEX_MASK    0x00000FFF
0037 
0038 /*
0039  * H/W CTL FIELDS
0040  */
0041 
0042 #define BD_CTL_COMP_OFFSET_SHIFT    16
0043 #define BD_CTL_COMP_OFFSET_MASK     0x0FFF0000
0044 
0045 #define BD_CTL_COMP_DATA_SHIFT      0
0046 #define BD_CTL_COMP_DATA_MASK       0x0000FFFF
0047 
0048 /*
0049  * COMPLETION QUEUE
0050  */
0051 
0052 struct hl_cq_entry {
0053     __le32  data;
0054 };
0055 
0056 #define HL_CQ_ENTRY_SIZE        sizeof(struct hl_cq_entry)
0057 
0058 #define CQ_ENTRY_READY_SHIFT            31
0059 #define CQ_ENTRY_READY_MASK         0x80000000
0060 
0061 #define CQ_ENTRY_SHADOW_INDEX_VALID_SHIFT   30
0062 #define CQ_ENTRY_SHADOW_INDEX_VALID_MASK    0x40000000
0063 
0064 #define CQ_ENTRY_SHADOW_INDEX_SHIFT     BD_CTL_SHADOW_INDEX_SHIFT
0065 #define CQ_ENTRY_SHADOW_INDEX_MASK      BD_CTL_SHADOW_INDEX_MASK
0066 
0067 
0068 #endif /* QMAN_IF_H */