@@ -3810,6 +3810,31 @@ static const struct intel_color_funcs ilk_color_funcs = {
.get_config = ilk_get_config,
};
+/* TODO: Move to another file */
+struct intel_plane_colorop *intel_colorop_alloc(void)
+{
+ struct intel_plane_colorop *colorop;
+ struct intel_plane_colorop_state *colorop_state;
+
+ colorop = kzalloc(sizeof(*colorop), GFP_KERNEL);
+ if (!colorop)
+ return ERR_PTR(-ENOMEM);
+
+ colorop_state = kzalloc(sizeof(*colorop_state), GFP_KERNEL);
+ if (!colorop_state) {
+ kfree(colorop);
+ return ERR_PTR(-ENOMEM);
+ }
+
+ /* TODO: Add color op reset
+ * intel_colorop_state_reset(plane_state, plane);
+ */
+
+ colorop->base.state = &colorop_state->uapi;
+
+ return colorop;
+}
+
void intel_color_crtc_init(struct intel_crtc *crtc)
{
struct drm_i915_private *i915 = to_i915(crtc->base.dev);
@@ -31,5 +31,6 @@ bool intel_color_lut_equal(const struct intel_crtc_state *crtc_state,
const struct drm_property_blob *blob2,
bool is_pre_csc_lut);
void intel_color_assert_luts(const struct intel_crtc_state *crtc_state);
+struct intel_plane_colorop *intel_colorop_alloc(void);
#endif /* __INTEL_COLOR_H__ */