From ebe419deed81c66911a36d3ada4bc0991dd05c5b Mon Sep 17 00:00:00 2001 From: Tony Lofthouse Date: Fri, 24 Aug 2012 16:20:02 -0500 Subject: hwc: HACK: wuxga panels will generate unscalable layers During the transition from the recents panel to a selected application during the transition a layer which requires a scale down from 1920x1200 to 594x361 is generated. This satisfies the normal limits but with buffers of this size and also blending another 1920x1200 framebuffer. A VID1 underflow occurs. This work-around avoids scaling when layers are wider than 720p and are 4 byte RGB. These conditions have been reproduced in isolation with ADTF. Change-Id: If8fbc8f639abb89a0d736a3beabd2c12312ac3ac Signed-off-by: Tony Lofthouse --- hwc/hwc.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'hwc') diff --git a/hwc/hwc.c b/hwc/hwc.c index 04ec423..9450db7 100644 --- a/hwc/hwc.c +++ b/hwc/hwc.c @@ -899,6 +899,10 @@ static int omap4_hwc_can_scale(__u32 src_w, __u32 src_h, __u32 dst_w, __u32 dst_ if (dst_w * 4 < src_w) return 0; + if (handle) + if (get_rgb_bpp(handle) == 32 && src_w > 1280 && dst_w * 3 < src_w) + return 0; + /* max horizontal downscale is 4, or the fclk/pixclk */ if (fclk > pclk * limits->max_downscale) fclk = pclk * limits->max_downscale; -- cgit v1.1