summaryrefslogtreecommitdiffstats
path: root/hwc
diff options
context:
space:
mode:
authorTony Lofthouse <a0741364@ti.com>2012-08-24 16:20:02 -0500
committerDaniel Levin <dendy@ti.com>2012-11-28 21:16:24 +0200
commitebe419deed81c66911a36d3ada4bc0991dd05c5b (patch)
tree218e831ab8ebe809968ca6c916cebe1a5d5425e3 /hwc
parent67bd6fdd70ac683519a38d99c5737120a7a821e9 (diff)
downloadhardware_ti_omap4-ebe419deed81c66911a36d3ada4bc0991dd05c5b.zip
hardware_ti_omap4-ebe419deed81c66911a36d3ada4bc0991dd05c5b.tar.gz
hardware_ti_omap4-ebe419deed81c66911a36d3ada4bc0991dd05c5b.tar.bz2
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 <a0741364@ti.com>
Diffstat (limited to 'hwc')
-rw-r--r--hwc/hwc.c4
1 files changed, 4 insertions, 0 deletions
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;