@@ -39,6 +39,9 @@
#define KBL_FW_MAJOR 9
#define KBL_FW_MINOR 39
+#define CNL_FW_MAJOR 11
+#define CNL_FW_MINOR 102
+
#define GUC_FW_PATH(platform, major, minor) \
"i915/" __stringify(platform) "_guc_ver" __stringify(major) "_" __stringify(minor) ".bin"
@@ -51,6 +54,9 @@ MODULE_FIRMWARE(I915_BXT_GUC_UCODE);
#define I915_KBL_GUC_UCODE GUC_FW_PATH(kbl, KBL_FW_MAJOR, KBL_FW_MINOR)
MODULE_FIRMWARE(I915_KBL_GUC_UCODE);
+#define I915_CNL_GUC_UCODE GUC_FW_PATH(cnl, CNL_FW_MAJOR, CNL_FW_MINOR)
+MODULE_FIRMWARE(I915_CNL_GUC_UCODE);
+
static void guc_fw_select(struct intel_uc_fw *guc_fw)
{
struct intel_guc *guc = container_of(guc_fw, struct intel_guc, fw);
@@ -77,6 +83,10 @@ static void guc_fw_select(struct intel_uc_fw *guc_fw)
guc_fw->path = I915_KBL_GUC_UCODE;
guc_fw->major_ver_wanted = KBL_FW_MAJOR;
guc_fw->minor_ver_wanted = KBL_FW_MINOR;
+ } else if (IS_CANNONLAKE(dev_priv)) {
+ guc_fw->path = I915_CNL_GUC_UCODE;
+ guc_fw->major_ver_wanted = CNL_FW_MAJOR;
+ guc_fw->minor_ver_wanted = CNL_FW_MINOR;
} else {
DRM_WARN("%s: No firmware known for this platform!\n",
intel_uc_fw_type_repr(guc_fw->type));
GuC is now available for Cannonlake. Load GuC v11.102 on Cannonlake. Cc: Tomi Sarvela <tomi.p.sarvela@intel.com> Cc: Jani Saarinen <jani.saarinen@intel.com> Cc: Rodrigo vivi <rodrigo.vivi@intel.com> Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com> --- drivers/gpu/drm/i915/intel_guc_fw.c | 10 ++++++++++ 1 file changed, 10 insertions(+)