Re: [PATCH v4 06/11] drm/mediatek: gamma: Use bitfield macros

From: AngeloGioacchino Del Regno
Date: Fri May 26 2023 - 04:42:51 EST


Il 26/05/23 07:32, CK Hu (胡俊光) ha scritto:
Hi, Angelo:

On Thu, 2023-05-18 at 12:48 +0200, AngeloGioacchino Del Regno wrote:
External email : Please do not click links or open attachments until
you have verified the sender or the content.


Make the code more robust and improve readability by using bitfield
macros instead of open coding bit operations.
While at it, also add a definition for LUT_BITS_DEFAULT.

Signed-off-by: AngeloGioacchino Del Regno <
angelogioacchino.delregno@xxxxxxxxxxxxx>
Reviewed-by: Jason-JH.Lin <jason-jh.lin@xxxxxxxxxxxx>
---
drivers/gpu/drm/mediatek/mtk_disp_gamma.c | 41 ++++++++++++++-------
--
1 file changed, 26 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/mediatek/mtk_disp_gamma.c
b/drivers/gpu/drm/mediatek/mtk_disp_gamma.c
index 1592614b6de7..ed2aa1fb0171 100644
--- a/drivers/gpu/drm/mediatek/mtk_disp_gamma.c
+++ b/drivers/gpu/drm/mediatek/mtk_disp_gamma.c
@@ -3,6 +3,7 @@
* Copyright (c) 2021 MediaTek Inc.
*/

+#include <linux/bitfield.h>
#include <linux/clk.h>
#include <linux/component.h>
#include <linux/module.h>
@@ -22,9 +23,16 @@
#define GAMMA_LUT_EN BIT(1)
#define
GAMMA_DITHERING BIT(2)
#define DISP_GAMMA_SIZE 0x0030
+#define DISP_GAMMA_SIZE_HSIZE GENMASK(28,
16)
+#define DISP_GAMMA_SIZE_VSIZE GENMASK(12,
0)
#define DISP_GAMMA_LUT 0x0700

+#define DISP_GAMMA_LUT_10BIT_R GENMASK(29, 20)
+#define DISP_GAMMA_LUT_10BIT_G GENMASK(19, 10)
+#define DISP_GAMMA_LUT_10BIT_B GENMASK(9, 0)
+
#define LUT_10BIT_MASK 0x03ff
+#define LUT_BITS_DEFAULT 10

This is used only for AAL after patch "drm/mediatek: gamma: Support
specifying number of bits per LUT component", so I would like move AAL
definition to AAL driver and pass it to gamma driver.


Like LUT_SIZE_DEFAULT, this definition is not only for AAL but also for
the older gamma lut register layout.

In any case, I'll check if there's any clean way to pass AAL's gamma
size to this driver... it's a different "component", so this may get
complicated.

Let's see what I can come up with in v5...

Thanks,
Angelo