disp: msm: sde: frame data feature

Add support to send a data packet of info, written to
predefined buffers, providing information about each submitted frame.
Add required UAPI definitions for frame data buffers and event
notification.
Add support to read ubwc statistics from hw, based on defined rois.

Change-Id: I51f279de98ae4e2a02b0df6943d334764011d5db
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
This commit is contained in:
Nilaan Gunabalachandran
2020-08-10 11:59:27 -04:00
parent 9f954a19ff
commit c5835a215e
10 changed files with 483 additions and 118 deletions

View File

@@ -111,6 +111,7 @@ enum sde_plane_sclcheck_state {
* @static_cache_state: plane cache state for static image
* @cdp_cfg: CDP configuration
* @cont_splash_populated: State was populated as part of cont. splash
* @ubwc_stats_roi: cached roi for ubwc stats
*/
struct sde_plane_state {
struct drm_plane_state base;
@@ -144,6 +145,8 @@ struct sde_plane_state {
struct sde_hw_pipe_cdp_cfg cdp_cfg;
bool cont_splash_populated;
struct sde_drm_ubwc_stats_roi ubwc_stats_roi;
};
/**
@@ -314,30 +317,13 @@ bool sde_plane_is_sec_ui_allowed(struct drm_plane *plane);
*/
void sde_plane_secure_ctrl_xin_client(struct drm_plane *plane,
struct drm_crtc *crtc);
/*
* sde_plane_get_ubwc_error - gets the ubwc error code
* sde_plane_get_frame_data - gets the plane frame data
* @plane: Pointer to DRM plane object
* @frame_data: Pointer to plane frame data structure
*/
u32 sde_plane_get_ubwc_error(struct drm_plane *plane);
/*
* sde_plane_clear_ubwc_error - clears the ubwc error code
* @plane: Pointer to DRM plane object
*/
void sde_plane_clear_ubwc_error(struct drm_plane *plane);
/*
* sde_plane_get_meta_error - gets the meta error code
* @plane: Pointer to DRM plane object
*/
u32 sde_plane_get_meta_error(struct drm_plane *plane);
/*
* sde_plane_clear_meta_error - clears the meta error code
* @plane: Pointer to DRM plane object
*/
void sde_plane_clear_meta_error(struct drm_plane *plane);
void sde_plane_get_frame_data(struct drm_plane *plane,
struct sde_drm_plane_frame_data *frame_data);
/*
* sde_plane_setup_src_split_order - enable/disable pipe's src_split_order