msm: mdss: exclude cursor from dirty pipe logic

Pipes are marked dirty when the userspace and kernel pipe management
are out of sync and the kernel stabilizes itself with the next prepare
call. The prepare call would not involve cursor pipes, as they are
handled separately through the cursor ioctl. This leaves the cursor
pipe to stay dirty and fails the following pre_commit. Fix to avoid
setting cursor pipe as dirty.

Change-Id: I7ba6347290e47cb04127da8ae82e41f0e9f5d65f
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
This commit is contained in:
Veera Sundaram Sankaran 2015-08-11 12:40:06 -07:00 committed by Jayant Shekhar
parent 21164b2902
commit ca164559a8

View file

@ -1129,6 +1129,9 @@ exit_fail:
/* invalidate any overlays in this framebuffer after failure */
list_for_each_entry(pipe, &mdp5_data->pipes_used, list) {
if (pipe->type == MDSS_MDP_PIPE_TYPE_CURSOR)
continue;
pr_debug("freeing allocations for pipe %d\n", pipe->num);
mdss_mdp_smp_unreserve(pipe);
pipe->params_changed = 0;
@ -1652,7 +1655,9 @@ static int __overlay_queue_pipes(struct msm_fb_data_type *mfd)
pipe->num);
mdss_mdp_mixer_pipe_unstage(pipe, pipe->mixer_left);
mdss_mdp_mixer_pipe_unstage(pipe, pipe->mixer_right);
pipe->dirty = true;
if (pipe->type != MDSS_MDP_PIPE_TYPE_CURSOR)
pipe->dirty = true;
if (buf)
__pipe_buf_mark_cleanup(mfd, buf);