summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Zalewski <pZ010001011111@proton.me>2024-12-06 19:26:10 +0000
committerHeiko Stuebner <heiko@sntech.de>2024-12-11 23:38:03 +0100
commit9c22b6ece2e5c2308f41ba4bec27cfa158397fa7 (patch)
treeba44fd809eac30b74615bc5e8eede8cde1fae00b
parent8ddc8dfb8329349d5efb0418c9f20025333e2d98 (diff)
drm/rockchip: vop2: don't check color_mgmt_changed in atomic_enable
Remove color_mgmt_changed check from vop2_crtc_atomic_try_set_gamma to allow gamma LUT rewrite during modeset when coming out of suspend. Add a check for color_mgmt_changed directly in vop2_crtc_atomic_flush. This patch fixes the patch adding gamma LUT support for vop2 [1]. [1] https://lore.kernel.org/linux-rockchip/20241101185545.559090-3-pZ010001011111@proton.me/ Suggested-by: Andy Yan <andy.yan@rock-chips.com> Signed-off-by: Piotr Zalewski <pZ010001011111@proton.me> Signed-off-by: Heiko Stuebner <heiko@sntech.de> Link: https://patchwork.freedesktop.org/patch/msgid/20241206192013.342692-3-pZ010001011111@proton.me
-rw-r--r--drivers/gpu/drm/rockchip/rockchip_drm_vop2.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
index 2d5e2e298b86..5fab0055d1cb 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
@@ -1601,7 +1601,7 @@ static void vop2_crtc_atomic_try_set_gamma(struct vop2 *vop2,
struct drm_crtc *crtc,
struct drm_crtc_state *crtc_state)
{
- if (!vop2->lut_regs || !crtc_state->color_mgmt_changed)
+ if (!vop2->lut_regs)
return;
if (!crtc_state->gamma_lut) {
@@ -2691,7 +2691,7 @@ static void vop2_crtc_atomic_flush(struct drm_crtc *crtc,
struct vop2 *vop2 = vp->vop2;
/* In case of modeset, gamma lut update already happened in atomic enable */
- if (!drm_atomic_crtc_needs_modeset(crtc_state))
+ if (!drm_atomic_crtc_needs_modeset(crtc_state) && crtc_state->color_mgmt_changed)
vop2_crtc_atomic_try_set_gamma_locked(vop2, vp, crtc, crtc_state);
vop2_post_config(crtc);