From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 3/7] drm/i915: Fix fbdev sprite disable code Date: Fri, 24 May 2013 11:21:36 +0200 Message-ID: <20130524092136.GG15743@phenom.ffwll.local> References: <1368006922-24957-1-git-send-email-ville.syrjala@linux.intel.com> <1368006922-24957-4-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Content-Disposition: inline In-Reply-To: <1368006922-24957-4-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: ville.syrjala@linux.intel.com Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Wed, May 08, 2013 at 12:55:18PM +0300, ville.syrjala@linux.intel.com wro= te: > From: Ville Syrj=E4l=E4 > = > plane->enabled is never set, so this code didn't do anything. > = > If we end up doing a full modeset, sprites already get disabled. However > if we end up doing a simple set_base, we still need to turn off the sprit= es > manually. > = > And do the same for cursors, since we only want to see the primary plane > for fbdev. > = > Signed-off-by: Ville Syrj=E4l=E4 > --- > drivers/gpu/drm/i915/intel_display.c | 14 ++++++++++++++ > drivers/gpu/drm/i915/intel_drv.h | 1 + > drivers/gpu/drm/i915/intel_fb.c | 8 ++------ > 3 files changed, 17 insertions(+), 6 deletions(-) > = > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/= intel_display.c > index cfe2803..cef0bff 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -9928,3 +9928,17 @@ intel_display_print_error_state(struct seq_file *m, > } > } > #endif > + > +void intel_disable_cursors_and_sprites(struct drm_device *dev) > +{ > + struct drm_crtc *crtc; > + struct drm_plane *plane; > + > + list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { > + intel_crtc_dpms_overlay(to_intel_crtc(crtc), false); > + intel_crtc_update_cursor(crtc, false); > + } > + > + list_for_each_entry(plane, &dev->mode_config.plane_list, head) > + intel_plane_disable(plane); > +} > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/inte= l_drv.h > index cd1297e..a4e866a 100644 > --- a/drivers/gpu/drm/i915/intel_drv.h > +++ b/drivers/gpu/drm/i915/intel_drv.h > @@ -789,5 +789,6 @@ extern bool intel_set_cpu_fifo_underrun_reporting(str= uct drm_device *dev, > extern bool intel_set_pch_fifo_underrun_reporting(struct drm_device *dev, > enum transcoder pch_transcoder, > bool enable); > +extern void intel_disable_cursors_and_sprites(struct drm_device *dev); > = > #endif /* __INTEL_DRV_H__ */ > diff --git a/drivers/gpu/drm/i915/intel_fb.c b/drivers/gpu/drm/i915/intel= _fb.c > index a04481f..57a082c 100644 > --- a/drivers/gpu/drm/i915/intel_fb.c > +++ b/drivers/gpu/drm/i915/intel_fb.c > @@ -281,8 +281,6 @@ void intel_fb_restore_mode(struct drm_device *dev) > { > int ret; > drm_i915_private_t *dev_priv =3D dev->dev_private; > - struct drm_mode_config *config =3D &dev->mode_config; > - struct drm_plane *plane; > = > if (INTEL_INFO(dev)->num_pipes =3D=3D 0) > return; > @@ -293,10 +291,8 @@ void intel_fb_restore_mode(struct drm_device *dev) > if (ret) > DRM_DEBUG("failed to restore crtc mode\n"); > = > - /* Be sure to shut off any planes that may be active */ > - list_for_each_entry(plane, &config->plane_list, head) > - if (plane->enabled) > - plane->funcs->disable_plane(plane); > + /* in case we ended up doing just set_base above */ > + intel_disable_cursors_and_sprites(dev); Since I did not merge patch 2 I've killed this comment here. -Daniel > = > drm_modeset_unlock_all(dev); > } > -- = > 1.8.1.5 > = > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel -- = Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch