diff options
-rw-r--r-- | drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c index 907846f88d14..c34d716aa64c 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c @@ -861,14 +861,10 @@ static int analogix_dp_loader_protect(struct drm_connector *connector, bool on) if (dp->plat_data->panel) drm_panel_loader_protect(dp->plat_data->panel, on); - - if (on) { + if (on) pm_runtime_get_sync(dp->dev); - phy_power_on(dp->phy); - } else { - phy_power_off(dp->phy); + else pm_runtime_put(dp->dev); - } return 0; } @@ -1213,7 +1209,7 @@ analogix_dp_bind(struct device *dev, struct drm_device *drm_dev, dp->phy = devm_phy_get(dp->dev, "dp"); if (IS_ERR(dp->phy)) { - dev_dbg(dp->dev, "no DP phy configured\n"); + dev_err(dp->dev, "no DP phy configured\n"); ret = PTR_ERR(dp->phy); if (ret) { /* @@ -1260,6 +1256,8 @@ analogix_dp_bind(struct device *dev, struct drm_device *drm_dev, return ERR_PTR(-ENODEV); } + phy_power_on(dp->phy); + if (dp->plat_data->panel) { if (drm_panel_prepare(dp->plat_data->panel)) { DRM_ERROR("failed to setup the panel\n"); |