Message ID | 1481727338-9901-1-git-send-email-paulo.r.zanoni@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Dec 14, 2016 at 12:55:37PM -0200, Paulo Zanoni wrote: > BSpec got updated and this workaround is now listed as standard > required programming for all subsequent projects. This is confirmed to > fix Skylake screen flickering issues (probably caused by the fact that > we initialized a ring in the first page of stolen, but I didn't 100% > confirm this theory). > > v2: this is the patch that fixes the screen flickering, document it. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94605 > Cc: stable@vger.kernel.org > Tested-by: Dominik Klementowski <dominik232@gmail.com> > Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Acked-by: Chris Wilson <chris@chris-wilson.co.uk> -Chris
Em Qua, 2016-12-14 às 12:55 -0200, Paulo Zanoni escreveu: > BSpec got updated and this workaround is now listed as standard > required programming for all subsequent projects. This is confirmed > to > fix Skylake screen flickering issues (probably caused by the fact > that > we initialized a ring in the first page of stolen, but I didn't 100% > confirm this theory). > > v2: this is the patch that fixes the screen flickering, document it. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94605 > Cc: stable@vger.kernel.org > Tested-by: Dominik Klementowski <dominik232@gmail.com> > Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Daniel gave me the missing R-B for this patch on IRC, so I pushed both patches. Thanks everybody for the reviews. > --- > drivers/gpu/drm/i915/i915_gem_stolen.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c > b/drivers/gpu/drm/i915/i915_gem_stolen.c > index efc0e74..b1c8897 100644 > --- a/drivers/gpu/drm/i915/i915_gem_stolen.c > +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c > @@ -55,10 +55,9 @@ int i915_gem_stolen_insert_node_in_range(struct > drm_i915_private *dev_priv, > return -ENODEV; > > /* See the comment at the drm_mm_init() call for more about > this check. > - * WaSkipStolenMemoryFirstPage:bdw,chv,kbl (incomplete) > + * WaSkipStolenMemoryFirstPage:bdw+ (incomplete) > */ > - if (start < 4096 && (IS_GEN8(dev_priv) || > - IS_KBL_REVID(dev_priv, 0, > KBL_REVID_A0))) > + if (start < 4096 && INTEL_GEN(dev_priv) >= 8) > start = 4096; > > mutex_lock(&dev_priv->mm.stolen_lock);
diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c index efc0e74..b1c8897 100644 --- a/drivers/gpu/drm/i915/i915_gem_stolen.c +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c @@ -55,10 +55,9 @@ int i915_gem_stolen_insert_node_in_range(struct drm_i915_private *dev_priv, return -ENODEV; /* See the comment at the drm_mm_init() call for more about this check. - * WaSkipStolenMemoryFirstPage:bdw,chv,kbl (incomplete) + * WaSkipStolenMemoryFirstPage:bdw+ (incomplete) */ - if (start < 4096 && (IS_GEN8(dev_priv) || - IS_KBL_REVID(dev_priv, 0, KBL_REVID_A0))) + if (start < 4096 && INTEL_GEN(dev_priv) >= 8) start = 4096; mutex_lock(&dev_priv->mm.stolen_lock);