On Mon, Feb 18, 2019 at 10:52:50PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrj...@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.syrj...@linux.intel.com>

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

Reviewed-by: Rodrigo Vivi <rodrigo.v...@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@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to