[PATCH v2, 1/2] drm/mediatek: Fix gamma correction issue

Yongqiang Niu
2019-12-13T07:29:22Z

if there is no gamma function in the crtc
display path, don't add gamma property
for crtc

Signed-off-by: Yongqiang Niu <yongqiang.niu@mediatek.com>
---
drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
index ca4fc47..9a8e1d4 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
@@ -734,6 +734,7 @@ int mtk_drm_crtc_create(struct drm_device *drm_dev,
int pipe = priv->num_pipes;
int ret;
int i;
+ uint gamma_lut_size = 0;

if (!path)
return 0;
@@ -785,6 +786,9 @@ int mtk_drm_crtc_create(struct drm_device *drm_dev,
}

mtk_crtc->ddp_comp[i] = comp;
+
+ if (comp->funcs->gamma_set)
+ gamma_lut_size = MTK_LUT_SIZE;
}

for (i = 0; i < mtk_crtc->ddp_comp_nr; i++)
@@ -805,8 +809,10 @@ int mtk_drm_crtc_create(struct drm_device *drm_dev,
NULL, pipe);
if (ret < 0)
return ret;
- drm_mode_crtc_set_gamma_size(&mtk_crtc->base, MTK_LUT_SIZE);
- drm_crtc_enable_color_mgmt(&mtk_crtc->base, 0, false, MTK_LUT_SIZE);
+
+ if (gamma_lut_size)
+ drm_mode_crtc_set_gamma_size(&mtk_crtc->base, gamma_lut_size);
+ drm_crtc_enable_color_mgmt(&mtk_crtc->base, 0, false, gamma_lut_size);
priv->num_pipes++;
mutex_init(&mtk_crtc->hw_lock);

--
1.8.1.1.dirty