#define VP_REG_GET(dispc, vp, idx, mask) \
((u32)FIELD_GET((mask), dispc_vp_read((dispc), (vp), (idx))))
-#define VP_REG_FLD_MOD(dispc, vp, idx, val, start, end) \
+#define VP_REG_FLD_MOD(dispc, vp, idx, val, mask) \
({ \
struct dispc_device *_dispc = (dispc); \
u32 _vp = (vp); \
u32 _idx = (idx); \
u32 _reg = dispc_vp_read(_dispc, _vp, _idx); \
- FIELD_MODIFY(GENMASK((start), (end)), &_reg, (val)); \
+ FIELD_MODIFY((mask), &_reg, (val)); \
dispc_vp_write(_dispc, _vp, _idx, _reg); \
})
v = 3;
}
- VP_REG_FLD_MOD(dispc, hw_videoport, DISPC_VP_CONTROL, v, 10, 8);
+ VP_REG_FLD_MOD(dispc, hw_videoport, DISPC_VP_CONTROL, v,
+ GENMASK(10, 8));
}
static void dispc_enable_am65x_oldi(struct dispc_device *dispc, u32 hw_videoport,
FIELD_PREP(GENMASK(11, 0), mode->crtc_hdisplay - 1) |
FIELD_PREP(GENMASK(27, 16), mode->crtc_vdisplay - 1));
- VP_REG_FLD_MOD(dispc, hw_videoport, DISPC_VP_CONTROL, 1, 0, 0);
+ VP_REG_FLD_MOD(dispc, hw_videoport, DISPC_VP_CONTROL, 1,
+ GENMASK(0, 0));
}
void dispc_vp_disable(struct dispc_device *dispc, u32 hw_videoport)
{
- VP_REG_FLD_MOD(dispc, hw_videoport, DISPC_VP_CONTROL, 0, 0, 0);
+ VP_REG_FLD_MOD(dispc, hw_videoport, DISPC_VP_CONTROL, 0,
+ GENMASK(0, 0));
}
void dispc_vp_unprepare(struct dispc_device *dispc, u32 hw_videoport)
void dispc_vp_go(struct dispc_device *dispc, u32 hw_videoport)
{
WARN_ON(VP_REG_GET(dispc, hw_videoport, DISPC_VP_CONTROL, GENMASK(5, 5)));
- VP_REG_FLD_MOD(dispc, hw_videoport, DISPC_VP_CONTROL, 1, 5, 5);
+ VP_REG_FLD_MOD(dispc, hw_videoport, DISPC_VP_CONTROL, 1,
+ GENMASK(5, 5));
}
enum c8_to_c12_mode { C8_TO_C12_REPLICATE, C8_TO_C12_MAX, C8_TO_C12_MIN };
/* Enable the gamma Shadow bit-field for all VPs*/
for (i = 0; i < dispc->feat->num_vps; i++)
- VP_REG_FLD_MOD(dispc, i, DISPC_VP_CONFIG, 1, 2, 2);
+ VP_REG_FLD_MOD(dispc, i, DISPC_VP_CONFIG, 1, GENMASK(2, 2));
}
static void dispc_initial_config(struct dispc_device *dispc)
cprenable = 1;
}
- VP_REG_FLD_MOD(dispc, hw_videoport, DISPC_VP_CONFIG,
- cprenable, 15, 15);
+ VP_REG_FLD_MOD(dispc, hw_videoport, DISPC_VP_CONFIG, cprenable,
+ GENMASK(15, 15));
}
static s16 dispc_S31_32_to_s3_8(s64 coef)
colorconvenable = 1;
}
- VP_REG_FLD_MOD(dispc, hw_videoport, DISPC_VP_CONFIG,
- colorconvenable, 24, 24);
+ VP_REG_FLD_MOD(dispc, hw_videoport, DISPC_VP_CONFIG, colorconvenable,
+ GENMASK(24, 24));
}
static void dispc_vp_set_color_mgmt(struct dispc_device *dispc,
spin_unlock_irqrestore(&dispc->tidss->irq_lock, flags);
for (unsigned int vp_idx = 0; vp_idx < dispc->feat->num_vps; ++vp_idx)
- VP_REG_FLD_MOD(dispc, vp_idx, DISPC_VP_CONTROL, 0, 0, 0);
+ VP_REG_FLD_MOD(dispc, vp_idx, DISPC_VP_CONTROL, 0,
+ GENMASK(0, 0));
}
static int dispc_softreset(struct dispc_device *dispc)