diff options
author | Leonid V. Fedorenchik <leonidsbox@gmail.com> | 2011-10-22 00:43:40 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-11-24 15:53:44 -0500 |
commit | 14098bc73080fcb945423a4fd36eec0a89fb35bd (patch) | |
tree | 3e240e6d24725bbe821d09785e743d4371dd5df7 /drivers/media/video/cx25821/cx25821-medusa-video.c | |
parent | 49faae869fb1647b8201859602e11bed18230702 (diff) |
[media] cx25821-medusa-video.c: Change line endings
Change obscure line endings to less obscure ones. (improve readability)
Signed-off-by: Leonid V. Fedorenchik <leonidsbox@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx25821/cx25821-medusa-video.c')
-rw-r--r-- | drivers/media/video/cx25821/cx25821-medusa-video.c | 400 |
1 files changed, 159 insertions, 241 deletions
diff --git a/drivers/media/video/cx25821/cx25821-medusa-video.c b/drivers/media/video/cx25821/cx25821-medusa-video.c index 1ae0e8a4068c..298a68d98c2f 100644 --- a/drivers/media/video/cx25821/cx25821-medusa-video.c +++ b/drivers/media/video/cx25821/cx25821-medusa-video.c | |||
@@ -99,82 +99,67 @@ static int medusa_initialize_ntsc(struct cx25821_dev *dev) | |||
99 | 99 | ||
100 | for (i = 0; i < MAX_DECODERS; i++) { | 100 | for (i = 0; i < MAX_DECODERS; i++) { |
101 | /* set video format NTSC-M */ | 101 | /* set video format NTSC-M */ |
102 | value = | 102 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
103 | cx25821_i2c_read(&dev->i2c_bus[0], MODE_CTRL + (0x200 * i), | 103 | MODE_CTRL + (0x200 * i), &tmp); |
104 | &tmp); | ||
105 | value &= 0xFFFFFFF0; | 104 | value &= 0xFFFFFFF0; |
106 | /* enable the fast locking mode bit[16] */ | 105 | /* enable the fast locking mode bit[16] */ |
107 | value |= 0x10001; | 106 | value |= 0x10001; |
108 | ret_val = | 107 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
109 | cx25821_i2c_write(&dev->i2c_bus[0], MODE_CTRL + (0x200 * i), | 108 | MODE_CTRL + (0x200 * i), value); |
110 | value); | ||
111 | 109 | ||
112 | /* resolution NTSC 720x480 */ | 110 | /* resolution NTSC 720x480 */ |
113 | value = | 111 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
114 | cx25821_i2c_read(&dev->i2c_bus[0], | 112 | HORIZ_TIM_CTRL + (0x200 * i), &tmp); |
115 | HORIZ_TIM_CTRL + (0x200 * i), &tmp); | ||
116 | value &= 0x00C00C00; | 113 | value &= 0x00C00C00; |
117 | value |= 0x612D0074; | 114 | value |= 0x612D0074; |
118 | ret_val = | 115 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
119 | cx25821_i2c_write(&dev->i2c_bus[0], | 116 | HORIZ_TIM_CTRL + (0x200 * i), value); |
120 | HORIZ_TIM_CTRL + (0x200 * i), value); | ||
121 | 117 | ||
122 | value = | 118 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
123 | cx25821_i2c_read(&dev->i2c_bus[0], | 119 | VERT_TIM_CTRL + (0x200 * i), &tmp); |
124 | VERT_TIM_CTRL + (0x200 * i), &tmp); | ||
125 | value &= 0x00C00C00; | 120 | value &= 0x00C00C00; |
126 | value |= 0x1C1E001A; /* vblank_cnt + 2 to get camera ID */ | 121 | value |= 0x1C1E001A; /* vblank_cnt + 2 to get camera ID */ |
127 | ret_val = | 122 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
128 | cx25821_i2c_write(&dev->i2c_bus[0], | 123 | VERT_TIM_CTRL + (0x200 * i), value); |
129 | VERT_TIM_CTRL + (0x200 * i), value); | ||
130 | 124 | ||
131 | /* chroma subcarrier step size */ | 125 | /* chroma subcarrier step size */ |
132 | ret_val = | 126 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
133 | cx25821_i2c_write(&dev->i2c_bus[0], | 127 | SC_STEP_SIZE + (0x200 * i), 0x43E00000); |
134 | SC_STEP_SIZE + (0x200 * i), 0x43E00000); | ||
135 | 128 | ||
136 | /* enable VIP optional active */ | 129 | /* enable VIP optional active */ |
137 | value = | 130 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
138 | cx25821_i2c_read(&dev->i2c_bus[0], | 131 | OUT_CTRL_NS + (0x200 * i), &tmp); |
139 | OUT_CTRL_NS + (0x200 * i), &tmp); | ||
140 | value &= 0xFFFBFFFF; | 132 | value &= 0xFFFBFFFF; |
141 | value |= 0x00040000; | 133 | value |= 0x00040000; |
142 | ret_val = | 134 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
143 | cx25821_i2c_write(&dev->i2c_bus[0], | 135 | OUT_CTRL_NS + (0x200 * i), value); |
144 | OUT_CTRL_NS + (0x200 * i), value); | ||
145 | 136 | ||
146 | /* enable VIP optional active (VIP_OPT_AL) for direct output. */ | 137 | /* enable VIP optional active (VIP_OPT_AL) for direct output. */ |
147 | value = | 138 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
148 | cx25821_i2c_read(&dev->i2c_bus[0], OUT_CTRL1 + (0x200 * i), | 139 | OUT_CTRL1 + (0x200 * i), &tmp); |
149 | &tmp); | ||
150 | value &= 0xFFFBFFFF; | 140 | value &= 0xFFFBFFFF; |
151 | value |= 0x00040000; | 141 | value |= 0x00040000; |
152 | ret_val = | 142 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
153 | cx25821_i2c_write(&dev->i2c_bus[0], OUT_CTRL1 + (0x200 * i), | 143 | OUT_CTRL1 + (0x200 * i), value); |
154 | value); | ||
155 | 144 | ||
156 | /* | 145 | /* |
157 | * clear VPRES_VERT_EN bit, fixes the chroma run away problem | 146 | * clear VPRES_VERT_EN bit, fixes the chroma run away problem |
158 | * when the input switching rate < 16 fields | 147 | * when the input switching rate < 16 fields |
159 | */ | 148 | */ |
160 | value = | 149 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
161 | cx25821_i2c_read(&dev->i2c_bus[0], | 150 | MISC_TIM_CTRL + (0x200 * i), &tmp); |
162 | MISC_TIM_CTRL + (0x200 * i), &tmp); | ||
163 | /* disable special play detection */ | 151 | /* disable special play detection */ |
164 | value = setBitAtPos(value, 14); | 152 | value = setBitAtPos(value, 14); |
165 | value = clearBitAtPos(value, 15); | 153 | value = clearBitAtPos(value, 15); |
166 | ret_val = | 154 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
167 | cx25821_i2c_write(&dev->i2c_bus[0], | 155 | MISC_TIM_CTRL + (0x200 * i), value); |
168 | MISC_TIM_CTRL + (0x200 * i), value); | ||
169 | 156 | ||
170 | /* set vbi_gate_en to 0 */ | 157 | /* set vbi_gate_en to 0 */ |
171 | value = | 158 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
172 | cx25821_i2c_read(&dev->i2c_bus[0], DFE_CTRL1 + (0x200 * i), | 159 | DFE_CTRL1 + (0x200 * i), &tmp); |
173 | &tmp); | ||
174 | value = clearBitAtPos(value, 29); | 160 | value = clearBitAtPos(value, 29); |
175 | ret_val = | 161 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
176 | cx25821_i2c_write(&dev->i2c_bus[0], DFE_CTRL1 + (0x200 * i), | 162 | DFE_CTRL1 + (0x200 * i), value); |
177 | value); | ||
178 | 163 | ||
179 | /* Enable the generation of blue field output if no video */ | 164 | /* Enable the generation of blue field output if no video */ |
180 | medusa_enable_bluefield_output(dev, i, 1); | 165 | medusa_enable_bluefield_output(dev, i, 1); |
@@ -182,61 +167,49 @@ static int medusa_initialize_ntsc(struct cx25821_dev *dev) | |||
182 | 167 | ||
183 | for (i = 0; i < MAX_ENCODERS; i++) { | 168 | for (i = 0; i < MAX_ENCODERS; i++) { |
184 | /* NTSC hclock */ | 169 | /* NTSC hclock */ |
185 | value = | 170 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
186 | cx25821_i2c_read(&dev->i2c_bus[0], | 171 | DENC_A_REG_1 + (0x100 * i), &tmp); |
187 | DENC_A_REG_1 + (0x100 * i), &tmp); | ||
188 | value &= 0xF000FC00; | 172 | value &= 0xF000FC00; |
189 | value |= 0x06B402D0; | 173 | value |= 0x06B402D0; |
190 | ret_val = | 174 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
191 | cx25821_i2c_write(&dev->i2c_bus[0], | 175 | DENC_A_REG_1 + (0x100 * i), value); |
192 | DENC_A_REG_1 + (0x100 * i), value); | ||
193 | 176 | ||
194 | /* burst begin and burst end */ | 177 | /* burst begin and burst end */ |
195 | value = | 178 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
196 | cx25821_i2c_read(&dev->i2c_bus[0], | 179 | DENC_A_REG_2 + (0x100 * i), &tmp); |
197 | DENC_A_REG_2 + (0x100 * i), &tmp); | ||
198 | value &= 0xFF000000; | 180 | value &= 0xFF000000; |
199 | value |= 0x007E9054; | 181 | value |= 0x007E9054; |
200 | ret_val = | 182 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
201 | cx25821_i2c_write(&dev->i2c_bus[0], | 183 | DENC_A_REG_2 + (0x100 * i), value); |
202 | DENC_A_REG_2 + (0x100 * i), value); | ||
203 | 184 | ||
204 | value = | 185 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
205 | cx25821_i2c_read(&dev->i2c_bus[0], | 186 | DENC_A_REG_3 + (0x100 * i), &tmp); |
206 | DENC_A_REG_3 + (0x100 * i), &tmp); | ||
207 | value &= 0xFC00FE00; | 187 | value &= 0xFC00FE00; |
208 | value |= 0x00EC00F0; | 188 | value |= 0x00EC00F0; |
209 | ret_val = | 189 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
210 | cx25821_i2c_write(&dev->i2c_bus[0], | 190 | DENC_A_REG_3 + (0x100 * i), value); |
211 | DENC_A_REG_3 + (0x100 * i), value); | ||
212 | 191 | ||
213 | /* set NTSC vblank, no phase alternation, 7.5 IRE pedestal */ | 192 | /* set NTSC vblank, no phase alternation, 7.5 IRE pedestal */ |
214 | value = | 193 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
215 | cx25821_i2c_read(&dev->i2c_bus[0], | 194 | DENC_A_REG_4 + (0x100 * i), &tmp); |
216 | DENC_A_REG_4 + (0x100 * i), &tmp); | ||
217 | value &= 0x00FCFFFF; | 195 | value &= 0x00FCFFFF; |
218 | value |= 0x13020000; | 196 | value |= 0x13020000; |
219 | ret_val = | 197 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
220 | cx25821_i2c_write(&dev->i2c_bus[0], | 198 | DENC_A_REG_4 + (0x100 * i), value); |
221 | DENC_A_REG_4 + (0x100 * i), value); | ||
222 | 199 | ||
223 | value = | 200 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
224 | cx25821_i2c_read(&dev->i2c_bus[0], | 201 | DENC_A_REG_5 + (0x100 * i), &tmp); |
225 | DENC_A_REG_5 + (0x100 * i), &tmp); | ||
226 | value &= 0xFFFF0000; | 202 | value &= 0xFFFF0000; |
227 | value |= 0x0000E575; | 203 | value |= 0x0000E575; |
228 | ret_val = | 204 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
229 | cx25821_i2c_write(&dev->i2c_bus[0], | 205 | DENC_A_REG_5 + (0x100 * i), value); |
230 | DENC_A_REG_5 + (0x100 * i), value); | ||
231 | 206 | ||
232 | ret_val = | 207 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
233 | cx25821_i2c_write(&dev->i2c_bus[0], | 208 | DENC_A_REG_6 + (0x100 * i), 0x009A89C1); |
234 | DENC_A_REG_6 + (0x100 * i), 0x009A89C1); | ||
235 | 209 | ||
236 | /* Subcarrier Increment */ | 210 | /* Subcarrier Increment */ |
237 | ret_val = | 211 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
238 | cx25821_i2c_write(&dev->i2c_bus[0], | 212 | DENC_A_REG_7 + (0x100 * i), 0x21F07C1F); |
239 | DENC_A_REG_7 + (0x100 * i), 0x21F07C1F); | ||
240 | } | 213 | } |
241 | 214 | ||
242 | /* set picture resolutions */ | 215 | /* set picture resolutions */ |
@@ -261,34 +234,27 @@ static int medusa_PALCombInit(struct cx25821_dev *dev, int dec) | |||
261 | u32 value = 0, tmp = 0; | 234 | u32 value = 0, tmp = 0; |
262 | 235 | ||
263 | /* Setup for 2D threshold */ | 236 | /* Setup for 2D threshold */ |
264 | ret_val = | 237 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
265 | cx25821_i2c_write(&dev->i2c_bus[0], COMB_2D_HFS_CFG + (0x200 * dec), | 238 | COMB_2D_HFS_CFG + (0x200 * dec), 0x20002861); |
266 | 0x20002861); | 239 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
267 | ret_val = | 240 | COMB_2D_HFD_CFG + (0x200 * dec), 0x20002861); |
268 | cx25821_i2c_write(&dev->i2c_bus[0], COMB_2D_HFD_CFG + (0x200 * dec), | 241 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
269 | 0x20002861); | 242 | COMB_2D_LF_CFG + (0x200 * dec), 0x200A1023); |
270 | ret_val = | ||
271 | cx25821_i2c_write(&dev->i2c_bus[0], COMB_2D_LF_CFG + (0x200 * dec), | ||
272 | 0x200A1023); | ||
273 | 243 | ||
274 | /* Setup flat chroma and luma thresholds */ | 244 | /* Setup flat chroma and luma thresholds */ |
275 | value = | 245 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
276 | cx25821_i2c_read(&dev->i2c_bus[0], | 246 | COMB_FLAT_THRESH_CTRL + (0x200 * dec), &tmp); |
277 | COMB_FLAT_THRESH_CTRL + (0x200 * dec), &tmp); | ||
278 | value &= 0x06230000; | 247 | value &= 0x06230000; |
279 | ret_val = | 248 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
280 | cx25821_i2c_write(&dev->i2c_bus[0], | 249 | COMB_FLAT_THRESH_CTRL + (0x200 * dec), value); |
281 | COMB_FLAT_THRESH_CTRL + (0x200 * dec), value); | ||
282 | 250 | ||
283 | /* set comb 2D blend */ | 251 | /* set comb 2D blend */ |
284 | ret_val = | 252 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
285 | cx25821_i2c_write(&dev->i2c_bus[0], COMB_2D_BLEND + (0x200 * dec), | 253 | COMB_2D_BLEND + (0x200 * dec), 0x210F0F0F); |
286 | 0x210F0F0F); | ||
287 | 254 | ||
288 | /* COMB MISC CONTROL */ | 255 | /* COMB MISC CONTROL */ |
289 | ret_val = | 256 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
290 | cx25821_i2c_write(&dev->i2c_bus[0], COMB_MISC_CTRL + (0x200 * dec), | 257 | COMB_MISC_CTRL + (0x200 * dec), 0x41120A7F); |
291 | 0x41120A7F); | ||
292 | 258 | ||
293 | return ret_val; | 259 | return ret_val; |
294 | } | 260 | } |
@@ -304,83 +270,68 @@ static int medusa_initialize_pal(struct cx25821_dev *dev) | |||
304 | 270 | ||
305 | for (i = 0; i < MAX_DECODERS; i++) { | 271 | for (i = 0; i < MAX_DECODERS; i++) { |
306 | /* set video format PAL-BDGHI */ | 272 | /* set video format PAL-BDGHI */ |
307 | value = | 273 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
308 | cx25821_i2c_read(&dev->i2c_bus[0], MODE_CTRL + (0x200 * i), | 274 | MODE_CTRL + (0x200 * i), &tmp); |
309 | &tmp); | ||
310 | value &= 0xFFFFFFF0; | 275 | value &= 0xFFFFFFF0; |
311 | /* enable the fast locking mode bit[16] */ | 276 | /* enable the fast locking mode bit[16] */ |
312 | value |= 0x10004; | 277 | value |= 0x10004; |
313 | ret_val = | 278 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
314 | cx25821_i2c_write(&dev->i2c_bus[0], MODE_CTRL + (0x200 * i), | 279 | MODE_CTRL + (0x200 * i), value); |
315 | value); | ||
316 | 280 | ||
317 | /* resolution PAL 720x576 */ | 281 | /* resolution PAL 720x576 */ |
318 | value = | 282 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
319 | cx25821_i2c_read(&dev->i2c_bus[0], | 283 | HORIZ_TIM_CTRL + (0x200 * i), &tmp); |
320 | HORIZ_TIM_CTRL + (0x200 * i), &tmp); | ||
321 | value &= 0x00C00C00; | 284 | value &= 0x00C00C00; |
322 | value |= 0x632D007D; | 285 | value |= 0x632D007D; |
323 | ret_val = | 286 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
324 | cx25821_i2c_write(&dev->i2c_bus[0], | 287 | HORIZ_TIM_CTRL + (0x200 * i), value); |
325 | HORIZ_TIM_CTRL + (0x200 * i), value); | ||
326 | 288 | ||
327 | /* vblank656_cnt=x26, vactive_cnt=240h, vblank_cnt=x24 */ | 289 | /* vblank656_cnt=x26, vactive_cnt=240h, vblank_cnt=x24 */ |
328 | value = | 290 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
329 | cx25821_i2c_read(&dev->i2c_bus[0], | 291 | VERT_TIM_CTRL + (0x200 * i), &tmp); |
330 | VERT_TIM_CTRL + (0x200 * i), &tmp); | ||
331 | value &= 0x00C00C00; | 292 | value &= 0x00C00C00; |
332 | value |= 0x28240026; /* vblank_cnt + 2 to get camera ID */ | 293 | value |= 0x28240026; /* vblank_cnt + 2 to get camera ID */ |
333 | ret_val = | 294 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
334 | cx25821_i2c_write(&dev->i2c_bus[0], | 295 | VERT_TIM_CTRL + (0x200 * i), value); |
335 | VERT_TIM_CTRL + (0x200 * i), value); | ||
336 | 296 | ||
337 | /* chroma subcarrier step size */ | 297 | /* chroma subcarrier step size */ |
338 | ret_val = | 298 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
339 | cx25821_i2c_write(&dev->i2c_bus[0], | 299 | SC_STEP_SIZE + (0x200 * i), 0x5411E2D0); |
340 | SC_STEP_SIZE + (0x200 * i), 0x5411E2D0); | ||
341 | 300 | ||
342 | /* enable VIP optional active */ | 301 | /* enable VIP optional active */ |
343 | value = | 302 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
344 | cx25821_i2c_read(&dev->i2c_bus[0], | 303 | OUT_CTRL_NS + (0x200 * i), &tmp); |
345 | OUT_CTRL_NS + (0x200 * i), &tmp); | ||
346 | value &= 0xFFFBFFFF; | 304 | value &= 0xFFFBFFFF; |
347 | value |= 0x00040000; | 305 | value |= 0x00040000; |
348 | ret_val = | 306 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
349 | cx25821_i2c_write(&dev->i2c_bus[0], | 307 | OUT_CTRL_NS + (0x200 * i), value); |
350 | OUT_CTRL_NS + (0x200 * i), value); | ||
351 | 308 | ||
352 | /* enable VIP optional active (VIP_OPT_AL) for direct output. */ | 309 | /* enable VIP optional active (VIP_OPT_AL) for direct output. */ |
353 | value = | 310 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
354 | cx25821_i2c_read(&dev->i2c_bus[0], OUT_CTRL1 + (0x200 * i), | 311 | OUT_CTRL1 + (0x200 * i), &tmp); |
355 | &tmp); | ||
356 | value &= 0xFFFBFFFF; | 312 | value &= 0xFFFBFFFF; |
357 | value |= 0x00040000; | 313 | value |= 0x00040000; |
358 | ret_val = | 314 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
359 | cx25821_i2c_write(&dev->i2c_bus[0], OUT_CTRL1 + (0x200 * i), | 315 | OUT_CTRL1 + (0x200 * i), value); |
360 | value); | ||
361 | 316 | ||
362 | /* | 317 | /* |
363 | * clear VPRES_VERT_EN bit, fixes the chroma run away problem | 318 | * clear VPRES_VERT_EN bit, fixes the chroma run away problem |
364 | * when the input switching rate < 16 fields | 319 | * when the input switching rate < 16 fields |
365 | */ | 320 | */ |
366 | value = | 321 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
367 | cx25821_i2c_read(&dev->i2c_bus[0], | 322 | MISC_TIM_CTRL + (0x200 * i), &tmp); |
368 | MISC_TIM_CTRL + (0x200 * i), &tmp); | ||
369 | /* disable special play detection */ | 323 | /* disable special play detection */ |
370 | value = setBitAtPos(value, 14); | 324 | value = setBitAtPos(value, 14); |
371 | value = clearBitAtPos(value, 15); | 325 | value = clearBitAtPos(value, 15); |
372 | ret_val = | 326 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
373 | cx25821_i2c_write(&dev->i2c_bus[0], | 327 | MISC_TIM_CTRL + (0x200 * i), value); |
374 | MISC_TIM_CTRL + (0x200 * i), value); | ||
375 | 328 | ||
376 | /* set vbi_gate_en to 0 */ | 329 | /* set vbi_gate_en to 0 */ |
377 | value = | 330 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
378 | cx25821_i2c_read(&dev->i2c_bus[0], DFE_CTRL1 + (0x200 * i), | 331 | DFE_CTRL1 + (0x200 * i), &tmp); |
379 | &tmp); | ||
380 | value = clearBitAtPos(value, 29); | 332 | value = clearBitAtPos(value, 29); |
381 | ret_val = | 333 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
382 | cx25821_i2c_write(&dev->i2c_bus[0], DFE_CTRL1 + (0x200 * i), | 334 | DFE_CTRL1 + (0x200 * i), value); |
383 | value); | ||
384 | 335 | ||
385 | medusa_PALCombInit(dev, i); | 336 | medusa_PALCombInit(dev, i); |
386 | 337 | ||
@@ -390,62 +341,50 @@ static int medusa_initialize_pal(struct cx25821_dev *dev) | |||
390 | 341 | ||
391 | for (i = 0; i < MAX_ENCODERS; i++) { | 342 | for (i = 0; i < MAX_ENCODERS; i++) { |
392 | /* PAL hclock */ | 343 | /* PAL hclock */ |
393 | value = | 344 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
394 | cx25821_i2c_read(&dev->i2c_bus[0], | 345 | DENC_A_REG_1 + (0x100 * i), &tmp); |
395 | DENC_A_REG_1 + (0x100 * i), &tmp); | ||
396 | value &= 0xF000FC00; | 346 | value &= 0xF000FC00; |
397 | value |= 0x06C002D0; | 347 | value |= 0x06C002D0; |
398 | ret_val = | 348 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
399 | cx25821_i2c_write(&dev->i2c_bus[0], | 349 | DENC_A_REG_1 + (0x100 * i), value); |
400 | DENC_A_REG_1 + (0x100 * i), value); | ||
401 | 350 | ||
402 | /* burst begin and burst end */ | 351 | /* burst begin and burst end */ |
403 | value = | 352 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
404 | cx25821_i2c_read(&dev->i2c_bus[0], | 353 | DENC_A_REG_2 + (0x100 * i), &tmp); |
405 | DENC_A_REG_2 + (0x100 * i), &tmp); | ||
406 | value &= 0xFF000000; | 354 | value &= 0xFF000000; |
407 | value |= 0x007E9754; | 355 | value |= 0x007E9754; |
408 | ret_val = | 356 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
409 | cx25821_i2c_write(&dev->i2c_bus[0], | 357 | DENC_A_REG_2 + (0x100 * i), value); |
410 | DENC_A_REG_2 + (0x100 * i), value); | ||
411 | 358 | ||
412 | /* hblank and vactive */ | 359 | /* hblank and vactive */ |
413 | value = | 360 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
414 | cx25821_i2c_read(&dev->i2c_bus[0], | 361 | DENC_A_REG_3 + (0x100 * i), &tmp); |
415 | DENC_A_REG_3 + (0x100 * i), &tmp); | ||
416 | value &= 0xFC00FE00; | 362 | value &= 0xFC00FE00; |
417 | value |= 0x00FC0120; | 363 | value |= 0x00FC0120; |
418 | ret_val = | 364 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
419 | cx25821_i2c_write(&dev->i2c_bus[0], | 365 | DENC_A_REG_3 + (0x100 * i), value); |
420 | DENC_A_REG_3 + (0x100 * i), value); | ||
421 | 366 | ||
422 | /* set PAL vblank, phase alternation, 0 IRE pedestal */ | 367 | /* set PAL vblank, phase alternation, 0 IRE pedestal */ |
423 | value = | 368 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
424 | cx25821_i2c_read(&dev->i2c_bus[0], | 369 | DENC_A_REG_4 + (0x100 * i), &tmp); |
425 | DENC_A_REG_4 + (0x100 * i), &tmp); | ||
426 | value &= 0x00FCFFFF; | 370 | value &= 0x00FCFFFF; |
427 | value |= 0x14010000; | 371 | value |= 0x14010000; |
428 | ret_val = | 372 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
429 | cx25821_i2c_write(&dev->i2c_bus[0], | 373 | DENC_A_REG_4 + (0x100 * i), value); |
430 | DENC_A_REG_4 + (0x100 * i), value); | ||
431 | 374 | ||
432 | value = | 375 | value = cx25821_i2c_read(&dev->i2c_bus[0], |
433 | cx25821_i2c_read(&dev->i2c_bus[0], | 376 | DENC_A_REG_5 + (0x100 * i), &tmp); |
434 | DENC_A_REG_5 + (0x100 * i), &tmp); | ||
435 | value &= 0xFFFF0000; | 377 | value &= 0xFFFF0000; |
436 | value |= 0x0000F078; | 378 | value |= 0x0000F078; |
437 | ret_val = | 379 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
438 | cx25821_i2c_write(&dev->i2c_bus[0], | 380 | DENC_A_REG_5 + (0x100 * i), value); |
439 | DENC_A_REG_5 + (0x100 * i), value); | ||
440 | 381 | ||
441 | ret_val = | 382 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
442 | cx25821_i2c_write(&dev->i2c_bus[0], | 383 | DENC_A_REG_6 + (0x100 * i), 0x00A493CF); |
443 | DENC_A_REG_6 + (0x100 * i), 0x00A493CF); | ||
444 | 384 | ||
445 | /* Subcarrier Increment */ | 385 | /* Subcarrier Increment */ |
446 | ret_val = | 386 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
447 | cx25821_i2c_write(&dev->i2c_bus[0], | 387 | DENC_A_REG_7 + (0x100 * i), 0x2A098ACB); |
448 | DENC_A_REG_7 + (0x100 * i), 0x2A098ACB); | ||
449 | } | 388 | } |
450 | 389 | ||
451 | /* set picture resolutions */ | 390 | /* set picture resolutions */ |
@@ -543,12 +482,10 @@ void medusa_set_resolution(struct cx25821_dev *dev, int width, | |||
543 | 482 | ||
544 | for (; decoder < decoder_count; decoder++) { | 483 | for (; decoder < decoder_count; decoder++) { |
545 | /* write scaling values for each decoder */ | 484 | /* write scaling values for each decoder */ |
546 | ret_val = | 485 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
547 | cx25821_i2c_write(&dev->i2c_bus[0], | 486 | HSCALE_CTRL + (0x200 * decoder), hscale); |
548 | HSCALE_CTRL + (0x200 * decoder), hscale); | 487 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], |
549 | ret_val = | 488 | VSCALE_CTRL + (0x200 * decoder), vscale); |
550 | cx25821_i2c_write(&dev->i2c_bus[0], | ||
551 | VSCALE_CTRL + (0x200 * decoder), vscale); | ||
552 | } | 489 | } |
553 | 490 | ||
554 | mutex_unlock(&dev->lock); | 491 | mutex_unlock(&dev->lock); |
@@ -606,8 +543,8 @@ static void medusa_set_decoderduration(struct cx25821_dev *dev, int decoder, | |||
606 | } | 543 | } |
607 | 544 | ||
608 | /* Map to Medusa register setting */ | 545 | /* Map to Medusa register setting */ |
609 | static int mapM(int srcMin, | 546 | static int mapM(int srcMin, int srcMax, int srcVal, int dstMin, int dstMax, |
610 | int srcMax, int srcVal, int dstMin, int dstMax, int *dstVal) | 547 | int *dstVal) |
611 | { | 548 | { |
612 | int numerator; | 549 | int numerator; |
613 | int denominator; | 550 | int denominator; |
@@ -659,18 +596,14 @@ int medusa_set_brightness(struct cx25821_dev *dev, int brightness, int decoder) | |||
659 | mutex_unlock(&dev->lock); | 596 | mutex_unlock(&dev->lock); |
660 | return -1; | 597 | return -1; |
661 | } | 598 | } |
662 | ret_val = | 599 | ret_val = mapM(VIDEO_PROCAMP_MIN, VIDEO_PROCAMP_MAX, brightness, |
663 | mapM(VIDEO_PROCAMP_MIN, VIDEO_PROCAMP_MAX, brightness, | 600 | SIGNED_BYTE_MIN, SIGNED_BYTE_MAX, &value); |
664 | SIGNED_BYTE_MIN, SIGNED_BYTE_MAX, &value); | ||
665 | value = convert_to_twos(value, 8); | 601 | value = convert_to_twos(value, 8); |
666 | val = | 602 | val = cx25821_i2c_read(&dev->i2c_bus[0], |
667 | cx25821_i2c_read(&dev->i2c_bus[0], | 603 | VDEC_A_BRITE_CTRL + (0x200 * decoder), &tmp); |
668 | VDEC_A_BRITE_CTRL + (0x200 * decoder), &tmp); | ||
669 | val &= 0xFFFFFF00; | 604 | val &= 0xFFFFFF00; |
670 | ret_val |= | 605 | ret_val |= cx25821_i2c_write(&dev->i2c_bus[0], |
671 | cx25821_i2c_write(&dev->i2c_bus[0], | 606 | VDEC_A_BRITE_CTRL + (0x200 * decoder), val | value); |
672 | VDEC_A_BRITE_CTRL + (0x200 * decoder), | ||
673 | val | value); | ||
674 | mutex_unlock(&dev->lock); | 607 | mutex_unlock(&dev->lock); |
675 | return ret_val; | 608 | return ret_val; |
676 | } | 609 | } |
@@ -688,17 +621,13 @@ int medusa_set_contrast(struct cx25821_dev *dev, int contrast, int decoder) | |||
688 | return -1; | 621 | return -1; |
689 | } | 622 | } |
690 | 623 | ||
691 | ret_val = | 624 | ret_val = mapM(VIDEO_PROCAMP_MIN, VIDEO_PROCAMP_MAX, contrast, |
692 | mapM(VIDEO_PROCAMP_MIN, VIDEO_PROCAMP_MAX, contrast, | 625 | UNSIGNED_BYTE_MIN, UNSIGNED_BYTE_MAX, &value); |
693 | UNSIGNED_BYTE_MIN, UNSIGNED_BYTE_MAX, &value); | 626 | val = cx25821_i2c_read(&dev->i2c_bus[0], |
694 | val = | 627 | VDEC_A_CNTRST_CTRL + (0x200 * decoder), &tmp); |
695 | cx25821_i2c_read(&dev->i2c_bus[0], | ||
696 | VDEC_A_CNTRST_CTRL + (0x200 * decoder), &tmp); | ||
697 | val &= 0xFFFFFF00; | 628 | val &= 0xFFFFFF00; |
698 | ret_val |= | 629 | ret_val |= cx25821_i2c_write(&dev->i2c_bus[0], |
699 | cx25821_i2c_write(&dev->i2c_bus[0], | 630 | VDEC_A_CNTRST_CTRL + (0x200 * decoder), val | value); |
700 | VDEC_A_CNTRST_CTRL + (0x200 * decoder), | ||
701 | val | value); | ||
702 | 631 | ||
703 | mutex_unlock(&dev->lock); | 632 | mutex_unlock(&dev->lock); |
704 | return ret_val; | 633 | return ret_val; |
@@ -717,19 +646,16 @@ int medusa_set_hue(struct cx25821_dev *dev, int hue, int decoder) | |||
717 | return -1; | 646 | return -1; |
718 | } | 647 | } |
719 | 648 | ||
720 | ret_val = | 649 | ret_val = mapM(VIDEO_PROCAMP_MIN, VIDEO_PROCAMP_MAX, hue, |
721 | mapM(VIDEO_PROCAMP_MIN, VIDEO_PROCAMP_MAX, hue, SIGNED_BYTE_MIN, | 650 | SIGNED_BYTE_MIN, SIGNED_BYTE_MAX, &value); |
722 | SIGNED_BYTE_MAX, &value); | ||
723 | 651 | ||
724 | value = convert_to_twos(value, 8); | 652 | value = convert_to_twos(value, 8); |
725 | val = | 653 | val = cx25821_i2c_read(&dev->i2c_bus[0], |
726 | cx25821_i2c_read(&dev->i2c_bus[0], | 654 | VDEC_A_HUE_CTRL + (0x200 * decoder), &tmp); |
727 | VDEC_A_HUE_CTRL + (0x200 * decoder), &tmp); | ||
728 | val &= 0xFFFFFF00; | 655 | val &= 0xFFFFFF00; |
729 | 656 | ||
730 | ret_val |= | 657 | ret_val |= cx25821_i2c_write(&dev->i2c_bus[0], |
731 | cx25821_i2c_write(&dev->i2c_bus[0], | 658 | VDEC_A_HUE_CTRL + (0x200 * decoder), val | value); |
732 | VDEC_A_HUE_CTRL + (0x200 * decoder), val | value); | ||
733 | 659 | ||
734 | mutex_unlock(&dev->lock); | 660 | mutex_unlock(&dev->lock); |
735 | return ret_val; | 661 | return ret_val; |
@@ -749,27 +675,20 @@ int medusa_set_saturation(struct cx25821_dev *dev, int saturation, int decoder) | |||
749 | return -1; | 675 | return -1; |
750 | } | 676 | } |
751 | 677 | ||
752 | ret_val = | 678 | ret_val = mapM(VIDEO_PROCAMP_MIN, VIDEO_PROCAMP_MAX, saturation, |
753 | mapM(VIDEO_PROCAMP_MIN, VIDEO_PROCAMP_MAX, saturation, | 679 | UNSIGNED_BYTE_MIN, UNSIGNED_BYTE_MAX, &value); |
754 | UNSIGNED_BYTE_MIN, UNSIGNED_BYTE_MAX, &value); | ||
755 | 680 | ||
756 | val = | 681 | val = cx25821_i2c_read(&dev->i2c_bus[0], |
757 | cx25821_i2c_read(&dev->i2c_bus[0], | 682 | VDEC_A_USAT_CTRL + (0x200 * decoder), &tmp); |
758 | VDEC_A_USAT_CTRL + (0x200 * decoder), &tmp); | ||
759 | val &= 0xFFFFFF00; | 683 | val &= 0xFFFFFF00; |
760 | ret_val |= | 684 | ret_val |= cx25821_i2c_write(&dev->i2c_bus[0], |
761 | cx25821_i2c_write(&dev->i2c_bus[0], | 685 | VDEC_A_USAT_CTRL + (0x200 * decoder), val | value); |
762 | VDEC_A_USAT_CTRL + (0x200 * decoder), | 686 | |
763 | val | value); | 687 | val = cx25821_i2c_read(&dev->i2c_bus[0], |
764 | 688 | VDEC_A_VSAT_CTRL + (0x200 * decoder), &tmp); | |
765 | val = | ||
766 | cx25821_i2c_read(&dev->i2c_bus[0], | ||
767 | VDEC_A_VSAT_CTRL + (0x200 * decoder), &tmp); | ||
768 | val &= 0xFFFFFF00; | 689 | val &= 0xFFFFFF00; |
769 | ret_val |= | 690 | ret_val |= cx25821_i2c_write(&dev->i2c_bus[0], |
770 | cx25821_i2c_write(&dev->i2c_bus[0], | 691 | VDEC_A_VSAT_CTRL + (0x200 * decoder), val | value); |
771 | VDEC_A_VSAT_CTRL + (0x200 * decoder), | ||
772 | val | value); | ||
773 | 692 | ||
774 | mutex_unlock(&dev->lock); | 693 | mutex_unlock(&dev->lock); |
775 | return ret_val; | 694 | return ret_val; |
@@ -830,9 +749,8 @@ int medusa_video_init(struct cx25821_dev *dev) | |||
830 | /* select AFE clock to output mode */ | 749 | /* select AFE clock to output mode */ |
831 | value = cx25821_i2c_read(&dev->i2c_bus[0], AFE_AB_DIAG_CTRL, &tmp); | 750 | value = cx25821_i2c_read(&dev->i2c_bus[0], AFE_AB_DIAG_CTRL, &tmp); |
832 | value &= 0x83FFFFFF; | 751 | value &= 0x83FFFFFF; |
833 | ret_val = | 752 | ret_val = cx25821_i2c_write(&dev->i2c_bus[0], AFE_AB_DIAG_CTRL, |
834 | cx25821_i2c_write(&dev->i2c_bus[0], AFE_AB_DIAG_CTRL, | 753 | value | 0x10000000); |
835 | value | 0x10000000); | ||
836 | 754 | ||
837 | if (ret_val < 0) | 755 | if (ret_val < 0) |
838 | goto error; | 756 | goto error; |