The FLD_MOD function takes the start and end bits as parameter and will
generate a mask out of them, twice.

Let's pass the mask, so the caller can generate it once and we would use
it twice.

Signed-off-by: Maxime Ripard <mrip...@kernel.org>
---
 drivers/gpu/drm/tidss/tidss_dispc.c | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/tidss/tidss_dispc.c 
b/drivers/gpu/drm/tidss/tidss_dispc.c
index 
30f281221a5de6b69cc3edd2bf643cf0f8bea63b..e4729a5b79ed5d554e05c020adb7e2d3e7a8f4d3
 100644
--- a/drivers/gpu/drm/tidss/tidss_dispc.c
+++ b/drivers/gpu/drm/tidss/tidss_dispc.c
@@ -607,26 +607,25 @@ void tidss_disable_oldi(struct tidss_device *tidss, u32 
hw_videoport)
 /*
  * TRM gives bitfields as start:end, where start is the higher bit
  * number. For example 7:0
  */
 
-static u32 FLD_MOD(u32 orig, u32 val, u32 start, u32 end)
+static u32 FLD_MOD(u32 orig, u32 val, u32 mask)
 {
-       return (orig & ~GENMASK(start, end)) | FIELD_PREP(GENMASK(start, end),
-                                                         val);
+       return (orig & ~mask) | FIELD_PREP(mask, val);
 }
 
 static u32 REG_GET(struct dispc_device *dispc, u32 idx, u32 start, u32 end)
 {
        return FIELD_GET(GENMASK(start, end), dispc_read(dispc, idx));
 }
 
 static void REG_FLD_MOD(struct dispc_device *dispc, u32 idx, u32 val,
                        u32 start, u32 end)
 {
-       dispc_write(dispc, idx, FLD_MOD(dispc_read(dispc, idx), val,
-                                       start, end));
+       dispc_write(dispc, idx,
+                   FLD_MOD(dispc_read(dispc, idx), val, GENMASK(start, end)));
 }
 
 static u32 VID_REG_GET(struct dispc_device *dispc, u32 hw_plane, u32 idx,
                       u32 start, u32 end)
 {
@@ -636,12 +635,11 @@ static u32 VID_REG_GET(struct dispc_device *dispc, u32 
hw_plane, u32 idx,
 
 static void VID_REG_FLD_MOD(struct dispc_device *dispc, u32 hw_plane, u32 idx,
                            u32 val, u32 start, u32 end)
 {
        dispc_vid_write(dispc, hw_plane, idx,
-                       FLD_MOD(dispc_vid_read(dispc, hw_plane, idx),
-                               val, start, end));
+                       FLD_MOD(dispc_vid_read(dispc, hw_plane, idx), val, 
GENMASK(start, end)));
 }
 
 static u32 VP_REG_GET(struct dispc_device *dispc, u32 vp, u32 idx,
                      u32 start, u32 end)
 {
@@ -649,20 +647,19 @@ static u32 VP_REG_GET(struct dispc_device *dispc, u32 vp, 
u32 idx,
 }
 
 static void VP_REG_FLD_MOD(struct dispc_device *dispc, u32 vp, u32 idx, u32 
val,
                           u32 start, u32 end)
 {
-       dispc_vp_write(dispc, vp, idx, FLD_MOD(dispc_vp_read(dispc, vp, idx),
-                                              val, start, end));
+       dispc_vp_write(dispc, vp, idx,
+                      FLD_MOD(dispc_vp_read(dispc, vp, idx), val, 
GENMASK(start, end)));
 }
 
 static void OVR_REG_FLD_MOD(struct dispc_device *dispc, u32 ovr, u32 idx,
                            u32 val, u32 start, u32 end)
 {
        dispc_ovr_write(dispc, ovr, idx,
-                       FLD_MOD(dispc_ovr_read(dispc, ovr, idx),
-                               val, start, end));
+                       FLD_MOD(dispc_ovr_read(dispc, ovr, idx), val, 
GENMASK(start, end)));
 }
 
 static dispc_irq_t dispc_vp_irq_from_raw(u32 stat, u32 hw_videoport)
 {
        dispc_irq_t vp_stat = 0;
@@ -1155,11 +1152,12 @@ static void dispc_enable_am65x_oldi(struct dispc_device 
*dispc, u32 hw_videoport
                dev_warn(dispc->dev, "%s: %d port width not supported\n",
                         __func__, fmt->data_width);
 
        oldi_cfg |= BIT(7); /* DEPOL */
 
-       oldi_cfg = FLD_MOD(oldi_cfg, fmt->am65x_oldi_mode_reg_val, 3, 1);
+       oldi_cfg = FLD_MOD(oldi_cfg, fmt->am65x_oldi_mode_reg_val,
+                          GENMASK(3, 1));
 
        oldi_cfg |= BIT(12); /* SOFTRST */
 
        oldi_cfg |= BIT(0); /* ENABLE */
 

-- 
2.50.1

Reply via email to