@@ -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);
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@collabora.com> Cc: Caesar Wang <wxt@rock-chips.com> Cc: Douglas Anderson <dianders@chromium.org> Cc: Heiko Stuebner <heiko@sntech.de> Cc: Javier Martinez Canillas <javier@osg.samsung.com> Cc: Yakir Yang <ykk@rock-chips.com> --- drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)