[5/8] drm/i915/HuC: Add KBL huC loading Support
diff mbox

Message ID 1481840990-31191-6-git-send-email-anusha.srivatsa@intel.com
State New
Headers show

Commit Message

Srivatsa, Anusha Dec. 15, 2016, 10:29 p.m. UTC
From: Anusha Srivatsa <anusha.srivatsa@intel.com>

This patch adds the support to load HuC on KBL
Version 2.0

v2: rebased.
v3: rebased on top of drm-tip
v4: rebased.
v5: rebased. Rename KBL_FW_ to KBL_HUC_FW_

Cc: Jeff Mcgee <jeff.mcgee@intel.com>
Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com>
Reviewed-by: Jeff McGee <jeff.mcgee@intel.com>
---
 drivers/gpu/drm/i915/intel_huc_loader.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

Comments

Tvrtko Ursulin Dec. 16, 2016, 4:18 p.m. UTC | #1
On 15/12/2016 22:29, anushasr wrote:
> From: Anusha Srivatsa <anusha.srivatsa@intel.com>
>
> This patch adds the support to load HuC on KBL
> Version 2.0
>
> v2: rebased.
> v3: rebased on top of drm-tip
> v4: rebased.
> v5: rebased. Rename KBL_FW_ to KBL_HUC_FW_
>
> Cc: Jeff Mcgee <jeff.mcgee@intel.com>
> Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com>
> Reviewed-by: Jeff McGee <jeff.mcgee@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_huc_loader.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_huc_loader.c b/drivers/gpu/drm/i915/intel_huc_loader.c
> index f36efd4..d8c5266 100644
> --- a/drivers/gpu/drm/i915/intel_huc_loader.c
> +++ b/drivers/gpu/drm/i915/intel_huc_loader.c
> @@ -48,6 +48,10 @@
>  #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 device
> @@ -168,8 +177,15 @@ 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;
>  	}
>
> +	if (fw_path == NULL)
> +		return;
> +

This looks suspiciously out of place in this patch. What's the reason 
for it?

Regards,

Tvrtko

>  	huc_fw->uc_fw_path = fw_path;
>  	huc_fw->fetch_status = INTEL_UC_FIRMWARE_PENDING;
>
>

Patch
diff mbox

diff --git a/drivers/gpu/drm/i915/intel_huc_loader.c b/drivers/gpu/drm/i915/intel_huc_loader.c
index f36efd4..d8c5266 100644
--- a/drivers/gpu/drm/i915/intel_huc_loader.c
+++ b/drivers/gpu/drm/i915/intel_huc_loader.c
@@ -48,6 +48,10 @@ 
 #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 device
@@ -168,8 +177,15 @@  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;
 	}
 
+	if (fw_path == NULL)
+		return;
+
 	huc_fw->uc_fw_path = fw_path;
 	huc_fw->fetch_status = INTEL_UC_FIRMWARE_PENDING;