@@ -3949,6 +3949,37 @@ struct intel_plane_colorop *intel_plane_colorop_create(enum intel_color_block id
return colorop;
}
+static void apply_colorop(const struct drm_plane_state *plane_state,
+ struct drm_colorop *colorop,
+ u32 *plane_color_ctl)
+{
+}
+
+void intel_program_pipeline(const struct drm_plane_state *plane_state, u32 *plane_color_ctl)
+{
+ struct drm_colorop *colorop;
+
+ colorop = plane_state->color_pipeline;
+
+ while (colorop) {
+ struct drm_colorop_state *colorop_state;
+
+ if (!colorop)
+ return;
+
+ /* TODO this is probably wrong */
+ colorop_state = colorop->state;
+
+ if (!colorop_state)
+ return;
+
+ if (!colorop_state->bypass)
+ apply_colorop(plane_state, colorop, plane_color_ctl);
+
+ colorop = colorop->next;
+ }
+}
+
int intel_plane_tf_pipeline_init(struct drm_plane *plane, struct drm_prop_enum_list *list)
{
struct intel_plane *intel_plane = to_intel_plane(plane);
@@ -13,6 +13,7 @@ struct intel_crtc;
struct drm_i915_private;
struct drm_property_blob;
struct drm_plane;
+struct drm_plane_state;
struct drm_prop_enum_list;
enum intel_color_block;
@@ -40,5 +41,7 @@ struct intel_plane_colorop *intel_colorop_alloc(void);
struct intel_plane_colorop *intel_plane_colorop_create(enum intel_color_block id);
int intel_plane_tf_pipeline_init(struct drm_plane *plane, struct drm_prop_enum_list *list);
int intel_plane_color_init(struct drm_plane *plane);
+void intel_program_pipeline(const struct drm_plane_state *plane_state,
+ u32 *plane_color_ctl);
#endif /* __INTEL_COLOR_H__ */