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 u32 clk_ctrl; 20 }; 21 22 struct dpu_vbif_set_memtype_params { 23 u32 xin_id; 24 u32 vbif_idx; 25 u32 clk_ctrl; 26 bool is_cacheable; 27 }; 28 29 /** 30 * struct dpu_vbif_set_qos_params - QoS remapper parameter 31 * @vbif_idx: vbif identifier 32 * @xin_id: client interface identifier 33 * @clk_ctrl: clock control identifier of the xin 34 * @num: pipe identifier (debug only) 35 * @is_rt: true if pipe is used in real-time use case 36 */ 37 struct dpu_vbif_set_qos_params { 38 u32 vbif_idx; 39 u32 xin_id; 40 u32 clk_ctrl; 41 u32 num; 42 bool is_rt; 43 }; 44 45 /** 46 * dpu_vbif_set_ot_limit - set OT limit for vbif client 47 * @dpu_kms: DPU handler 48 * @params: Pointer to OT configuration parameters 49 */ 50 void dpu_vbif_set_ot_limit(struct dpu_kms *dpu_kms, 51 struct dpu_vbif_set_ot_params *params); 52 53 /** 54 * dpu_vbif_set_qos_remap - set QoS priority level remap 55 * @dpu_kms: DPU handler 56 * @params: Pointer to QoS configuration parameters 57 */ 58 void dpu_vbif_set_qos_remap(struct dpu_kms *dpu_kms, 59 struct dpu_vbif_set_qos_params *params); 60 61 /** 62 * dpu_vbif_clear_errors - clear any vbif errors 63 * @dpu_kms: DPU handler 64 */ 65 void dpu_vbif_clear_errors(struct dpu_kms *dpu_kms); 66 67 /** 68 * dpu_vbif_init_memtypes - initialize xin memory types for vbif 69 * @dpu_kms: DPU handler 70 */ 71 void dpu_vbif_init_memtypes(struct dpu_kms *dpu_kms); 72 73 void dpu_debugfs_vbif_init(struct dpu_kms *dpu_kms, struct dentry *debugfs_root); 74 75 #endif /* __DPU_VBIF_H__ */ 76