diff mbox

drm/i915/slpc: Sanitize SLPC version

Message ID 1471669765-5935-7-git-send-email-sagar.a.kamble@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

sagar.a.kamble@intel.com Aug. 20, 2016, 5:09 a.m. UTC
From: Tom O'Rourke <Tom.O'Rourke@intel.com>

The SLPC interface has changed and could continue to
change.  Only GuC versions known to be compatible are
supported here.

On Skylake, GuC firmware v6 is supported.  Other
platforms and versions can be added here later.

v5: Updated with modified sanitize_slpc_option in earlier patch.

Signed-off-by: Tom O'Rourke <Tom.O'Rourke@intel.com>
Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
---
 drivers/gpu/drm/i915/intel_guc_loader.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

David Weinehall Aug. 20, 2016, 8:06 a.m. UTC | #1
On Sat, Aug 20, 2016 at 10:39:05AM +0530, Sagar Arun Kamble wrote:
> From: Tom O'Rourke <Tom.O'Rourke@intel.com>
> 
> The SLPC interface has changed and could continue to
> change.  Only GuC versions known to be compatible are
> supported here.
> 
> On Skylake, GuC firmware v6 is supported.  Other
> platforms and versions can be added here later.
> 
> v5: Updated with modified sanitize_slpc_option in earlier patch.
> 
> Signed-off-by: Tom O'Rourke <Tom.O'Rourke@intel.com>
> Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_guc_loader.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_guc_loader.c b/drivers/gpu/drm/i915/intel_guc_loader.c
> index 75b360f..6765edf 100644
> --- a/drivers/gpu/drm/i915/intel_guc_loader.c
> +++ b/drivers/gpu/drm/i915/intel_guc_loader.c
> @@ -146,6 +146,9 @@ static void direct_interrupts_to_guc(struct drm_i915_private *dev_priv)
>  
>  static void sanitize_slpc_option(struct drm_device *dev)
>  {
> +	struct drm_i915_private *dev_priv = dev->dev_private;
> +	struct intel_guc_fw *guc_fw = &dev_priv->guc.guc_fw;
> +
>  	/* Handle default case */
>  	if (i915.enable_slpc < 0)
>  		i915.enable_slpc = HAS_SLPC(dev);
> @@ -161,6 +164,9 @@ static void sanitize_slpc_option(struct drm_device *dev)
>  	/* slpc requires guc submission */
>  	if (!i915.enable_guc_submission)
>  		i915.enable_slpc = 0;
> +
> +	if (IS_SKYLAKE(dev_priv) && (guc_fw->guc_fw_major_found != 6))
> +		i915.enable_slpc = 0;
>  }
>  
>  static u32 get_gttype(struct drm_i915_private *dev_priv)

Reviewed-by: David Weinehall <david.weinehall@linux.intel.com>
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_guc_loader.c b/drivers/gpu/drm/i915/intel_guc_loader.c
index 75b360f..6765edf 100644
--- a/drivers/gpu/drm/i915/intel_guc_loader.c
+++ b/drivers/gpu/drm/i915/intel_guc_loader.c
@@ -146,6 +146,9 @@  static void direct_interrupts_to_guc(struct drm_i915_private *dev_priv)
 
 static void sanitize_slpc_option(struct drm_device *dev)
 {
+	struct drm_i915_private *dev_priv = dev->dev_private;
+	struct intel_guc_fw *guc_fw = &dev_priv->guc.guc_fw;
+
 	/* Handle default case */
 	if (i915.enable_slpc < 0)
 		i915.enable_slpc = HAS_SLPC(dev);
@@ -161,6 +164,9 @@  static void sanitize_slpc_option(struct drm_device *dev)
 	/* slpc requires guc submission */
 	if (!i915.enable_guc_submission)
 		i915.enable_slpc = 0;
+
+	if (IS_SKYLAKE(dev_priv) && (guc_fw->guc_fw_major_found != 6))
+		i915.enable_slpc = 0;
 }
 
 static u32 get_gttype(struct drm_i915_private *dev_priv)