]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/msm/dpu: move _dpu_plane_get_qos_lut to dpu_hw_util file
authorAbhinav Kumar <quic_abhinavk@quicinc.com>
Tue, 26 Apr 2022 14:41:29 +0000 (07:41 -0700)
committerDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Sun, 1 May 2022 23:13:00 +0000 (02:13 +0300)
_dpu_plane_get_qos_lut() is not specific to just dpu_plane.
It can take any fill level and return the LUT matching it.
This can be used even for other modules like dpu_writeback.

Move _dpu_plane_get_qos_lut() to the common dpu_hw_util file
and rename it to _dpu_hw_get_qos_lut().

Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/483518/
Link: https://lore.kernel.org/r/1650984096-9964-13-git-send-email-quic_abhinavk@quicinc.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c

index aad85116b0a0776f5cf10e975197562ed0d7cadc..512316f25a51726aca7d5193a480b10ea79b84cb 100644 (file)
@@ -422,3 +422,28 @@ void dpu_hw_csc_setup(struct dpu_hw_blk_reg_map *c,
        DPU_REG_WRITE(c, csc_reg_off + 0x3c, data->csc_post_bv[1]);
        DPU_REG_WRITE(c, csc_reg_off + 0x40, data->csc_post_bv[2]);
 }
+
+/**
+ * _dpu_hw_get_qos_lut - get LUT mapping based on fill level
+ * @tbl:               Pointer to LUT table
+ * @total_fl:          fill level
+ * Return: LUT setting corresponding to the fill level
+ */
+u64 _dpu_hw_get_qos_lut(const struct dpu_qos_lut_tbl *tbl,
+               u32 total_fl)
+{
+       int i;
+
+       if (!tbl || !tbl->nentry || !tbl->entries)
+               return 0;
+
+       for (i = 0; i < tbl->nentry; i++)
+               if (total_fl <= tbl->entries[i].fl)
+                       return tbl->entries[i].lut;
+
+       /* if last fl is zero, use as default */
+       if (!tbl->entries[i-1].fl)
+               return tbl->entries[i-1].lut;
+
+       return 0;
+}
index a200df1617e86cf0c057886b9ab43ef84f51e990..e4a65eb4f7690d8e799a59e2ac8b79aa5fa25b61 100644 (file)
@@ -9,6 +9,7 @@
 #include <linux/io.h>
 #include <linux/slab.h>
 #include "dpu_hw_mdss.h"
+#include "dpu_hw_catalog.h"
 
 #define REG_MASK(n)                     ((BIT(n)) - 1)
 
@@ -339,4 +340,7 @@ void dpu_hw_csc_setup(struct dpu_hw_blk_reg_map  *c,
                u32 csc_reg_off,
                const struct dpu_csc_cfg *data, bool csc10);
 
+u64 _dpu_hw_get_qos_lut(const struct dpu_qos_lut_tbl *tbl,
+               u32 total_fl);
+
 #endif /* _DPU_HW_UTIL_H */
index 08b8c644a1cbc5f41adf9cd7b2db7b0e20a23b3a..9d2f0364d2c76b36035db77c74dd3862acc36380 100644 (file)
@@ -279,31 +279,6 @@ static int _dpu_plane_calc_fill_level(struct drm_plane *plane,
        return total_fl;
 }
 
-/**
- * _dpu_plane_get_qos_lut - get LUT mapping based on fill level
- * @tbl:               Pointer to LUT table
- * @total_fl:          fill level
- * Return: LUT setting corresponding to the fill level
- */
-static u64 _dpu_plane_get_qos_lut(const struct dpu_qos_lut_tbl *tbl,
-               u32 total_fl)
-{
-       int i;
-
-       if (!tbl || !tbl->nentry || !tbl->entries)
-               return 0;
-
-       for (i = 0; i < tbl->nentry; i++)
-               if (total_fl <= tbl->entries[i].fl)
-                       return tbl->entries[i].lut;
-
-       /* if last fl is zero, use as default */
-       if (!tbl->entries[i-1].fl)
-               return tbl->entries[i-1].lut;
-
-       return 0;
-}
-
 /**
  * _dpu_plane_set_qos_lut - set QoS LUT of the given plane
  * @plane:             Pointer to drm plane
@@ -333,7 +308,7 @@ static void _dpu_plane_set_qos_lut(struct drm_plane *plane,
                        lut_usage = DPU_QOS_LUT_USAGE_MACROTILE;
        }
 
-       qos_lut = _dpu_plane_get_qos_lut(
+       qos_lut = _dpu_hw_get_qos_lut(
                        &pdpu->catalog->perf.qos_lut_tbl[lut_usage], total_fl);
 
        trace_dpu_perf_set_qos_luts(pdpu->pipe - SSPP_VIG0,