diff mbox series

[v4,02/22] drm/i915/guc: Don't allow GuC submission

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

Commit Message

Michal Wajdeczko May 23, 2019, 11:30 p.m. UTC
Due to the upcoming changes to the GuC ABI interface, we must
disable GuC submission mode until final ABI will be available
on all GuC firmwares.

To avoid regressions on systems configured to run with no longer
supported configuration "enable_guc=3" or "enable_guc=1" clear
GuC submission bit.

v2: force switch to non-GuC submission mode

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@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>
Cc: Martin Peres <martin.peres@linux.intel.com>
Acked-by: Martin Peres <martin.peres@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_uc.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

Comments

Joonas Lahtinen May 27, 2019, 11:40 a.m. UTC | #1
Quoting Michal Wajdeczko (2019-05-24 02:30:29)
> Due to the upcoming changes to the GuC ABI interface, we must
> disable GuC submission mode until final ABI will be available
> on all GuC firmwares.
> 
> To avoid regressions on systems configured to run with no longer
> supported configuration "enable_guc=3" or "enable_guc=1" clear
> GuC submission bit.
> 
> v2: force switch to non-GuC submission mode
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@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>
> Cc: Martin Peres <martin.peres@linux.intel.com>
> Acked-by: Martin Peres <martin.peres@linux.intel.com>

> diff --git a/drivers/gpu/drm/i915/intel_uc.c b/drivers/gpu/drm/i915/intel_uc.c
> index 1a265fbd95c7..f66105d756df 100644
> --- a/drivers/gpu/drm/i915/intel_uc.c
> +++ b/drivers/gpu/drm/i915/intel_uc.c
> @@ -298,6 +307,10 @@ int intel_uc_init(struct drm_i915_private *i915)
>         if (!HAS_GUC(i915))
>                 return -ENODEV;
>  
> +       /* XXX: GuC submission is unavailable for now */
> +       if (USES_GUC_SUBMISSION(i915))
> +               return -EIO;
> +

This would be a driver programmer error, wouldn't it?

Maybe add GEM_BUG_ON() to the later branch that does the check?

Regards, Joonas
Michal Wajdeczko May 27, 2019, 11:59 a.m. UTC | #2
On Mon, 27 May 2019 13:40:25 +0200, Joonas Lahtinen  
<joonas.lahtinen@linux.intel.com> wrote:

> Quoting Michal Wajdeczko (2019-05-24 02:30:29)
>> Due to the upcoming changes to the GuC ABI interface, we must
>> disable GuC submission mode until final ABI will be available
>> on all GuC firmwares.
>>
>> To avoid regressions on systems configured to run with no longer
>> supported configuration "enable_guc=3" or "enable_guc=1" clear
>> GuC submission bit.
>>
>> v2: force switch to non-GuC submission mode
>>
>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
>> Cc: Chris Wilson <chris@chris-wilson.co.uk>
>> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@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>
>> Cc: Martin Peres <martin.peres@linux.intel.com>
>> Acked-by: Martin Peres <martin.peres@linux.intel.com>
>
>> diff --git a/drivers/gpu/drm/i915/intel_uc.c  
>> b/drivers/gpu/drm/i915/intel_uc.c
>> index 1a265fbd95c7..f66105d756df 100644
>> --- a/drivers/gpu/drm/i915/intel_uc.c
>> +++ b/drivers/gpu/drm/i915/intel_uc.c
>> @@ -298,6 +307,10 @@ int intel_uc_init(struct drm_i915_private *i915)
>>         if (!HAS_GUC(i915))
>>                 return -ENODEV;
>>
>> +       /* XXX: GuC submission is unavailable for now */
>> +       if (USES_GUC_SUBMISSION(i915))
>> +               return -EIO;
>> +
>
> This would be a driver programmer error, wouldn't it?
>
> Maybe add GEM_BUG_ON() to the later branch that does the check?

Yes as this should never happen now as in v2 we forced non-GuC submission
mode (it was needed only in v1 where we were just printing message)

Thanks for catching that!

>
> Regards, Joonas
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/intel_uc.c b/drivers/gpu/drm/i915/intel_uc.c
index 1a265fbd95c7..f66105d756df 100644
--- a/drivers/gpu/drm/i915/intel_uc.c
+++ b/drivers/gpu/drm/i915/intel_uc.c
@@ -130,6 +130,15 @@  static void sanitize_options_early(struct drm_i915_private *i915)
 					  "no HuC firmware");
 	}
 
+	/* XXX: GuC submission is unavailable for now */
+	if (intel_uc_is_using_guc_submission(i915)) {
+		DRM_INFO("Incompatible option detected: %s=%d, %s!\n",
+			 "enable_guc", i915_modparams.enable_guc,
+			 "GuC submission not supported");
+		DRM_INFO("Switching to non-GuC submission mode!\n");
+		i915_modparams.enable_guc &= ~ENABLE_GUC_SUBMISSION;
+	}
+
 	/* A negative value means "use platform/config default" */
 	if (i915_modparams.guc_log_level < 0)
 		i915_modparams.guc_log_level =
@@ -298,6 +307,10 @@  int intel_uc_init(struct drm_i915_private *i915)
 	if (!HAS_GUC(i915))
 		return -ENODEV;
 
+	/* XXX: GuC submission is unavailable for now */
+	if (USES_GUC_SUBMISSION(i915))
+		return -EIO;
+
 	ret = intel_guc_init(guc);
 	if (ret)
 		return ret;