During initialization of a plane, if the DDP component supplying it
defines a plane_colorops_init() hook, call it to initialize the color
pipeline on the plane.

Signed-off-by: Nícolas F. R. A. Prado <[email protected]>
---
 drivers/gpu/drm/mediatek/mtk_crtc.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/mediatek/mtk_crtc.c 
b/drivers/gpu/drm/mediatek/mtk_crtc.c
index 22f255c3ddd3..f7db235d986f 100644
--- a/drivers/gpu/drm/mediatek/mtk_crtc.c
+++ b/drivers/gpu/drm/mediatek/mtk_crtc.c
@@ -985,8 +985,10 @@ static int mtk_crtc_init_comp_planes(struct drm_device 
*drm_dev,
        int i, ret;
 
        for (i = 0; i < num_planes; i++) {
+               struct drm_plane *plane = &mtk_crtc->planes[mtk_crtc->layer_nr];
+
                ret = mtk_plane_init(drm_dev,
-                               &mtk_crtc->planes[mtk_crtc->layer_nr],
+                               plane,
                                BIT(pipe),
                                mtk_crtc_plane_type(mtk_crtc->layer_nr, 
num_planes),
                                mtk_ddp_comp_supported_rotations(comp),
@@ -997,6 +999,12 @@ static int mtk_crtc_init_comp_planes(struct drm_device 
*drm_dev,
                if (ret)
                        return ret;
 
+               if (comp->funcs && comp->funcs->plane_colorops_init) {
+                       ret = comp->funcs->plane_colorops_init(comp->dev, 
plane);
+                       if (ret)
+                               return ret;
+               }
+
                mtk_crtc->layer_nr++;
        }
        return 0;

-- 
2.51.0

Reply via email to