On Mon, Mar 3, 2014 at 4:45 PM, Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> wrote: > On Mon, 3 Mar 2014 13:38:36 -0800 > Stéphane Marchesin <marcheu@xxxxxxxxxxxx> wrote: > >> Some drivers like exynos need the crtc to be able to disable the plane, >> so set it before calling disable_plane. >> >> Signed-off-by: Stéphane Marchesin <marcheu@xxxxxxxxxxxx> >> --- >> drivers/gpu/drm/drm_crtc.c | 21 +++++++++++---------- >> 1 file changed, 11 insertions(+), 10 deletions(-) >> >> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c >> index 3b7d32d..0943316 100644 >> --- a/drivers/gpu/drm/drm_crtc.c >> +++ b/drivers/gpu/drm/drm_crtc.c >> @@ -1947,10 +1947,21 @@ int drm_mode_setplane(struct drm_device *dev, void *data, >> } >> plane = obj_to_plane(obj); >> >> + obj = drm_mode_object_find(dev, plane_req->crtc_id, >> + DRM_MODE_OBJECT_CRTC); >> + if (!obj) { >> + DRM_DEBUG_KMS("Unknown crtc ID %d\n", >> + plane_req->crtc_id); >> + ret = -ENOENT; >> + goto out; >> + } >> + crtc = obj_to_crtc(obj); >> + >> /* No fb means shut it down */ >> if (!plane_req->fb_id) { >> drm_modeset_lock_all(dev); >> old_fb = plane->fb; >> + plane->crtc = crtc; just curious, but how is the plane ending up enabled *without* a crtc? That sounds a bit.. odd.. BR, -R >> plane->funcs->disable_plane(plane); >> plane->crtc = NULL; >> plane->fb = NULL; >> @@ -1958,16 +1969,6 @@ int drm_mode_setplane(struct drm_device *dev, void *data, >> goto out; >> } >> >> - obj = drm_mode_object_find(dev, plane_req->crtc_id, >> - DRM_MODE_OBJECT_CRTC); >> - if (!obj) { >> - DRM_DEBUG_KMS("Unknown crtc ID %d\n", >> - plane_req->crtc_id); >> - ret = -ENOENT; >> - goto out; >> - } >> - crtc = obj_to_crtc(obj); >> - >> fb = drm_framebuffer_lookup(dev, plane_req->fb_id); >> if (!fb) { >> DRM_DEBUG_KMS("Unknown framebuffer ID %d\n", > > I'm pretty sure this is ok since we don't have much userspace using > this that might fail to pass in a crtc when shutting down a plane... > > Reviewed-by: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> > > -- > Jesse Barnes, Intel Open Source Technology Center > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel