xref: /OK3568_Linux_fs/buildroot/package/weston/0056-pixel-formats-Support-NV15-YU08-YU10.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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