@@ -52,6 +52,13 @@ MODULE_FIRMWARE(SKL_GUC_FIRMWARE_PATH);
#define BXT_GUC_FIRMWARE_PATH __MAKE_GUC_FW_PATH(BXT)
MODULE_FIRMWARE(BXT_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 KBL_GUC_FW_PREFIX kbl
#define KBL_GUC_FW_MAJOR 33
#define KBL_GUC_FW_MINOR 0
@@ -99,7 +106,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;
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) v4: rebased. 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/gt/uc/intel_guc_fw.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-)