| .. | .. |
|---|
| 1 | 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
|---|
| 2 | 2 | /* |
|---|
| 3 | 3 | * |
|---|
| 4 | | - * (C) COPYRIGHT 2015-2021 ARM Limited. All rights reserved. |
|---|
| 4 | + * (C) COPYRIGHT 2015-2022 ARM Limited. All rights reserved. |
|---|
| 5 | 5 | * |
|---|
| 6 | 6 | * This program is free software and is provided to you under the terms of the |
|---|
| 7 | 7 | * GNU General Public License version 2 as published by the Free Software |
|---|
| .. | .. |
|---|
| 25 | 25 | #include <linux/types.h> |
|---|
| 26 | 26 | |
|---|
| 27 | 27 | /* GPU_ID register */ |
|---|
| 28 | | -#define GPU_ID_VERSION_STATUS_SHIFT 0 |
|---|
| 29 | | -#define GPU_ID_VERSION_MINOR_SHIFT 4 |
|---|
| 30 | | -#define GPU_ID_VERSION_MAJOR_SHIFT 12 |
|---|
| 31 | | -#define GPU_ID_VERSION_PRODUCT_ID_SHIFT 16 |
|---|
| 32 | | -#define GPU_ID_VERSION_STATUS (0xFu << GPU_ID_VERSION_STATUS_SHIFT) |
|---|
| 33 | | -#define GPU_ID_VERSION_MINOR (0xFFu << GPU_ID_VERSION_MINOR_SHIFT) |
|---|
| 34 | | -#define GPU_ID_VERSION_MAJOR (0xFu << GPU_ID_VERSION_MAJOR_SHIFT) |
|---|
| 35 | | -#define GPU_ID_VERSION_PRODUCT_ID (0xFFFFu << GPU_ID_VERSION_PRODUCT_ID_SHIFT) |
|---|
| 28 | +#define KBASE_GPU_ID_VERSION_STATUS_SHIFT 0 |
|---|
| 29 | +#define KBASE_GPU_ID_VERSION_MINOR_SHIFT 4 |
|---|
| 30 | +#define KBASE_GPU_ID_VERSION_MAJOR_SHIFT 12 |
|---|
| 31 | +#define KBASE_GPU_ID_VERSION_PRODUCT_ID_SHIFT 16 |
|---|
| 32 | + |
|---|
| 33 | +#define GPU_ID_VERSION_STATUS (0xFu << KBASE_GPU_ID_VERSION_STATUS_SHIFT) |
|---|
| 34 | +#define GPU_ID_VERSION_MINOR (0xFFu << KBASE_GPU_ID_VERSION_MINOR_SHIFT) |
|---|
| 35 | +#define GPU_ID_VERSION_MAJOR (0xFu << KBASE_GPU_ID_VERSION_MAJOR_SHIFT) |
|---|
| 36 | +#define GPU_ID_VERSION_PRODUCT_ID (0xFFFFu << KBASE_GPU_ID_VERSION_PRODUCT_ID_SHIFT) |
|---|
| 36 | 37 | |
|---|
| 37 | 38 | #define GPU_ID2_VERSION_STATUS_SHIFT 0 |
|---|
| 38 | 39 | #define GPU_ID2_VERSION_MINOR_SHIFT 4 |
|---|
| .. | .. |
|---|
| 52 | 53 | #define GPU_ID2_VERSION (GPU_ID2_VERSION_MAJOR | \ |
|---|
| 53 | 54 | GPU_ID2_VERSION_MINOR | \ |
|---|
| 54 | 55 | GPU_ID2_VERSION_STATUS) |
|---|
| 56 | + |
|---|
| 57 | +/* Helper macro to construct a value consisting of arch major and revision |
|---|
| 58 | + * using the value of gpu_id. |
|---|
| 59 | + */ |
|---|
| 60 | +#define ARCH_MAJOR_REV_REG(gpu_id) \ |
|---|
| 61 | + ((((__u32)gpu_id) & GPU_ID2_ARCH_MAJOR) | \ |
|---|
| 62 | + (((__u32)gpu_id) & GPU_ID2_ARCH_REV)) |
|---|
| 63 | + |
|---|
| 64 | +/* Helper macro to create a partial GPU_ID (new format) that defines |
|---|
| 65 | + * a arch major and revision. |
|---|
| 66 | + */ |
|---|
| 67 | +#define GPU_ID2_ARCH_MAJOR_REV_MAKE(arch_major, arch_rev) \ |
|---|
| 68 | + ((((__u32)arch_major) << GPU_ID2_ARCH_MAJOR_SHIFT) | \ |
|---|
| 69 | + (((__u32)arch_rev) << GPU_ID2_ARCH_REV_SHIFT)) |
|---|
| 55 | 70 | |
|---|
| 56 | 71 | /* Helper macro to create a partial GPU_ID (new format) that defines |
|---|
| 57 | 72 | * a product ignoring its version. |
|---|
| .. | .. |
|---|
| 104 | 119 | #define GPU_ID2_PRODUCT_TBEX GPU_ID2_MODEL_MAKE(9, 2) |
|---|
| 105 | 120 | #define GPU_ID2_PRODUCT_LBEX GPU_ID2_MODEL_MAKE(9, 4) |
|---|
| 106 | 121 | #define GPU_ID2_PRODUCT_TBAX GPU_ID2_MODEL_MAKE(9, 5) |
|---|
| 107 | | -#define GPU_ID2_PRODUCT_TDUX GPU_ID2_MODEL_MAKE(10, 1) |
|---|
| 108 | 122 | #define GPU_ID2_PRODUCT_TODX GPU_ID2_MODEL_MAKE(10, 2) |
|---|
| 109 | 123 | #define GPU_ID2_PRODUCT_TGRX GPU_ID2_MODEL_MAKE(10, 3) |
|---|
| 110 | 124 | #define GPU_ID2_PRODUCT_TVAX GPU_ID2_MODEL_MAKE(10, 4) |
|---|
| 111 | 125 | #define GPU_ID2_PRODUCT_LODX GPU_ID2_MODEL_MAKE(10, 7) |
|---|
| 126 | +#define GPU_ID2_PRODUCT_TTUX GPU_ID2_MODEL_MAKE(11, 2) |
|---|
| 127 | +#define GPU_ID2_PRODUCT_LTUX GPU_ID2_MODEL_MAKE(11, 3) |
|---|
| 128 | +#define GPU_ID2_PRODUCT_TTIX GPU_ID2_MODEL_MAKE(12, 0) |
|---|
| 129 | +#define GPU_ID2_PRODUCT_LTIX GPU_ID2_MODEL_MAKE(12, 1) |
|---|
| 112 | 130 | |
|---|
| 113 | | -/* Helper macro to create a GPU_ID assuming valid values for id, major, |
|---|
| 114 | | - * minor, status |
|---|
| 131 | +/** |
|---|
| 132 | + * GPU_ID_MAKE - Helper macro to generate GPU_ID using id, major, minor, status |
|---|
| 133 | + * |
|---|
| 134 | + * @id: Product Major of GPU ID |
|---|
| 135 | + * @major: Version major of GPU ID |
|---|
| 136 | + * @minor: Version minor of GPU ID |
|---|
| 137 | + * @status: Version status of GPU ID |
|---|
| 115 | 138 | */ |
|---|
| 116 | | -#define GPU_ID_MAKE(id, major, minor, status) \ |
|---|
| 117 | | - ((((__u32)id) << GPU_ID_VERSION_PRODUCT_ID_SHIFT) | \ |
|---|
| 118 | | - (((__u32)major) << GPU_ID_VERSION_MAJOR_SHIFT) | \ |
|---|
| 119 | | - (((__u32)minor) << GPU_ID_VERSION_MINOR_SHIFT) | \ |
|---|
| 120 | | - (((__u32)status) << GPU_ID_VERSION_STATUS_SHIFT)) |
|---|
| 139 | +#define GPU_ID_MAKE(id, major, minor, status) \ |
|---|
| 140 | + ((((__u32)id) << KBASE_GPU_ID_VERSION_PRODUCT_ID_SHIFT) | \ |
|---|
| 141 | + (((__u32)major) << KBASE_GPU_ID_VERSION_MAJOR_SHIFT) | \ |
|---|
| 142 | + (((__u32)minor) << KBASE_GPU_ID_VERSION_MINOR_SHIFT) | \ |
|---|
| 143 | + (((__u32)status) << KBASE_GPU_ID_VERSION_STATUS_SHIFT)) |
|---|
| 121 | 144 | |
|---|
| 122 | 145 | #endif /* _UAPI_KBASE_GPU_ID_H_ */ |
|---|