From 51ac46714e0c224b8324f890659619df1718e5b7 Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Thu, 17 Nov 2011 14:31:09 +0200 Subject: [PATCH] --- yaml --- r: 284957 b: refs/heads/master c: f17d04fbbb201c05700359e94e2747c210f99852 h: refs/heads/master i: 284955: 2f1d8a9a4f0797718dd79c929f72de7ad4e23adb v: v3 --- [refs] | 2 +- trunk/drivers/video/omap2/dss/apply.c | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index ce13e1b7453f..33623e794cd8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fcc764dca80ead39b7391ff2c67a6b78de16d7a9 +refs/heads/master: f17d04fbbb201c05700359e94e2747c210f99852 diff --git a/trunk/drivers/video/omap2/dss/apply.c b/trunk/drivers/video/omap2/dss/apply.c index dccddd264436..242cb1c983c0 100644 --- a/trunk/drivers/video/omap2/dss/apply.c +++ b/trunk/drivers/video/omap2/dss/apply.c @@ -834,11 +834,35 @@ void dss_mgr_disable(struct omap_overlay_manager *mgr) mutex_unlock(&apply_lock); } +static int dss_mgr_simple_check(struct omap_overlay_manager *mgr, + const struct omap_overlay_manager_info *info) +{ + if (dss_has_feature(FEAT_ALPHA_FIXED_ZORDER)) { + /* + * OMAP3 supports only graphics source transparency color key + * and alpha blending simultaneously. See TRM 15.4.2.4.2.2 + * Alpha Mode. + */ + if (info->partial_alpha_enabled && info->trans_enabled + && info->trans_key_type != OMAP_DSS_COLOR_KEY_GFX_DST) { + DSSERR("check_manager: illegal transparency key\n"); + return -EINVAL; + } + } + + return 0; +} + int dss_mgr_set_info(struct omap_overlay_manager *mgr, struct omap_overlay_manager_info *info) { struct mgr_priv_data *mp = get_mgr_priv(mgr); unsigned long flags; + int r; + + r = dss_mgr_simple_check(mgr, info); + if (r) + return r; spin_lock_irqsave(&data_lock, flags);