diff options
author | Matthew Bouyack <mbouyack@google.com> | 2018-03-15 13:22:09 -0700 |
---|---|---|
committer | Matthew Bouyack <mbouyack@google.com> | 2018-03-15 20:39:36 +0000 |
commit | d7eebe824db8d38dc9302cfa2483e872f3a3e1ce (patch) | |
tree | 9e5a98fe669de196204bc16271d38842401337a4 | |
parent | cf2de328c55065e24d6fdcbc40a11cfe137ca898 (diff) |
Signal kickoff_wait_q on DMA doneandroid-wear-p-preview-1_r0.1
After reverting 00e29cc5de92 the device would sometimes reboot when
attempting to enter suspend.
Specifically, we would no longer signal MDP_NOTIFY_FRAME_CTX_DONE which
could cause us to block for 30 seconds in mdp3_ctrl_off waiting on
'kickoff_wait_q'.
Instead we retain the code which signals kickoff_wait_q and remove the
check which makes it conditional on 'wait_for_kickoff'.
Bug: 74620493
Change-Id: I9e297ec0f0f5f04ec822e4c92ab910206a9df269
Signed-off-by: Matthew Bouyack <mbouyack@google.com>
-rwxr-xr-x | drivers/video/msm/mdss/mdp3_ctrl.c | 1 | ||||
-rwxr-xr-x | drivers/video/msm/mdss/mdss_fb.c | 6 |
2 files changed, 3 insertions, 4 deletions
diff --git a/drivers/video/msm/mdss/mdp3_ctrl.c b/drivers/video/msm/mdss/mdp3_ctrl.c index 9f17f0f12203..f04a373cc426 100755 --- a/drivers/video/msm/mdss/mdp3_ctrl.c +++ b/drivers/video/msm/mdss/mdp3_ctrl.c @@ -156,6 +156,7 @@ static void mdp3_dispatch_dma_done(struct kthread_work *work) while (cnt > 0) { mdp3_ctrl_notify(session, MDP_NOTIFY_FRAME_DONE); atomic_dec(&session->dma_done_cnt); + mdp3_ctrl_notify(session, MDP_NOTIFY_FRAME_CTX_DONE); cnt--; } } diff --git a/drivers/video/msm/mdss/mdss_fb.c b/drivers/video/msm/mdss/mdss_fb.c index 28a523a9123b..8cb29450c90d 100755 --- a/drivers/video/msm/mdss/mdss_fb.c +++ b/drivers/video/msm/mdss/mdss_fb.c @@ -3450,10 +3450,8 @@ static void mdss_fb_release_fences(struct msm_fb_data_type *mfd) static void mdss_fb_release_kickoff(struct msm_fb_data_type *mfd) { - if (mfd->wait_for_kickoff) { - atomic_set(&mfd->kickoff_pending, 0); - wake_up_all(&mfd->kickoff_wait_q); - } + atomic_set(&mfd->kickoff_pending, 0); + wake_up_all(&mfd->kickoff_wait_q); } /** |