b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
| 2 | /* (C) COPYRIGHT 2014-2018 ARM Limited. All rights reserved. */ |
| 3 | /* Copyright 2019 Linaro, Ltd., Rob Herring <robh@kernel.org> */ |
| 4 | #ifndef __PANFROST_FEATURES_H__ |
| 5 | #define __PANFROST_FEATURES_H__ |
| 6 | |
| 7 | #include <linux/bitops.h> |
| 8 | |
| 9 | #include "panfrost_device.h" |
| 10 | |
| 11 | enum panfrost_hw_feature { |
| 12 | HW_FEATURE_JOBCHAIN_DISAMBIGUATION, |
| 13 | HW_FEATURE_PWRON_DURING_PWROFF_TRANS, |
| 14 | HW_FEATURE_XAFFINITY, |
| 15 | HW_FEATURE_OUT_OF_ORDER_EXEC, |
| 16 | HW_FEATURE_MRT, |
| 17 | HW_FEATURE_BRNDOUT_CC, |
| 18 | HW_FEATURE_INTERPIPE_REG_ALIASING, |
| 19 | HW_FEATURE_LD_ST_TILEBUFFER, |
| 20 | HW_FEATURE_MSAA_16X, |
| 21 | HW_FEATURE_32_BIT_UNIFORM_ADDRESS, |
| 22 | HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL, |
| 23 | HW_FEATURE_OPTIMIZED_COVERAGE_MASK, |
| 24 | HW_FEATURE_T7XX_PAIRING_RULES, |
| 25 | HW_FEATURE_LD_ST_LEA_TEX, |
| 26 | HW_FEATURE_LINEAR_FILTER_FLOAT, |
| 27 | HW_FEATURE_WORKGROUP_ROUND_MULTIPLE_OF_4, |
| 28 | HW_FEATURE_IMAGES_IN_FRAGMENT_SHADERS, |
| 29 | HW_FEATURE_TEST4_DATUM_MODE, |
| 30 | HW_FEATURE_NEXT_INSTRUCTION_TYPE, |
| 31 | HW_FEATURE_BRNDOUT_KILL, |
| 32 | HW_FEATURE_WARPING, |
| 33 | HW_FEATURE_V4, |
| 34 | HW_FEATURE_FLUSH_REDUCTION, |
| 35 | HW_FEATURE_PROTECTED_MODE, |
| 36 | HW_FEATURE_COHERENCY_REG, |
| 37 | HW_FEATURE_PROTECTED_DEBUG_MODE, |
| 38 | HW_FEATURE_AARCH64_MMU, |
| 39 | HW_FEATURE_TLS_HASHING, |
| 40 | HW_FEATURE_THREAD_GROUP_SPLIT, |
| 41 | HW_FEATURE_3BIT_EXT_RW_L2_MMU_CONFIG, |
| 42 | }; |
| 43 | |
| 44 | #define hw_features_t600 (\ |
| 45 | BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \ |
| 46 | BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \ |
| 47 | BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \ |
| 48 | BIT_ULL(HW_FEATURE_V4)) |
| 49 | |
| 50 | #define hw_features_t620 (\ |
| 51 | BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \ |
| 52 | BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \ |
| 53 | BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \ |
| 54 | BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \ |
| 55 | BIT_ULL(HW_FEATURE_V4)) |
| 56 | |
| 57 | #define hw_features_t720 (\ |
| 58 | BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \ |
| 59 | BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \ |
| 60 | BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \ |
| 61 | BIT_ULL(HW_FEATURE_OPTIMIZED_COVERAGE_MASK) | \ |
| 62 | BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \ |
| 63 | BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \ |
| 64 | BIT_ULL(HW_FEATURE_WORKGROUP_ROUND_MULTIPLE_OF_4) | \ |
| 65 | BIT_ULL(HW_FEATURE_WARPING) | \ |
| 66 | BIT_ULL(HW_FEATURE_V4)) |
| 67 | |
| 68 | |
| 69 | #define hw_features_t760 (\ |
| 70 | BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \ |
| 71 | BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \ |
| 72 | BIT_ULL(HW_FEATURE_XAFFINITY) | \ |
| 73 | BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \ |
| 74 | BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \ |
| 75 | BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \ |
| 76 | BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \ |
| 77 | BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \ |
| 78 | BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \ |
| 79 | BIT_ULL(HW_FEATURE_MRT) | \ |
| 80 | BIT_ULL(HW_FEATURE_MSAA_16X) | \ |
| 81 | BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \ |
| 82 | BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \ |
| 83 | BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \ |
| 84 | BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT)) |
| 85 | |
| 86 | // T860 |
| 87 | #define hw_features_t860 (\ |
| 88 | BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \ |
| 89 | BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \ |
| 90 | BIT_ULL(HW_FEATURE_XAFFINITY) | \ |
| 91 | BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \ |
| 92 | BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \ |
| 93 | BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \ |
| 94 | BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \ |
| 95 | BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \ |
| 96 | BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \ |
| 97 | BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \ |
| 98 | BIT_ULL(HW_FEATURE_MRT) | \ |
| 99 | BIT_ULL(HW_FEATURE_MSAA_16X) | \ |
| 100 | BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \ |
| 101 | BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \ |
| 102 | BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \ |
| 103 | BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \ |
| 104 | BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT)) |
| 105 | |
| 106 | #define hw_features_t880 hw_features_t860 |
| 107 | |
| 108 | #define hw_features_t830 (\ |
| 109 | BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \ |
| 110 | BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \ |
| 111 | BIT_ULL(HW_FEATURE_XAFFINITY) | \ |
| 112 | BIT_ULL(HW_FEATURE_WARPING) | \ |
| 113 | BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \ |
| 114 | BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \ |
| 115 | BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \ |
| 116 | BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \ |
| 117 | BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \ |
| 118 | BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \ |
| 119 | BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \ |
| 120 | BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \ |
| 121 | BIT_ULL(HW_FEATURE_MRT) | \ |
| 122 | BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \ |
| 123 | BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \ |
| 124 | BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \ |
| 125 | BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \ |
| 126 | BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT)) |
| 127 | |
| 128 | #define hw_features_t820 (\ |
| 129 | BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \ |
| 130 | BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \ |
| 131 | BIT_ULL(HW_FEATURE_XAFFINITY) | \ |
| 132 | BIT_ULL(HW_FEATURE_WARPING) | \ |
| 133 | BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \ |
| 134 | BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \ |
| 135 | BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \ |
| 136 | BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \ |
| 137 | BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \ |
| 138 | BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \ |
| 139 | BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \ |
| 140 | BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \ |
| 141 | BIT_ULL(HW_FEATURE_MRT) | \ |
| 142 | BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \ |
| 143 | BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \ |
| 144 | BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \ |
| 145 | BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \ |
| 146 | BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT)) |
| 147 | |
| 148 | #define hw_features_g71 (\ |
| 149 | BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \ |
| 150 | BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \ |
| 151 | BIT_ULL(HW_FEATURE_XAFFINITY) | \ |
| 152 | BIT_ULL(HW_FEATURE_WARPING) | \ |
| 153 | BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \ |
| 154 | BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \ |
| 155 | BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \ |
| 156 | BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \ |
| 157 | BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \ |
| 158 | BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \ |
| 159 | BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \ |
| 160 | BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \ |
| 161 | BIT_ULL(HW_FEATURE_MRT) | \ |
| 162 | BIT_ULL(HW_FEATURE_MSAA_16X) | \ |
| 163 | BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \ |
| 164 | BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \ |
| 165 | BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \ |
| 166 | BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \ |
| 167 | BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \ |
| 168 | BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \ |
| 169 | BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \ |
| 170 | BIT_ULL(HW_FEATURE_COHERENCY_REG)) |
| 171 | |
| 172 | #define hw_features_g72 (\ |
| 173 | BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \ |
| 174 | BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \ |
| 175 | BIT_ULL(HW_FEATURE_XAFFINITY) | \ |
| 176 | BIT_ULL(HW_FEATURE_WARPING) | \ |
| 177 | BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \ |
| 178 | BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \ |
| 179 | BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \ |
| 180 | BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \ |
| 181 | BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \ |
| 182 | BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \ |
| 183 | BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \ |
| 184 | BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \ |
| 185 | BIT_ULL(HW_FEATURE_MRT) | \ |
| 186 | BIT_ULL(HW_FEATURE_MSAA_16X) | \ |
| 187 | BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \ |
| 188 | BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \ |
| 189 | BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \ |
| 190 | BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \ |
| 191 | BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \ |
| 192 | BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \ |
| 193 | BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \ |
| 194 | BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \ |
| 195 | BIT_ULL(HW_FEATURE_COHERENCY_REG)) |
| 196 | |
| 197 | #define hw_features_g51 (\ |
| 198 | BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \ |
| 199 | BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \ |
| 200 | BIT_ULL(HW_FEATURE_XAFFINITY) | \ |
| 201 | BIT_ULL(HW_FEATURE_WARPING) | \ |
| 202 | BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \ |
| 203 | BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \ |
| 204 | BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \ |
| 205 | BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \ |
| 206 | BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \ |
| 207 | BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \ |
| 208 | BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \ |
| 209 | BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \ |
| 210 | BIT_ULL(HW_FEATURE_MRT) | \ |
| 211 | BIT_ULL(HW_FEATURE_MSAA_16X) | \ |
| 212 | BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \ |
| 213 | BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \ |
| 214 | BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \ |
| 215 | BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \ |
| 216 | BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \ |
| 217 | BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \ |
| 218 | BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \ |
| 219 | BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \ |
| 220 | BIT_ULL(HW_FEATURE_COHERENCY_REG)) |
| 221 | |
| 222 | #define hw_features_g52 (\ |
| 223 | BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \ |
| 224 | BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \ |
| 225 | BIT_ULL(HW_FEATURE_XAFFINITY) | \ |
| 226 | BIT_ULL(HW_FEATURE_WARPING) | \ |
| 227 | BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \ |
| 228 | BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \ |
| 229 | BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \ |
| 230 | BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \ |
| 231 | BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \ |
| 232 | BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \ |
| 233 | BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \ |
| 234 | BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \ |
| 235 | BIT_ULL(HW_FEATURE_MRT) | \ |
| 236 | BIT_ULL(HW_FEATURE_MSAA_16X) | \ |
| 237 | BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \ |
| 238 | BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \ |
| 239 | BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \ |
| 240 | BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \ |
| 241 | BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \ |
| 242 | BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \ |
| 243 | BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \ |
| 244 | BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \ |
| 245 | BIT_ULL(HW_FEATURE_COHERENCY_REG)) |
| 246 | |
| 247 | #define hw_features_g76 (\ |
| 248 | BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \ |
| 249 | BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \ |
| 250 | BIT_ULL(HW_FEATURE_XAFFINITY) | \ |
| 251 | BIT_ULL(HW_FEATURE_WARPING) | \ |
| 252 | BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \ |
| 253 | BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \ |
| 254 | BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \ |
| 255 | BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \ |
| 256 | BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \ |
| 257 | BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \ |
| 258 | BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \ |
| 259 | BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \ |
| 260 | BIT_ULL(HW_FEATURE_MRT) | \ |
| 261 | BIT_ULL(HW_FEATURE_MSAA_16X) | \ |
| 262 | BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \ |
| 263 | BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \ |
| 264 | BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \ |
| 265 | BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \ |
| 266 | BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \ |
| 267 | BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \ |
| 268 | BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \ |
| 269 | BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \ |
| 270 | BIT_ULL(HW_FEATURE_COHERENCY_REG) | \ |
| 271 | BIT_ULL(HW_FEATURE_AARCH64_MMU) | \ |
| 272 | BIT_ULL(HW_FEATURE_TLS_HASHING) | \ |
| 273 | BIT_ULL(HW_FEATURE_3BIT_EXT_RW_L2_MMU_CONFIG)) |
| 274 | |
| 275 | #define hw_features_g31 (\ |
| 276 | BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \ |
| 277 | BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \ |
| 278 | BIT_ULL(HW_FEATURE_XAFFINITY) | \ |
| 279 | BIT_ULL(HW_FEATURE_WARPING) | \ |
| 280 | BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \ |
| 281 | BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \ |
| 282 | BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \ |
| 283 | BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \ |
| 284 | BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \ |
| 285 | BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \ |
| 286 | BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \ |
| 287 | BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \ |
| 288 | BIT_ULL(HW_FEATURE_MRT) | \ |
| 289 | BIT_ULL(HW_FEATURE_MSAA_16X) | \ |
| 290 | BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \ |
| 291 | BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \ |
| 292 | BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \ |
| 293 | BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \ |
| 294 | BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \ |
| 295 | BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \ |
| 296 | BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \ |
| 297 | BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \ |
| 298 | BIT_ULL(HW_FEATURE_COHERENCY_REG) | \ |
| 299 | BIT_ULL(HW_FEATURE_AARCH64_MMU) | \ |
| 300 | BIT_ULL(HW_FEATURE_TLS_HASHING) | \ |
| 301 | BIT_ULL(HW_FEATURE_3BIT_EXT_RW_L2_MMU_CONFIG)) |
| 302 | |
| 303 | static inline bool panfrost_has_hw_feature(struct panfrost_device *pfdev, |
| 304 | enum panfrost_hw_feature feat) |
| 305 | { |
| 306 | return test_bit(feat, pfdev->features.hw_features); |
| 307 | } |
| 308 | |
| 309 | #endif |