diff options
Diffstat (limited to 'drivers/video')
-rw-r--r-- | drivers/video/omap2/dss/manager.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/video/omap2/dss/manager.c b/drivers/video/omap2/dss/manager.c index 4b09fcb432b3..6a649ab5539e 100644 --- a/drivers/video/omap2/dss/manager.c +++ b/drivers/video/omap2/dss/manager.c | |||
@@ -813,6 +813,21 @@ static int configure_overlay(enum omap_plane plane) | |||
813 | 813 | ||
814 | w = w * outw / orig_outw; | 814 | w = w * outw / orig_outw; |
815 | h = h * outh / orig_outh; | 815 | h = h * outh / orig_outh; |
816 | |||
817 | /* YUV mode overlay's input width has to be even and the | ||
818 | * algorithm above may adjust the width to be odd. | ||
819 | * | ||
820 | * Here we adjust the width if needed, preferring to increase | ||
821 | * the width if the original width was bigger. | ||
822 | */ | ||
823 | if ((w & 1) && | ||
824 | (c->color_mode == OMAP_DSS_COLOR_YUV2 || | ||
825 | c->color_mode == OMAP_DSS_COLOR_UYVY)) { | ||
826 | if (orig_w > w) | ||
827 | w += 1; | ||
828 | else | ||
829 | w -= 1; | ||
830 | } | ||
816 | } | 831 | } |
817 | 832 | ||
818 | r = dispc_setup_plane(plane, | 833 | r = dispc_setup_plane(plane, |