disp: msm: sde: cache cwb enc mask to use during seamless transitions

The cwb_enc_mask is set by the wb phys encoder during the validate
phase and this is in-turn used during the commit phase. During
seamless transition cases like poms with cwb, the encoders are
disabled and then enabled back after the validate phase. The cwb
flags are reset during this time leading to issues. Cache the flag
and reapply it during the modeset to avoid this case.

Change-Id: I5df1be18a5e30bb1107dc0f2e87d771a735f1ab6
Signed-off-by: Veera Sundaram Sankaran <quic_veeras@quicinc.com>
Цей коміт міститься в:
Veera Sundaram Sankaran
2022-10-11 14:48:08 -07:00
зафіксовано Gerrit - the friendly Code Review server
джерело 7fcbec0c8d
коміт 09b2c937c2
2 змінених файлів з 15 додано та 0 видалено

Переглянути файл

@@ -508,6 +508,7 @@ struct sde_line_insertion_param {
* @input_fence_timeout_ns : Cached input fence timeout, in ns
* @num_dim_layers: Number of dim layers
* @cwb_enc_mask : encoder mask populated during atomic_check if CWB is enabled
* @cached_cwb_enc_mask : cached encoder mask populated during atomic_check if CWB is enabled
* @dim_layer: Dim layer configs
* @num_ds: Number of destination scalers to be configured
* @num_ds_enabled: Number of destination scalers enabled
@@ -546,6 +547,7 @@ struct sde_crtc_state {
uint64_t input_fence_timeout_ns;
uint32_t num_dim_layers;
uint32_t cwb_enc_mask;
uint32_t cached_cwb_enc_mask;
struct sde_hw_dim_layer dim_layer[SDE_MAX_DIM_LAYERS];
uint32_t num_ds;
uint32_t num_ds_enabled;