mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 20:07:46 +09:00
drm/bridge: analogix_dp: Add loader protect for psr function
Change-Id: Iffb651d3dbb11797b82ed2679e990b8c9610b200 Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
This commit is contained in:
@@ -1154,13 +1154,30 @@ analogix_dp_best_encoder(struct drm_connector *connector)
|
||||
static int analogix_dp_loader_protect(struct drm_connector *connector, bool on)
|
||||
{
|
||||
struct analogix_dp_device *dp = to_dp(connector);
|
||||
int ret;
|
||||
|
||||
if (dp->plat_data->panel)
|
||||
drm_panel_loader_protect(dp->plat_data->panel, on);
|
||||
if (on)
|
||||
if (on) {
|
||||
pm_runtime_get_sync(dp->dev);
|
||||
else
|
||||
|
||||
ret = analogix_dp_detect_sink_psr(dp);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* Check whether panel supports fast training */
|
||||
ret = analogix_dp_fast_link_train_detection(dp);
|
||||
if (ret)
|
||||
dp->psr_enable = false;
|
||||
|
||||
if (dp->psr_enable) {
|
||||
ret = analogix_dp_enable_sink_psr(dp);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
} else {
|
||||
pm_runtime_put(dp->dev);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -299,7 +299,11 @@ static int rockchip_dp_drm_encoder_loader_protect(struct drm_encoder *encoder,
|
||||
}
|
||||
|
||||
clk_prepare_enable(dp->pclk);
|
||||
|
||||
rockchip_drm_psr_inhibit_put(&dp->encoder);
|
||||
} else {
|
||||
rockchip_drm_psr_inhibit_get(&dp->encoder);
|
||||
|
||||
clk_disable_unprepare(dp->pclk);
|
||||
|
||||
if (dp->vccio_supply)
|
||||
|
||||
Reference in New Issue
Block a user