[PATCH] drm: add checking DRM_FORMAT_NV12MT

Rob Clark robdclark at gmail.com
Mon Jul 28 08:56:59 PDT 2014


On Mon, Jul 28, 2014 at 12:47 AM, Joonyoung Shim
<jy0922.shim at samsung.com> wrote:
> If user NV12MT uses as pixel format, the Addfb2 ioctl is failed because
> of missing to check DRM_FORMAT_NV12MT. The NV12MT pixel format is
> supported by exynos4 and some qualcomm chipset and it is used by exynos
> drm driver.

tbh, format_check() should probably just be made to respect the
formats advertised by all the planes..

BR,
-R

> Signed-off-by: Joonyoung Shim <jy0922.shim at samsung.com>
> ---
>  drivers/gpu/drm/drm_crtc.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> index 1ccf5cb..5d7bd49 100644
> --- a/drivers/gpu/drm/drm_crtc.c
> +++ b/drivers/gpu/drm/drm_crtc.c
> @@ -2960,6 +2960,7 @@ static int format_check(const struct drm_mode_fb_cmd2 *r)
>         case DRM_FORMAT_NV61:
>         case DRM_FORMAT_NV24:
>         case DRM_FORMAT_NV42:
> +       case DRM_FORMAT_NV12MT:
>         case DRM_FORMAT_YUV410:
>         case DRM_FORMAT_YVU410:
>         case DRM_FORMAT_YUV411:
> @@ -4800,6 +4801,7 @@ int drm_format_num_planes(uint32_t format)
>         case DRM_FORMAT_NV61:
>         case DRM_FORMAT_NV24:
>         case DRM_FORMAT_NV42:
> +       case DRM_FORMAT_NV12MT:
>                 return 2;
>         default:
>                 return 1;
> @@ -4835,6 +4837,7 @@ int drm_format_plane_cpp(uint32_t format, int plane)
>         case DRM_FORMAT_NV61:
>         case DRM_FORMAT_NV24:
>         case DRM_FORMAT_NV42:
> +       case DRM_FORMAT_NV12MT:
>                 return plane ? 2 : 1;
>         case DRM_FORMAT_YUV410:
>         case DRM_FORMAT_YVU410:
> @@ -4878,6 +4881,7 @@ int drm_format_horz_chroma_subsampling(uint32_t format)
>         case DRM_FORMAT_NV21:
>         case DRM_FORMAT_NV16:
>         case DRM_FORMAT_NV61:
> +       case DRM_FORMAT_NV12MT:
>         case DRM_FORMAT_YUV422:
>         case DRM_FORMAT_YVU422:
>         case DRM_FORMAT_YUV420:
> @@ -4907,6 +4911,7 @@ int drm_format_vert_chroma_subsampling(uint32_t format)
>         case DRM_FORMAT_YVU420:
>         case DRM_FORMAT_NV12:
>         case DRM_FORMAT_NV21:
> +       case DRM_FORMAT_NV12MT:
>                 return 2;
>         default:
>                 return 1;
> --
> 1.8.1.2
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the dri-devel mailing list