1
0

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>
Este cometimento está contido em:
Nilaan Gunabalachandran
2020-08-10 11:59:27 -04:00
ascendente 9f954a19ff
cometimento c5835a215e
10 ficheiros modificados com 483 adições e 118 eliminações

Ver ficheiro

@@ -224,6 +224,30 @@ struct sde_crtc_misr_info {
*/
#define SDE_CRTC_MAX_EVENT_COUNT 16
/**
* struct sde_frame_data_buffer - defines frame data buffer structure
* @fd: framebuffer id associated with this buffer
* @fb: drm framebuffer for the buffer
* @gem: drm gem handle for he buffer
*/
struct sde_frame_data_buffer {
u32 fd;
struct drm_framebuffer *fb;
struct drm_gem_object *gem;
};
/**
* struct sde_frame_data - defines sde frame data structure
* @idx : currently used frame data buffe
* @cnt : rnumber of available frame data buffers
* @buf : list of frame data buffers
*/
struct sde_frame_data {
u32 idx;
u32 cnt;
struct sde_frame_data_buffer *buf[SDE_FRAME_DATA_BUFFER_MAX];
};
/**
* struct sde_crtc - virtualized CRTC data structure
* @base : Base drm crtc structure
@@ -303,6 +327,7 @@ struct sde_crtc_misr_info {
* @skip_blend_plane_w: skip blend plane width
* @skip_blend_plane_h: skip blend plane height
* @line_time_in_ns : current mode line time in nano sec is needed for QOS update
* @frame_data : Framedata data structure
*/
struct sde_crtc {
struct drm_crtc base;
@@ -402,6 +427,8 @@ struct sde_crtc {
u32 skip_blend_plane_w;
u32 skip_blend_plane_h;
u32 line_time_in_ns;
struct sde_frame_data frame_data;
};
enum sde_crtc_dirty_flags {