On Thu, Mar 05, 2015 at 02:25:44AM +0200, Laurent Pinchart wrote: > Drivers implementing the universal planes API report the list of > supported pixel formats for the primary plane. Make sure the fb passed > to the setcrtc ioctl is compatible. > > Drivers not implementing the universal planes API will have no format > reported for the primary plane, skip the check in that case. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/drm_crtc.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c > index d794bcf..09ac312 100644 > --- a/drivers/gpu/drm/drm_crtc.c > +++ b/drivers/gpu/drm/drm_crtc.c > @@ -2807,6 +2807,22 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data, > > drm_mode_set_crtcinfo(mode, CRTC_INTERLACE_HALVE_V); > > + /* > + * Check whether the primary plane supports the fb pixel format. > + * Drivers not implementing the universal planes API will have > + * no format reported for the primary plane, skip the check in > + * that case. > + */ > + if (crtc->primary->format_count) { The compat helpers create a primary plane for you, and they fill out the format list with 2 hopefully save ones. I think we need to add some boolean to drm_plane which drm_primary_helper_create_plane sets when no explicit format list is passed in. And I guess we should make drm_primary_helper_create_plane static while at it. I've pulled in your first patch into drm-misc, with a slightly extended docbook text. Thanks, Daniel > + ret = drm_plane_check_pixel_format(crtc->primary, > + fb->pixel_format); > + if (ret) { > + DRM_DEBUG_KMS("Invalid pixel format %s\n", > + drm_get_format_name(fb->pixel_format)); > + goto out; > + } > + } > + > ret = drm_crtc_check_viewport(crtc, crtc_req->x, crtc_req->y, > mode, fb); > if (ret) > -- > 2.0.5 > -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel