aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/dss/apply.c
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2011-11-17 07:31:09 -0500
committerTomi Valkeinen <tomi.valkeinen@ti.com>2011-12-02 01:54:53 -0500
commitf17d04fbbb201c05700359e94e2747c210f99852 (patch)
tree7a2307dfc05b756ef940b8a2db7d734dc78967e5 /drivers/video/omap2/dss/apply.c
parentfcc764dca80ead39b7391ff2c67a6b78de16d7a9 (diff)
OMAPDSS: APPLY: add dss_mgr_simple_check()
Add dss_mgr_simple_check() which is used to check the validity of certain manager attributes. Only attributes that can be checked independently, without knowing the display being used, is done here (thus "simple"). We can use this function in dss_mgr_set_info(). Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video/omap2/dss/apply.c')
-rw-r--r--drivers/video/omap2/dss/apply.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/video/omap2/dss/apply.c b/drivers/video/omap2/dss/apply.c
index dccddd26443..242cb1c983c 100644
--- a/drivers/video/omap2/dss/apply.c
+++ b/drivers/video/omap2/dss/apply.c
@@ -834,11 +834,35 @@ out:
834 mutex_unlock(&apply_lock); 834 mutex_unlock(&apply_lock);
835} 835}
836 836
837static int dss_mgr_simple_check(struct omap_overlay_manager *mgr,
838 const struct omap_overlay_manager_info *info)
839{
840 if (dss_has_feature(FEAT_ALPHA_FIXED_ZORDER)) {
841 /*
842 * OMAP3 supports only graphics source transparency color key
843 * and alpha blending simultaneously. See TRM 15.4.2.4.2.2
844 * Alpha Mode.
845 */
846 if (info->partial_alpha_enabled && info->trans_enabled
847 && info->trans_key_type != OMAP_DSS_COLOR_KEY_GFX_DST) {
848 DSSERR("check_manager: illegal transparency key\n");
849 return -EINVAL;
850 }
851 }
852
853 return 0;
854}
855
837int dss_mgr_set_info(struct omap_overlay_manager *mgr, 856int dss_mgr_set_info(struct omap_overlay_manager *mgr,
838 struct omap_overlay_manager_info *info) 857 struct omap_overlay_manager_info *info)
839{ 858{
840 struct mgr_priv_data *mp = get_mgr_priv(mgr); 859 struct mgr_priv_data *mp = get_mgr_priv(mgr);
841 unsigned long flags; 860 unsigned long flags;
861 int r;
862
863 r = dss_mgr_simple_check(mgr, info);
864 if (r)
865 return r;
842 866
843 spin_lock_irqsave(&data_lock, flags); 867 spin_lock_irqsave(&data_lock, flags);
844 868