disp: msm: sde: avoid caching color processing properties in validate

Recent investigation shows that color processing properties are
incorrectly being cached in validate. This can result in unwanted
color processing properties being applied if a previous commit
failed or was validate only.

Add color processing properties to sde crtc state instead of marking
them dirty in color processing driver. When atomic commit is called
properties from state will be marked as dirty and applied.

Change-Id: If231a1f028e4cbd0b50eb0a947f4d58f94390a0c
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
This commit is contained in:
Gopikrishnaiah Anandan
2020-06-03 11:55:20 -07:00
والد dd4b08a47f
کامیت 320ae88cf1
5فایلهای تغییر یافته به همراه407 افزوده شده و 159 حذف شده

مشاهده پرونده

@@ -28,6 +28,7 @@
#include "sde_kms.h"
#include "sde_core_perf.h"
#include "sde_hw_ds.h"
#include "sde_color_processing.h"
#define SDE_CRTC_NAME_SIZE 12
@@ -426,6 +427,10 @@ enum sde_crtc_dirty_flags {
* @new_perf: new performance state being requested
* @noise_layer_en: flag to indicate if noise layer cfg is valid
* @drm_msm_noise_layer_cfg: noise layer configuration
* @cp_prop_cnt: number of dirty color processing features
* @cp_prop_values: array of cp property values
* @cp_dirty_list: array tracking features that are dirty
* @cp_range_payload: array storing state user_data passed via range props
*/
struct sde_crtc_state {
struct drm_crtc_state base;
@@ -457,6 +462,12 @@ struct sde_crtc_state {
struct sde_core_perf_params new_perf;
bool noise_layer_en;
struct drm_msm_noise_layer_cfg layer_cfg;
uint32_t cp_prop_cnt;
struct sde_cp_crtc_property_state
cp_prop_values[SDE_CP_CRTC_MAX_FEATURES];
uint32_t cp_dirty_list[SDE_CP_CRTC_MAX_FEATURES];
struct sde_cp_crtc_range_prop_payload
cp_range_payload[SDE_CP_CRTC_MAX_FEATURES];
};
enum sde_crtc_irq_state {