[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