playing youtube videos then suspend/resume with power key, the last frame will appear in the back of the applications menu

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

playing youtube videos then suspend/resume with power key, the last frame will appear in the back of the applications menu

968 Views
chenguoyin
NXP Employee
NXP Employee

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;

Labels (4)
3 Replies

534 Views
chenguoyin
NXP Employee
NXP Employee

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;

0 Kudos

534 Views
daiane_angolini
NXP Employee
NXP Employee

Was this applied to any branch on git.freescale.com?

0 Kudos

534 Views
chenguoyin
NXP Employee
NXP Employee

Should be applied to R10.3.2, R10.4 tag