msm: mdss: fix pipe cleanup for multi-rect pipes

For multi-rect pipes, driver tries to release the
pipe only when both pipes for both rectangles
are in the destroy list. Current code always
detects that there are two pipes with the same
number in the list, since the first iteration to
look for the pipe in the list always correspond to
the same pipe used as the initial index.
This causes that driver unnecesary halt the dma pipe
when still in use for the second rect that is still not
freed. Fix this issue by making sure the same pipe
objects are not used to check if there are two pipes
with the same index in the release list.

Change-Id: I19268009e76b8535fa4a7aa742a1cfc957f8aece
Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
This commit is contained in:
Ingrid Gallardo 2016-06-01 19:54:56 -07:00 committed by Kyle Yan
parent cea962b52f
commit 5039c9bc7a

View file

@ -1226,7 +1226,7 @@ static void mdss_mdp_overlay_cleanup(struct msm_fb_data_type *mfd,
* fetch halt will be skipped for the 1st rect.
*/
list_for_each_entry_from(tmp, destroy_pipes, list) {
if (tmp->num == pipe->num) {
if ((tmp != pipe) && (tmp->num == pipe->num)) {
pair_found = true;
break;
}