On Fri, Jun 17, 2016 at 05:39:51PM +0100, Chris Wilson wrote: > Erratum SKL075: Display Flicker May Occur When Both VT-d And FBC Are Enabled > > "Display flickering may occur when both FBC (Frame Buffer Compression) > and VT - d (Intel® Virtualization Technology for Directed I/O) are enabled > and in use by the display controller." WaFbcTurnOffFbcWhenHyperVisorIsUsed:skl > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_fbc.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c > index fddba1eed5ad..e47785467220 100644 > --- a/drivers/gpu/drm/i915/intel_fbc.c > +++ b/drivers/gpu/drm/i915/intel_fbc.c > @@ -1230,6 +1230,18 @@ void intel_fbc_init_pipe_state(struct drm_i915_private *dev_priv) > dev_priv->fbc.visible_pipes_mask |= (1 << crtc->pipe); > } > > +static bool need_vtd_wa(struct drm_i915_private *dev_priv) > +{ > +#ifdef CONFIG_INTEL_IOMMU > + if (!intel_iommu_gfx_mapped) > + return false; > + > + if (INTEL_GEN(dev_priv) == 9) > + return true; > +#endif > + return false; > +} > + > /** > * intel_fbc_init - Initialize FBC > * @dev_priv: the i915 device > @@ -1247,6 +1259,12 @@ void intel_fbc_init(struct drm_i915_private *dev_priv) > fbc->active = false; > fbc->work.scheduled = false; > > + if (need_vtd_wa(dev_priv)) { > + struct intel_device_info *info = > + (struct intel_device_info *)&dev_priv->info; > + info->has_fbc = false; > + } > + > if (!HAS_FBC(dev_priv)) { > fbc->no_fbc_reason = "unsupported by this chipset"; > return; > -- > 2.8.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Ville Syrjälä Intel OTC _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx