diff options
author | G, Manjunath Kondaiah <manjugk@ti.com> | 2010-10-29 16:19:10 +0530 |
---|---|---|
committer | G, Manjunath Kondaiah <manjugk@ti.com> | 2010-10-29 16:19:32 +0530 |
commit | 29e973b87c89e22a8ee95ee38afb0039a395d50d (patch) | |
tree | 0709d8db8e4e1fd445c944d0b157104d35b5e50f /drivers/video/omap2/dss/display.c | |
parent | 08e5ff41d66926d88ef166ca53f6972753fbb360 (diff) | |
parent | 80b87dcb1b6167f303e617fdb7c70d814b2468d5 (diff) |
Merge branch 'Display changes' into L24.11ti-2.6.35-omap4-L24.11-p1
Diffstat (limited to 'drivers/video/omap2/dss/display.c')
-rw-r--r-- | drivers/video/omap2/dss/display.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/drivers/video/omap2/dss/display.c b/drivers/video/omap2/dss/display.c index aa6dc7578abf..d2b0b690194d 100644 --- a/drivers/video/omap2/dss/display.c +++ b/drivers/video/omap2/dss/display.c @@ -601,8 +601,12 @@ static int dss_resume_device(struct device *dev, void *data) if (dssdev->activate_after_resume && dssdev->driver->resume) { r = dssdev->driver->resume(dssdev); - if (r) + if (r) { + DSSERR("Failed to resume %s device (%d), disabling\n", + dssdev->name, r); + dssdev->driver->disable(dssdev); return r; + } } dssdev->activate_after_resume = false; @@ -628,7 +632,10 @@ static int dss_check_state_disabled(struct device *dev, void *data) return -EINVAL; } -/* disables mainclk if all devices are suspended /disabled */ +/* + * Checks if all devices are suspended/disabled. + * Disables mainclk (DSS clocks on OMAP4) if true and do_clk_disable is true. + */ int dss_mainclk_state_disable(bool do_clk_disable) { int r; @@ -637,8 +644,8 @@ int dss_mainclk_state_disable(bool do_clk_disable) r = bus_for_each_dev(bus, NULL, NULL, dss_check_state_disabled); if (r) { - /* All devices are not disabled /suspended */ - return -EINVAL; + /* Some devices are not disabled/suspended */ + return -EBUSY; } else { if (do_clk_disable) { save_all_ctx(); @@ -648,7 +655,11 @@ int dss_mainclk_state_disable(bool do_clk_disable) } } -/* enables mainclk if all devices are suspended /disabled */ +/* + * enables mainclk (DSS clocks on OMAP4 if all devices are either in disabled or + * suspended state before calling this function. + * Returns 0 on success. + */ int dss_mainclk_state_enable(void) { int r; @@ -661,7 +672,7 @@ int dss_mainclk_state_enable(void) return -EINVAL; } else { r = dss_mainclk_enable(); - if (!r) + if (r >= 0) restore_all_ctx(); return 0; } |