drm/i915/guc: Define GuC firmware version for Comet Lake

Submitted by Srivatsa, Anusha on July 10, 2019, 10:43 p.m.

Details

Message ID 20190710224325.20555-1-anusha.srivatsa@intel.com
State New
Headers show
Series "drm/i915/guc: Define GuC firmware version for Comet Lake" ( rev: 3 ) in Intel GFX

Not browsing as part of any series.

Commit Message

Srivatsa, Anusha July 10, 2019, 10:43 p.m.
Load GuC for Comet Lake. Depending on the REVID,
we load either the KBL firmware or the CML firmware.

v2: Use CFL for CML platform check.(Michal)
v3: Use >=5 for future proofing(Michal, Daniele)

Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com>
---
 drivers/gpu/drm/i915/intel_guc_fw.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

Patch hide | download patch | download mbox

diff --git a/drivers/gpu/drm/i915/intel_guc_fw.c b/drivers/gpu/drm/i915/intel_guc_fw.c
index db1e0daca7db..c8c94df1e5d0 100644
--- a/drivers/gpu/drm/i915/intel_guc_fw.c
+++ b/drivers/gpu/drm/i915/intel_guc_fw.c
@@ -58,6 +58,13 @@  MODULE_FIRMWARE(BXT_GUC_FIRMWARE_PATH);
 #define KBL_GUC_FIRMWARE_PATH __MAKE_GUC_FW_PATH(KBL)
 MODULE_FIRMWARE(KBL_GUC_FIRMWARE_PATH);
 
+#define CML_GUC_FW_PREFIX cml
+#define CML_GUC_FW_MAJOR 33
+#define CML_GUC_FW_MINOR 0
+#define CML_GUC_FW_PATCH 0
+#define CML_GUC_FIRMWARE_PATH __MAKE_GUC_FW_PATH(CML)
+MODULE_FIRMWARE(CML_GUC_FIRMWARE_PATH);
+
 #define GLK_GUC_FW_PREFIX glk
 #define GLK_GUC_FW_MAJOR 33
 #define GLK_GUC_FW_MINOR 0
@@ -94,7 +101,17 @@  static void guc_fw_select(struct intel_uc_fw *guc_fw)
 		guc_fw->path = GLK_GUC_FIRMWARE_PATH;
 		guc_fw->major_ver_wanted = GLK_GUC_FW_MAJOR;
 		guc_fw->minor_ver_wanted = GLK_GUC_FW_MINOR;
-	} else if (IS_KABYLAKE(i915) || IS_COFFEELAKE(i915)) {
+	} else if (IS_COFFEELAKE(i915)) {
+		if (INTEL_REVID(i915) >= 5) {
+			guc_fw->path = CML_GUC_FIRMWARE_PATH;
+			guc_fw->major_ver_wanted = CML_GUC_FW_MAJOR;
+			guc_fw->minor_ver_wanted = CML_GUC_FW_MINOR;
+		} else {
+			guc_fw->path = KBL_GUC_FIRMWARE_PATH;
+			guc_fw->major_ver_wanted = KBL_GUC_FW_MAJOR;
+			guc_fw->minor_ver_wanted = KBL_GUC_FW_MINOR;
+		}
+	} else if (IS_KABYLAKE(i915)) {
 		guc_fw->path = KBL_GUC_FIRMWARE_PATH;
 		guc_fw->major_ver_wanted = KBL_GUC_FW_MAJOR;
 		guc_fw->minor_ver_wanted = KBL_GUC_FW_MINOR;