In r10.3.2 android release package, playing youtube videos then suspend/resume with power key, the last frame will appear in the back of the applications menu. It may also apply some local video playback with suspend/resume.
This issue is due to user space Overlay HAL trying to blank(1) the FB2 in FB early suspend state, and FB2's late_resume will recover the FB2 state to be unblank(0) state since the blank state stored in FB2's early_suspend is unblank(0).
You can apply the below patch in kernel to have it fixed:
diff --git a/drivers/video/mxc/mxc_ipuv3_fb.c b/drivers/video/mxc/mxc_ipuv3_fb.c
index f28e2e6..01ad912 100644
--- a/drivers/video/mxc/mxc_ipuv3_fb.c
+++ b/drivers/video/mxc/mxc_ipuv3_fb.c
@@ -1224,11 +1224,21 @@ static int mxcfb_blank(int blank, struct fb_info *info)
{
struct mxcfb_info *mxc_fbi = (struct mxcfb_info *)info->par;
- dev_dbg(info->device, "blank = %d\n", blank);
+ dev_err(info->device, "blank = %d\n", blank);
- if (mxc_fbi->fb_suspended)
+ if ((mxc_fbi->fb_suspended) && (blank == mxc_fbi->next_blank))
return -EAGAIN;
+ /*
+ * user space may be still have chance to control the fb blank
+ *state in early suspend state
+ */
+ if ((mxc_fbi->fb_suspended) && (blank != mxc_fbi->next_blank)){
+ dev_err(info->device, "Warning!set blank %d in suspend,previouse store blank %d\n",
+ blank, mxc_fbi->next_blank);
+ mxc_fbi->next_blank = blank;
+ }
+
if (mxc_fbi->cur_blank == blank)
return 0;
Update one line "return 0" with under score as below for this patch:
diff --git a/drivers/video/mxc/mxc_ipuv3_fb.c b/drivers/video/mxc/mxc_ipuv3_fb.c
index f28e2e6..01ad912 100644
--- a/drivers/video/mxc/mxc_ipuv3_fb.c
+++ b/drivers/video/mxc/mxc_ipuv3_fb.c
@@ -1224,11 +1224,21 @@ static int mxcfb_blank(int blank, struct fb_info *info)
{
struct mxcfb_info *mxc_fbi = (struct mxcfb_info *)info->par;
- dev_dbg(info->device, "blank = %d\n", blank);
+ dev_err(info->device, "blank = %d\n", blank);
- if (mxc_fbi->fb_suspended)
+ if ((mxc_fbi->fb_suspended) && (blank == mxc_fbi->next_blank))
return -EAGAIN;
+ /*
+ * user space may be still have chance to control the fb blank
+ *state in early suspend state
+ */
+ if ((mxc_fbi->fb_suspended) && (blank != mxc_fbi->next_blank)){
+ dev_err(info->device, "Warning!set blank %d in suspend,previouse store blank %d\n",
+ blank, mxc_fbi->next_blank);
+ mxc_fbi->next_blank = blank;
+ return 0;
+ }
+
if (mxc_fbi->cur_blank == blank)
return 0;
Was this applied to any branch on git.freescale.com?
Should be applied to R10.3.2, R10.4 tag