GNU Linux-libre 6.7.9-gnu
[releases.git] / drivers / media / platform / qcom / venus / hfi_plat_bufs.h
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