drm/mediatek: gamma: Adjust mtk_drm_gamma_set_common parameters
authorJason-JH.Lin <jason-jh.lin@mediatek.com>
Thu, 12 Oct 2023 09:57:21 +0000 (11:57 +0200)
committerChun-Kuang Hu <chunkuang.hu@kernel.org>
Sun, 15 Oct 2023 23:38:08 +0000 (23:38 +0000)
Adjust the parameters in mtk_drm_gamma_set_common()
  - add (struct device *dev) to get lut_diff from gamma's driver data
  - remove (bool lut_diff) and use false as default value in the function

Signed-off-by: Jason-JH.Lin <jason-jh.lin@mediatek.com>
Reviewed-by: Alexandre Mergnat <amergnat@baylibre.com>
Reviewed-by: CK Hu <ck.hu@mediatek.com>
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://patchwork.kernel.org/project/dri-devel/patch/20231012095736.100784-2-angelogioacchino.delregno@collabora.com/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
drivers/gpu/drm/mediatek/mtk_disp_aal.c
drivers/gpu/drm/mediatek/mtk_disp_drv.h
drivers/gpu/drm/mediatek/mtk_disp_gamma.c

index 4da9ac93b29e3c313c738b6422c80bbe4ba81850..c6c74968953285efd0b1023da665ae456eb36866 100644 (file)
@@ -61,7 +61,7 @@ void mtk_aal_gamma_set(struct device *dev, struct drm_crtc_state *state)
        struct mtk_disp_aal *aal = dev_get_drvdata(dev);
 
        if (aal->data && aal->data->has_gamma)
-               mtk_gamma_set_common(aal->regs, state, false);
+               mtk_gamma_set_common(NULL, aal->regs, state);
 }
 
 void mtk_aal_start(struct device *dev)
index fdaa21b6a9daaf422682136c7fcf01bc32c49b58..2edbefb780033c15db0ac1fa1905327b8a224663 100644 (file)
@@ -56,7 +56,7 @@ void mtk_gamma_config(struct device *dev, unsigned int w,
                      unsigned int h, unsigned int vrefresh,
                      unsigned int bpc, struct cmdq_pkt *cmdq_pkt);
 void mtk_gamma_set(struct device *dev, struct drm_crtc_state *state);
-void mtk_gamma_set_common(void __iomem *regs, struct drm_crtc_state *state, bool lut_diff);
+void mtk_gamma_set_common(struct device *dev, void __iomem *regs, struct drm_crtc_state *state);
 void mtk_gamma_start(struct device *dev);
 void mtk_gamma_stop(struct device *dev);
 
index 673f9a5738f28f8ef418e744c3919093e28e76a7..cb46ac0478f1f45aeb5d42fceb2989c4a9a1fdfe 100644 (file)
@@ -54,14 +54,24 @@ void mtk_gamma_clk_disable(struct device *dev)
        clk_disable_unprepare(gamma->clk);
 }
 
-void mtk_gamma_set_common(void __iomem *regs, struct drm_crtc_state *state, bool lut_diff)
+void mtk_gamma_set_common(struct device *dev, void __iomem *regs, struct drm_crtc_state *state)
 {
+       struct mtk_disp_gamma *gamma;
        unsigned int i, reg;
        struct drm_color_lut *lut;
        void __iomem *lut_base;
+       bool lut_diff;
        u32 word;
        u32 diff[3] = {0};
 
+       /* If we're called from AAL, dev is NULL */
+       gamma = dev ? dev_get_drvdata(dev) : NULL;
+
+       if (gamma && gamma->data)
+               lut_diff = gamma->data->lut_diff;
+       else
+               lut_diff = false;
+
        if (state->gamma_lut) {
                reg = readl(regs + DISP_GAMMA_CFG);
                reg = reg | GAMMA_LUT_EN;
@@ -91,12 +101,8 @@ void mtk_gamma_set_common(void __iomem *regs, struct drm_crtc_state *state, bool
 void mtk_gamma_set(struct device *dev, struct drm_crtc_state *state)
 {
        struct mtk_disp_gamma *gamma = dev_get_drvdata(dev);
-       bool lut_diff = false;
-
-       if (gamma->data)
-               lut_diff = gamma->data->lut_diff;
 
-       mtk_gamma_set_common(gamma->regs, state, lut_diff);
+       mtk_gamma_set_common(dev, gamma->regs, state);
 }
 
 void mtk_gamma_config(struct device *dev, unsigned int w,