1 /* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */ 2 /* 3 * Copyright (c) 2021 Rockchip Electronics Co., Ltd. 4 * Author: Sandy Huang <hjc@rock-chips.com> 5 */ 6 7 #ifndef ROCKCHIP_DRM_DEBUGFS_H 8 #define ROCKCHIP_DRM_DEBUGFS_H 9 10 /** 11 * struct vop_dump_info - vop dump plane info structure 12 * 13 * Store plane info used to write display data to /data/vop_buf/ 14 * 15 */ 16 struct vop_dump_info { 17 /* @win_id: vop hard win index */ 18 u8 win_id; 19 /* @area_id: vop hard area index inside win */ 20 u8 area_id; 21 /* @AFBC_flag: indicate the buffer compress by gpu or not */ 22 bool AFBC_flag; 23 /* @yuv_format: indicate yuv format or not */ 24 bool yuv_format; 25 /* @pitches: the buffer pitch size */ 26 u32 pitches; 27 /* @height: the buffer pitch height */ 28 u32 height; 29 /* @info: DRM format info */ 30 const struct drm_format_info *format; 31 /* @offset: the buffer offset */ 32 unsigned long offset; 33 /* @num_pages: the pages number */ 34 unsigned long num_pages; 35 /* @pages: store the buffer all pages */ 36 struct page **pages; 37 }; 38 39 /** 40 * struct vop_dump_list - store all buffer info per frame 41 * 42 * one frame maybe multiple buffer, all will be stored here. 43 * 44 */ 45 struct vop_dump_list { 46 struct list_head entry; 47 struct vop_dump_info dump_info; 48 }; 49 50 enum vop_dump_status { 51 DUMP_DISABLE = 0, 52 DUMP_KEEP 53 }; 54 55 #if defined(CONFIG_ROCKCHIP_DRM_DEBUG) 56 int rockchip_drm_add_dump_buffer(struct drm_crtc *crtc, struct dentry *root); 57 int rockchip_drm_dump_plane_buffer(struct vop_dump_info *dump_info, int frame_count); 58 #else 59 static inline int rockchip_drm_add_dump_buffer(struct drm_crtc * crtc,struct dentry * root)60rockchip_drm_add_dump_buffer(struct drm_crtc *crtc, struct dentry *root) 61 { 62 return 0; 63 } 64 65 static inline int rockchip_drm_dump_plane_buffer(struct vop_dump_info * dump_info,int frame_count)66rockchip_drm_dump_plane_buffer(struct vop_dump_info *dump_info, int frame_count) 67 { 68 return 0; 69 } 70 #endif 71 72 #endif 73