diff mbox

[v8,08/25] drm: Add color correction state flag

Message ID 1449142621-16602-9-git-send-email-shashank.sharma@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Sharma, Shashank Dec. 3, 2015, 11:36 a.m. UTC
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.sharma@intel.com>
---
 drivers/gpu/drm/drm_atomic.c | 6 ++++++
 include/drm/drm_crtc.h       | 2 ++
 2 files changed, 8 insertions(+)
diff mbox

Patch

diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 203a4a4..f6add78 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -456,18 +456,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 57c6650..867a134 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -263,6 +263,7 @@  struct drm_atomic_state;
  * @mode_changed: crtc_state->mode or crtc_state->enable has been changed
  * @active_changed: crtc_state->active has been toggled.
  * @connectors_changed: connectors to this crtc have been updated
+ * @color_correction_changed: color correction blob in this crtc got updated
  * @plane_mask: bitmask of (1 << drm_plane_index(plane)) of attached planes
  * @last_vblank_count: for helpers and drivers to capture the vblank of the
  * 	update to ensure framebuffer cleanup isn't done too early
@@ -292,6 +293,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