mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-28 05:24:47 +08:00
5182c1a556
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: Yakir Yang <ykk@rock-chips.com> [seanpaul removed leftover psr_enabled/psr_work kruft from drm_vop.c] Signed-off-by: Sean Paul <seanpaul@chromium.org>
27 lines
994 B
C
27 lines
994 B
C
/*
|
|
* Copyright (C) Fuzhou Rockchip Electronics Co.Ltd
|
|
* Author: Yakir Yang <ykk@rock-chips.com>
|
|
*
|
|
* This software is licensed under the terms of the GNU General Public
|
|
* License version 2, as published by the Free Software Foundation, and
|
|
* may be copied, distributed, and modified under those terms.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*/
|
|
|
|
#ifndef __ROCKCHIP_DRM_PSR___
|
|
#define __ROCKCHIP_DRM_PSR___
|
|
|
|
void rockchip_drm_psr_flush(struct drm_device *dev);
|
|
int rockchip_drm_psr_enable(struct drm_crtc *crtc);
|
|
int rockchip_drm_psr_disable(struct drm_crtc *crtc);
|
|
|
|
int rockchip_drm_psr_register(struct drm_encoder *encoder,
|
|
void (*psr_set)(struct drm_encoder *, bool enable));
|
|
void rockchip_drm_psr_unregister(struct drm_encoder *encoder);
|
|
|
|
#endif /* __ROCKCHIP_DRM_PSR__ */
|