[PATCH v3 7/8] drm/rockchip: vop2: Keep the other LUT_PORT_SEL fields on gamma LUT updates

From: Arun Iyengar via B4 Relay

Date: Fri Nov 13 2026 - 12:32:41 EST


From: Arun Iyengar <aiyengar1990@xxxxxxxxx>

On RK3588 the gamma LUT update writes the whole LUT_PORT_SEL register to
select the write port, which clears the dclk source selection of video
ports 0 and 2 and the VP0/VP1 merge enable held in the same register.

Only update the write select field.

Fixes: 4f537776340d ("rockchip/drm: vop2: add support for gamma LUT")
Reviewed-by: Chaoyi Chen <chaoyi.chen@xxxxxxxxxxxxxx>
Reviewed-by: Damon Ding <damon.ding@xxxxxxxxxxxxxx>
Signed-off-by: Arun Iyengar <aiyengar1990@xxxxxxxxx>
---
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
index de3da292b05a..0c300279399a 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
@@ -1621,8 +1621,9 @@ static void vop2_crtc_atomic_set_gamma_seamless(struct vop2 *vop2,
struct vop2_video_port *vp,
struct drm_crtc *crtc)
{
- vop2_writel(vop2, RK3568_LUT_PORT_SEL,
- FIELD_PREP(RK3588_LUT_PORT_SEL__GAMMA_AHB_WRITE_SEL, vp->id));
+ regmap_update_bits(vop2->map, RK3568_LUT_PORT_SEL,
+ RK3588_LUT_PORT_SEL__GAMMA_AHB_WRITE_SEL,
+ FIELD_PREP(RK3588_LUT_PORT_SEL__GAMMA_AHB_WRITE_SEL, vp->id));
vop2_vp_dsp_lut_enable(vp);
vop2_crtc_write_gamma_lut(vop2, crtc);
vop2_vp_dsp_lut_update_enable(vp);

--
2.55.0