drm/i915/guc: Define GuC firmware version for Comet Lake
diff mbox series

Message ID 20190708210805.24479-1-anusha.srivatsa@intel.com
State New
Headers show
Series
  • drm/i915/guc: Define GuC firmware version for Comet Lake
Related show

Commit Message

Srivatsa, Anusha July 8, 2019, 9:08 p.m. UTC
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)

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/intel_guc_fw.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

Comments

Daniele Ceraolo Spurio July 10, 2019, 1:08 a.m. UTC | #1
On 7/8/19 2:08 PM, Anusha Srivatsa wrote:
> 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)
> 
> 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/intel_guc_fw.c | 19 ++++++++++++++++++-
>   1 file changed, 18 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_guc_fw.c b/drivers/gpu/drm/i915/intel_guc_fw.c
> index db1e0daca7db..df0dfa49fbc8 100644
> --- a/drivers/gpu/drm/i915/intel_guc_fw.c
> +++ b/drivers/gpu/drm/i915/intel_guc_fw.c
> @@ -58,6 +58,13 @@ MODULE_FIRMWARE(BXT_GUC_FIRMWARE_PATH);
>   #define KBL_GUC_FIRMWARE_PATH __MAKE_GUC_FW_PATH(KBL)
>   MODULE_FIRMWARE(KBL_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(KBL)

s/KBL/CML

> +MODULE_FIRMWARE(CML_GUC_FIRMWARE_PATH);
> +
>   #define GLK_GUC_FW_PREFIX glk
>   #define GLK_GUC_FW_MAJOR 33
>   #define GLK_GUC_FW_MINOR 0
> @@ -94,7 +101,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) {

As Michal already commented on the previous rev, this should be >= 5 for 
future-proofing.

Daniele

> +			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;
>

Patch
diff mbox series

diff --git a/drivers/gpu/drm/i915/intel_guc_fw.c b/drivers/gpu/drm/i915/intel_guc_fw.c
index db1e0daca7db..df0dfa49fbc8 100644
--- a/drivers/gpu/drm/i915/intel_guc_fw.c
+++ b/drivers/gpu/drm/i915/intel_guc_fw.c
@@ -58,6 +58,13 @@  MODULE_FIRMWARE(BXT_GUC_FIRMWARE_PATH);
 #define KBL_GUC_FIRMWARE_PATH __MAKE_GUC_FW_PATH(KBL)
 MODULE_FIRMWARE(KBL_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(KBL)
+MODULE_FIRMWARE(CML_GUC_FIRMWARE_PATH);
+
 #define GLK_GUC_FW_PREFIX glk
 #define GLK_GUC_FW_MAJOR 33
 #define GLK_GUC_FW_MINOR 0
@@ -94,7 +101,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;