xref: /linux/drivers/media/platform/qcom/venus/hfi_plat_bufs.h (revision ae22a94997b8a03dcb3c922857c203246711f9d4)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Copyright (c) 2020, The Linux Foundation. All rights reserved.
4  */
5 
6 #ifndef __HFI_PLATFORM_BUFFERS_H__
7 #define __HFI_PLATFORM_BUFFERS_H__
8 
9 #include <linux/types.h>
10 #include "hfi_helper.h"
11 
12 struct hfi_plat_buffers_params {
13 	u32 width;
14 	u32 height;
15 	u32 out_width;
16 	u32 out_height;
17 	u32 codec;
18 	u32 hfi_color_fmt;
19 	u32 hfi_dpb_color_fmt;
20 	enum hfi_version version;
21 	u32 num_vpp_pipes;
22 	union {
23 		struct {
24 			u32 max_mbs_per_frame;
25 			u32 buffer_size_limit;
26 			bool is_secondary_output;
27 			bool is_interlaced;
28 		} dec;
29 		struct {
30 			u32 work_mode;
31 			u32 rc_type;
32 			u32 num_b_frames;
33 			bool is_tenbit;
34 		} enc;
35 	};
36 };
37 
38 int hfi_plat_bufreq_v6(struct hfi_plat_buffers_params *params, u32 session_type,
39 		       u32 buftype, struct hfi_buffer_requirements *bufreq);
40 
41 #endif
42