On Mon, Dec 19, 2011 at 4:33 PM, <ville.syrjala@xxxxxxxxxxxxxxx> wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > This function returns the number of planes used by a specific pixel > format. btw, I end up with a very similar util fxn in omapdrm driver.. would be nice to have this in core to avoid duplicating in every driver supporting multi-planar Reviewed-by: Rob Clark <rob.clark@xxxxxxxxxx> > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/drm_crtc_helper.c | 33 +++++++++++++++++++++++++++++++++ > include/drm/drm_crtc_helper.h | 3 +++ > 2 files changed, 36 insertions(+), 0 deletions(-) > > diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c > index ccbdc0b..f388708 100644 > --- a/drivers/gpu/drm/drm_crtc_helper.c > +++ b/drivers/gpu/drm/drm_crtc_helper.c > @@ -979,3 +979,36 @@ void drm_helper_hpd_irq_event(struct drm_device *dev) > queue_delayed_work(system_nrt_wq, &dev->mode_config.output_poll_work, 0); > } > EXPORT_SYMBOL(drm_helper_hpd_irq_event); > + > + > +/** > + * drm_format_num_planes - get the number of planes for format > + * @format: pixel format (DRM_FORMAT_*) > + * > + * RETURNS: > + * The number of planes used by the specified pixel format. > + */ > +int drm_format_num_planes(uint32_t format) > +{ > + switch (format) { > + case DRM_FORMAT_YUV410: > + case DRM_FORMAT_YVU410: > + case DRM_FORMAT_YUV411: > + case DRM_FORMAT_YVU411: > + case DRM_FORMAT_YUV420: > + case DRM_FORMAT_YVU420: > + case DRM_FORMAT_YUV422: > + case DRM_FORMAT_YVU422: > + case DRM_FORMAT_YUV444: > + case DRM_FORMAT_YVU444: > + return 3; > + case DRM_FORMAT_NV12: > + case DRM_FORMAT_NV21: > + case DRM_FORMAT_NV16: > + case DRM_FORMAT_NV61: > + return 2; > + default: > + return 1; > + } > +} > +EXPORT_SYMBOL(drm_format_num_planes); > diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h > index e88b7d7..37515d1 100644 > --- a/include/drm/drm_crtc_helper.h > +++ b/include/drm/drm_crtc_helper.h > @@ -144,4 +144,7 @@ extern void drm_helper_hpd_irq_event(struct drm_device *dev); > > extern void drm_kms_helper_poll_disable(struct drm_device *dev); > extern void drm_kms_helper_poll_enable(struct drm_device *dev); > + > +extern int drm_format_num_planes(uint32_t format); > + > #endif > -- > 1.7.3.4 > > _______________________________________________ > 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