diff options
-rw-r--r-- | drivers/video/omap2/dss/manager.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/drivers/video/omap2/dss/manager.c b/drivers/video/omap2/dss/manager.c index d0d23157110b..d2bdd652d595 100644 --- a/drivers/video/omap2/dss/manager.c +++ b/drivers/video/omap2/dss/manager.c | |||
@@ -1114,23 +1114,28 @@ static int omap_dss_mgr_apply(struct omap_overlay_manager *mgr) | |||
1114 | spin_lock_irqsave(&dss_cache.lock, flags); | 1114 | spin_lock_irqsave(&dss_cache.lock, flags); |
1115 | 1115 | ||
1116 | /* Configure overlays */ | 1116 | /* Configure overlays */ |
1117 | for (i = 0; i < omap_dss_get_num_overlays(); ++i) { | 1117 | for (i = 0; i < mgr->num_overlays; ++i) { |
1118 | struct omap_overlay *ovl; | 1118 | struct omap_overlay *ovl; |
1119 | 1119 | ||
1120 | ovl = omap_dss_get_overlay(i); | 1120 | ovl = mgr->overlays[i]; |
1121 | |||
1122 | if (ovl->manager != mgr) | ||
1123 | continue; | ||
1121 | 1124 | ||
1122 | omap_dss_mgr_apply_ovl(ovl); | 1125 | omap_dss_mgr_apply_ovl(ovl); |
1123 | } | 1126 | } |
1124 | 1127 | ||
1125 | /* Configure managers */ | 1128 | /* Configure manager */ |
1126 | list_for_each_entry(mgr, &manager_list, list) | 1129 | omap_dss_mgr_apply_mgr(mgr); |
1127 | omap_dss_mgr_apply_mgr(mgr); | ||
1128 | 1130 | ||
1129 | /* Configure overlay fifos */ | 1131 | /* Configure overlay fifos */ |
1130 | for (i = 0; i < omap_dss_get_num_overlays(); ++i) { | 1132 | for (i = 0; i < mgr->num_overlays; ++i) { |
1131 | struct omap_overlay *ovl; | 1133 | struct omap_overlay *ovl; |
1132 | 1134 | ||
1133 | ovl = omap_dss_get_overlay(i); | 1135 | ovl = mgr->overlays[i]; |
1136 | |||
1137 | if (ovl->manager != mgr) | ||
1138 | continue; | ||
1134 | 1139 | ||
1135 | omap_dss_mgr_apply_ovl_fifos(ovl); | 1140 | omap_dss_mgr_apply_ovl_fifos(ovl); |
1136 | } | 1141 | } |