xref: /linux/drivers/gpu/drm/msm/disp/dpu1/dpu_vbif.h (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
1*97fb5e8dSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
225fdd593SJeykumar Sankaran /* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
325fdd593SJeykumar Sankaran  */
425fdd593SJeykumar Sankaran 
525fdd593SJeykumar Sankaran #ifndef __DPU_VBIF_H__
625fdd593SJeykumar Sankaran #define __DPU_VBIF_H__
725fdd593SJeykumar Sankaran 
825fdd593SJeykumar Sankaran #include "dpu_kms.h"
925fdd593SJeykumar Sankaran 
1025fdd593SJeykumar Sankaran struct dpu_vbif_set_ot_params {
1125fdd593SJeykumar Sankaran 	u32 xin_id;
1225fdd593SJeykumar Sankaran 	u32 num;
1325fdd593SJeykumar Sankaran 	u32 width;
1425fdd593SJeykumar Sankaran 	u32 height;
1525fdd593SJeykumar Sankaran 	u32 frame_rate;
1625fdd593SJeykumar Sankaran 	bool rd;
1725fdd593SJeykumar Sankaran 	bool is_wfd;
1825fdd593SJeykumar Sankaran 	u32 vbif_idx;
1925fdd593SJeykumar Sankaran };
2025fdd593SJeykumar Sankaran 
2125fdd593SJeykumar Sankaran struct dpu_vbif_set_memtype_params {
2225fdd593SJeykumar Sankaran 	u32 xin_id;
2325fdd593SJeykumar Sankaran 	u32 vbif_idx;
2425fdd593SJeykumar Sankaran 	bool is_cacheable;
2525fdd593SJeykumar Sankaran };
2625fdd593SJeykumar Sankaran 
2725fdd593SJeykumar Sankaran /**
2825fdd593SJeykumar Sankaran  * struct dpu_vbif_set_qos_params - QoS remapper parameter
2925fdd593SJeykumar Sankaran  * @vbif_idx: vbif identifier
3025fdd593SJeykumar Sankaran  * @xin_id: client interface identifier
3125fdd593SJeykumar Sankaran  * @num: pipe identifier (debug only)
3225fdd593SJeykumar Sankaran  * @is_rt: true if pipe is used in real-time use case
3325fdd593SJeykumar Sankaran  */
3425fdd593SJeykumar Sankaran struct dpu_vbif_set_qos_params {
3525fdd593SJeykumar Sankaran 	u32 vbif_idx;
3625fdd593SJeykumar Sankaran 	u32 xin_id;
3725fdd593SJeykumar Sankaran 	u32 num;
3825fdd593SJeykumar Sankaran 	bool is_rt;
3925fdd593SJeykumar Sankaran };
4025fdd593SJeykumar Sankaran 
4125fdd593SJeykumar Sankaran /**
4225fdd593SJeykumar Sankaran  * dpu_vbif_set_ot_limit - set OT limit for vbif client
4325fdd593SJeykumar Sankaran  * @dpu_kms:	DPU handler
4425fdd593SJeykumar Sankaran  * @params:	Pointer to OT configuration parameters
4525fdd593SJeykumar Sankaran  */
4625fdd593SJeykumar Sankaran void dpu_vbif_set_ot_limit(struct dpu_kms *dpu_kms,
4725fdd593SJeykumar Sankaran 		struct dpu_vbif_set_ot_params *params);
4825fdd593SJeykumar Sankaran 
4925fdd593SJeykumar Sankaran /**
5025fdd593SJeykumar Sankaran  * dpu_vbif_set_qos_remap - set QoS priority level remap
5125fdd593SJeykumar Sankaran  * @dpu_kms:	DPU handler
5225fdd593SJeykumar Sankaran  * @params:	Pointer to QoS configuration parameters
5325fdd593SJeykumar Sankaran  */
5425fdd593SJeykumar Sankaran void dpu_vbif_set_qos_remap(struct dpu_kms *dpu_kms,
5525fdd593SJeykumar Sankaran 		struct dpu_vbif_set_qos_params *params);
5625fdd593SJeykumar Sankaran 
5725fdd593SJeykumar Sankaran /**
5825fdd593SJeykumar Sankaran  * dpu_vbif_clear_errors - clear any vbif errors
5925fdd593SJeykumar Sankaran  * @dpu_kms:	DPU handler
6025fdd593SJeykumar Sankaran  */
6125fdd593SJeykumar Sankaran void dpu_vbif_clear_errors(struct dpu_kms *dpu_kms);
6225fdd593SJeykumar Sankaran 
6325fdd593SJeykumar Sankaran /**
6425fdd593SJeykumar Sankaran  * dpu_vbif_init_memtypes - initialize xin memory types for vbif
6525fdd593SJeykumar Sankaran  * @dpu_kms:	DPU handler
6625fdd593SJeykumar Sankaran  */
6725fdd593SJeykumar Sankaran void dpu_vbif_init_memtypes(struct dpu_kms *dpu_kms);
6825fdd593SJeykumar Sankaran 
693d688410SJordan Crouse void dpu_debugfs_vbif_init(struct dpu_kms *dpu_kms, struct dentry *debugfs_root);
703d688410SJordan Crouse 
7125fdd593SJeykumar Sankaran #endif /* __DPU_VBIF_H__ */
72