aboutsummaryrefslogtreecommitdiffstats
path: root/include/video
diff options
context:
space:
mode:
authorArchit Taneja <archit@ti.com>2011-09-26 02:17:29 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2011-10-03 09:51:54 -0400
commit11354dd58da1134ec9c96b65104e5cf2d50e1eb9 (patch)
treea836cd3a6ece346f3cdad52f690ab4bfeba200ca /include/video
parent28748782b736b1a87bd1224d678e416a8375ea13 (diff)
OMAPDSS/OMAP_VOUT: Fix incorrect OMAP3-alpha compatibility setting
On OMAP3, in order to enable alpha blending for LCD and TV managers, we needed to set LCDALPHABLENDERENABLE/TVALPHABLENDERENABLE bits in DISPC_CONFIG. On OMAP4, alpha blending is always enabled by default, if the above bits are set, we switch to an OMAP3 compatibility mode where the zorder values in the pipeline attribute registers are ignored and a fixed priority is configured. Rename the manager_info member "alpha_enabled" to "partial_alpha_enabled" for more clarity. Introduce two dss_features FEAT_ALPHA_FIXED_ZORDER and FEAT_ALPHA_FREE_ZORDER which represent OMAP3-alpha compatibility mode and OMAP4 alpha mode respectively. Introduce an overlay cap for ZORDER. The DSS2 user is expected to check for the ZORDER cap, if an overlay doesn't have this cap, the user is expected to set the parameter partial_alpha_enabled. If the overlay has ZORDER cap, the DSS2 user can assume that alpha blending is already enabled. Don't support OMAP3 compatibility mode for now. Trying to read/write to alpha_blending_enabled sysfs attribute issues a warning for OMAP4 and does not set the LCDALPHABLENDERENABLE/TVALPHABLENDERENABLE bits. Change alpha_enabled to partial_alpha_enabled in the omap_vout driver. Use overlay cap "OMAP_DSS_OVL_CAP_GLOBAL_ALPHA" to check if overlay supports alpha blending or not. Replace this with checks for VIDEO1 pipeline. Cc: linux-media@vger.kernel.org Cc: Lajos Molnar <molnar@ti.com> Signed-off-by: Archit Taneja <archit@ti.com> Acked-by: Vaibhav Hiremath <hvaibhav@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'include/video')
-rw-r--r--include/video/omapdss.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/video/omapdss.h b/include/video/omapdss.h
index 2123fb2d51cb..3db8b4c4d6ed 100644
--- a/include/video/omapdss.h
+++ b/include/video/omapdss.h
@@ -179,6 +179,7 @@ enum omap_overlay_caps {
179 OMAP_DSS_OVL_CAP_SCALE = 1 << 0, 179 OMAP_DSS_OVL_CAP_SCALE = 1 << 0,
180 OMAP_DSS_OVL_CAP_GLOBAL_ALPHA = 1 << 1, 180 OMAP_DSS_OVL_CAP_GLOBAL_ALPHA = 1 << 1,
181 OMAP_DSS_OVL_CAP_PRE_MULT_ALPHA = 1 << 2, 181 OMAP_DSS_OVL_CAP_PRE_MULT_ALPHA = 1 << 2,
182 OMAP_DSS_OVL_CAP_ZORDER = 1 << 3,
182}; 183};
183 184
184enum omap_overlay_manager_caps { 185enum omap_overlay_manager_caps {
@@ -412,7 +413,7 @@ struct omap_overlay_manager_info {
412 u32 trans_key; 413 u32 trans_key;
413 bool trans_enabled; 414 bool trans_enabled;
414 415
415 bool alpha_enabled; 416 bool partial_alpha_enabled;
416 417
417 bool cpr_enable; 418 bool cpr_enable;
418 struct omap_dss_cpr_coefs cpr_coefs; 419 struct omap_dss_cpr_coefs cpr_coefs;