disp: msm: sde: add plane staging management for 4LM topologies
When a 4LM topology is used each plane attached to a CRTC is tagged with a L/R layout value and an offset value depending on where destination X coordinate lands on the display. The layout information is used to determine SSPP to LM pair mapping and local coordinate space. This change also handles source-split and Z-order validation checks for planes staged on different mixer pairs. Change-Id: I1b20223388e65fc36a8b379ad9df23a277fcd1a5 Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
This commit is contained in:
@@ -43,6 +43,21 @@
|
||||
SDE_PLANE_DIRTY_DMA_GC)
|
||||
#define SDE_PLANE_DIRTY_ALL (0xFFFFFFFF & ~(SDE_PLANE_DIRTY_CP))
|
||||
|
||||
/**
|
||||
* enum sde_layout
|
||||
* Describes SSPP to LM staging layout when using more than 1 pair of LMs
|
||||
* @SDE_LAYOUT_NONE : SSPPs to LMs staging layout not enabled
|
||||
* @SDE_LAYOUT_LEFT : SSPPs will be staged on left two LMs
|
||||
* @SDE_LAYOUT_RIGHT : SSPPs will be staged on right two LMs
|
||||
* @SDE_LAYOUT_MAX :
|
||||
*/
|
||||
enum sde_layout {
|
||||
SDE_LAYOUT_NONE = 0,
|
||||
SDE_LAYOUT_LEFT,
|
||||
SDE_LAYOUT_RIGHT,
|
||||
SDE_LAYOUT_MAX,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum sde_plane_sclcheck_state - User scaler data status
|
||||
*
|
||||
@@ -79,6 +94,8 @@ enum sde_plane_sclcheck_state {
|
||||
* @defer_prepare_fb: indicate if prepare_fb call was deferred
|
||||
* @pipe_order_flags: contains pipe order flags:
|
||||
* SDE_SSPP_RIGHT - right pipe in source split pair
|
||||
* @layout_offset: horizontal layout offset for global coordinate
|
||||
* @layout: layout for topology requiring more than 1 lm pair.
|
||||
* @scaler3_cfg: configuration data for scaler3
|
||||
* @pixel_ext: configuration data for pixel extensions
|
||||
* @scaler_check_state: indicates status of user provided pixel extension data
|
||||
@@ -103,6 +120,8 @@ struct sde_plane_state {
|
||||
bool pending;
|
||||
bool defer_prepare_fb;
|
||||
uint32_t pipe_order_flags;
|
||||
int layout_offset;
|
||||
enum sde_layout layout;
|
||||
|
||||
/* scaler configuration */
|
||||
struct sde_hw_scaler3_cfg scaler3_cfg;
|
||||
|
Reference in New Issue
Block a user