linux-loongson/drivers/gpu/drm/rockchip
Piotr Zalewski a52dffaa46 drm/rockchip: vop2: make vp registers nonvolatile
Make video port registers nonvolatile. As DSP_CTRL register is written
to twice due to gamma LUT enable bit which is set outside of the main
DSP_CTRL initialization within atomic_enable (for rk356x case it is also
necessary to always disable gamma LUT before writing a new LUT) there is
a chance that DSP_CTRL value read-out in gamma LUT init/update code is
not the one which was written by the preceding DSP_CTRL initialization
code within atomic_enable. This might result in misconfigured DSP_CTRL
which leads to no visual output[1]. Since DSP_CTRL write takes effect
after VSYNC[1] the issue is not always present. When tested on Pinetab2
with kernel 6.14 it happenes only when DRM is compiled as a module[1].
In order to confirm that it is a timing issue I inserted 18ms udelay
before vop2_crtc_atomic_try_set_gamma in atomic enable and compiled DRM
as module - this has also fixed the issue.

[1] https://lore.kernel.org/linux-rockchip/562b38e5.a496.1975f09f983.Coremail.andyshrk@163.com/

Reported-by: Diederik de Haas <didi.debian@cknow.org>
Closes: https://lore.kernel.org/linux-rockchip/DAEVDSTMWI1E.J454VZN0R9MA@cknow.org/
Suggested-by: Andy Yan <andy.yan@rock-chips.com>
Signed-off-by: Piotr Zalewski <pZ010001011111@proton.me>
Tested-by: Diederik de Haas <didi.debian@cknow.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20250706083629.140332-2-pZ010001011111@proton.me
2025-08-14 11:44:27 +02:00
..
analogix_dp-rockchip.c drm/rockchip: analogix_dp: Add support for RK3588 2025-04-21 01:27:10 +03:00
cdn-dp-core.c drm/bridge: Pass down connector to drm bridge detect hook 2025-07-14 18:23:18 +03:00
cdn-dp-core.h drm/rockchip: cdn-dp: Convert to drm bridge 2025-07-08 17:35:49 +02:00
cdn-dp-reg.c drm/rockchip: Fix Copyright description 2024-12-14 23:52:49 +01:00
cdn-dp-reg.h drm/rockchip: Fix Copyright description 2024-12-14 23:52:49 +01:00
dw_hdmi_qp-rockchip.c drm/rockchip: dw_hdmi_qp: Fix io init for dw_hdmi_qp_rockchip_resume 2025-04-10 10:51:06 +02:00
dw_hdmi-rockchip.c drm/rockchip: dw_hdmi: Use dev_err_probe() to simplify code 2025-07-08 17:35:49 +02:00
dw-mipi-dsi2-rockchip.c drm/rockchip: Add MIPI DSI2 glue driver for RK3588 2024-12-10 23:53:08 +01:00
dw-mipi-dsi-rockchip.c drm/rockchip: Fix Copyright description 2024-12-14 23:52:49 +01:00
inno_hdmi.c drm/rockchip: inno_hdmi: Simpify clk get/enable by devm_clk_get_enabled api 2025-07-08 17:44:08 +02:00
Kconfig drm/rockchip: cdn-dp: select bridge for cdp-dp 2025-08-14 11:44:13 +02:00
Makefile drm/rockchip: Add MIPI DSI2 glue driver for RK3588 2024-12-10 23:53:08 +01:00
rk3066_hdmi.c drm/bridge: Pass down connector to drm bridge detect hook 2025-07-14 18:23:18 +03:00
rk3066_hdmi.h drm/rockchip: Fix Copyright description 2024-12-14 23:52:49 +01:00
rockchip_drm_drv.c drm/rockchip: Fix shutdown when no drm-device is set up 2025-02-27 14:52:38 +01:00
rockchip_drm_drv.h drm/rockchip: Fix Copyright description 2024-12-14 23:52:49 +01:00
rockchip_drm_fb.c drm/gem/afbc: Eliminate redundant drm_get_format_info() 2025-07-16 20:06:22 +03:00
rockchip_drm_fb.h drm/rockchip: Fix Copyright description 2024-12-14 23:52:49 +01:00
rockchip_drm_gem.c drm/rockchip: Fix Copyright description 2024-12-14 23:52:49 +01:00
rockchip_drm_gem.h drm/rockchip: Fix Copyright description 2024-12-14 23:52:49 +01:00
rockchip_drm_vop2.c drm/rockchip: vop2: make vp registers nonvolatile 2025-08-14 11:44:27 +02:00
rockchip_drm_vop2.h drm/rockchip: vop2: Fix the update of LAYER/PORT select registers when there are multi display output on rk3588/rk3568 2025-07-08 17:44:08 +02:00
rockchip_drm_vop.c drm/rockchip: vop: remove redundant condition check 2025-04-10 10:27:22 +02:00
rockchip_drm_vop.h drm/rockchip: Fix Copyright description 2024-12-14 23:52:49 +01:00
rockchip_lvds.c drm/rockchip: lvds: Convert to drm bridge 2025-07-08 17:35:49 +02:00
rockchip_lvds.h drm/rockchip: Fix Copyright description 2024-12-14 23:52:49 +01:00
rockchip_rgb.c drm/rockchip: Fix Copyright description 2024-12-14 23:52:49 +01:00
rockchip_rgb.h drm/rockchip: Fix Copyright description 2024-12-14 23:52:49 +01:00
rockchip_vop2_reg.c drm/rockchip: vop2: Fix the update of LAYER/PORT select registers when there are multi display output on rk3588/rk3568 2025-07-08 17:44:08 +02:00
rockchip_vop_reg.c drm/rockchip: vop: Consistently use rk3399 registers consts 2025-04-10 10:38:26 +02:00
rockchip_vop_reg.h drm/rockchip: Fix Copyright description 2024-12-14 23:52:49 +01:00