diff -drupN a/include/video/sunxi_metadata.h b/include/video/sunxi_metadata.h --- a/include/video/sunxi_metadata.h 1970-01-01 03:00:00.000000000 +0300 +++ b/include/video/sunxi_metadata.h 2022-06-12 05:28:14.000000000 +0300 @@ -0,0 +1,70 @@ +/* + * Allwinner SoCs display driver. + * + * Copyright (C) 2016 Allwinner. + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ +#ifndef __SUNXI_METADATA_H__ +#define __SUNXI_METADATA_H__ + +enum { + /* hdr static metadata is available */ + SUNXI_METADATA_FLAG_HDR_SATIC_METADATA = 0x00000001, + /* hdr dynamic metadata is available */ + SUNXI_METADATA_FLAG_HDR_DYNAMIC_METADATA = 0x00000002, + + /* afbc header data is available */ + SUNXI_METADATA_FLAG_AFBC_HEADER = 0x00000010, +}; + +struct afbc_header { + u32 signature; + u16 filehdr_size; + u16 version; + u32 body_size; + u8 ncomponents; + u8 header_layout; + u8 yuv_transform; + u8 block_split; + u8 inputbits[4]; + u16 block_width; + u16 block_height; + u16 width; + u16 height; + u8 left_crop; + u8 top_crop; + u16 block_layout; +}; + +struct display_master_data { + /* display primaries */ + u16 display_primaries_x[3]; + u16 display_primaries_y[3]; + + /* white_point */ + u16 white_point_x; + u16 white_point_y; + + /* max/min display mastering luminance */ + u32 max_display_mastering_luminance; + u32 min_display_mastering_luminance; +}; + +/* static metadata type 1 */ +struct hdr_static_metadata { + struct display_master_data disp_master; + + u16 maximum_content_light_level; + u16 maximum_frame_average_light_level; +}; + +/* sunxi video metadata for ve and de */ +struct sunxi_metadata { + struct hdr_static_metadata hdr_smetada; + struct afbc_header afbc_head; +}; + +#endif /* #ifndef __SUNXI_METADATA_H__ */