1 /* 2 * Copyright (C) 2023 Intel Corporation. 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and associated documentation files (the 6 * "Software"), to deal in the Software without restriction, including 7 * without limitation the rights to use, copy, modify, merge, publish, 8 * distribute, sub license, and/or sell copies of the Software, and to 9 * permit persons to whom the Software is furnished to do so, subject to 10 * the following conditions: 11 * 12 * The above copyright notice and this permission notice (including the 13 * next paragraph) shall be included in all copies or substantial portions 14 * of the Software. 15 * 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 * DEALINGS IN THE SOFTWARE. 23 * 24 * Device ids are available in linux kernel source tree and Intel website. 25 * https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/drm/i915_pciids.h 26 * https://dgpu-docs.intel.com/devices/hardware-table.html 27 */ 28 29 #ifndef _IGD_PCIIDS_H_ 30 #define _IGD_PCIIDS_H_ 31 32 #include <stdint.h> 33 34 struct igd_device { 35 uint16_t device; 36 int gen; 37 }; 38 39 #define IGD_DEVICE_ENTRY(id, gen) \ 40 { id, gen } 41 42 43 /* Skylake, Gen 9 */ 44 #define IGD_SKL_DEVICE_IDS \ 45 IGD_DEVICE_ENTRY(0x1906, 9), \ 46 IGD_DEVICE_ENTRY(0x1913, 9), \ 47 IGD_DEVICE_ENTRY(0x190E, 9), \ 48 IGD_DEVICE_ENTRY(0x1915, 9), \ 49 IGD_DEVICE_ENTRY(0x1902, 9), \ 50 IGD_DEVICE_ENTRY(0x190A, 9), \ 51 IGD_DEVICE_ENTRY(0x190B, 9), \ 52 IGD_DEVICE_ENTRY(0x1917, 9), \ 53 IGD_DEVICE_ENTRY(0x1916, 9), \ 54 IGD_DEVICE_ENTRY(0x1921, 9), \ 55 IGD_DEVICE_ENTRY(0x191E, 9), \ 56 IGD_DEVICE_ENTRY(0x1912, 9), \ 57 IGD_DEVICE_ENTRY(0x191A, 9), \ 58 IGD_DEVICE_ENTRY(0x191B, 9), \ 59 IGD_DEVICE_ENTRY(0x191D, 9), \ 60 IGD_DEVICE_ENTRY(0x1923, 9), \ 61 IGD_DEVICE_ENTRY(0x1926, 9), \ 62 IGD_DEVICE_ENTRY(0x1927, 9), \ 63 IGD_DEVICE_ENTRY(0x192A, 9), \ 64 IGD_DEVICE_ENTRY(0x192B, 9), \ 65 IGD_DEVICE_ENTRY(0x192D, 9), \ 66 IGD_DEVICE_ENTRY(0x1932, 9), \ 67 IGD_DEVICE_ENTRY(0x193A, 9), \ 68 IGD_DEVICE_ENTRY(0x193B, 9), \ 69 IGD_DEVICE_ENTRY(0x193D, 9) 70 71 /* Apollo Lake, Gen 9 */ 72 #define IGD_BXT_DEVICE_IDS \ 73 IGD_DEVICE_ENTRY(0x0A84, 9), \ 74 IGD_DEVICE_ENTRY(0x1A84, 9), \ 75 IGD_DEVICE_ENTRY(0x1A85, 9), \ 76 IGD_DEVICE_ENTRY(0x5A84, 9), \ 77 IGD_DEVICE_ENTRY(0x5A85, 9) 78 79 /* Gemini Lake, Gen 9 */ 80 #define IGD_GLK_DEVICE_IDS \ 81 IGD_DEVICE_ENTRY(0x3184, 9), \ 82 IGD_DEVICE_ENTRY(0x3185, 9) 83 84 /* Kaby Lake, Gen 9 */ 85 #define IGD_KBL_DEVICE_IDS \ 86 IGD_DEVICE_ENTRY(0x5906, 9), \ 87 IGD_DEVICE_ENTRY(0x5913, 9), \ 88 IGD_DEVICE_ENTRY(0x590E, 9), \ 89 IGD_DEVICE_ENTRY(0x5915, 9), \ 90 IGD_DEVICE_ENTRY(0x5902, 9), \ 91 IGD_DEVICE_ENTRY(0x5908, 9), \ 92 IGD_DEVICE_ENTRY(0x590A, 9), \ 93 IGD_DEVICE_ENTRY(0x590B, 9), \ 94 IGD_DEVICE_ENTRY(0x5916, 9), \ 95 IGD_DEVICE_ENTRY(0x5921, 9), \ 96 IGD_DEVICE_ENTRY(0x591E, 9), \ 97 IGD_DEVICE_ENTRY(0x5912, 9), \ 98 IGD_DEVICE_ENTRY(0x5917, 9), \ 99 IGD_DEVICE_ENTRY(0x591A, 9), \ 100 IGD_DEVICE_ENTRY(0x591B, 9), \ 101 IGD_DEVICE_ENTRY(0x591D, 9), \ 102 IGD_DEVICE_ENTRY(0x5926, 9), \ 103 IGD_DEVICE_ENTRY(0x5923, 9), \ 104 IGD_DEVICE_ENTRY(0x5927, 9), \ 105 IGD_DEVICE_ENTRY(0x593B, 9), \ 106 IGD_DEVICE_ENTRY(0x591C, 9), \ 107 IGD_DEVICE_ENTRY(0x87C0, 9) 108 109 /* Coffee Lake/Comet Lake, Gen 9 */ 110 #define IGD_CFL_DEVICE_IDS \ 111 IGD_DEVICE_ENTRY(0x87CA, 9), \ 112 IGD_DEVICE_ENTRY(0x9BA2, 9), \ 113 IGD_DEVICE_ENTRY(0x9BA4, 9), \ 114 IGD_DEVICE_ENTRY(0x9BA5, 9), \ 115 IGD_DEVICE_ENTRY(0x9BA8, 9), \ 116 IGD_DEVICE_ENTRY(0x9B21, 9), \ 117 IGD_DEVICE_ENTRY(0x9BAA, 9), \ 118 IGD_DEVICE_ENTRY(0x9BAC, 9), \ 119 IGD_DEVICE_ENTRY(0x9BC2, 9), \ 120 IGD_DEVICE_ENTRY(0x9BC4, 9), \ 121 IGD_DEVICE_ENTRY(0x9BC5, 9), \ 122 IGD_DEVICE_ENTRY(0x9BC6, 9), \ 123 IGD_DEVICE_ENTRY(0x9BC8, 9), \ 124 IGD_DEVICE_ENTRY(0x9BE6, 9), \ 125 IGD_DEVICE_ENTRY(0x9BF6, 9), \ 126 IGD_DEVICE_ENTRY(0x9B41, 9), \ 127 IGD_DEVICE_ENTRY(0x9BCA, 9), \ 128 IGD_DEVICE_ENTRY(0x9BCC, 9), \ 129 IGD_DEVICE_ENTRY(0x3E90, 9), \ 130 IGD_DEVICE_ENTRY(0x3E93, 9), \ 131 IGD_DEVICE_ENTRY(0x3E99, 9), \ 132 IGD_DEVICE_ENTRY(0x3E91, 9), \ 133 IGD_DEVICE_ENTRY(0x3E92, 9), \ 134 IGD_DEVICE_ENTRY(0x3E96, 9), \ 135 IGD_DEVICE_ENTRY(0x3E98, 9), \ 136 IGD_DEVICE_ENTRY(0x3E9A, 9), \ 137 IGD_DEVICE_ENTRY(0x3E9C, 9), \ 138 IGD_DEVICE_ENTRY(0x3E94, 9), \ 139 IGD_DEVICE_ENTRY(0x3E9B, 9), \ 140 IGD_DEVICE_ENTRY(0x3EA9, 9), \ 141 IGD_DEVICE_ENTRY(0x3EA5, 9), \ 142 IGD_DEVICE_ENTRY(0x3EA6, 9), \ 143 IGD_DEVICE_ENTRY(0x3EA7, 9), \ 144 IGD_DEVICE_ENTRY(0x3EA8, 9), \ 145 IGD_DEVICE_ENTRY(0x3EA1, 9), \ 146 IGD_DEVICE_ENTRY(0x3EA4, 9), \ 147 IGD_DEVICE_ENTRY(0x3EA0, 9), \ 148 IGD_DEVICE_ENTRY(0x3EA3, 9), \ 149 IGD_DEVICE_ENTRY(0x3EA2, 9) 150 151 /* Ice Lake, Gen 11 */ 152 #define IGD_ICL_DEVICE_IDS \ 153 IGD_DEVICE_ENTRY(0x8A50, 11), \ 154 IGD_DEVICE_ENTRY(0x8A52, 11), \ 155 IGD_DEVICE_ENTRY(0x8A53, 11), \ 156 IGD_DEVICE_ENTRY(0x8A54, 11), \ 157 IGD_DEVICE_ENTRY(0x8A56, 11), \ 158 IGD_DEVICE_ENTRY(0x8A57, 11), \ 159 IGD_DEVICE_ENTRY(0x8A58, 11), \ 160 IGD_DEVICE_ENTRY(0x8A59, 11), \ 161 IGD_DEVICE_ENTRY(0x8A5A, 11), \ 162 IGD_DEVICE_ENTRY(0x8A5B, 11), \ 163 IGD_DEVICE_ENTRY(0x8A5C, 11), \ 164 IGD_DEVICE_ENTRY(0x8A70, 11), \ 165 IGD_DEVICE_ENTRY(0x8A71, 11), \ 166 IGD_DEVICE_ENTRY(0x8A51, 11), \ 167 IGD_DEVICE_ENTRY(0x8A5D, 11) 168 169 /* Elkhart Lake, Gen 12 */ 170 #define IGD_EHL_DEVICE_IDS \ 171 IGD_DEVICE_ENTRY(0x4541, 12), \ 172 IGD_DEVICE_ENTRY(0x4551, 12), \ 173 IGD_DEVICE_ENTRY(0x4555, 12), \ 174 IGD_DEVICE_ENTRY(0x4557, 12), \ 175 IGD_DEVICE_ENTRY(0x4570, 12), \ 176 IGD_DEVICE_ENTRY(0x4571, 12) 177 178 /* Jasper Lake, Gen 12 */ 179 #define IGD_JSL_DEVICE_IDS \ 180 IGD_DEVICE_ENTRY(0x4E51, 12), \ 181 IGD_DEVICE_ENTRY(0x4E55, 12), \ 182 IGD_DEVICE_ENTRY(0x4E57, 12), \ 183 IGD_DEVICE_ENTRY(0x4E61, 12), \ 184 IGD_DEVICE_ENTRY(0x4E71, 12) 185 186 /* Tiger Lake, Gen 12 */ 187 #define IGD_TGL_DEVICE_IDS \ 188 IGD_DEVICE_ENTRY(0x9A60, 12), \ 189 IGD_DEVICE_ENTRY(0x9A68, 12), \ 190 IGD_DEVICE_ENTRY(0x9A70, 12), \ 191 IGD_DEVICE_ENTRY(0x9A40, 12), \ 192 IGD_DEVICE_ENTRY(0x9A49, 12), \ 193 IGD_DEVICE_ENTRY(0x9A59, 12), \ 194 IGD_DEVICE_ENTRY(0x9A78, 12), \ 195 IGD_DEVICE_ENTRY(0x9AC0, 12), \ 196 IGD_DEVICE_ENTRY(0x9AC9, 12), \ 197 IGD_DEVICE_ENTRY(0x9AD9, 12), \ 198 IGD_DEVICE_ENTRY(0x9AF8, 12) 199 200 /* Rocket Lake, Gen 12 */ 201 #define IGD_RKL_DEVICE_IDS \ 202 IGD_DEVICE_ENTRY(0x4C80, 12), \ 203 IGD_DEVICE_ENTRY(0x4C8A, 12), \ 204 IGD_DEVICE_ENTRY(0x4C8B, 12), \ 205 IGD_DEVICE_ENTRY(0x4C8C, 12), \ 206 IGD_DEVICE_ENTRY(0x4C90, 12), \ 207 IGD_DEVICE_ENTRY(0x4C9A, 12) 208 209 /* Alder Lake-S, Gen 12 */ 210 #define IGD_ADLS_DEVICE_IDS \ 211 IGD_DEVICE_ENTRY(0x4680, 12), \ 212 IGD_DEVICE_ENTRY(0x4682, 12), \ 213 IGD_DEVICE_ENTRY(0x4688, 12), \ 214 IGD_DEVICE_ENTRY(0x468A, 12), \ 215 IGD_DEVICE_ENTRY(0x468B, 12), \ 216 IGD_DEVICE_ENTRY(0x4690, 12), \ 217 IGD_DEVICE_ENTRY(0x4692, 12), \ 218 IGD_DEVICE_ENTRY(0x4693, 12) 219 220 /* Alder Lake-P, Gen 12 */ 221 #define IGD_ADLP_DEVICE_IDS \ 222 IGD_DEVICE_ENTRY(0x46A0, 12), \ 223 IGD_DEVICE_ENTRY(0x46A1, 12), \ 224 IGD_DEVICE_ENTRY(0x46A2, 12), \ 225 IGD_DEVICE_ENTRY(0x46A3, 12), \ 226 IGD_DEVICE_ENTRY(0x46A6, 12), \ 227 IGD_DEVICE_ENTRY(0x46A8, 12), \ 228 IGD_DEVICE_ENTRY(0x46AA, 12), \ 229 IGD_DEVICE_ENTRY(0x462A, 12), \ 230 IGD_DEVICE_ENTRY(0x4626, 12), \ 231 IGD_DEVICE_ENTRY(0x4628, 12), \ 232 IGD_DEVICE_ENTRY(0x46B0, 12), \ 233 IGD_DEVICE_ENTRY(0x46B1, 12), \ 234 IGD_DEVICE_ENTRY(0x46B2, 12), \ 235 IGD_DEVICE_ENTRY(0x46B3, 12), \ 236 IGD_DEVICE_ENTRY(0x46C0, 12), \ 237 IGD_DEVICE_ENTRY(0x46C1, 12), \ 238 IGD_DEVICE_ENTRY(0x46C2, 12), \ 239 IGD_DEVICE_ENTRY(0x46C3, 12) 240 241 /* Alder Lake-N, Gen 12 */ 242 #define IGD_ADLN_DEVICE_IDS \ 243 IGD_DEVICE_ENTRY(0x46D0, 12), \ 244 IGD_DEVICE_ENTRY(0x46D1, 12), \ 245 IGD_DEVICE_ENTRY(0x46D2, 12), \ 246 IGD_DEVICE_ENTRY(0x46D3, 12), \ 247 IGD_DEVICE_ENTRY(0x46D4, 12) 248 249 /* Raptor Lake-S, Gen 12 */ 250 #define IGD_RPLS_DEVICE_IDS \ 251 IGD_DEVICE_ENTRY(0xA780, 12), \ 252 IGD_DEVICE_ENTRY(0xA781, 12), \ 253 IGD_DEVICE_ENTRY(0xA782, 12), \ 254 IGD_DEVICE_ENTRY(0xA783, 12), \ 255 IGD_DEVICE_ENTRY(0xA788, 12), \ 256 IGD_DEVICE_ENTRY(0xA789, 12), \ 257 IGD_DEVICE_ENTRY(0xA78A, 12), \ 258 IGD_DEVICE_ENTRY(0xA78B, 12) 259 260 /* Raptor Lake-P, Gen 12 */ 261 #define IGD_RPLP_DEVICE_IDS \ 262 IGD_DEVICE_ENTRY(0xA721, 12), \ 263 IGD_DEVICE_ENTRY(0xA7A1, 12), \ 264 IGD_DEVICE_ENTRY(0xA7A9, 12), \ 265 IGD_DEVICE_ENTRY(0xA7AC, 12), \ 266 IGD_DEVICE_ENTRY(0xA7AD, 12), \ 267 IGD_DEVICE_ENTRY(0xA720, 12), \ 268 IGD_DEVICE_ENTRY(0xA7A0, 12), \ 269 IGD_DEVICE_ENTRY(0xA7A8, 12), \ 270 IGD_DEVICE_ENTRY(0xA7AA, 12), \ 271 IGD_DEVICE_ENTRY(0xA7AB, 12) 272 273 #endif 274