summaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0043-DSS2-Swap-field-0-and-field-1-registers.patch
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:14:24 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:29:45 +0100
commit29d6678fd546377459ef75cf54abeef5b969b5cf (patch)
tree8edd65790e37a00d01c3f203f773fe4b5012db18 /meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0043-DSS2-Swap-field-0-and-field-1-registers.patch
parentda49de6885ee1bc424e70bc02f21f6ab920efb55 (diff)
downloadpoky-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.gz
Major layout change to the packages directory
Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0043-DSS2-Swap-field-0-and-field-1-registers.patch')
-rw-r--r--meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0043-DSS2-Swap-field-0-and-field-1-registers.patch170
1 files changed, 170 insertions, 0 deletions
diff --git a/meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0043-DSS2-Swap-field-0-and-field-1-registers.patch b/meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0043-DSS2-Swap-field-0-and-field-1-registers.patch
new file mode 100644
index 0000000000..76e37817c4
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0043-DSS2-Swap-field-0-and-field-1-registers.patch
@@ -0,0 +1,170 @@
1From 35e88797e93b107ba602dee1e2ac8ea761dccd4b Mon Sep 17 00:00:00 2001
2From: =?utf-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala@nokia.com>
3Date: Mon, 20 Apr 2009 16:26:20 +0200
4Subject: [PATCH] DSS2: Swap field 0 and field 1 registers
5MIME-Version: 1.0
6Content-Type: text/plain; charset=utf-8
7Content-Transfer-Encoding: 8bit
8
9The values for the registers which have alternate values for each field
10were reveresed to what the hardware expects. For the hardware field 0
11is the even field or the bottom field, field 1 is the odd field or the
12top field. So simply swap the register values.
13
14Signed-off-by: Ville Syrjälä <ville.syrjala@nokia.com>
15---
16 drivers/video/omap2/dss/dispc.c | 66 ++++++++++++++++++++++-----------------
17 1 files changed, 37 insertions(+), 29 deletions(-)
18
19diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
20index 1c036c1..9bab6cf 100644
21--- a/drivers/video/omap2/dss/dispc.c
22+++ b/drivers/video/omap2/dss/dispc.c
23@@ -1072,12 +1072,16 @@ static void _dispc_set_scaling(enum omap_plane plane,
24
25 dispc_write_reg(dispc_reg_att[plane], l);
26
27+ /*
28+ * field 0 = even field = bottom field
29+ * field 1 = odd field = top field
30+ */
31 if (ilace && !fieldmode) {
32- accu0 = 0;
33- accu1 = fir_vinc / 2;
34- if (accu1 >= 1024/2) {
35- accu0 = 1024/2;
36- accu1 -= accu0;
37+ accu1 = 0;
38+ accu0 = fir_vinc / 2;
39+ if (accu0 >= 1024/2) {
40+ accu1 = 1024/2;
41+ accu0 -= accu1;
42 }
43 }
44
45@@ -1266,34 +1270,38 @@ static void calc_dma_rotation_offset(u8 rotation, bool mirror,
46 fbh = width;
47 }
48
49+ /*
50+ * field 0 = even field = bottom field
51+ * field 1 = odd field = top field
52+ */
53 switch (rotation + mirror * 4) {
54 case 0:
55- *offset0 = 0;
56+ *offset1 = 0;
57 if (fieldmode)
58- *offset1 = screen_width * ps;
59+ *offset0 = screen_width * ps;
60 else
61- *offset1 = 0;
62+ *offset0 = 0;
63 *row_inc = pixinc(1 + (screen_width - fbw) +
64 (fieldmode ? screen_width : 0),
65 ps);
66 *pix_inc = pixinc(1, ps);
67 break;
68 case 1:
69- *offset0 = screen_width * (fbh - 1) * ps;
70+ *offset1 = screen_width * (fbh - 1) * ps;
71 if (fieldmode)
72- *offset1 = *offset0 + ps;
73+ *offset0 = *offset1 + ps;
74 else
75- *offset1 = *offset0;
76+ *offset0 = *offset1;
77 *row_inc = pixinc(screen_width * (fbh - 1) + 1 +
78 (fieldmode ? 1 : 0), ps);
79 *pix_inc = pixinc(-screen_width, ps);
80 break;
81 case 2:
82- *offset0 = (screen_width * (fbh - 1) + fbw - 1) * ps;
83+ *offset1 = (screen_width * (fbh - 1) + fbw - 1) * ps;
84 if (fieldmode)
85- *offset1 = *offset0 - screen_width * ps;
86+ *offset0 = *offset1 - screen_width * ps;
87 else
88- *offset1 = *offset0;
89+ *offset0 = *offset1;
90 *row_inc = pixinc(-1 -
91 (screen_width - fbw) -
92 (fieldmode ? screen_width : 0),
93@@ -1301,11 +1309,11 @@ static void calc_dma_rotation_offset(u8 rotation, bool mirror,
94 *pix_inc = pixinc(-1, ps);
95 break;
96 case 3:
97- *offset0 = (fbw - 1) * ps;
98+ *offset1 = (fbw - 1) * ps;
99 if (fieldmode)
100- *offset1 = *offset0 - ps;
101+ *offset0 = *offset1 - ps;
102 else
103- *offset1 = *offset0;
104+ *offset0 = *offset1;
105 *row_inc = pixinc(-screen_width * (fbh - 1) - 1 -
106 (fieldmode ? 1 : 0), ps);
107 *pix_inc = pixinc(screen_width, ps);
108@@ -1313,11 +1321,11 @@ static void calc_dma_rotation_offset(u8 rotation, bool mirror,
109
110 /* mirroring */
111 case 0 + 4:
112- *offset0 = (fbw - 1) * ps;
113+ *offset1 = (fbw - 1) * ps;
114 if (fieldmode)
115- *offset1 = *offset0 + screen_width * ps;
116+ *offset0 = *offset1 + screen_width * ps;
117 else
118- *offset1 = *offset0;
119+ *offset0 = *offset1;
120 *row_inc = pixinc(screen_width * 2 - 1 +
121 (fieldmode ? screen_width : 0),
122 ps);
123@@ -1325,11 +1333,11 @@ static void calc_dma_rotation_offset(u8 rotation, bool mirror,
124 break;
125
126 case 1 + 4:
127- *offset0 = 0;
128+ *offset1 = 0;
129 if (fieldmode)
130- *offset1 = *offset0 + screen_width * ps;
131+ *offset0 = *offset1 + screen_width * ps;
132 else
133- *offset1 = *offset0;
134+ *offset0 = *offset1;
135 *row_inc = pixinc(-screen_width * (fbh - 1) + 1 +
136 (fieldmode ? 1 : 0),
137 ps);
138@@ -1337,11 +1345,11 @@ static void calc_dma_rotation_offset(u8 rotation, bool mirror,
139 break;
140
141 case 2 + 4:
142- *offset0 = screen_width * (fbh - 1) * ps;
143+ *offset1 = screen_width * (fbh - 1) * ps;
144 if (fieldmode)
145- *offset1 = *offset0 + screen_width * ps;
146+ *offset0 = *offset1 + screen_width * ps;
147 else
148- *offset1 = *offset0;
149+ *offset0 = *offset1;
150 *row_inc = pixinc(1 - screen_width * 2 -
151 (fieldmode ? screen_width : 0),
152 ps);
153@@ -1349,11 +1357,11 @@ static void calc_dma_rotation_offset(u8 rotation, bool mirror,
154 break;
155
156 case 3 + 4:
157- *offset0 = (screen_width * (fbh - 1) + fbw - 1) * ps;
158+ *offset1 = (screen_width * (fbh - 1) + fbw - 1) * ps;
159 if (fieldmode)
160- *offset1 = *offset0 + screen_width * ps;
161+ *offset0 = *offset1 + screen_width * ps;
162 else
163- *offset1 = *offset0;
164+ *offset0 = *offset1;
165 *row_inc = pixinc(screen_width * (fbh - 1) - 1 -
166 (fieldmode ? 1 : 0),
167 ps);
168--
1691.5.6.5
170