summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorAndy Green <andy.green@linaro.org>2011-12-29 12:42:33 +0800
committerSebastien Jan <s-jan@ti.com>2012-01-06 16:41:23 +0100
commit7589744a85c0c9f6dce1752e6f6b3f9348a234d8 (patch)
treed026e83300a428b902d882dc27819ddefb2e56ff /drivers
parentf1060f79ee1415792dbbab2aef4334e034cab105 (diff)
omap dss drm poll skip if early resume
Signed-off-by: Andy Green <andy.green@linaro.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/staging/omapdrm/omap_connector.c5
-rw-r--r--drivers/video/omap2/dss/hdmi.c9
2 files changed, 11 insertions, 3 deletions
diff --git a/drivers/staging/omapdrm/omap_connector.c b/drivers/staging/omapdrm/omap_connector.c
index f02d3daaff4f..65e0b4a0fdfd 100644
--- a/drivers/staging/omapdrm/omap_connector.c
+++ b/drivers/staging/omapdrm/omap_connector.c
@@ -101,6 +101,11 @@ enum drm_connector_status omap_connector_detect(
struct omap_dss_driver *dssdrv = dssdev->driver;
enum drm_connector_status ret;
+ if (!dss_runtime_pm_enabled()) {
+ pr_err("*** drm connector poll occurred in resume, claiming it's disconnected\n");
+ return connector_status_disconnected;
+ }
+
if (dssdrv->detect(dssdev))
ret = connector_status_connected;
else
diff --git a/drivers/video/omap2/dss/hdmi.c b/drivers/video/omap2/dss/hdmi.c
index 37fd7c00de0b..5be3bf488d1d 100644
--- a/drivers/video/omap2/dss/hdmi.c
+++ b/drivers/video/omap2/dss/hdmi.c
@@ -483,14 +483,17 @@ bool omapdss_hdmi_detect(struct omap_dss_device *dssdev)
mutex_lock(&hdmi.lock);
r = hdmi_runtime_get();
- BUG_ON(r);
+ if (r)
+ goto out;
r = hdmi.ip_data.ops->detect(&hdmi.ip_data);
-
+ r = !(r == 1);
hdmi_runtime_put();
+
+out:
mutex_unlock(&hdmi.lock);
- return r == 1;
+ return r;
}
int omapdss_hdmi_display_enable(struct omap_dss_device *dssdev)