@@ -326,4 +326,11 @@
INTEL_KBL_GT3_IDS(info), \
INTEL_KBL_GT4_IDS(info)
+#define INTEL_CFL_S_IDS(info) \
+ INTEL_VGA_DEVICE(0x3E90, info), /* SRV GT1 */ \
+ INTEL_VGA_DEVICE(0x3E93, info), /* SRV GT1 */ \
+ INTEL_VGA_DEVICE(0x3E91, info), /* SRV GT2 */ \
+ INTEL_VGA_DEVICE(0x3E92, info), /* SRV GT2 */ \
+ INTEL_VGA_DEVICE(0x3E96, info) /* SRV GT2 */
+
#endif /* _I915_PCIIDS_H */
@@ -138,6 +138,10 @@ static const struct intel_device_info intel_geminilake_info = {
.gen = 0113,
};
+static const struct intel_device_info intel_coffeelake_info = {
+ .gen = 0114,
+};
+
static const SymTabRec intel_chipsets[] = {
{PCI_CHIP_I810, "i810"},
{PCI_CHIP_I810_DC100, "i810-dc100"},
@@ -303,6 +307,13 @@ static const SymTabRec intel_chipsets[] = {
{0x5916, "HD Graphics 620"},
{0x591E, "HD Graphics 615"},
+ /*Coffeelake*/
+ {0x3E90, "HD Graphics"},
+ {0x3E93, "HD Graphics"},
+ {0x3E91, "HD Graphics"},
+ {0x3E92, "HD Graphics"},
+ {0x3E96, "HD Graphics"},
+
/* When adding new identifiers, also update:
* 1. intel_identify()
* 2. man/intel.man
@@ -358,6 +369,8 @@ static const struct pci_id_match intel_device_match[] = {
INTEL_KBL_IDS(&intel_kabylake_info),
INTEL_GLK_IDS(&intel_geminilake_info),
+ INTEL_CFL_S_IDS(&intel_coffeelake_info),
+
INTEL_VGA_DEVICE(PCI_MATCH_ANY, &intel_generic_info),
#endif
@@ -253,6 +253,11 @@ static const struct gt_info glk_gt_info = {
.urb = { .max_vs_entries = 320 },
};
+static const struct gt_info cfl_gt_info = {
+ .name = "Coffeelake (gen9)",
+ .urb = { .max_vs_entries = 320 },
+};
+
static bool is_skl(struct sna *sna)
{
return sna->kgem.gen == 0110;
@@ -273,6 +278,11 @@ static bool is_glk(struct sna *sna)
return sna->kgem.gen == 0113;
}
+static bool is_cfl(struct sna *sna)
+{
+ return sna->kgem.gen == 0114;
+}
+
static inline bool too_large(int width, int height)
{
@@ -4056,6 +4066,8 @@ static bool gen9_render_setup(struct sna *sna)
state->info = &kbl_gt_info;
if (is_glk(sna))
state->info = &glk_gt_info;
+ if (is_cfl(sna))
+ state->info = &cfl_gt_info;
sna_static_stream_init(&general);