• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Allwinner SoCs display driver.
3  *
4  * Copyright (C) 2016 Allwinner.
5  *
6  * This file is licensed under the terms of the GNU General Public
7  * License version 2.  This program is licensed "as is" without any
8  * warranty of any kind, whether express or implied.
9  */
10 #ifndef __SUNXI_METADATA_H__
11 #define __SUNXI_METADATA_H__
12 
13 enum {
14 	/* hdr static metadata is available */
15 	SUNXI_METADATA_FLAG_HDR_SATIC_METADATA   = 0x00000001,
16 	/* hdr dynamic metadata is available */
17 	SUNXI_METADATA_FLAG_HDR_DYNAMIC_METADATA = 0x00000002,
18 
19 	/* afbc header data is available */
20 	SUNXI_METADATA_FLAG_AFBC_HEADER          = 0x00000010,
21 };
22 
23 struct afbc_header {
24 	u32 signature;
25 	u16 filehdr_size;
26 	u16 version;
27 	u32 body_size;
28 	u8 ncomponents;
29 	u8 header_layout;
30 	u8 yuv_transform;
31 	u8 block_split;
32 	u8 inputbits[4];
33 	u16 block_width;
34 	u16 block_height;
35 	u16 width;
36 	u16 height;
37 	u8  left_crop;
38 	u8  top_crop;
39 	u16 block_layout;
40 };
41 
42 struct display_master_data {
43 	/* display primaries */
44 	u16 display_primaries_x[3];
45 	u16 display_primaries_y[3];
46 
47 	/* white_point */
48 	u16 white_point_x;
49 	u16 white_point_y;
50 
51 	/* max/min display mastering luminance */
52 	u32 max_display_mastering_luminance;
53 	u32 min_display_mastering_luminance;
54 };
55 
56 /* static metadata type 1 */
57 #if IS_ENABLED(CONFIG_AW_DRM)
58 struct hdr_static_metadata_fake {
59 #else
60 struct hdr_static_metadata {
61 #endif
62 	struct display_master_data disp_master;
63 
64 	u16 maximum_content_light_level;
65 	u16 maximum_frame_average_light_level;
66 };
67 
68 /* sunxi video metadata for ve and de */
69 struct sunxi_metadata {
70 #if IS_ENABLED(CONFIG_AW_DRM)
71 	struct hdr_static_metadata_fake hdr_smetada;
72 #else
73 	struct hdr_static_metadata hdr_smetada;
74 #endif
75 	struct afbc_header afbc_head;
76 };
77 
78 #endif /* #ifndef __SUNXI_METADATA_H__ */
79