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