Messages in this thread | | | Subject | Re: [PATCH v3 05/43] drm/bridge: analogix_dp: Don't power bridge in analogix_dp_bind | From | Marek Szyprowski <> | Date | Thu, 01 Mar 2018 09:19:54 +0100 |
| |
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@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@chromium.org> >> Signed-off-by: zain wang <wzz@rock-chips.com> >> Signed-off-by: Caesar Wang <wxt@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@chromium.org> >> Signed-off-by: Thierry Escande <thierry.escande@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
| |