Takashi Iwai 8c33be
From 413f3c19f8ecefd29067897db9c414a29d86685f Mon Sep 17 00:00:00 2001
Takashi Iwai 8c33be
From: Rodrigo Vivi <rodrigo.vivi@intel.com>
Takashi Iwai 8c33be
Date: Tue, 6 Jun 2017 13:30:30 -0700
Takashi Iwai 8c33be
Subject: [PATCH] drm/i915/cnl: Introduce Cannonlake platform defition.
Takashi Iwai 8c33be
Mime-version: 1.0
Takashi Iwai 8c33be
Content-type: text/plain; charset=UTF-8
Takashi Iwai 8c33be
Content-transfer-encoding: 8bit
Takashi Iwai 8c33be
Git-commit: 413f3c19f8ecefd29067897db9c414a29d86685f
Takashi Iwai 8c33be
Patch-mainline: v4.13-rc1
Takashi Iwai 8c33be
References: FATE#322643 bsc#1055900
Takashi Iwai 8c33be
Takashi Iwai 8c33be
Cannonlake is a IntelĀ® Processor containing IntelĀ® HD Graphics
Takashi Iwai 8c33be
following Kabylake.
Takashi Iwai 8c33be
Takashi Iwai 8c33be
It is Gen10.
Takashi Iwai 8c33be
Takashi Iwai 8c33be
Let's start by adding the platform definition based on previous
Takashi Iwai 8c33be
platforms but yet as alpha_support.
Takashi Iwai 8c33be
Takashi Iwai 8c33be
On following patches we will start adding PCI IDs and the
Takashi Iwai 8c33be
platform specific changes.
Takashi Iwai 8c33be
Takashi Iwai 8c33be
CNL has an increased DDB size as Damien had previously
Takashi Iwai 8c33be
noticed and provided a separated patch that got squashed here.
Takashi Iwai 8c33be
Takashi Iwai 8c33be
V2: Squash DDB size here per Ander request.
Takashi Iwai 8c33be
Takashi Iwai 8c33be
Credits-to: Damien Lespiau <damien.lespiau@intel.com>
Takashi Iwai 8c33be
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Takashi Iwai 8c33be
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com>
Takashi Iwai 8c33be
Link: http://patchwork.freedesktop.org/patch/msgid/1496781040-20888-1-git-send-email-rodrigo.vivi@intel.com
Takashi Iwai 8c33be
Acked-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 8c33be
Takashi Iwai 8c33be
---
Takashi Iwai 8c33be
 drivers/gpu/drm/i915/i915_drv.h          |    3 +++
Takashi Iwai 8c33be
 drivers/gpu/drm/i915/i915_pci.c          |    8 ++++++++
Takashi Iwai 8c33be
 drivers/gpu/drm/i915/intel_device_info.c |    1 +
Takashi Iwai 8c33be
 3 files changed, 12 insertions(+)
Takashi Iwai 8c33be
Takashi Iwai 8c33be
--- a/drivers/gpu/drm/i915/i915_drv.h
Takashi Iwai 8c33be
+++ b/drivers/gpu/drm/i915/i915_drv.h
Takashi Iwai 8c33be
@@ -826,6 +826,7 @@ enum intel_platform {
Takashi Iwai 8c33be
 	INTEL_BROXTON,
Takashi Iwai 8c33be
 	INTEL_KABYLAKE,
Takashi Iwai 8c33be
 	INTEL_GEMINILAKE,
Takashi Iwai 8c33be
+	INTEL_CANNONLAKE,
Takashi Iwai 8c33be
 	INTEL_MAX_PLATFORMS
Takashi Iwai 8c33be
 };
Takashi Iwai 8c33be
 
Takashi Iwai 8c33be
@@ -2768,6 +2769,7 @@ intel_info(const struct drm_i915_private
Takashi Iwai 8c33be
 #define IS_BROXTON(dev_priv)	((dev_priv)->info.platform == INTEL_BROXTON)
Takashi Iwai 8c33be
 #define IS_KABYLAKE(dev_priv)	((dev_priv)->info.platform == INTEL_KABYLAKE)
Takashi Iwai 8c33be
 #define IS_GEMINILAKE(dev_priv)	((dev_priv)->info.platform == INTEL_GEMINILAKE)
Takashi Iwai 8c33be
+#define IS_CANNONLAKE(dev_priv)	((dev_priv)->info.platform == INTEL_CANNONLAKE)
Takashi Iwai 8c33be
 #define IS_MOBILE(dev_priv)	((dev_priv)->info.is_mobile)
Takashi Iwai 8c33be
 #define IS_HSW_EARLY_SDV(dev_priv) (IS_HASWELL(dev_priv) && \
Takashi Iwai 8c33be
 				    (INTEL_DEVID(dev_priv) & 0xFF00) == 0x0C00)
Takashi Iwai 8c33be
@@ -2859,6 +2861,7 @@ intel_info(const struct drm_i915_private
Takashi Iwai 8c33be
 #define IS_GEN7(dev_priv)	(!!((dev_priv)->info.gen_mask & BIT(6)))
Takashi Iwai 8c33be
 #define IS_GEN8(dev_priv)	(!!((dev_priv)->info.gen_mask & BIT(7)))
Takashi Iwai 8c33be
 #define IS_GEN9(dev_priv)	(!!((dev_priv)->info.gen_mask & BIT(8)))
Takashi Iwai 8c33be
+#define IS_GEN10(dev_priv)	(!!((dev_priv)->info.gen_mask & BIT(9)))
Takashi Iwai 8c33be
 
Takashi Iwai 8c33be
 #define IS_LP(dev_priv)	(INTEL_INFO(dev_priv)->is_lp)
Takashi Iwai 8c33be
 #define IS_GEN9_LP(dev_priv)	(IS_GEN9(dev_priv) && IS_LP(dev_priv))
Takashi Iwai 8c33be
--- a/drivers/gpu/drm/i915/i915_pci.c
Takashi Iwai 8c33be
+++ b/drivers/gpu/drm/i915/i915_pci.c
Takashi Iwai 8c33be
@@ -425,6 +425,14 @@ static const struct intel_device_info in
Takashi Iwai 8c33be
 	.ring_mask = RENDER_RING | BSD_RING | BLT_RING | VEBOX_RING | BSD2_RING,
Takashi Iwai 8c33be
 };
Takashi Iwai 8c33be
 
Takashi Iwai 8c33be
+static const struct intel_device_info intel_cannonlake_info = {
Takashi Iwai 8c33be
+	BDW_FEATURES,
Takashi Iwai 8c33be
+	.is_alpha_support = 1,
Takashi Iwai 8c33be
+	.platform = INTEL_CANNONLAKE,
Takashi Iwai 8c33be
+	.gen = 10,
Takashi Iwai 8c33be
+	.ddb_size = 1024,
Takashi Iwai 8c33be
+};
Takashi Iwai 8c33be
+
Takashi Iwai 8c33be
 /*
Takashi Iwai 8c33be
  * Make sure any device matches here are from most specific to most
Takashi Iwai 8c33be
  * general.  For example, since the Quanta match is based on the subsystem
Takashi Iwai 8c33be
--- a/drivers/gpu/drm/i915/intel_device_info.c
Takashi Iwai 8c33be
+++ b/drivers/gpu/drm/i915/intel_device_info.c
Takashi Iwai 8c33be
@@ -51,6 +51,7 @@ static const char * const platform_names
Takashi Iwai 8c33be
 	PLATFORM_NAME(BROXTON),
Takashi Iwai 8c33be
 	PLATFORM_NAME(KABYLAKE),
Takashi Iwai 8c33be
 	PLATFORM_NAME(GEMINILAKE),
Takashi Iwai 8c33be
+	PLATFORM_NAME(CANNONLAKE),
Takashi Iwai 8c33be
 };
Takashi Iwai 8c33be
 #undef PLATFORM_NAME
Takashi Iwai 8c33be