The full name of PSR is Panel Self Refresh, panel device could refresh itself with the hardware framebuffer in panel, this would make a lots of sense to save the power consumption. For example, when desktop haven't change the context for a long time, then we could refresh the data to the hardware framebuffer of panel, and then let panel enter into PSR mode. After that system could poweroff the LCDC controller and eDP controller, just let panel refresh the screen by itself. It's hard to decide when panel should enter into PSR or exit from PSR, in this time I chose to let the drm_vblank enable/disable event driver the PSR. This thread is based on Mark's RK3399 VOP thread[0] and my RK3399 eDP thread[1]. [0]: https://patchwork.kernel.org/patch/8886041/ [1]: https://patchwork.kernel.org/patch/9132713/ - Yakir Thanks, Yakir Yang (2): drm/rockchip: add a notify event about vblank enable/disable drm/rockchip: analogix: add eDP PSR function drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 69 ++++++++++++++ drivers/gpu/drm/bridge/analogix/analogix_dp_core.h | 5 + drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 54 +++++++++++ drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h | 28 ++++++ drivers/gpu/drm/rockchip/Makefile | 2 +- drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 65 +++++++++++++ drivers/gpu/drm/rockchip/rockchip_drm_notify.c | 105 +++++++++++++++++++++ drivers/gpu/drm/rockchip/rockchip_drm_notify.h | 33 +++++++ drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 96 +++++++++++++++++++ drivers/gpu/drm/rockchip/rockchip_drm_vop.h | 3 + drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 2 + include/drm/bridge/analogix_dp.h | 3 + 12 files changed, 464 insertions(+), 1 deletion(-) create mode 100644 drivers/gpu/drm/rockchip/rockchip_drm_notify.c create mode 100644 drivers/gpu/drm/rockchip/rockchip_drm_notify.h -- 1.9.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel