diff options
Diffstat (limited to 'drivers/video/omap2/dss/manager.c')
-rw-r--r-- | drivers/video/omap2/dss/manager.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/drivers/video/omap2/dss/manager.c b/drivers/video/omap2/dss/manager.c index e7364603f6a1..0cbcde4c688a 100644 --- a/drivers/video/omap2/dss/manager.c +++ b/drivers/video/omap2/dss/manager.c | |||
@@ -654,9 +654,20 @@ static int dss_mgr_check_zorder(struct omap_overlay_manager *mgr, | |||
654 | return 0; | 654 | return 0; |
655 | } | 655 | } |
656 | 656 | ||
657 | int dss_mgr_check_timings(struct omap_overlay_manager *mgr, | ||
658 | const struct omap_video_timings *timings) | ||
659 | { | ||
660 | if (!dispc_mgr_timings_ok(mgr->id, timings)) { | ||
661 | DSSERR("check_manager: invalid timings\n"); | ||
662 | return -EINVAL; | ||
663 | } | ||
664 | |||
665 | return 0; | ||
666 | } | ||
667 | |||
657 | int dss_mgr_check(struct omap_overlay_manager *mgr, | 668 | int dss_mgr_check(struct omap_overlay_manager *mgr, |
658 | struct omap_dss_device *dssdev, | ||
659 | struct omap_overlay_manager_info *info, | 669 | struct omap_overlay_manager_info *info, |
670 | const struct omap_video_timings *mgr_timings, | ||
660 | struct omap_overlay_info **overlay_infos) | 671 | struct omap_overlay_info **overlay_infos) |
661 | { | 672 | { |
662 | struct omap_overlay *ovl; | 673 | struct omap_overlay *ovl; |
@@ -668,6 +679,10 @@ int dss_mgr_check(struct omap_overlay_manager *mgr, | |||
668 | return r; | 679 | return r; |
669 | } | 680 | } |
670 | 681 | ||
682 | r = dss_mgr_check_timings(mgr, mgr_timings); | ||
683 | if (r) | ||
684 | return r; | ||
685 | |||
671 | list_for_each_entry(ovl, &mgr->overlays, list) { | 686 | list_for_each_entry(ovl, &mgr->overlays, list) { |
672 | struct omap_overlay_info *oi; | 687 | struct omap_overlay_info *oi; |
673 | int r; | 688 | int r; |
@@ -677,7 +692,7 @@ int dss_mgr_check(struct omap_overlay_manager *mgr, | |||
677 | if (oi == NULL) | 692 | if (oi == NULL) |
678 | continue; | 693 | continue; |
679 | 694 | ||
680 | r = dss_ovl_check(ovl, oi, dssdev); | 695 | r = dss_ovl_check(ovl, oi, mgr_timings); |
681 | if (r) | 696 | if (r) |
682 | return r; | 697 | return r; |
683 | } | 698 | } |