[Intel-gfx] [PATCH 5/5] drm/i915: Move w/a 0477/WaDisableIPC:skl into intel_init_ipc()

Rodrigo Vivi rodrigo.vivi at intel.com
Tue Feb 19 17:50:40 UTC 2019


On Mon, Feb 18, 2019 at 10:52:50PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> Move the w/a to disable IPC on SKL closer to the actual code
> that implements IPS. Otherwise I just end up confused as to
> what is excluding SKL from considerations.
> 
> IMO this makes more sense anyway since the hw does have the
> feature, we're just not supposed to use it.
> 
> And this also makes us actually disable IPC in case eg. the
> BIOS enabled it when it shouldn't have.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

iirc your argument had convinced me, but I forgot to state
that back, sorry...

Reviewed-by: Rodrigo Vivi <rodrigo.vivi at intel.com>

> ---
>  drivers/gpu/drm/i915/i915_pci.c |  2 --
>  drivers/gpu/drm/i915/intel_pm.c | 19 ++++++++++++++-----
>  2 files changed, 14 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
> index c4d6b8da9b03..eaa69c83b8b2 100644
> --- a/drivers/gpu/drm/i915/i915_pci.c
> +++ b/drivers/gpu/drm/i915/i915_pci.c
> @@ -505,8 +505,6 @@ static const struct intel_device_info intel_cherryview_info = {
>  
>  #define SKL_PLATFORM \
>  	GEN9_FEATURES, \
> -	/* Display WA #0477 WaDisableIPC: skl */ \
> -	.display.has_ipc = 0, \
>  	PLATFORM(INTEL_SKYLAKE)
>  
>  static const struct intel_device_info intel_skylake_gt1_info = {
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 2bd1a47a134a..e177f229a2ca 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -6333,16 +6333,25 @@ void intel_enable_ipc(struct drm_i915_private *dev_priv)
>  	I915_WRITE(DISP_ARB_CTL2, val);
>  }
>  
> +static bool intel_can_enable_ipc(struct drm_i915_private *dev_priv)
> +{
> +	/* Display WA #0477 WaDisableIPC: skl */
> +	if (IS_SKYLAKE(dev_priv))
> +		return false;
> +
> +	/* Display WA #1141: SKL:all KBL:all CFL */
> +	if (IS_KABYLAKE(dev_priv) || IS_COFFEELAKE(dev_priv))
> +		return dev_priv->dram_info.symmetric_memory;
> +
> +	return true;
> +}
> +
>  void intel_init_ipc(struct drm_i915_private *dev_priv)
>  {
>  	if (!HAS_IPC(dev_priv))
>  		return;
>  
> -	/* Display WA #1141: SKL:all KBL:all CFL */
> -	if (IS_KABYLAKE(dev_priv) || IS_COFFEELAKE(dev_priv))
> -		dev_priv->ipc_enabled = dev_priv->dram_info.symmetric_memory;
> -	else
> -		dev_priv->ipc_enabled = true;
> +	dev_priv->ipc_enabled = intel_can_enable_ipc(dev_priv);
>  
>  	intel_enable_ipc(dev_priv);
>  }
> -- 
> 2.19.2
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx


More information about the Intel-gfx mailing list