mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 12:57:06 +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)
|
static int analogix_dp_loader_protect(struct drm_connector *connector, bool on)
|
||||||
{
|
{
|
||||||
struct analogix_dp_device *dp = to_dp(connector);
|
struct analogix_dp_device *dp = to_dp(connector);
|
||||||
|
int ret;
|
||||||
|
|
||||||
if (dp->plat_data->panel)
|
if (dp->plat_data->panel)
|
||||||
drm_panel_loader_protect(dp->plat_data->panel, on);
|
drm_panel_loader_protect(dp->plat_data->panel, on);
|
||||||
if (on)
|
if (on) {
|
||||||
pm_runtime_get_sync(dp->dev);
|
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);
|
pm_runtime_put(dp->dev);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -299,7 +299,11 @@ static int rockchip_dp_drm_encoder_loader_protect(struct drm_encoder *encoder,
|
|||||||
}
|
}
|
||||||
|
|
||||||
clk_prepare_enable(dp->pclk);
|
clk_prepare_enable(dp->pclk);
|
||||||
|
|
||||||
|
rockchip_drm_psr_inhibit_put(&dp->encoder);
|
||||||
} else {
|
} else {
|
||||||
|
rockchip_drm_psr_inhibit_get(&dp->encoder);
|
||||||
|
|
||||||
clk_disable_unprepare(dp->pclk);
|
clk_disable_unprepare(dp->pclk);
|
||||||
|
|
||||||
if (dp->vccio_supply)
|
if (dp->vccio_supply)
|
||||||
|
|||||||
Reference in New Issue
Block a user