1 From a5129f272a48aa22629137c9c31e60eddb8c3f5d Mon Sep 17 00:00:00 2001
2 From: Hardik Shah <hardik.shah@ti.com>
3 Date: Fri, 17 Apr 2009 14:24:46 +0530
4 Subject: [PATCH 40/69] DSS2: Provided proper exclusion for destination color keying and alpha blending.
6 OMAP does not support destination color key and alpha blending
7 simultaneously. So this patch does not allow the user
10 Signed-off-by: Hardik Shah <hardik.shah@ti.com>
12 drivers/video/omap2/dss/manager.c | 50 ++++++++++++++++++++++++++++++++++++-
13 1 files changed, 49 insertions(+), 1 deletions(-)
15 diff --git a/drivers/video/omap2/dss/manager.c b/drivers/video/omap2/dss/manager.c
16 index 7965a84..108489c 100644
17 --- a/drivers/video/omap2/dss/manager.c
18 +++ b/drivers/video/omap2/dss/manager.c
19 @@ -137,12 +137,26 @@ static ssize_t manager_color_key_type_store(struct omap_overlay_manager *mgr,
22 for (key_type = OMAP_DSS_COLOR_KEY_GFX_DST;
23 - key_type < ARRAY_SIZE(color_key_type_str); key_type++) {
24 + key_type < ARRAY_SIZE(color_key_type_str); key_type++) {
25 if (sysfs_streq(buf, color_key_type_str[key_type]))
28 if (key_type == ARRAY_SIZE(color_key_type_str))
30 + /* OMAP does not support destination color key and alpha blending
31 + * simultaneously. So if alpha blending and color keying both are
32 + * enabled then refrain from setting the color key type to
36 + bool color_key_enabled;
37 + bool alpha_blending_enabled;
38 + color_key_enabled = mgr->get_trans_key_status(mgr);
39 + alpha_blending_enabled = mgr->get_alpha_blending_status(mgr);
40 + if (color_key_enabled && alpha_blending_enabled)
44 mgr->get_trans_key_type_and_value(mgr, NULL, &key_value);
45 mgr->set_trans_key_type_and_value(mgr, key_type, key_value);
47 @@ -188,6 +202,23 @@ static ssize_t manager_color_key_enabled_store(struct omap_overlay_manager *mgr,
48 if (sscanf(buf, "%d", &enable) != 1)
51 + /* OMAP does not support destination color keying and
52 + * alpha blending simultaneously. so if alpha blending
53 + * is enabled refrain from enabling destination color
58 + enabled = mgr->get_alpha_blending_status(mgr);
60 + enum omap_dss_color_key_type key_type;
61 + mgr->get_trans_key_type_and_value(mgr,
68 mgr->enable_trans_key(mgr, enable);
71 @@ -205,6 +236,23 @@ static ssize_t manager_alpha_blending_enabled_store(
73 if (sscanf(buf, "%d", &enable) != 1)
75 + /* OMAP does not support destination color keying and
76 + * alpha blending simultaneously. so if destination
77 + * color keying is enabled refrain from enabling
82 + enabled = mgr->get_trans_key_status(mgr);
84 + enum omap_dss_color_key_type key_type;
85 + mgr->get_trans_key_type_and_value(mgr, &key_type, NULL);
92 mgr->enable_alpha_blending(mgr, enable);