aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJimmy Rubin <jimmy.rubin@stericsson.com>2011-04-20 13:42:44 +0200
committerSrinidhi KASAGAR <srinidhi.kasagar@stericsson.com>2011-04-27 12:09:18 +0200
commit04c92e2481781299683c9b415a250677c8732b6f (patch)
treeaae411b9af1460214dc8cc24f7d80e778346de66 /drivers
parent2db543f2c8ab34c8e9620733ba266e4f87e38163 (diff)
[ANDROID] video: mcde: Add console semaphore
Earlysuspend and Lateresume has to use the console semphore. This semaphore is taken in fbmem.c for every call to mcde_fb. If this semaphore is not acquired in earlysuspend, a suspend can occur at the same time as a refresh is ongoing. This can result in unbalanced disables for VAUX1. ST-Ericsson ID: 336510 ST-Ericsson Linux next: Not tested, ER 282779 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Ibed9395cec7208e25a82a03aedb2a0d3c1922c63 Signed-off-by: Jimmy Rubin <jimmy.rubin@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/21294 Reviewed-by: QATOOLS Reviewed-by: QATEST Reviewed-by: Marcel TUNNISSEN <marcel.tuennissen@stericsson.com> Reviewed-by: Dan JOHANSSON <dan.johansson@stericsson.com> Reviewed-by: Per PERSSON <per.xb.persson@stericsson.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/mcde/mcde_fb.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/video/mcde/mcde_fb.c b/drivers/video/mcde/mcde_fb.c
index 02199331787..8b1cca47339 100644
--- a/drivers/video/mcde/mcde_fb.c
+++ b/drivers/video/mcde/mcde_fb.c
@@ -19,6 +19,8 @@
#include <linux/hwmem.h>
#include <linux/io.h>
+#include <linux/console.h>
+
#include <video/mcde_fb.h>
#define MCDE_FB_BPP_MAX 16
@@ -98,10 +100,12 @@ static void early_suspend(struct early_suspend *data)
struct mcde_fb *mfb =
container_of(data, struct mcde_fb, early_suspend);
+ acquire_console_sem();
for (i = 0; i < mfb->num_ovlys; i++) {
if (mfb->ovlys[i])
mcde_dss_disable_display(mfb->ovlys[i]->ddev);
}
+ release_console_sem();
}
static void late_resume(struct early_suspend *data)
@@ -110,12 +114,14 @@ static void late_resume(struct early_suspend *data)
struct mcde_fb *mfb =
container_of(data, struct mcde_fb, early_suspend);
+ acquire_console_sem();
for (i = 0; i < mfb->num_ovlys; i++) {
if (mfb->ovlys[i]) {
struct mcde_overlay *ovly = mfb->ovlys[i];
(void) mcde_dss_enable_display(ovly->ddev);
}
}
+ release_console_sem();
}
#endif