linux-hardened/drivers/gpu/drm/rockchip
Tomasz Figa 6e6cf3e2f2 drm/rockchip: psr: Sanitize semantics of allow/inhibit API
Currently both rockchip_drm_psr_activate() and _deactivate() only set the
boolean "active" flag without actually making sure that hardware state
complies with it.

Since we are going to extend the usage of this API to properly lock PSR
for the duration of atomic commits, we change the semantics in following
way:
 - a counter is used to track the number of inhibit requests,
 - PSR is actually disabled in hardware on first inhibit request,
 - PSR enable work is scheduled on last allow request.

The above allows using the API as a way to deterministically synchronize
PSR state changes with other DRM events, i.e. atomic commits and cursor
updates. As a nice side effect, the naming is sorted out and we have
"inhibit" for stopping the software logic and "enable" for hardware
state.

Signed-off-by: Tomasz Figa <tfiga@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>
Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180423105003.9004-26-enric.balletbo@collabora.com
2018-04-24 08:34:52 +02:00
..
analogix_dp-rockchip.c drm/rockchip: psr: Sanitize semantics of allow/inhibit API 2018-04-24 08:34:52 +02:00
cdn-dp-core.c drm/rockchip: cdn-dp: remove the DP phy switch 2018-03-16 11:51:11 +01:00
cdn-dp-core.h drm/rockchip: cdn-dp: retry to check sink count 2017-02-05 16:30:04 +08:00
cdn-dp-reg.c drm/rockchip: Replace dev_* with DRM_DEV_* 2017-09-18 09:50:44 +08:00
cdn-dp-reg.h drm/rockchip: cdn-dp: Correct PHY register address 2017-03-13 15:59:26 -04:00
dw-mipi-dsi.c drm/rockchip: dw-mipi-dsi: Fix connector and encoder cleanup. 2018-03-08 17:32:52 +01:00
dw_hdmi-rockchip.c drm/rockchip: dw_hdmi: Move HDMI vpll clock enable to bind() 2018-03-08 17:32:53 +01:00
inno_hdmi.c drm/rockchip: inno_hdmi: reorder clk_disable_unprepare call in unbind 2018-03-08 17:32:52 +01:00
inno_hdmi.h drm/rockchip: hdmi: add Innosilicon HDMI support 2016-02-18 13:56:43 +08:00
Kconfig drm/rockchip: add CONFIG_OF dependency for lvds 2017-11-06 10:31:17 -05:00
Makefile main drm pull request for v4.15 2017-11-15 20:42:10 -08:00
rockchip_drm_drv.c drm/rockchip: Don't use atomic constructs for psr 2018-03-08 23:28:53 +01:00
rockchip_drm_drv.h drm/rockchip: pre dither down when output bpc is 8bit 2018-04-24 08:34:47 +02:00
rockchip_drm_fb.c drm/rockchip: Use drm_fb_helper_lastclose() and _poll_changed() 2017-12-08 13:08:06 +01:00
rockchip_drm_fb.h drm: Pass the user drm_mode_fb_cmd2 as const to .fb_create() 2015-11-24 11:47:38 +01:00
rockchip_drm_fbdev.c drm/rockchip: Replace dev_* with DRM_DEV_* 2017-09-18 09:50:44 +08:00
rockchip_drm_fbdev.h drm/rockchip: respect CONFIG_DRM_FBDEV_EMULATION 2016-01-22 08:45:31 +08:00
rockchip_drm_gem.c drm/rockchip: fixup comment for gem_free_object_unlocked 2018-03-28 17:07:36 +02:00
rockchip_drm_gem.h drm/rockchip: support prime import sg table 2018-02-18 11:16:40 +01:00
rockchip_drm_psr.c drm/rockchip: psr: Sanitize semantics of allow/inhibit API 2018-04-24 08:34:52 +02:00
rockchip_drm_psr.h drm/rockchip: psr: Sanitize semantics of allow/inhibit API 2018-04-24 08:34:52 +02:00
rockchip_drm_vop.c drm/rockchip: pre dither down when output bpc is 8bit 2018-04-24 08:34:47 +02:00
rockchip_drm_vop.h drm/rockchip: pre dither down when output bpc is 8bit 2018-04-24 08:34:47 +02:00
rockchip_lvds.c drm/rockchip: lvds: Explicitly include pinctrl headers 2018-02-05 09:41:54 -08:00
rockchip_lvds.h drm/rockchip: Add support for Rockchip Soc LVDS 2017-09-08 14:57:26 +08:00
rockchip_vop_reg.c drm/rockchip: pre dither down when output bpc is 8bit 2018-04-24 08:34:47 +02:00
rockchip_vop_reg.h drm/rockchip: vop: add rk3126 vop support 2017-11-16 14:21:50 +08:00