On Fri, Jan 29, 2016 at 08:01:19PM +0200, ville.syrjala@xxxxxxxxxxxxxxx wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > Add a few helpers to get the dimensions of the chroma plane(s). > > v2: Add kernel-doc (Daniel) > v3: Fix kerneldoc "Returns:" style (Daniel) > Uninline the functions and check for num_planes (Daniel) > > Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> Applied to drm-misc, thanks. -Daniel > --- > drivers/gpu/drm/drm_crtc.c | 40 ++++++++++++++++++++++++++++++++++++++++ > include/drm/drm_crtc.h | 2 ++ > 2 files changed, 42 insertions(+) > > diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c > index 6e6514ef9968..c708b37972de 100644 > --- a/drivers/gpu/drm/drm_crtc.c > +++ b/drivers/gpu/drm/drm_crtc.c > @@ -5715,6 +5715,46 @@ int drm_format_vert_chroma_subsampling(uint32_t format) > EXPORT_SYMBOL(drm_format_vert_chroma_subsampling); > > /** > + * drm_format_plane_width - width of the plane given the first plane > + * @width: width of the first plane > + * @format: pixel format > + * @plane: plane index > + * > + * Returns: > + * The width of @plane, given that the width of the first plane is @width. > + */ > +int drm_format_plane_width(int width, uint32_t format, int plane) > +{ > + if (plane >= drm_format_num_planes(format)) > + return 0; > + > + if (plane == 0) > + return width; > + > + return width / drm_format_horz_chroma_subsampling(format); > +} > + > +/** > + * drm_format_plane_height - height of the plane given the first plane > + * @height: height of the first plane > + * @format: pixel format > + * @plane: plane index > + * > + * Returns: > + * The height of @plane, given that the height of the first plane is @height. > + */ > +int drm_format_plane_height(int height, uint32_t format, int plane) > +{ > + if (plane >= drm_format_num_planes(format)) > + return 0; > + > + if (plane == 0) > + return height; > + > + return height / drm_format_vert_chroma_subsampling(format); > +} > + > +/** > * drm_rotation_simplify() - Try to simplify the rotation > * @rotation: Rotation to be simplified > * @supported_rotations: Supported rotations > diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h > index c65a212db77e..3a4b53ecd121 100644 > --- a/include/drm/drm_crtc.h > +++ b/include/drm/drm_crtc.h > @@ -2482,6 +2482,8 @@ extern int drm_format_num_planes(uint32_t format); > extern int drm_format_plane_cpp(uint32_t format, int plane); > extern int drm_format_horz_chroma_subsampling(uint32_t format); > extern int drm_format_vert_chroma_subsampling(uint32_t format); > +extern int drm_format_plane_width(int width, uint32_t format, int plane); > +extern int drm_format_plane_height(int height, uint32_t format, int plane); > extern const char *drm_get_format_name(uint32_t format); > extern struct drm_property *drm_mode_create_rotation_property(struct drm_device *dev, > unsigned int supported_rotations); > -- > 2.4.10 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel