diff options
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.patch | 150 |
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 @@ | |||
1 | From 2c9edd6af31a812a9487dd8bc12322e105a29f44 Mon Sep 17 00:00:00 2001 | ||
2 | From: Hardik Shah <hardik.shah@ti.com> | ||
3 | Date: Fri, 17 Apr 2009 09:42:36 +0530 | ||
4 | Subject: [PATCH] DSS2: Added support for querying color keying. | ||
5 | |||
6 | V4L2 Framework has a ioctl for getting/setting color keying. | ||
7 | So added the function manager pointers for doing same. | ||
8 | |||
9 | Modifed the color keying sysfs entries to use manager | ||
10 | function pointer. Earlier they were calling direcly | ||
11 | dispc function to set/enable color keying. | ||
12 | |||
13 | Some of color-keying function pointers in the overlay_manager | ||
14 | structure re-named to be more specific. | ||
15 | |||
16 | Signed-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 | |||
22 | diff --git a/arch/arm/plat-omap/include/mach/display.h b/arch/arm/plat-omap/include/mach/display.h | ||
23 | index 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, | ||
39 | diff --git a/drivers/video/omap2/dss/manager.c b/drivers/video/omap2/dss/manager.c | ||
40 | index 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 | -- | ||
149 | 1.5.6.5 | ||
150 | |||