Message ID | 1360959697-23322-1-git-send-email-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, 15 Feb 2013 21:21:37 +0100 Daniel Vetter <daniel.vetter@ffwll.ch> wrote: > We need to clear the local variable to get the refcounting right > (since the reference drm_mode_setplane holds is transferred to the > plane->fb pointer). But should be done _after_ we update the pointer. > > Breakage introduced in > > commit 6c2a75325c800de286166c693e0cd33c3a1c5ec8 > Author: Daniel Vetter <daniel.vetter@ffwll.ch> > Date: Tue Dec 11 00:59:24 2012 +0100 > > drm: refcounting for sprite framebuffers > > Reported-by: Jesse Barnes <jbarnes@virtuousgeek.org> > Cc: Jesse Barnes <jbarnes@virtuousgeek.org> > Cc: Rob Clark <rob@ti.com> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > drivers/gpu/drm/drm_crtc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c > index 826a5ca..1960418 100644 > --- a/drivers/gpu/drm/drm_crtc.c > +++ b/drivers/gpu/drm/drm_crtc.c > @@ -1982,9 +1982,9 @@ int drm_mode_setplane(struct drm_device *dev, void *data, > plane_req->src_w, plane_req->src_h); > if (!ret) { > old_fb = plane->fb; > - fb = NULL; > plane->crtc = crtc; > plane->fb = fb; > + fb = NULL; > } > drm_modeset_unlock_all(dev); > Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> This will allow us to restore the sprite config in no-VT switch resumes.
On Fri, Feb 15, 2013 at 09:21:37PM +0100, Daniel Vetter wrote: > We need to clear the local variable to get the refcounting right > (since the reference drm_mode_setplane holds is transferred to the > plane->fb pointer). But should be done _after_ we update the pointer. > > Breakage introduced in > > commit 6c2a75325c800de286166c693e0cd33c3a1c5ec8 > Author: Daniel Vetter <daniel.vetter@ffwll.ch> > Date: Tue Dec 11 00:59:24 2012 +0100 > > drm: refcounting for sprite framebuffers > > Reported-by: Jesse Barnes <jbarnes@virtuousgeek.org> > Cc: Jesse Barnes <jbarnes@virtuousgeek.org> > Cc: Rob Clark <rob@ti.com> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/drm_crtc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c > index 826a5ca..1960418 100644 > --- a/drivers/gpu/drm/drm_crtc.c > +++ b/drivers/gpu/drm/drm_crtc.c > @@ -1982,9 +1982,9 @@ int drm_mode_setplane(struct drm_device *dev, void *data, > plane_req->src_w, plane_req->src_h); > if (!ret) { > old_fb = plane->fb; > - fb = NULL; > plane->crtc = crtc; > plane->fb = fb; > + fb = NULL; > } > drm_modeset_unlock_all(dev); > > -- > 1.7.10.4 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
On Fri, Feb 15, 2013 at 09:21:37PM +0100, Daniel Vetter wrote: > We need to clear the local variable to get the refcounting right > (since the reference drm_mode_setplane holds is transferred to the > plane->fb pointer). But should be done _after_ we update the pointer. > > Breakage introduced in > > commit 6c2a75325c800de286166c693e0cd33c3a1c5ec8 > Author: Daniel Vetter <daniel.vetter@ffwll.ch> > Date: Tue Dec 11 00:59:24 2012 +0100 > > drm: refcounting for sprite framebuffers > > Reported-by: Jesse Barnes <jbarnes@virtuousgeek.org> > Cc: Jesse Barnes <jbarnes@virtuousgeek.org> > Cc: Rob Clark <rob@ti.com> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > drivers/gpu/drm/drm_crtc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c > index 826a5ca..1960418 100644 > --- a/drivers/gpu/drm/drm_crtc.c > +++ b/drivers/gpu/drm/drm_crtc.c > @@ -1982,9 +1982,9 @@ int drm_mode_setplane(struct drm_device *dev, void *data, > plane_req->src_w, plane_req->src_h); > if (!ret) { > old_fb = plane->fb; > - fb = NULL; > plane->crtc = crtc; > plane->fb = fb; > + fb = NULL; > } > drm_modeset_unlock_all(dev); > Ugh... and again I sent the same patch because I didn't look properly and missed yours. Reviewed-by: Thierry Reding <thierry.reding@avionic-design.de>
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index 826a5ca..1960418 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c @@ -1982,9 +1982,9 @@ int drm_mode_setplane(struct drm_device *dev, void *data, plane_req->src_w, plane_req->src_h); if (!ret) { old_fb = plane->fb; - fb = NULL; plane->crtc = crtc; plane->fb = fb; + fb = NULL; } drm_modeset_unlock_all(dev);
We need to clear the local variable to get the refcounting right (since the reference drm_mode_setplane holds is transferred to the plane->fb pointer). But should be done _after_ we update the pointer. Breakage introduced in commit 6c2a75325c800de286166c693e0cd33c3a1c5ec8 Author: Daniel Vetter <daniel.vetter@ffwll.ch> Date: Tue Dec 11 00:59:24 2012 +0100 drm: refcounting for sprite framebuffers Reported-by: Jesse Barnes <jbarnes@virtuousgeek.org> Cc: Jesse Barnes <jbarnes@virtuousgeek.org> Cc: Rob Clark <rob@ti.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> --- drivers/gpu/drm/drm_crtc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)