Hi Heiko, Thanks for adding me to this thread. On 2018-02-28 16:20, Heiko St?bner wrote: > Am Dienstag, 30. Januar 2018, 21:28:35 CET schrieb Thierry Escande: >> From: zain wang <wzz at rock-chips.com> >> >> The bridge does not need to be powered in analogix_dp_bind(), so >> remove the calls to pm_runtime_get()/phy_power_on()/analogix_dp_init_dp() >> as well as their power-off counterparts. >> >> Cc: St?phane Marchesin <marcheu at chromium.org> >> Signed-off-by: zain wang <wzz at rock-chips.com> >> Signed-off-by: Caesar Wang <wxt at rock-chips.com> >> [the patch originally just removed the power_on portion, seanpaul removed >> the power off code as well as improved the commit message] >> Signed-off-by: Sean Paul <seanpaul at chromium.org> >> Signed-off-by: Thierry Escande <thierry.escande at collabora.com> >> --- >> drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 10 ---------- >> 1 file changed, 10 deletions(-) >> >> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c >> b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c index >> cb5e18d6ba04..1477ea9ba85d 100644 >> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c >> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c >> @@ -1382,11 +1382,6 @@ analogix_dp_bind(struct device *dev, struct >> drm_device *drm_dev, >> >> pm_runtime_enable(dev); >> >> - pm_runtime_get_sync(dev); >> - phy_power_on(dp->phy); >> - >> - analogix_dp_init_dp(dp); >> - >> ret = devm_request_threaded_irq(&pdev->dev, dp->irq, >> analogix_dp_hardirq, >> analogix_dp_irq_thread, >> @@ -1414,15 +1409,10 @@ analogix_dp_bind(struct device *dev, struct >> drm_device *drm_dev, goto err_disable_pm_runtime; >> } >> >> - phy_power_off(dp->phy); >> - pm_runtime_put(dev); >> - >> return dp; >> >> err_disable_pm_runtime: >> >> - phy_power_off(dp->phy); >> - pm_runtime_put(dev); >> pm_runtime_disable(dev); >> >> return ERR_PTR(ret); > In general, this patch seems to also create the opposite than > "drm/bridge: analogix_dp: Keep PHY powered between driver bind/unbind" [0] > > posted on monday? > > [0] https://patchwork.kernel.org/patch/10242493/ Well, my patch was a quick workaround to avoid board freeze. This patch looks like a proper fix. Besides removing runtime pm and phy power calls from dp_bind, it also removes dp register access done in analogix_dp_init_dp, as there is really no need to touch registers in bind operation. The patchset however suffers from other issues on Exynos hardware. I will post them in that thread. Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland