diff options
-rw-r--r-- | drivers/gpu/drm/tegra/sor.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c index 63831c37ad35..b81e6d39aa32 100644 --- a/drivers/gpu/drm/tegra/sor.c +++ b/drivers/gpu/drm/tegra/sor.c @@ -2663,9 +2663,16 @@ static void tegra_sor_dp_disable(struct drm_encoder *encoder) if (output->panel) drm_panel_disable(output->panel); - err = drm_dp_link_power_down(sor->aux, &sor->link); - if (err < 0) - dev_err(sor->dev, "failed to power down link: %d\n", err); + /* + * Do not attempt to power down a DP link if we're not connected since + * the AUX transactions would just be timing out. + */ + if (output->connector.status != connector_status_disconnected) { + err = drm_dp_link_power_down(sor->aux, &sor->link); + if (err < 0) + dev_err(sor->dev, "failed to power down link: %d\n", + err); + } err = tegra_sor_detach(sor); if (err < 0) |