On Tue, Jul 07, 2015 at 08:43:03AM +0200, Daniel Vetter wrote: > The legacy page_flip driver entry point is the only one left which > requires drivers to update plane->fb themselves. All the other entry > hooks will patch things up for the driver as needed since no one seems > to reliable get this right, see e.g. drm_mode_set_config_internal or > the plane->fb/old_fb handling in drm_mode_atomic_ioctl. > > Therefore unify things, which allows us to ditch a TODO from > drm_atomic_helper_page_flip. > > This should also help the atomic transition in i915 since we keep a > bit of legacy cruft only around because of this special behaviour in > ->page_flip. > > Cc: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx> > Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx> Applied with Maarten's irc r-b to drm-misc. -Daniel > --- > drivers/gpu/drm/drm_atomic_helper.c | 4 ---- > drivers/gpu/drm/drm_crtc.c | 8 +------- > 2 files changed, 1 insertion(+), 11 deletions(-) > > diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c > index 5b59d5ad7d1c..0898afbc9e23 100644 > --- a/drivers/gpu/drm/drm_atomic_helper.c > +++ b/drivers/gpu/drm/drm_atomic_helper.c > @@ -1915,10 +1915,6 @@ retry: > if (ret != 0) > goto fail; > > - /* TODO: ->page_flip is the only driver callback where the core > - * doesn't update plane->fb. For now patch it up here. */ > - plane->fb = plane->state->fb; > - > /* Driver takes ownership of state on successful async commit. */ > return 0; > fail: > diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c > index d15a96fdff43..ee0b3bf166b6 100644 > --- a/drivers/gpu/drm/drm_crtc.c > +++ b/drivers/gpu/drm/drm_crtc.c > @@ -5345,13 +5345,7 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev, > /* Keep the old fb, don't unref it. */ > crtc->primary->old_fb = NULL; > } else { > - /* > - * Warn if the driver hasn't properly updated the crtc->fb > - * field to reflect that the new framebuffer is now used. > - * Failing to do so will screw with the reference counting > - * on framebuffers. > - */ > - WARN_ON(crtc->primary->fb != fb); > + crtc->primary->fb = fb; > /* Unref only the old framebuffer. */ > fb = NULL; > } > -- > 2.1.4 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel