• Yakir Yang's avatar
    drm/rockchip: add an common abstracted PSR driver · 5182c1a5
    Yakir Yang authored
    The PSR driver have exported four symbols for specific device driver, and
    it's safe to call them in interrupt context:
    - rockchip_drm_psr_register()
    - rockchip_drm_psr_unregister()
    - rockchip_drm_psr_enable()
    - rockchip_drm_psr_disable()
    - rockchip_drm_psr_flush()
    
    Encoder driver should call the register/unregister interfaces to hook
    itself into common PSR driver, encoder have implement the 'psr_set'
    callback which use the set PSR state in hardware side.
    
    Crtc driver would call the enable/disable interfaces when vblank is
    enable/disable, after that the common PSR driver would call the encoder
    registered callback to set the PSR state.
    
    Fb driver would call the flush interface in 'fb->dirty' callback, this
    helper function would force all PSR enabled encoders to exit from PSR
    for 3 seconds.
    Signed-off-by: default avatarYakir Yang <ykk@rock-chips.com>
    [seanpaul removed leftover psr_enabled/psr_work kruft from drm_vop.c]
    Signed-off-by: default avatarSean Paul <seanpaul@chromium.org>
    5182c1a5
rockchip_drm_psr.c 6.04 KB