mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-17 01:37:59 +07:00
39b138ea86
The first time after we call rockchip_drm_do_flush() after rockchip_drm_psr_register(), we go from PSR_DISABLE to PSR_FLUSH. The difference between PSR_DISABLE and PSR_FLUSH is whether or not we have a delayed work pending - PSR is off in either state. However psr_set_state() only catches the transition from PSR_FLUSH to PSR_DISABLE (which never happens), while going from PSR_DISABLE to PSR_FLUSH triggers a call to psr->set() to disable PSR while it's already disabled. This triggers the eDP PHY power-on sequence without being shut down first and this seems to occasionally leave the encoder unable to later enable PSR. Let's just simplify the state machine and simply consider PSR_DISABLE and PSR_FLUSH the same state. Signed-off-by: Tomasz Figa <tfiga@chromium.org> Signed-off-by: Kristian H. Kristensen <hoegsberg@chromium.org> Signed-off-by: Thierry Escande <thierry.escande@collabora.com> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180423105003.9004-25-enric.balletbo@collabora.com |
||
---|---|---|
.. | ||
analogix_dp-rockchip.c | ||
cdn-dp-core.c | ||
cdn-dp-core.h | ||
cdn-dp-reg.c | ||
cdn-dp-reg.h | ||
dw_hdmi-rockchip.c | ||
dw-mipi-dsi.c | ||
inno_hdmi.c | ||
inno_hdmi.h | ||
Kconfig | ||
Makefile | ||
rockchip_drm_drv.c | ||
rockchip_drm_drv.h | ||
rockchip_drm_fb.c | ||
rockchip_drm_fb.h | ||
rockchip_drm_fbdev.c | ||
rockchip_drm_fbdev.h | ||
rockchip_drm_gem.c | ||
rockchip_drm_gem.h | ||
rockchip_drm_psr.c | ||
rockchip_drm_psr.h | ||
rockchip_drm_vop.c | ||
rockchip_drm_vop.h | ||
rockchip_lvds.c | ||
rockchip_lvds.h | ||
rockchip_vop_reg.c | ||
rockchip_vop_reg.h |