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
10struct 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
21struct 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 */
34struct 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 */
46void 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 */
54void 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 */
61void 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 */
67void dpu_vbif_init_memtypes(struct dpu_kms *dpu_kms);
68
69void dpu_debugfs_vbif_init(struct dpu_kms *dpu_kms, struct dentry *debugfs_root);
70
71#endif /* __DPU_VBIF_H__ */
72