Message ID | 1545305168-6047-1-git-send-email-juhapekka.heikkila@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915: Fix ILK-IVB primary plane enable delays | expand |
On Thu, Dec 20, 2018 at 01:26:08PM +0200, Juha-Pekka Heikkila wrote: > Primary and sprite plane enable on ILK-IVB may take two frames to complete > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103925 > Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> > --- > drivers/gpu/drm/i915/intel_display.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index 3b70948..b46ab48 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -10813,8 +10813,11 @@ int intel_plane_atomic_calc_changes(const struct intel_crtc_state *old_crtc_stat > * Despite the w/a only being listed for IVB we assume that > * the ILK/SNB note has similar ramifications, hence we apply > * the w/a on all three platforms. > + * > + * With experimental results seems this is needed also for primary > + * plane, not only sprite plane. Actually even documented in the spec. I wasn't able to reproduce this myself for whatever reason while I was coming up with a cleaner way to handle this. But let's trust the spec and go with it. My cleanup thing isn't quite ready yet so I've landed your patch in the meantime. Thanks. > */ > - if (plane->id == PLANE_SPRITE0 && > + if (plane->id != PLANE_CURSOR && > (IS_GEN_RANGE(dev_priv, 5, 6) || > IS_IVYBRIDGE(dev_priv)) && > (turn_on || (!needs_scaling(old_plane_state) && > -- > 2.7.4
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 3b70948..b46ab48 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -10813,8 +10813,11 @@ int intel_plane_atomic_calc_changes(const struct intel_crtc_state *old_crtc_stat * Despite the w/a only being listed for IVB we assume that * the ILK/SNB note has similar ramifications, hence we apply * the w/a on all three platforms. + * + * With experimental results seems this is needed also for primary + * plane, not only sprite plane. */ - if (plane->id == PLANE_SPRITE0 && + if (plane->id != PLANE_CURSOR && (IS_GEN_RANGE(dev_priv, 5, 6) || IS_IVYBRIDGE(dev_priv)) && (turn_on || (!needs_scaling(old_plane_state) &&
Primary and sprite plane enable on ILK-IVB may take two frames to complete Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103925 Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> --- drivers/gpu/drm/i915/intel_display.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)