summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDandawate Saket <dsaket@ti.com>2012-08-24 11:42:38 -0700
committerJason Simmons <jsimmons@google.com>2012-10-22 16:01:33 -0700
commitb05c5715bd7f2321c9783a2943a8b98c719944c8 (patch)
tree21f6f1c4d243c9c15480cc64fbab7bf9aa97f18e
parentee551a5488c74639359303d978673405f3522f43 (diff)
downloadomap4-aah-b05c5715bd7f2321c9783a2943a8b98c719944c8.tar.gz
hwc: Stop queuing compositions to disabled default display
When HDMI is the default screen it may not be attached even though the UI is active. UI compositions will keep coming but the DSS manager will have problems if being programmed with content incompatible with the intermediate display mode. The last_mode variable is reset to "0" when hdmi panel is not present. The on_tv variable indicates hdmi is default panel. So if both are set then we need to make the overlay number in composition to be "0". OMAPLFB will skip posting the composition to dss driver when overlay as "0". There are still possibly compositions in the DSSCOMP queue or in flight from PVR services to OMAPLFB so this behavior doesn't cover all cases - so this should be considered a work-around. kernel dependency: http://review.omapzoom.org/#/c/26982/ Change-Id: Idb6864aa57ebf6c403b91ea5b0e0865467008934 Signed-off-by: Dandawate Saket <dsaket@ti.com> Signed-off-by: Tony Lofthouse <tony.lofthouse@ti.com> (cherry picked from commit a4a35a6efdf146cad32d76e6e07327a983cec6a1)
-rw-r--r--hwc/hwc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/hwc/hwc.c b/hwc/hwc.c
index 7a71253..74d5b3b 100644
--- a/hwc/hwc.c
+++ b/hwc/hwc.c
@@ -1905,6 +1905,14 @@ static int omap4_hwc_prepare(struct hwc_composer_device_1 *dev, size_t numDispla
hwc_dev->ext_ovls = dsscomp->num_ovls - hwc_dev->post2_layers;
}
+ /*
+ * Whilst the mode of the display is being changed drop compositions to the
+ * display
+ */
+ if (ext->last_mode == 0 && hwc_dev->on_tv) {
+ dsscomp->num_ovls = 0;
+ }
+
if (debug) {
ALOGD("prepare (%d) - %s (comp=%d, poss=%d/%d scaled, RGB=%d,BGR=%d,NV12=%d) (ext=%s%s%ddeg%s %dex/%dmx (last %dex,%din)\n",
dsscomp->sync_id,