diff mbox

[3/5] drm/i915/icl/guc: Define the GuC firmware version for Icelake

Message ID 1524864703-9586-4-git-send-email-oscar.mateo@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

oscar.mateo@intel.com April 27, 2018, 9:31 p.m. UTC
A GuC firmware for Icelake is now available. Let's use it.

v2: Split out the Cannonlake stuff in a separate patch (Michal)

v3: Rebased

v4:
  - Rebased
  - Split out MODULE_FIRMWARE so we don't accidentally push it
    before linux-firmware (Joonas)

v5: Use the latest firmware (v23.120)
v6: Use the latest firmware (v26.171)
v7: Rebased (remove guc-core-family)
v8: Use the latest firmware (v27.182)

Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: John Spotswood <john.a.spotswood@intel.com>
Cc: Tony Ye <tony.ye@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
---
 drivers/gpu/drm/i915/intel_guc_fw.c | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

John Spotswood April 30, 2018, 11:34 p.m. UTC | #1
On Fri, 2018-04-27 at 14:31 -0700, Oscar Mateo wrote:
> A GuC firmware for Icelake is now available. Let's use it.
> 
> v2: Split out the Cannonlake stuff in a separate patch (Michal)
> 
> v3: Rebased
> 
> v4:
>   - Rebased
>   - Split out MODULE_FIRMWARE so we don't accidentally push it
>     before linux-firmware (Joonas)
> 
> v5: Use the latest firmware (v23.120)
> v6: Use the latest firmware (v26.171)
> v7: Rebased (remove guc-core-family)
> v8: Use the latest firmware (v27.182)
> 
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: John Spotswood <john.a.spotswood@intel.com>
> Cc: Tony Ye <tony.ye@intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> Signed-off-by: Michel Thierry <michel.thierry@intel.com>
> Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_guc_fw.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_guc_fw.c
> b/drivers/gpu/drm/i915/intel_guc_fw.c
> index a9e6fcc..c5c5dd8 100644
> --- a/drivers/gpu/drm/i915/intel_guc_fw.c
> +++ b/drivers/gpu/drm/i915/intel_guc_fw.c
> @@ -39,6 +39,9 @@
>  #define KBL_FW_MAJOR 9
>  #define KBL_FW_MINOR 39
>  
> +#define ICL_FW_MAJOR 27
> +#define ICL_FW_MINOR 182

This version will not be released, so why is this being added here?

> +
>  #define GUC_FW_PATH(platform, major, minor) \
>         "i915/" __stringify(platform) "_guc_ver" __stringify(major)
> "_" __stringify(minor) ".bin"
>  
> @@ -51,6 +54,8 @@
>  #define I915_KBL_GUC_UCODE GUC_FW_PATH(kbl, KBL_FW_MAJOR,
> KBL_FW_MINOR)
>  MODULE_FIRMWARE(I915_KBL_GUC_UCODE);
>  
> +#define I915_ICL_GUC_UCODE GUC_FW_PATH(icl, ICL_FW_MAJOR,
> ICL_FW_MINOR)
> +
>  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 +82,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_ICELAKE(dev_priv)) {
> +		guc_fw->path = I915_ICL_GUC_UCODE;
> +		guc_fw->major_ver_wanted = ICL_FW_MAJOR;
> +		guc_fw->minor_ver_wanted = ICL_FW_MINOR;
>  	} else {
>  		DRM_WARN("%s: No firmware known for this
> platform!\n",
>  			 intel_uc_fw_type_repr(guc_fw->type));
oscar.mateo@intel.com May 1, 2018, 5:41 p.m. UTC | #2
On 04/30/2018 04:34 PM, John Spotswood wrote:
> On Fri, 2018-04-27 at 14:31 -0700, Oscar Mateo wrote:
>> A GuC firmware for Icelake is now available. Let's use it.
>>
>> v2: Split out the Cannonlake stuff in a separate patch (Michal)
>>
>> v3: Rebased
>>
>> v4:
>>    - Rebased
>>    - Split out MODULE_FIRMWARE so we don't accidentally push it
>>      before linux-firmware (Joonas)
>>
>> v5: Use the latest firmware (v23.120)
>> v6: Use the latest firmware (v26.171)
>> v7: Rebased (remove guc-core-family)
>> v8: Use the latest firmware (v27.182)
>>
>> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
>> Cc: John Spotswood <john.a.spotswood@intel.com>
>> Cc: Tony Ye <tony.ye@intel.com>
>> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
>> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
>> Signed-off-by: Michel Thierry <michel.thierry@intel.com>
>> Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
>> ---
>>   drivers/gpu/drm/i915/intel_guc_fw.c | 9 +++++++++
>>   1 file changed, 9 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_guc_fw.c
>> b/drivers/gpu/drm/i915/intel_guc_fw.c
>> index a9e6fcc..c5c5dd8 100644
>> --- a/drivers/gpu/drm/i915/intel_guc_fw.c
>> +++ b/drivers/gpu/drm/i915/intel_guc_fw.c
>> @@ -39,6 +39,9 @@
>>   #define KBL_FW_MAJOR 9
>>   #define KBL_FW_MINOR 39
>>   
>> +#define ICL_FW_MAJOR 27
>> +#define ICL_FW_MINOR 182
> This version will not be released, so why is this being added here?

To be used by those who do have access to this firmware version. Please 
notice that I am purposefully not including the MODULE_FIRMWARE() tag 
for Icelake's GuC FW.

>> +
>>   #define GUC_FW_PATH(platform, major, minor) \
>>          "i915/" __stringify(platform) "_guc_ver" __stringify(major)
>> "_" __stringify(minor) ".bin"
>>   
>> @@ -51,6 +54,8 @@
>>   #define I915_KBL_GUC_UCODE GUC_FW_PATH(kbl, KBL_FW_MAJOR,
>> KBL_FW_MINOR)
>>   MODULE_FIRMWARE(I915_KBL_GUC_UCODE);
>>   
>> +#define I915_ICL_GUC_UCODE GUC_FW_PATH(icl, ICL_FW_MAJOR,
>> ICL_FW_MINOR)
>> +
>>   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 +82,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_ICELAKE(dev_priv)) {
>> +		guc_fw->path = I915_ICL_GUC_UCODE;
>> +		guc_fw->major_ver_wanted = ICL_FW_MAJOR;
>> +		guc_fw->minor_ver_wanted = ICL_FW_MINOR;
>>   	} else {
>>   		DRM_WARN("%s: No firmware known for this
>> platform!\n",
>>   			 intel_uc_fw_type_repr(guc_fw->type));
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_guc_fw.c b/drivers/gpu/drm/i915/intel_guc_fw.c
index a9e6fcc..c5c5dd8 100644
--- a/drivers/gpu/drm/i915/intel_guc_fw.c
+++ b/drivers/gpu/drm/i915/intel_guc_fw.c
@@ -39,6 +39,9 @@ 
 #define KBL_FW_MAJOR 9
 #define KBL_FW_MINOR 39
 
+#define ICL_FW_MAJOR 27
+#define ICL_FW_MINOR 182
+
 #define GUC_FW_PATH(platform, major, minor) \
        "i915/" __stringify(platform) "_guc_ver" __stringify(major) "_" __stringify(minor) ".bin"
 
@@ -51,6 +54,8 @@ 
 #define I915_KBL_GUC_UCODE GUC_FW_PATH(kbl, KBL_FW_MAJOR, KBL_FW_MINOR)
 MODULE_FIRMWARE(I915_KBL_GUC_UCODE);
 
+#define I915_ICL_GUC_UCODE GUC_FW_PATH(icl, ICL_FW_MAJOR, ICL_FW_MINOR)
+
 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 +82,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_ICELAKE(dev_priv)) {
+		guc_fw->path = I915_ICL_GUC_UCODE;
+		guc_fw->major_ver_wanted = ICL_FW_MAJOR;
+		guc_fw->minor_ver_wanted = ICL_FW_MINOR;
 	} else {
 		DRM_WARN("%s: No firmware known for this platform!\n",
 			 intel_uc_fw_type_repr(guc_fw->type));