diff mbox series

[02/21] drm/i915/guc: Don't allow GuC submission on pre-Gen11

Message ID 20180829191056.63760-3-michal.wajdeczko@intel.com (mailing list archive)
State New, archived
Headers show
Series New GuC ABI | expand

Commit Message

Michal Wajdeczko Aug. 29, 2018, 7:10 p.m. UTC
Upcoming Gen11 GuC firmware requires new interface that is incompatible
with existing pre-Gen11 firmwares. Updated firmwares for pre-Gen11 will
arrive later. In the meantime sanitize the enable_guc option so that we
can enable HuC authentication but nothing else on pre-Gen11.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Michel Thierry <michel.thierry@intel.com>
Cc: John Spotswood <john.a.spotswood@intel.com>
Cc: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
Cc: Tony Ye <tony.ye@intel.com>
Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
Cc: Jeff Mcgee <jeff.mcgee@intel.com>
Cc: Antonio Argenziano <antonio.argenziano@intel.com>
Cc: Sujaritha Sundaresan <sujaritha.sundaresan@intel.com>
---
 drivers/gpu/drm/i915/intel_uc.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

Comments

Srivatsa, Anusha Aug. 29, 2018, 7:16 p.m. UTC | #1
>-----Original Message-----
>From: Wajdeczko, Michal
>Sent: Wednesday, August 29, 2018 12:11 PM
>To: intel-gfx@lists.freedesktop.org
>Cc: Wajdeczko, Michal <Michal.Wajdeczko@intel.com>; Joonas Lahtinen
><joonas.lahtinen@linux.intel.com>; Vivi, Rodrigo <rodrigo.vivi@intel.com>;
>Ceraolo Spurio, Daniele <daniele.ceraolospurio@intel.com>; Thierry, Michel
><michel.thierry@intel.com>; Spotswood, John A <john.a.spotswood@intel.com>;
>Belgaumkar, Vinay <vinay.belgaumkar@intel.com>; Ye, Tony
><tony.ye@intel.com>; Srivatsa, Anusha <anusha.srivatsa@intel.com>; Mcgee,
>Jeff <jeff.mcgee@intel.com>; Argenziano, Antonio
><antonio.argenziano@intel.com>; Sundaresan, Sujaritha
><sujaritha.sundaresan@intel.com>
>Subject: [PATCH 02/21] drm/i915/guc: Don't allow GuC submission on pre-Gen11
>
>Upcoming Gen11 GuC firmware requires new interface that is incompatible with
>existing pre-Gen11 firmwares. Updated firmwares for pre-Gen11 will arrive later.
>In the meantime sanitize the enable_guc option so that we can enable HuC
>authentication but nothing else on pre-Gen11.
>
>Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
>Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
>Cc: Michel Thierry <michel.thierry@intel.com>
>Cc: John Spotswood <john.a.spotswood@intel.com>
>Cc: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
>Cc: Tony Ye <tony.ye@intel.com>
>Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
>Cc: Jeff Mcgee <jeff.mcgee@intel.com>
>Cc: Antonio Argenziano <antonio.argenziano@intel.com>
>Cc: Sujaritha Sundaresan <sujaritha.sundaresan@intel.com>
Thanks for the fix Michal.

Reviewed-by: Anusha Srivatsa <anusha.srivatsa@intel.com>
>---
> drivers/gpu/drm/i915/intel_uc.c | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>diff --git a/drivers/gpu/drm/i915/intel_uc.c b/drivers/gpu/drm/i915/intel_uc.c
>index 7a3a4ca..185b29b 100644
>--- a/drivers/gpu/drm/i915/intel_uc.c
>+++ b/drivers/gpu/drm/i915/intel_uc.c
>@@ -63,6 +63,8 @@ static int __get_platform_enable_guc(struct
>drm_i915_private *i915)
> 		enable_guc |= ENABLE_GUC_LOAD_HUC;
>
> 	/* Any platform specific fine-tuning can be done here */
>+	if (INTEL_GEN(i915) < 11)
>+		enable_guc &= ~ENABLE_GUC_SUBMISSION;
>
> 	return enable_guc;
> }
>@@ -115,6 +117,13 @@ static void sanitize_options_early(struct
>drm_i915_private *i915)
> 			 yesno(intel_uc_is_using_guc_submission()),
> 			 yesno(intel_uc_is_using_huc()));
>
>+	/* Verify GuC submission support */
>+	if (intel_uc_is_using_guc_submission() && INTEL_GEN(i915) < 11) {
>+		DRM_WARN("Incompatible option detected: %s=%d, %s!\n",
>+			 "enable_guc", i915_modparams.enable_guc,
>+			 "submission not supported");
>+	}
>+
> 	/* Verify GuC firmware availability */
> 	if (intel_uc_is_using_guc() && !intel_uc_fw_is_selected(guc_fw)) {
> 		DRM_WARN("Incompatible option detected: %s=%d, %s!\n",
>@@ -292,6 +301,12 @@ int intel_uc_init(struct drm_i915_private *i915)
> 		return ret;
>
> 	if (USES_GUC_SUBMISSION(i915)) {
>+
>+		if (INTEL_GEN(i915) < 11) {
>+			intel_guc_fini(guc);
>+			return -EIO;
>+		}
>+
> 		/*
> 		 * This is stuff we need to have available at fw load time
> 		 * if we are planning to enable submission later
>--
>1.9.1
John Spotswood Aug. 30, 2018, 10:58 p.m. UTC | #2
On Wed, 2018-08-29 at 12:10 -0700, Wajdeczko, Michal wrote:
> Upcoming Gen11 GuC firmware requires new interface that is
> incompatible
> with existing pre-Gen11 firmwares. Updated firmwares for pre-Gen11
> will
> arrive later. In the meantime sanitize the enable_guc option so that
> we
> can enable HuC authentication but nothing else on pre-Gen11.
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> Cc: Michel Thierry <michel.thierry@intel.com>
> Cc: John Spotswood <john.a.spotswood@intel.com>
> Cc: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
> Cc: Tony Ye <tony.ye@intel.com>
> Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
> Cc: Jeff Mcgee <jeff.mcgee@intel.com>
> Cc: Antonio Argenziano <antonio.argenziano@intel.com>
> Cc: Sujaritha Sundaresan <sujaritha.sundaresan@intel.com>

Reviewed-by: John Spotswood <john.a.spotswood@intel.com>

> ---
>  drivers/gpu/drm/i915/intel_uc.c | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_uc.c
> b/drivers/gpu/drm/i915/intel_uc.c
> index 7a3a4ca..185b29b 100644
> --- a/drivers/gpu/drm/i915/intel_uc.c
> +++ b/drivers/gpu/drm/i915/intel_uc.c
> @@ -63,6 +63,8 @@ static int __get_platform_enable_guc(struct
> drm_i915_private *i915)
>  		enable_guc |= ENABLE_GUC_LOAD_HUC;
>  
>  	/* Any platform specific fine-tuning can be done here */
> +	if (INTEL_GEN(i915) < 11)
> +		enable_guc &= ~ENABLE_GUC_SUBMISSION;
>  
>  	return enable_guc;
>  }
> @@ -115,6 +117,13 @@ static void sanitize_options_early(struct
> drm_i915_private *i915)
>  			 yesno(intel_uc_is_using_guc_submission()),
>  			 yesno(intel_uc_is_using_huc()));
>  
> +	/* Verify GuC submission support */
> +	if (intel_uc_is_using_guc_submission() && INTEL_GEN(i915) <
> 11) {
> +		DRM_WARN("Incompatible option detected: %s=%d,
> %s!\n",
> +			 "enable_guc", i915_modparams.enable_guc,
> +			 "submission not supported");
> +	}
> +
>  	/* Verify GuC firmware availability */
>  	if (intel_uc_is_using_guc() &&
> !intel_uc_fw_is_selected(guc_fw)) {
>  		DRM_WARN("Incompatible option detected: %s=%d,
> %s!\n",
> @@ -292,6 +301,12 @@ int intel_uc_init(struct drm_i915_private *i915)
>  		return ret;
>  
>  	if (USES_GUC_SUBMISSION(i915)) {
> +
> +		if (INTEL_GEN(i915) < 11) {
> +			intel_guc_fini(guc);
> +			return -EIO;
> +		}
> +
>  		/*
>  		 * This is stuff we need to have available at fw
> load time
>  		 * if we are planning to enable submission later
Joonas Lahtinen Sept. 6, 2018, 8:28 a.m. UTC | #3
Quoting Michal Wajdeczko (2018-08-29 22:10:36)
> Upcoming Gen11 GuC firmware requires new interface that is incompatible
> with existing pre-Gen11 firmwares. Updated firmwares for pre-Gen11 will
> arrive later. In the meantime sanitize the enable_guc option so that we
> can enable HuC authentication but nothing else on pre-Gen11.

Do you have a plan to source a GuC ICL machine to CI to regain the
lost coverage? That'd be the minimum requirement.

This is because I'm not really sold for replacing the existing
interface in upstream (for which we have some machines in CI) with
something we don't currently have any coverage for.

Regards, Joonas
Joonas Lahtinen Sept. 6, 2018, 8:29 a.m. UTC | #4
Quoting Michal Wajdeczko (2018-08-29 22:10:36)
> Upcoming Gen11 GuC firmware requires new interface that is incompatible
> with existing pre-Gen11 firmwares. Updated firmwares for pre-Gen11 will
> arrive later. In the meantime sanitize the enable_guc option so that we
> can enable HuC authentication but nothing else on pre-Gen11.
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> Cc: Michel Thierry <michel.thierry@intel.com>
> Cc: John Spotswood <john.a.spotswood@intel.com>
> Cc: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
> Cc: Tony Ye <tony.ye@intel.com>
> Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
> Cc: Jeff Mcgee <jeff.mcgee@intel.com>
> Cc: Antonio Argenziano <antonio.argenziano@intel.com>
> Cc: Sujaritha Sundaresan <sujaritha.sundaresan@intel.com>

<SNIP>

> @@ -292,6 +301,12 @@ int intel_uc_init(struct drm_i915_private *i915)
>                 return ret;
>  
>         if (USES_GUC_SUBMISSION(i915)) {
> +

Extra newline.

Regards, Joonas

> +               if (INTEL_GEN(i915) < 11) {
> +                       intel_guc_fini(guc);
> +                       return -EIO;
> +               }
> +
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/intel_uc.c b/drivers/gpu/drm/i915/intel_uc.c
index 7a3a4ca..185b29b 100644
--- a/drivers/gpu/drm/i915/intel_uc.c
+++ b/drivers/gpu/drm/i915/intel_uc.c
@@ -63,6 +63,8 @@  static int __get_platform_enable_guc(struct drm_i915_private *i915)
 		enable_guc |= ENABLE_GUC_LOAD_HUC;
 
 	/* Any platform specific fine-tuning can be done here */
+	if (INTEL_GEN(i915) < 11)
+		enable_guc &= ~ENABLE_GUC_SUBMISSION;
 
 	return enable_guc;
 }
@@ -115,6 +117,13 @@  static void sanitize_options_early(struct drm_i915_private *i915)
 			 yesno(intel_uc_is_using_guc_submission()),
 			 yesno(intel_uc_is_using_huc()));
 
+	/* Verify GuC submission support */
+	if (intel_uc_is_using_guc_submission() && INTEL_GEN(i915) < 11) {
+		DRM_WARN("Incompatible option detected: %s=%d, %s!\n",
+			 "enable_guc", i915_modparams.enable_guc,
+			 "submission not supported");
+	}
+
 	/* Verify GuC firmware availability */
 	if (intel_uc_is_using_guc() && !intel_uc_fw_is_selected(guc_fw)) {
 		DRM_WARN("Incompatible option detected: %s=%d, %s!\n",
@@ -292,6 +301,12 @@  int intel_uc_init(struct drm_i915_private *i915)
 		return ret;
 
 	if (USES_GUC_SUBMISSION(i915)) {
+
+		if (INTEL_GEN(i915) < 11) {
+			intel_guc_fini(guc);
+			return -EIO;
+		}
+
 		/*
 		 * This is stuff we need to have available at fw load time
 		 * if we are planning to enable submission later