diff options
author | Andy Green <andy.green@linaro.org> | 2011-12-29 12:42:33 +0800 |
---|---|---|
committer | Sebastien Jan <s-jan@ti.com> | 2012-01-06 16:41:23 +0100 |
commit | 7589744a85c0c9f6dce1752e6f6b3f9348a234d8 (patch) | |
tree | d026e83300a428b902d882dc27819ddefb2e56ff /drivers | |
parent | f1060f79ee1415792dbbab2aef4334e034cab105 (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.c | 5 | ||||
-rw-r--r-- | drivers/video/omap2/dss/hdmi.c | 9 |
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) |