@@ -11503,11 +11503,29 @@ out_config:
return ret;
}
+static int intel_crtc_set_property(struct drm_crtc *crtc,
+ struct drm_property *property, uint64_t val)
+{
+ struct drm_device *dev = crtc->dev;
+
+ DRM_DEBUG_DRIVER("\n");
+
+ /* CSC correction */
+ if (property == dev->mode_config.csc_property) {
+ if (!intel_clrmgr_set_csc(crtc, property, val)) {
+ DRM_ERROR("Failed to set CSC correction\n");
+ return -EFAULT;
+ }
+ DRM_DEBUG_DRIVER("Set CSC correction successful\n");
+ }
+}
+
static const struct drm_crtc_funcs intel_crtc_funcs = {
.gamma_set = intel_crtc_gamma_set,
.set_config = intel_crtc_set_config,
.destroy = intel_crtc_destroy,
.page_flip = intel_crtc_page_flip,
+ .set_property = intel_crtc_set_property,
};
static bool ibx_pch_dpll_get_hw_state(struct drm_i915_private *dev_priv,