1*4882a593SmuzhiyunFrom 8ac02ab40c03233285bd77d58433e19792bc152e Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Jeffy Chen <jeffy.chen@rock-chips.com> 3*4882a593SmuzhiyunDate: Mon, 7 Mar 2022 18:22:04 +0800 4*4882a593SmuzhiyunSubject: [PATCH 56/79] pixel-formats: Support NV15/YU08/YU10 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunOnly for importing dmabuf to drm fb. 7*4882a593Smuzhiyun 8*4882a593SmuzhiyunSigned-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> 9*4882a593Smuzhiyun--- 10*4882a593Smuzhiyun libweston/pixel-formats.c | 12 ++++++++++++ 11*4882a593Smuzhiyun shared/weston-drm-fourcc.h | 12 ++++++++++++ 12*4882a593Smuzhiyun 2 files changed, 24 insertions(+) 13*4882a593Smuzhiyun 14*4882a593Smuzhiyundiff --git a/libweston/pixel-formats.c b/libweston/pixel-formats.c 15*4882a593Smuzhiyunindex a7ae8c00..0aa94573 100644 16*4882a593Smuzhiyun--- a/libweston/pixel-formats.c 17*4882a593Smuzhiyun+++ b/libweston/pixel-formats.c 18*4882a593Smuzhiyun@@ -591,6 +591,18 @@ static const struct pixel_format_info pixel_format_table[] = { 19*4882a593Smuzhiyun DRM_FORMAT(XYUV8888), 20*4882a593Smuzhiyun .bpp = 32, 21*4882a593Smuzhiyun }, 22*4882a593Smuzhiyun+ { 23*4882a593Smuzhiyun+ DRM_FORMAT(NV15), 24*4882a593Smuzhiyun+ .num_planes = 1, 25*4882a593Smuzhiyun+ }, 26*4882a593Smuzhiyun+ { 27*4882a593Smuzhiyun+ DRM_FORMAT(YUV420_8BIT), 28*4882a593Smuzhiyun+ .num_planes = 1, 29*4882a593Smuzhiyun+ }, 30*4882a593Smuzhiyun+ { 31*4882a593Smuzhiyun+ DRM_FORMAT(YUV420_10BIT), 32*4882a593Smuzhiyun+ .num_planes = 1, 33*4882a593Smuzhiyun+ }, 34*4882a593Smuzhiyun }; 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun WL_EXPORT const struct pixel_format_info * 37*4882a593Smuzhiyundiff --git a/shared/weston-drm-fourcc.h b/shared/weston-drm-fourcc.h 38*4882a593Smuzhiyunindex 31d80398..be9eaf68 100644 39*4882a593Smuzhiyun--- a/shared/weston-drm-fourcc.h 40*4882a593Smuzhiyun+++ b/shared/weston-drm-fourcc.h 41*4882a593Smuzhiyun@@ -34,6 +34,18 @@ 42*4882a593Smuzhiyun #define DRM_MOD_VALID(mod) \ 43*4882a593Smuzhiyun ((mod) != DRM_FORMAT_MOD_LINEAR && (mod) != DRM_FORMAT_MOD_INVALID) 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun+#ifndef DRM_FORMAT_NV15 46*4882a593Smuzhiyun+#define DRM_FORMAT_NV15 fourcc_code('N', 'V', '1', '5') 47*4882a593Smuzhiyun+#endif 48*4882a593Smuzhiyun+ 49*4882a593Smuzhiyun+#ifndef DRM_FORMAT_YUV420_8BIT 50*4882a593Smuzhiyun+#define DRM_FORMAT_YUV420_8BIT fourcc_code('Y', 'U', '0', '8') 51*4882a593Smuzhiyun+#endif 52*4882a593Smuzhiyun+ 53*4882a593Smuzhiyun+#ifndef DRM_FORMAT_YUV420_10BIT 54*4882a593Smuzhiyun+#define DRM_FORMAT_YUV420_10BIT fourcc_code('Y', 'U', '1', '0') 55*4882a593Smuzhiyun+#endif 56*4882a593Smuzhiyun+ 57*4882a593Smuzhiyun /* The kernel header drm_fourcc.h defines the DRM formats below. We duplicate 58*4882a593Smuzhiyun * some of the definitions here so that building Weston won't require 59*4882a593Smuzhiyun * bleeding-edge kernel headers. 60*4882a593Smuzhiyun-- 61*4882a593Smuzhiyun2.20.1 62*4882a593Smuzhiyun 63