drm/i915/HuC: Add KBL huC loading Support
authorAnusha Srivatsa <anusha.srivatsa@intel.com>
Wed, 18 Jan 2017 16:05:55 +0000 (08:05 -0800)
committerJani Nikula <jani.nikula@intel.com>
Thu, 19 Jan 2017 09:19:02 +0000 (11:19 +0200)
This patch adds the support to load HuC on KBL
Version 2.0

v2: rebased on top of drm-tip. Rename KBL_FW_ to KBL_HUC_FW_
v3: rebased. Remove old checks.

Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1484755558-1234-3-git-send-email-anusha.srivatsa@intel.com
drivers/gpu/drm/i915/intel_huc.c

index 887752488ea94f2e11ae02a54d09f2cc48d69950..8b84ba835b1fe1771f97a705d5f210a0d7f18452 100644 (file)
 #define SKL_HUC_FW_MINOR 07
 #define SKL_BLD_NUM 1398
 
+#define KBL_HUC_FW_MAJOR 02
+#define KBL_HUC_FW_MINOR 00
+#define KBL_BLD_NUM 1810
+
 #define HUC_FW_PATH(platform, major, minor, bld_num) \
        "i915/" __stringify(platform) "_huc_ver" __stringify(major) "_" \
        __stringify(minor) "_" __stringify(bld_num) ".bin"
@@ -59,6 +63,11 @@ MODULE_FIRMWARE(I915_SKL_HUC_UCODE);
 #define I915_BXT_HUC_UCODE HUC_FW_PATH(bxt, BXT_HUC_FW_MAJOR, \
        BXT_HUC_FW_MINOR, BXT_BLD_NUM)
 MODULE_FIRMWARE(I915_BXT_HUC_UCODE);
+
+#define I915_KBL_HUC_UCODE HUC_FW_PATH(kbl, KBL_HUC_FW_MAJOR, \
+       KBL_HUC_FW_MINOR, KBL_BLD_NUM)
+MODULE_FIRMWARE(I915_KBL_HUC_UCODE);
+
 /**
  * huc_ucode_xfer() - DMA's the firmware
  * @dev_priv: the drm_i915_private device
@@ -165,6 +174,10 @@ void intel_huc_init(struct drm_i915_private *dev_priv)
                fw_path = I915_BXT_HUC_UCODE;
                huc_fw->major_ver_wanted = BXT_HUC_FW_MAJOR;
                huc_fw->minor_ver_wanted = BXT_HUC_FW_MINOR;
+       } else if (IS_KABYLAKE(dev_priv)) {
+               fw_path = I915_KBL_HUC_UCODE;
+               huc_fw->major_ver_wanted = KBL_HUC_FW_MAJOR;
+               huc_fw->minor_ver_wanted = KBL_HUC_FW_MINOR;
        }
 
        huc_fw->path = fw_path;