1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
3  */
4 
5 #ifndef __DPU_VBIF_H__
6 #define __DPU_VBIF_H__
7 
8 #include "dpu_kms.h"
9 
10 struct dpu_vbif_set_ot_params {
11 	u32 xin_id;
12 	u32 num;
13 	u32 width;
14 	u32 height;
15 	u32 frame_rate;
16 	bool rd;
17 	bool is_wfd;
18 	u32 vbif_idx;
19 };
20 
21 struct dpu_vbif_set_memtype_params {
22 	u32 xin_id;
23 	u32 vbif_idx;
24 	bool is_cacheable;
25 };
26 
27 /**
28  * struct dpu_vbif_set_qos_params - QoS remapper parameter
29  * @vbif_idx: vbif identifier
30  * @xin_id: client interface identifier
31  * @num: pipe identifier (debug only)
32  * @is_rt: true if pipe is used in real-time use case
33  */
34 struct dpu_vbif_set_qos_params {
35 	u32 vbif_idx;
36 	u32 xin_id;
37 	u32 num;
38 	bool is_rt;
39 };
40 
41 /**
42  * dpu_vbif_set_ot_limit - set OT limit for vbif client
43  * @dpu_kms:	DPU handler
44  * @params:	Pointer to OT configuration parameters
45  */
46 void dpu_vbif_set_ot_limit(struct dpu_kms *dpu_kms,
47 		struct dpu_vbif_set_ot_params *params);
48 
49 /**
50  * dpu_vbif_set_qos_remap - set QoS priority level remap
51  * @dpu_kms:	DPU handler
52  * @params:	Pointer to QoS configuration parameters
53  */
54 void dpu_vbif_set_qos_remap(struct dpu_kms *dpu_kms,
55 		struct dpu_vbif_set_qos_params *params);
56 
57 /**
58  * dpu_vbif_clear_errors - clear any vbif errors
59  * @dpu_kms:	DPU handler
60  */
61 void dpu_vbif_clear_errors(struct dpu_kms *dpu_kms);
62 
63 /**
64  * dpu_vbif_init_memtypes - initialize xin memory types for vbif
65  * @dpu_kms:	DPU handler
66  */
67 void dpu_vbif_init_memtypes(struct dpu_kms *dpu_kms);
68 
69 void dpu_debugfs_vbif_init(struct dpu_kms *dpu_kms, struct dentry *debugfs_root);
70 
71 #endif /* __DPU_VBIF_H__ */
72