summaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0037-DSS2-Added-support-for-querying-color-keying.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0037-DSS2-Added-support-for-querying-color-keying.patch')
-rw-r--r--meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0037-DSS2-Added-support-for-querying-color-keying.patch150
1 files changed, 150 insertions, 0 deletions
diff --git a/meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0037-DSS2-Added-support-for-querying-color-keying.patch b/meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0037-DSS2-Added-support-for-querying-color-keying.patch
new file mode 100644
index 0000000000..fc62b09512
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0037-DSS2-Added-support-for-querying-color-keying.patch
@@ -0,0 +1,150 @@
1From 2c9edd6af31a812a9487dd8bc12322e105a29f44 Mon Sep 17 00:00:00 2001
2From: Hardik Shah <hardik.shah@ti.com>
3Date: Fri, 17 Apr 2009 09:42:36 +0530
4Subject: [PATCH] DSS2: Added support for querying color keying.
5
6V4L2 Framework has a ioctl for getting/setting color keying.
7So added the function manager pointers for doing same.
8
9Modifed the color keying sysfs entries to use manager
10function pointer. Earlier they were calling direcly
11dispc function to set/enable color keying.
12
13Some of color-keying function pointers in the overlay_manager
14structure re-named to be more specific.
15
16Signed-off-by: Hardik Shah <hardik.shah@ti.com>
17---
18 arch/arm/plat-omap/include/mach/display.h | 6 ++++-
19 drivers/video/omap2/dss/manager.c | 36 +++++++++++++++++++++--------
20 2 files changed, 31 insertions(+), 11 deletions(-)
21
22diff --git a/arch/arm/plat-omap/include/mach/display.h b/arch/arm/plat-omap/include/mach/display.h
23index e1f615a..d0b4c83 100644
24--- a/arch/arm/plat-omap/include/mach/display.h
25+++ b/arch/arm/plat-omap/include/mach/display.h
26@@ -416,7 +416,11 @@ struct omap_overlay_manager {
27 void (*set_default_color)(struct omap_overlay_manager *mgr, u32 color);
28 u32 (*get_default_color)(struct omap_overlay_manager *mgr);
29 bool (*get_alpha_blending_status)(struct omap_overlay_manager *mgr);
30- void (*set_trans_key)(struct omap_overlay_manager *mgr,
31+ bool (*get_trans_key_status)(struct omap_overlay_manager *mgr);
32+ void (*get_trans_key_type_and_value)(struct omap_overlay_manager *mgr,
33+ enum omap_dss_color_key_type *type,
34+ u32 *trans_key);
35+ void (*set_trans_key_type_and_value)(struct omap_overlay_manager *mgr,
36 enum omap_dss_color_key_type type,
37 u32 trans_key);
38 void (*enable_trans_key)(struct omap_overlay_manager *mgr,
39diff --git a/drivers/video/omap2/dss/manager.c b/drivers/video/omap2/dss/manager.c
40index 90acd28..e0501c4 100644
41--- a/drivers/video/omap2/dss/manager.c
42+++ b/drivers/video/omap2/dss/manager.c
43@@ -124,7 +124,7 @@ static ssize_t manager_color_key_type_show(struct omap_overlay_manager *mgr,
44 {
45 enum omap_dss_color_key_type key_type;
46
47- dispc_get_trans_key(mgr->id, &key_type, NULL);
48+ mgr->get_trans_key_type_and_value(mgr, &key_type, NULL);
49 BUG_ON(key_type >= ARRAY_SIZE(color_key_type_str));
50
51 return snprintf(buf, PAGE_SIZE, "%s\n", color_key_type_str[key_type]);
52@@ -143,8 +143,8 @@ static ssize_t manager_color_key_type_store(struct omap_overlay_manager *mgr,
53 }
54 if (key_type == ARRAY_SIZE(color_key_type_str))
55 return -EINVAL;
56- dispc_get_trans_key(mgr->id, NULL, &key_value);
57- dispc_set_trans_key(mgr->id, key_type, key_value);
58+ mgr->get_trans_key_type_and_value(mgr, NULL, &key_value);
59+ mgr->set_trans_key_type_and_value(mgr, key_type, key_value);
60
61 return size;
62 }
63@@ -154,7 +154,7 @@ static ssize_t manager_color_key_value_show(struct omap_overlay_manager *mgr,
64 {
65 u32 key_value;
66
67- dispc_get_trans_key(mgr->id, NULL, &key_value);
68+ mgr->get_trans_key_type_and_value(mgr, NULL, &key_value);
69
70 return snprintf(buf, PAGE_SIZE, "%d\n", key_value);
71 }
72@@ -167,8 +167,8 @@ static ssize_t manager_color_key_value_store(struct omap_overlay_manager *mgr,
73
74 if (sscanf(buf, "%d", &key_value) != 1)
75 return -EINVAL;
76- dispc_get_trans_key(mgr->id, &key_type, NULL);
77- dispc_set_trans_key(mgr->id, key_type, key_value);
78+ mgr->get_trans_key_type_and_value(mgr, &key_type, NULL);
79+ mgr->set_trans_key_type_and_value(mgr, key_type, key_value);
80
81 return size;
82 }
83@@ -177,7 +177,7 @@ static ssize_t manager_color_key_enabled_show(struct omap_overlay_manager *mgr,
84 char *buf)
85 {
86 return snprintf(buf, PAGE_SIZE, "%d\n",
87- dispc_trans_key_enabled(mgr->id));
88+ mgr->get_trans_key_status(mgr));
89 }
90
91 static ssize_t manager_color_key_enabled_store(struct omap_overlay_manager *mgr,
92@@ -188,7 +188,7 @@ static ssize_t manager_color_key_enabled_store(struct omap_overlay_manager *mgr,
93 if (sscanf(buf, "%d", &enable) != 1)
94 return -EINVAL;
95
96- dispc_enable_trans_key(mgr->id, enable);
97+ mgr->enable_trans_key(mgr, enable);
98
99 return size;
100 }
101@@ -456,12 +456,20 @@ static void omap_dss_mgr_set_def_color(struct omap_overlay_manager *mgr,
102 dispc_set_default_color(mgr->id, color);
103 }
104
105-static void omap_dss_mgr_set_trans_key(struct omap_overlay_manager *mgr,
106+static void omap_dss_mgr_set_trans_key_type_and_value(
107+ struct omap_overlay_manager *mgr,
108 enum omap_dss_color_key_type type,
109 u32 trans_key)
110 {
111 dispc_set_trans_key(mgr->id, type, trans_key);
112 }
113+static void omap_dss_mgr_get_trans_key_type_and_value(
114+ struct omap_overlay_manager *mgr,
115+ enum omap_dss_color_key_type *type,
116+ u32 *trans_key)
117+{
118+ dispc_get_trans_key(mgr->id, type, trans_key);
119+}
120
121 static void omap_dss_mgr_enable_trans_key(struct omap_overlay_manager *mgr,
122 bool enable)
123@@ -482,6 +490,10 @@ static u32 omap_dss_mgr_get_default_color(struct omap_overlay_manager *mgr)
124 {
125 return dispc_get_default_color(mgr->id);
126 }
127+static bool omap_dss_mgr_get_trans_key_status(struct omap_overlay_manager *mgr)
128+{
129+ return dispc_trans_key_enabled(mgr->id);
130+}
131
132 static void omap_dss_add_overlay_manager(struct omap_overlay_manager *manager)
133 {
134@@ -522,8 +534,12 @@ int dss_init_overlay_managers(struct platform_device *pdev)
135 mgr->unset_display = &omap_dss_unset_display,
136 mgr->apply = &omap_dss_mgr_apply,
137 mgr->set_default_color = &omap_dss_mgr_set_def_color,
138- mgr->set_trans_key = &omap_dss_mgr_set_trans_key,
139+ mgr->set_trans_key_type_and_value =
140+ &omap_dss_mgr_set_trans_key_type_and_value,
141+ mgr->get_trans_key_type_and_value =
142+ &omap_dss_mgr_get_trans_key_type_and_value,
143 mgr->enable_trans_key = &omap_dss_mgr_enable_trans_key,
144+ mgr->get_trans_key_status = &omap_dss_mgr_get_trans_key_status,
145 mgr->enable_alpha_blending =
146 &omap_dss_mgr_enable_alpha_blending;
147 mgr->get_alpha_blending_status =
148--
1491.5.6.5
150