Regardless of the status of the bridge, we want to receive HPD events. Only disable it when suspending. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx> Cc: Caesar Wang <wxt@xxxxxxxxxxxxxx> Cc: Douglas Anderson <dianders@xxxxxxxxxxxx> Cc: Heiko Stuebner <heiko@xxxxxxxxx> Cc: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx> Cc: Yakir Yang <ykk@xxxxxxxxxxxxxx> --- drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c index 7699597070a1..f66a53a5c36e 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c @@ -1049,7 +1049,6 @@ static void analogix_dp_bridge_enable(struct drm_bridge *bridge) phy_power_on(dp->phy); analogix_dp_init_dp(dp); - enable_irq(dp->irq); analogix_dp_commit(dp); dp->dpms_mode = DRM_MODE_DPMS_ON; @@ -1069,7 +1068,6 @@ static void analogix_dp_bridge_disable(struct drm_bridge *bridge) } } - disable_irq(dp->irq); phy_power_off(dp->phy); if (dp->plat_data->power_off) @@ -1349,7 +1347,6 @@ int analogix_dp_bind(struct device *dev, struct drm_device *drm_dev, dev_err(&pdev->dev, "failed to request irq\n"); goto err_disable_pm_runtime; } - disable_irq(dp->irq); dp->drm_dev = drm_dev; dp->encoder = dp->plat_data->encoder; @@ -1391,6 +1388,8 @@ int analogix_dp_suspend(struct device *dev) { struct analogix_dp_device *dp = dev_get_drvdata(dev); + disable_irq(dp->irq); + clk_disable_unprepare(dp->clock); if (dp->plat_data->panel) { @@ -1420,6 +1419,8 @@ int analogix_dp_resume(struct device *dev) } } + enable_irq(dp->irq); + return 0; } EXPORT_SYMBOL_GPL(analogix_dp_resume); -- 2.5.5 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel