On Mon, Dec 19, 2011 at 4:33 PM, <ville.syrjala at linux.intel.com> wrote: > From: Ville Syrj?l? <ville.syrjala at linux.intel.com> > > 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 at linaro.org> > Signed-off-by: Ville Syrj?l? <ville.syrjala at linux.intel.com> > --- > ?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 at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel