Add a color correction state flag, to indicate a change in
color correction states. This flag will help a core driver to
optimize its commit calls, by appling the color correction only
when there is a change, not every commit.

Signed-off-by: Shashank Sharma <shashank.sha...@intel.com>
---
 drivers/gpu/drm/drm_atomic.c | 6 ++++++
 include/drm/drm_crtc.h       | 1 +
 2 files changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index b49aaeb..1c163a6 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -459,18 +459,24 @@ int drm_atomic_crtc_set_property(struct drm_crtc *crtc,
                                &state->palette_after_ctm_blob, val);
                if (ret)
                        DRM_ERROR("Failed to load blob palette_after_ctm\n");
+               else
+                       state->color_correction_changed = true;
                return ret;
        } else if (property == config->cm_palette_before_ctm_property) {
                ret = drm_atomic_crtc_set_blob(dev,
                                &state->palette_before_ctm_blob, val);
                if (ret)
                        DRM_ERROR("Failed to load blob palette_before_ctm\n");
+               else
+                       state->color_correction_changed = true;
                return ret;
        } else if (property == config->cm_ctm_property) {
                ret = drm_atomic_crtc_set_blob(dev,
                                &state->ctm_blob, val);
                if (ret)
                        DRM_ERROR("Failed to load blob ctm\n");
+               else
+                       state->color_correction_changed = true;
                return ret;
        } else if (crtc->funcs->atomic_set_property)
                return crtc->funcs->atomic_set_property(crtc, state, property, 
val);
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index cea6b3b..d002994 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -285,6 +285,7 @@ struct drm_crtc_state {
        bool mode_changed : 1;
        bool active_changed : 1;
        bool connectors_changed : 1;
+       bool color_correction_changed : 1;
 
        /* attached planes bitmask:
         * WARNING: transitional helpers do not maintain plane_mask so
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to