drm/i915/tgl: add initial Tiger Lake definitions
authorDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Thu, 11 Jul 2019 17:30:56 +0000 (10:30 -0700)
committerLucas De Marchi <lucas.demarchi@intel.com>
Thu, 11 Jul 2019 23:30:56 +0000 (16:30 -0700)
Tiger Lake is a IntelĀ® Processor containing IntelĀ® HD Graphics.

This is just an initial Tiger Lake definition. PCI IDs, generic support
and new features coming in following patches.

v2 (Lucas):
  - Remove modular FIA - feature will be re-introduced in future

Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Anusha Srivatsa <anusha.srivatsa@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190711173115.28296-3-lucas.demarchi@intel.com
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_pci.c
drivers/gpu/drm/i915/intel_device_info.c
drivers/gpu/drm/i915/intel_device_info.h

index 2fa1d35efcb8be99879a2aa391ffe7c0b55651d8..e89a553cc9022787dabaf437319c3bcc11c3f81d 100644 (file)
@@ -2086,6 +2086,7 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
 #define IS_CANNONLAKE(dev_priv)        IS_PLATFORM(dev_priv, INTEL_CANNONLAKE)
 #define IS_ICELAKE(dev_priv)   IS_PLATFORM(dev_priv, INTEL_ICELAKE)
 #define IS_ELKHARTLAKE(dev_priv)       IS_PLATFORM(dev_priv, INTEL_ELKHARTLAKE)
+#define IS_TIGERLAKE(dev_priv) IS_PLATFORM(dev_priv, INTEL_TIGERLAKE)
 #define IS_HSW_EARLY_SDV(dev_priv) (IS_HASWELL(dev_priv) && \
                                    (INTEL_DEVID(dev_priv) & 0xFF00) == 0x0C00)
 #define IS_BDW_ULT(dev_priv) \
index 94b588e0a1dd89654f3f1bb4ee1ec12885a9ef80..da926485845dccc3e44398d30ca0258e05c84b1d 100644 (file)
@@ -765,6 +765,35 @@ static const struct intel_device_info intel_elkhartlake_info = {
        .ppgtt_size = 36,
 };
 
+#define GEN12_FEATURES \
+       GEN11_FEATURES, \
+       GEN(12), \
+       .pipe_offsets = { \
+               [TRANSCODER_A] = PIPE_A_OFFSET, \
+               [TRANSCODER_B] = PIPE_B_OFFSET, \
+               [TRANSCODER_C] = PIPE_C_OFFSET, \
+               [TRANSCODER_D] = PIPE_D_OFFSET, \
+               [TRANSCODER_DSI_0] = PIPE_DSI0_OFFSET, \
+               [TRANSCODER_DSI_1] = PIPE_DSI1_OFFSET, \
+       }, \
+       .trans_offsets = { \
+               [TRANSCODER_A] = TRANSCODER_A_OFFSET, \
+               [TRANSCODER_B] = TRANSCODER_B_OFFSET, \
+               [TRANSCODER_C] = TRANSCODER_C_OFFSET, \
+               [TRANSCODER_D] = TRANSCODER_D_OFFSET, \
+               [TRANSCODER_DSI_0] = TRANSCODER_DSI0_OFFSET, \
+               [TRANSCODER_DSI_1] = TRANSCODER_DSI1_OFFSET, \
+       }
+
+static const struct intel_device_info intel_tigerlake_12_info = {
+       GEN12_FEATURES,
+       PLATFORM(INTEL_TIGERLAKE),
+       .num_pipes = 4,
+       .require_force_probe = 1,
+       .engine_mask =
+               BIT(RCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS0) | BIT(VCS2),
+};
+
 #undef GEN
 #undef PLATFORM
 
index e64536e1fd1bd2600cee26603f3545c8e5265d3f..e0d9a7a37994b2ae2736126fac7a3b89797dc129 100644 (file)
@@ -58,6 +58,7 @@ static const char * const platform_names[] = {
        PLATFORM_NAME(CANNONLAKE),
        PLATFORM_NAME(ICELAKE),
        PLATFORM_NAME(ELKHARTLAKE),
+       PLATFORM_NAME(TIGERLAKE),
 };
 #undef PLATFORM_NAME
 
index ddafc819bf30a517d177a9a4da640fc32bbc63f5..468582484758fa54a00ad0fbbecd48d6205bdaef 100644 (file)
@@ -78,6 +78,8 @@ enum intel_platform {
        /* gen11 */
        INTEL_ICELAKE,
        INTEL_ELKHARTLAKE,
+       /* gen12 */
+       INTEL_TIGERLAKE,
        INTEL_MAX_PLATFORMS
 };