disp: msm: sde: add sys cache usage for static image

Store full or partial static image in system cache (L3 cache)
for video mode primary display. Added additional commit to
crtc commit thread to transition to read cache state.
The change also updates llcc APIs to support generic functionality.

Change-Id: I6b2a45da946d7e0e0b326da9d214be3f01a9420e
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
This commit is contained in:
Nilaan Gunabalachandran
2019-11-07 17:16:10 -05:00
parent d423505a8e
commit 83ee51cb5a
15 changed files with 547 additions and 159 deletions

View File

@@ -25,6 +25,7 @@
#include "sde_kms.h"
#include "sde_hw_mdss.h"
#include "sde_hw_sspp.h"
#include "sde_crtc.h"
/* dirty bits for update function */
#define SDE_PLANE_DIRTY_RECTS 0x1
@@ -80,6 +81,10 @@ enum sde_plane_sclcheck_state {
* @scaler3_cfg: configuration data for scaler3
* @pixel_ext: configuration data for pixel extensions
* @scaler_check_state: indicates status of user provided pixel extension data
* @pre_down: pre down scale configuration
* @sc_cfg: system cache configuration
* @rotation: rotation cache state
* @static_cache_state: plane cache state for static image
* @cdp_cfg: CDP configuration
*/
struct sde_plane_state {
@@ -107,6 +112,7 @@ struct sde_plane_state {
/* @sc_cfg: system_cache configuration */
struct sde_hw_pipe_sc_cfg sc_cfg;
uint32_t rotation;
uint32_t static_cache_state;
struct sde_hw_pipe_cdp_cfg cdp_cfg;
};
@@ -304,8 +310,18 @@ void sde_plane_setup_src_split_order(struct drm_plane *plane,
/* sde_plane_is_cache_required - indicates if the system cache is
* required for the plane.
* @plane: Pointer to DRM plane object
* @type: sys cache type
* Returns: true if sys cache is required, otherwise false.
*/
bool sde_plane_is_cache_required(struct drm_plane *plane);
bool sde_plane_is_cache_required(struct drm_plane *plane,
enum sde_sys_cache_type type);
/**
* sde_plane_static_img_control - Switch the static image state
* @plane: Pointer to drm plane structure
* @state: state to set
*/
void sde_plane_static_img_control(struct drm_plane *plane,
enum sde_crtc_cache_state state);
#endif /* _SDE_PLANE_H_ */