diff options
author | Mauro Carvalho Chehab <mchehab@brturbo.com.br> | 2005-07-12 16:59:01 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-12 19:01:06 -0400 |
commit | 330a115ae46e7d7b5fe2d4e506ba8ae2e0027143 (patch) | |
tree | 0dbeceba9967097a3a38a5df97c37112b897b906 | |
parent | 85369df350b138f26eac779da33de0960635ca4d (diff) |
[PATCH] v4l: SAA7134 Update
- Corrected all cards marked as 7135 cards to 7133.
- Add new card support for Compro VideoMate TV Gold+II.
- Add new card support for Kworld Xpert TV PVR7134
- Add new card support for Typhoon DVB-T Cardbus.
- Changes to comply with CodingStyle: // comments converted to /* */
- Remove irq2_mask field from saa7134_dev structure.
- Collect all the bits needed in saa7134_hwinit2() instead.
- Distinguish the different variants of the Medion MD7134 modules via eeprom
- moved Philips FMD1216 radio specific setup to saa7134-core.c
- Fix kernel compile error with CONFIG_MODULES=n
- Cleanup tuner private calls.
- Some Indent fixes.
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
Signed-off-by: Michael Krufky <mkrufky@m1k.net>
Signed-off-by: Hannibal <hannibal@megapolis.pl>
Signed-off-by: Elshin Roman <roxmail@list.ru>
Signed-off-by: Hermann Pitton <hermann.pitton@onlinehome.de>
Signed-off-by: Juergen Orschiedt <jorschiedt@web.de>
Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | drivers/media/video/saa7134/saa7134-cards.c | 2096 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-core.c | 74 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-i2c.c | 45 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-input.c | 48 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-oss.c | 19 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-ts.c | 6 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-tvaudio.c | 121 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-vbi.c | 12 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-video.c | 54 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134.h | 21 |
10 files changed, 1459 insertions, 1037 deletions
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index 0c781e24c446..88b71a20b602 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
@@ -1,6 +1,5 @@ | |||
1 | |||
2 | /* | 1 | /* |
3 | * $Id: saa7134-cards.c,v 1.58 2005/06/07 18:05:00 nsh Exp $ | 2 | * $Id: saa7134-cards.c,v 1.80 2005/07/07 01:49:30 mkrufky Exp $ |
4 | * | 3 | * |
5 | * device driver for philips saa7134 based TV cards | 4 | * device driver for philips saa7134 based TV cards |
6 | * card-specific stuff. | 5 | * card-specific stuff. |
@@ -47,6 +46,10 @@ struct saa7134_board saa7134_boards[] = { | |||
47 | .name = "UNKNOWN/GENERIC", | 46 | .name = "UNKNOWN/GENERIC", |
48 | .audio_clock = 0x00187de7, | 47 | .audio_clock = 0x00187de7, |
49 | .tuner_type = TUNER_ABSENT, | 48 | .tuner_type = TUNER_ABSENT, |
49 | .radio_type = UNSET, | ||
50 | .tuner_addr = ADDR_UNSET, | ||
51 | .radio_addr = ADDR_UNSET, | ||
52 | |||
50 | .inputs = {{ | 53 | .inputs = {{ |
51 | .name = "default", | 54 | .name = "default", |
52 | .vmux = 0, | 55 | .vmux = 0, |
@@ -58,6 +61,10 @@ struct saa7134_board saa7134_boards[] = { | |||
58 | .name = "Proteus Pro [philips reference design]", | 61 | .name = "Proteus Pro [philips reference design]", |
59 | .audio_clock = 0x00187de7, | 62 | .audio_clock = 0x00187de7, |
60 | .tuner_type = TUNER_PHILIPS_PAL, | 63 | .tuner_type = TUNER_PHILIPS_PAL, |
64 | .radio_type = UNSET, | ||
65 | .tuner_addr = ADDR_UNSET, | ||
66 | .radio_addr = ADDR_UNSET, | ||
67 | |||
61 | .inputs = {{ | 68 | .inputs = {{ |
62 | .name = name_comp1, | 69 | .name = name_comp1, |
63 | .vmux = 0, | 70 | .vmux = 0, |
@@ -83,6 +90,10 @@ struct saa7134_board saa7134_boards[] = { | |||
83 | .name = "LifeView FlyVIDEO3000", | 90 | .name = "LifeView FlyVIDEO3000", |
84 | .audio_clock = 0x00200000, | 91 | .audio_clock = 0x00200000, |
85 | .tuner_type = TUNER_PHILIPS_PAL, | 92 | .tuner_type = TUNER_PHILIPS_PAL, |
93 | .radio_type = UNSET, | ||
94 | .tuner_addr = ADDR_UNSET, | ||
95 | .radio_addr = ADDR_UNSET, | ||
96 | |||
86 | .gpiomask = 0xe000, | 97 | .gpiomask = 0xe000, |
87 | .inputs = {{ | 98 | .inputs = {{ |
88 | .name = name_tv, | 99 | .name = name_tv, |
@@ -90,7 +101,7 @@ struct saa7134_board saa7134_boards[] = { | |||
90 | .amux = TV, | 101 | .amux = TV, |
91 | .gpio = 0x8000, | 102 | .gpio = 0x8000, |
92 | .tv = 1, | 103 | .tv = 1, |
93 | },{ | 104 | },{ |
94 | .name = name_tv_mono, | 105 | .name = name_tv_mono, |
95 | .vmux = 1, | 106 | .vmux = 1, |
96 | .amux = LINE2, | 107 | .amux = LINE2, |
@@ -117,12 +128,21 @@ struct saa7134_board saa7134_boards[] = { | |||
117 | .amux = LINE2, | 128 | .amux = LINE2, |
118 | .gpio = 0x2000, | 129 | .gpio = 0x2000, |
119 | }, | 130 | }, |
131 | .mute = { | ||
132 | .name = name_mute, | ||
133 | .amux = TV, | ||
134 | .gpio = 0x8000, | ||
135 | }, | ||
120 | }, | 136 | }, |
121 | [SAA7134_BOARD_FLYVIDEO2000] = { | 137 | [SAA7134_BOARD_FLYVIDEO2000] = { |
122 | /* "TC Wan" <tcwan@cs.usm.my> */ | 138 | /* "TC Wan" <tcwan@cs.usm.my> */ |
123 | .name = "LifeView FlyVIDEO2000", | 139 | .name = "LifeView FlyVIDEO2000", |
124 | .audio_clock = 0x00200000, | 140 | .audio_clock = 0x00200000, |
125 | .tuner_type = TUNER_LG_PAL_NEW_TAPC, | 141 | .tuner_type = TUNER_LG_PAL_NEW_TAPC, |
142 | .radio_type = UNSET, | ||
143 | .tuner_addr = ADDR_UNSET, | ||
144 | .radio_addr = ADDR_UNSET, | ||
145 | |||
126 | .gpiomask = 0xe000, | 146 | .gpiomask = 0xe000, |
127 | .inputs = {{ | 147 | .inputs = {{ |
128 | .name = name_tv, | 148 | .name = name_tv, |
@@ -146,14 +166,14 @@ struct saa7134_board saa7134_boards[] = { | |||
146 | .amux = LINE2, | 166 | .amux = LINE2, |
147 | .gpio = 0x4000, | 167 | .gpio = 0x4000, |
148 | }}, | 168 | }}, |
149 | .radio = { | 169 | .radio = { |
150 | .name = name_radio, | 170 | .name = name_radio, |
151 | .amux = LINE2, | 171 | .amux = LINE2, |
152 | .gpio = 0x2000, | 172 | .gpio = 0x2000, |
153 | }, | 173 | }, |
154 | .mute = { | 174 | .mute = { |
155 | .name = name_mute, | 175 | .name = name_mute, |
156 | .amux = LINE2, | 176 | .amux = LINE2, |
157 | .gpio = 0x8000, | 177 | .gpio = 0x8000, |
158 | }, | 178 | }, |
159 | }, | 179 | }, |
@@ -162,6 +182,10 @@ struct saa7134_board saa7134_boards[] = { | |||
162 | .name = "LifeView FlyTV Platinum Mini", | 182 | .name = "LifeView FlyTV Platinum Mini", |
163 | .audio_clock = 0x00200000, | 183 | .audio_clock = 0x00200000, |
164 | .tuner_type = TUNER_PHILIPS_TDA8290, | 184 | .tuner_type = TUNER_PHILIPS_TDA8290, |
185 | .radio_type = UNSET, | ||
186 | .tuner_addr = ADDR_UNSET, | ||
187 | .radio_addr = ADDR_UNSET, | ||
188 | |||
165 | .inputs = {{ | 189 | .inputs = {{ |
166 | .name = name_tv, | 190 | .name = name_tv, |
167 | .vmux = 1, | 191 | .vmux = 1, |
@@ -183,6 +207,10 @@ struct saa7134_board saa7134_boards[] = { | |||
183 | .name = "LifeView FlyTV Platinum FM", | 207 | .name = "LifeView FlyTV Platinum FM", |
184 | .audio_clock = 0x00200000, | 208 | .audio_clock = 0x00200000, |
185 | .tuner_type = TUNER_PHILIPS_TDA8290, | 209 | .tuner_type = TUNER_PHILIPS_TDA8290, |
210 | .radio_type = UNSET, | ||
211 | .tuner_addr = ADDR_UNSET, | ||
212 | .radio_addr = ADDR_UNSET, | ||
213 | |||
186 | .gpiomask = 0x1E000, /* Set GP16 and unused 15,14,13 to Output */ | 214 | .gpiomask = 0x1E000, /* Set GP16 and unused 15,14,13 to Output */ |
187 | .inputs = {{ | 215 | .inputs = {{ |
188 | .name = name_tv, | 216 | .name = name_tv, |
@@ -190,7 +218,7 @@ struct saa7134_board saa7134_boards[] = { | |||
190 | .amux = TV, | 218 | .amux = TV, |
191 | .gpio = 0x10000, /* GP16=1 selects TV input */ | 219 | .gpio = 0x10000, /* GP16=1 selects TV input */ |
192 | .tv = 1, | 220 | .tv = 1, |
193 | },{ | 221 | },{ |
194 | /* .name = name_tv_mono, | 222 | /* .name = name_tv_mono, |
195 | .vmux = 1, | 223 | .vmux = 1, |
196 | .amux = LINE2, | 224 | .amux = LINE2, |
@@ -200,29 +228,38 @@ struct saa7134_board saa7134_boards[] = { | |||
200 | */ .name = name_comp1, /* Composite signal on S-Video input */ | 228 | */ .name = name_comp1, /* Composite signal on S-Video input */ |
201 | .vmux = 0, | 229 | .vmux = 0, |
202 | .amux = LINE2, | 230 | .amux = LINE2, |
203 | // .gpio = 0x4000, | 231 | /* .gpio = 0x4000, */ |
204 | },{ | 232 | },{ |
205 | .name = name_comp2, /* Composite input */ | 233 | .name = name_comp2, /* Composite input */ |
206 | .vmux = 3, | 234 | .vmux = 3, |
207 | .amux = LINE2, | 235 | .amux = LINE2, |
208 | // .gpio = 0x4000, | 236 | /* .gpio = 0x4000, */ |
209 | },{ | 237 | },{ |
210 | .name = name_svideo, /* S-Video signal on S-Video input */ | 238 | .name = name_svideo, /* S-Video signal on S-Video input */ |
211 | .vmux = 8, | 239 | .vmux = 8, |
212 | .amux = LINE2, | 240 | .amux = LINE2, |
213 | // .gpio = 0x4000, | 241 | /* .gpio = 0x4000, */ |
214 | }}, | 242 | }}, |
215 | .radio = { | 243 | .radio = { |
216 | .name = name_radio, | 244 | .name = name_radio, |
217 | .amux = TV, | 245 | .amux = TV, |
218 | .gpio = 0x00000, /* GP16=0 selects FM radio antenna */ | 246 | .gpio = 0x00000, /* GP16=0 selects FM radio antenna */ |
219 | }, | 247 | }, |
248 | .mute = { | ||
249 | .name = name_mute, | ||
250 | .amux = TV, | ||
251 | .gpio = 0x10000, | ||
252 | }, | ||
220 | }, | 253 | }, |
221 | [SAA7134_BOARD_EMPRESS] = { | 254 | [SAA7134_BOARD_EMPRESS] = { |
222 | /* "Gert Vervoort" <gert.vervoort@philips.com> */ | 255 | /* "Gert Vervoort" <gert.vervoort@philips.com> */ |
223 | .name = "EMPRESS", | 256 | .name = "EMPRESS", |
224 | .audio_clock = 0x00187de7, | 257 | .audio_clock = 0x00187de7, |
225 | .tuner_type = TUNER_PHILIPS_PAL, | 258 | .tuner_type = TUNER_PHILIPS_PAL, |
259 | .radio_type = UNSET, | ||
260 | .tuner_addr = ADDR_UNSET, | ||
261 | .radio_addr = ADDR_UNSET, | ||
262 | |||
226 | .inputs = {{ | 263 | .inputs = {{ |
227 | .name = name_comp1, | 264 | .name = name_comp1, |
228 | .vmux = 0, | 265 | .vmux = 0, |
@@ -245,33 +282,40 @@ struct saa7134_board saa7134_boards[] = { | |||
245 | .video_out = CCIR656, | 282 | .video_out = CCIR656, |
246 | }, | 283 | }, |
247 | [SAA7134_BOARD_MONSTERTV] = { | 284 | [SAA7134_BOARD_MONSTERTV] = { |
248 | /* "K.Ohta" <alpha292@bremen.or.jp> */ | 285 | /* "K.Ohta" <alpha292@bremen.or.jp> */ |
249 | .name = "SKNet Monster TV", | 286 | .name = "SKNet Monster TV", |
250 | .audio_clock = 0x00187de7, | 287 | .audio_clock = 0x00187de7, |
251 | .tuner_type = TUNER_PHILIPS_NTSC_M, | 288 | .tuner_type = TUNER_PHILIPS_NTSC_M, |
252 | .inputs = {{ | 289 | .radio_type = UNSET, |
253 | .name = name_tv, | 290 | .tuner_addr = ADDR_UNSET, |
254 | .vmux = 1, | 291 | .radio_addr = ADDR_UNSET, |
255 | .amux = TV, | 292 | |
256 | .tv = 1, | 293 | .inputs = {{ |
257 | },{ | 294 | .name = name_tv, |
258 | .name = name_comp1, | 295 | .vmux = 1, |
259 | .vmux = 0, | 296 | .amux = TV, |
260 | .amux = LINE1, | 297 | .tv = 1, |
261 | },{ | 298 | },{ |
262 | .name = name_svideo, | 299 | .name = name_comp1, |
263 | .vmux = 8, | 300 | .vmux = 0, |
264 | .amux = LINE1, | 301 | .amux = LINE1, |
265 | }}, | 302 | },{ |
266 | .radio = { | 303 | .name = name_svideo, |
267 | .name = name_radio, | 304 | .vmux = 8, |
268 | .amux = LINE2, | 305 | .amux = LINE1, |
269 | }, | 306 | }}, |
307 | .radio = { | ||
308 | .name = name_radio, | ||
309 | .amux = LINE2, | ||
310 | }, | ||
270 | }, | 311 | }, |
271 | [SAA7134_BOARD_MD9717] = { | 312 | [SAA7134_BOARD_MD9717] = { |
272 | .name = "Tevion MD 9717", | 313 | .name = "Tevion MD 9717", |
273 | .audio_clock = 0x00200000, | 314 | .audio_clock = 0x00200000, |
274 | .tuner_type = TUNER_PHILIPS_PAL, | 315 | .tuner_type = TUNER_PHILIPS_PAL, |
316 | .radio_type = UNSET, | ||
317 | .tuner_addr = ADDR_UNSET, | ||
318 | .radio_addr = ADDR_UNSET, | ||
275 | .inputs = {{ | 319 | .inputs = {{ |
276 | .name = name_tv, | 320 | .name = name_tv, |
277 | .vmux = 1, | 321 | .vmux = 1, |
@@ -302,10 +346,13 @@ struct saa7134_board saa7134_boards[] = { | |||
302 | }, | 346 | }, |
303 | }, | 347 | }, |
304 | [SAA7134_BOARD_TVSTATION_RDS] = { | 348 | [SAA7134_BOARD_TVSTATION_RDS] = { |
305 | /* Typhoon TV Tuner RDS: Art.Nr. 50694 */ | 349 | /* Typhoon TV Tuner RDS: Art.Nr. 50694 */ |
306 | .name = "KNC One TV-Station RDS / Typhoon TV Tuner RDS", | 350 | .name = "KNC One TV-Station RDS / Typhoon TV Tuner RDS", |
307 | .audio_clock = 0x00200000, | 351 | .audio_clock = 0x00200000, |
308 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | 352 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, |
353 | .radio_type = UNSET, | ||
354 | .tuner_addr = ADDR_UNSET, | ||
355 | .radio_addr = ADDR_UNSET, | ||
309 | .tda9887_conf = TDA9887_PRESENT, | 356 | .tda9887_conf = TDA9887_PRESENT, |
310 | .inputs = {{ | 357 | .inputs = {{ |
311 | .name = name_tv, | 358 | .name = name_tv, |
@@ -314,10 +361,10 @@ struct saa7134_board saa7134_boards[] = { | |||
314 | .tv = 1, | 361 | .tv = 1, |
315 | },{ | 362 | },{ |
316 | .name = name_tv_mono, | 363 | .name = name_tv_mono, |
317 | .vmux = 1, | 364 | .vmux = 1, |
318 | .amux = LINE2, | 365 | .amux = LINE2, |
319 | .tv = 1, | 366 | .tv = 1, |
320 | },{ | 367 | },{ |
321 | 368 | ||
322 | .name = name_svideo, | 369 | .name = name_svideo, |
323 | .vmux = 8, | 370 | .vmux = 8, |
@@ -328,10 +375,10 @@ struct saa7134_board saa7134_boards[] = { | |||
328 | .amux = LINE1, | 375 | .amux = LINE1, |
329 | },{ | 376 | },{ |
330 | 377 | ||
331 | .name = "CVid over SVid", | 378 | .name = "CVid over SVid", |
332 | .vmux = 0, | 379 | .vmux = 0, |
333 | .amux = LINE1, | 380 | .amux = LINE1, |
334 | }}, | 381 | }}, |
335 | .radio = { | 382 | .radio = { |
336 | .name = name_radio, | 383 | .name = name_radio, |
337 | .amux = LINE2, | 384 | .amux = LINE2, |
@@ -341,6 +388,9 @@ struct saa7134_board saa7134_boards[] = { | |||
341 | .name = "KNC One TV-Station DVR", | 388 | .name = "KNC One TV-Station DVR", |
342 | .audio_clock = 0x00200000, | 389 | .audio_clock = 0x00200000, |
343 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | 390 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, |
391 | .radio_type = UNSET, | ||
392 | .tuner_addr = ADDR_UNSET, | ||
393 | .radio_addr = ADDR_UNSET, | ||
344 | .tda9887_conf = TDA9887_PRESENT, | 394 | .tda9887_conf = TDA9887_PRESENT, |
345 | .gpiomask = 0x820000, | 395 | .gpiomask = 0x820000, |
346 | .inputs = {{ | 396 | .inputs = {{ |
@@ -369,32 +419,38 @@ struct saa7134_board saa7134_boards[] = { | |||
369 | .video_out = CCIR656, | 419 | .video_out = CCIR656, |
370 | }, | 420 | }, |
371 | [SAA7134_BOARD_CINERGY400] = { | 421 | [SAA7134_BOARD_CINERGY400] = { |
372 | .name = "Terratec Cinergy 400 TV", | 422 | .name = "Terratec Cinergy 400 TV", |
373 | .audio_clock = 0x00200000, | 423 | .audio_clock = 0x00200000, |
374 | .tuner_type = TUNER_PHILIPS_PAL, | 424 | .tuner_type = TUNER_PHILIPS_PAL, |
375 | .inputs = {{ | 425 | .radio_type = UNSET, |
376 | .name = name_tv, | 426 | .tuner_addr = ADDR_UNSET, |
377 | .vmux = 1, | 427 | .radio_addr = ADDR_UNSET, |
378 | .amux = TV, | 428 | .inputs = {{ |
379 | .tv = 1, | 429 | .name = name_tv, |
380 | },{ | 430 | .vmux = 1, |
381 | .name = name_comp1, | 431 | .amux = TV, |
382 | .vmux = 4, | 432 | .tv = 1, |
383 | .amux = LINE1, | 433 | },{ |
384 | },{ | 434 | .name = name_comp1, |
385 | .name = name_svideo, | 435 | .vmux = 4, |
386 | .vmux = 8, | 436 | .amux = LINE1, |
387 | .amux = LINE1, | 437 | },{ |
388 | },{ | 438 | .name = name_svideo, |
389 | .name = name_comp2, // CVideo over SVideo Connector | 439 | .vmux = 8, |
390 | .vmux = 0, | 440 | .amux = LINE1, |
391 | .amux = LINE1, | 441 | },{ |
392 | }} | 442 | .name = name_comp2, /* CVideo over SVideo Connector */ |
393 | }, | 443 | .vmux = 0, |
444 | .amux = LINE1, | ||
445 | }} | ||
446 | }, | ||
394 | [SAA7134_BOARD_MD5044] = { | 447 | [SAA7134_BOARD_MD5044] = { |
395 | .name = "Medion 5044", | 448 | .name = "Medion 5044", |
396 | .audio_clock = 0x00187de7, // was: 0x00200000, | 449 | .audio_clock = 0x00187de7, /* was: 0x00200000, */ |
397 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | 450 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, |
451 | .radio_type = UNSET, | ||
452 | .tuner_addr = ADDR_UNSET, | ||
453 | .radio_addr = ADDR_UNSET, | ||
398 | .tda9887_conf = TDA9887_PRESENT, | 454 | .tda9887_conf = TDA9887_PRESENT, |
399 | .inputs = {{ | 455 | .inputs = {{ |
400 | .name = name_tv, | 456 | .name = name_tv, |
@@ -426,57 +482,65 @@ struct saa7134_board saa7134_boards[] = { | |||
426 | }, | 482 | }, |
427 | }, | 483 | }, |
428 | [SAA7134_BOARD_KWORLD] = { | 484 | [SAA7134_BOARD_KWORLD] = { |
429 | .name = "Kworld/KuroutoShikou SAA7130-TVPCI", | 485 | .name = "Kworld/KuroutoShikou SAA7130-TVPCI", |
430 | .audio_clock = 0x00187de7, | 486 | .audio_clock = 0x00187de7, |
431 | .tuner_type = TUNER_PHILIPS_NTSC_M, | 487 | .tuner_type = TUNER_PHILIPS_NTSC_M, |
432 | .inputs = {{ | 488 | .radio_type = UNSET, |
433 | .name = name_svideo, | 489 | .tuner_addr = ADDR_UNSET, |
434 | .vmux = 8, | 490 | .radio_addr = ADDR_UNSET, |
435 | .amux = LINE1, | 491 | .inputs = {{ |
436 | },{ | 492 | .name = name_svideo, |
437 | .name = name_comp1, | 493 | .vmux = 8, |
438 | .vmux = 3, | 494 | .amux = LINE1, |
439 | .amux = LINE1, | 495 | },{ |
440 | },{ | 496 | .name = name_comp1, |
441 | .name = name_tv, | 497 | .vmux = 3, |
442 | .vmux = 1, | 498 | .amux = LINE1, |
443 | .amux = LINE2, | 499 | },{ |
444 | .tv = 1, | 500 | .name = name_tv, |
445 | }}, | 501 | .vmux = 1, |
446 | }, | 502 | .amux = LINE2, |
503 | .tv = 1, | ||
504 | }}, | ||
505 | }, | ||
447 | [SAA7134_BOARD_CINERGY600] = { | 506 | [SAA7134_BOARD_CINERGY600] = { |
448 | .name = "Terratec Cinergy 600 TV", | 507 | .name = "Terratec Cinergy 600 TV", |
449 | .audio_clock = 0x00200000, | 508 | .audio_clock = 0x00200000, |
450 | .tuner_type = TUNER_PHILIPS_PAL, | 509 | .tuner_type = TUNER_PHILIPS_PAL, |
510 | .radio_type = UNSET, | ||
511 | .tuner_addr = ADDR_UNSET, | ||
512 | .radio_addr = ADDR_UNSET, | ||
451 | .tda9887_conf = TDA9887_PRESENT, | 513 | .tda9887_conf = TDA9887_PRESENT, |
452 | .inputs = {{ | 514 | .inputs = {{ |
453 | .name = name_tv, | 515 | .name = name_tv, |
454 | .vmux = 1, | 516 | .vmux = 1, |
455 | .amux = TV, | 517 | .amux = TV, |
456 | .tv = 1, | 518 | .tv = 1, |
457 | },{ | 519 | },{ |
458 | .name = name_comp1, | 520 | .name = name_comp1, |
459 | .vmux = 4, | 521 | .vmux = 4, |
460 | .amux = LINE1, | 522 | .amux = LINE1, |
461 | },{ | 523 | },{ |
462 | .name = name_svideo, | 524 | .name = name_svideo, |
463 | .vmux = 8, | 525 | .vmux = 8, |
464 | .amux = LINE1, | 526 | .amux = LINE1, |
465 | },{ | 527 | },{ |
466 | .name = name_comp2, // CVideo over SVideo Connector | 528 | .name = name_comp2, /* CVideo over SVideo Connector */ |
467 | .vmux = 0, | 529 | .vmux = 0, |
468 | .amux = LINE1, | 530 | .amux = LINE1, |
469 | }}, | 531 | }}, |
470 | .radio = { | 532 | .radio = { |
471 | .name = name_radio, | 533 | .name = name_radio, |
472 | .amux = LINE2, | 534 | .amux = LINE2, |
473 | }, | 535 | }, |
474 | }, | 536 | }, |
475 | [SAA7134_BOARD_MD7134] = { | 537 | [SAA7134_BOARD_MD7134] = { |
476 | .name = "Medion 7134", | 538 | .name = "Medion 7134", |
477 | //.audio_clock = 0x00200000, | ||
478 | .audio_clock = 0x00187de7, | 539 | .audio_clock = 0x00187de7, |
479 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | 540 | .tuner_type = TUNER_PHILIPS_FMD1216ME_MK3, |
541 | .radio_type = UNSET, | ||
542 | .tuner_addr = ADDR_UNSET, | ||
543 | .radio_addr = ADDR_UNSET, | ||
480 | .tda9887_conf = TDA9887_PRESENT, | 544 | .tda9887_conf = TDA9887_PRESENT, |
481 | .mpeg = SAA7134_MPEG_DVB, | 545 | .mpeg = SAA7134_MPEG_DVB, |
482 | .inputs = {{ | 546 | .inputs = {{ |
@@ -504,6 +568,9 @@ struct saa7134_board saa7134_boards[] = { | |||
504 | .name = "Typhoon TV+Radio 90031", | 568 | .name = "Typhoon TV+Radio 90031", |
505 | .audio_clock = 0x00200000, | 569 | .audio_clock = 0x00200000, |
506 | .tuner_type = TUNER_PHILIPS_PAL, | 570 | .tuner_type = TUNER_PHILIPS_PAL, |
571 | .radio_type = UNSET, | ||
572 | .tuner_addr = ADDR_UNSET, | ||
573 | .radio_addr = ADDR_UNSET, | ||
507 | .tda9887_conf = TDA9887_PRESENT, | 574 | .tda9887_conf = TDA9887_PRESENT, |
508 | .inputs = {{ | 575 | .inputs = {{ |
509 | .name = name_tv, | 576 | .name = name_tv, |
@@ -523,11 +590,14 @@ struct saa7134_board saa7134_boards[] = { | |||
523 | .name = name_radio, | 590 | .name = name_radio, |
524 | .amux = LINE2, | 591 | .amux = LINE2, |
525 | }, | 592 | }, |
526 | }, | 593 | }, |
527 | [SAA7134_BOARD_ELSA] = { | 594 | [SAA7134_BOARD_ELSA] = { |
528 | .name = "ELSA EX-VISION 300TV", | 595 | .name = "ELSA EX-VISION 300TV", |
529 | .audio_clock = 0x00187de7, | 596 | .audio_clock = 0x00187de7, |
530 | .tuner_type = TUNER_HITACHI_NTSC, | 597 | .tuner_type = TUNER_HITACHI_NTSC, |
598 | .radio_type = UNSET, | ||
599 | .tuner_addr = ADDR_UNSET, | ||
600 | .radio_addr = ADDR_UNSET, | ||
531 | .inputs = {{ | 601 | .inputs = {{ |
532 | .name = name_svideo, | 602 | .name = name_svideo, |
533 | .vmux = 8, | 603 | .vmux = 8, |
@@ -542,11 +612,14 @@ struct saa7134_board saa7134_boards[] = { | |||
542 | .amux = LINE2, | 612 | .amux = LINE2, |
543 | .tv = 1, | 613 | .tv = 1, |
544 | }}, | 614 | }}, |
545 | }, | 615 | }, |
546 | [SAA7134_BOARD_ELSA_500TV] = { | 616 | [SAA7134_BOARD_ELSA_500TV] = { |
547 | .name = "ELSA EX-VISION 500TV", | 617 | .name = "ELSA EX-VISION 500TV", |
548 | .audio_clock = 0x00187de7, | 618 | .audio_clock = 0x00187de7, |
549 | .tuner_type = TUNER_HITACHI_NTSC, | 619 | .tuner_type = TUNER_HITACHI_NTSC, |
620 | .radio_type = UNSET, | ||
621 | .tuner_addr = ADDR_UNSET, | ||
622 | .radio_addr = ADDR_UNSET, | ||
550 | .inputs = {{ | 623 | .inputs = {{ |
551 | .name = name_svideo, | 624 | .name = name_svideo, |
552 | .vmux = 7, | 625 | .vmux = 7, |
@@ -562,83 +635,100 @@ struct saa7134_board saa7134_boards[] = { | |||
562 | .amux = LINE2, | 635 | .amux = LINE2, |
563 | .tv = 1, | 636 | .tv = 1, |
564 | }}, | 637 | }}, |
565 | }, | 638 | }, |
566 | [SAA7134_BOARD_ASUSTeK_TVFM7134] = { | 639 | [SAA7134_BOARD_ASUSTeK_TVFM7134] = { |
567 | .name = "ASUS TV-FM 7134", | 640 | .name = "ASUS TV-FM 7134", |
568 | .audio_clock = 0x00187de7, | 641 | .audio_clock = 0x00187de7, |
569 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | 642 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, |
570 | .tda9887_conf = TDA9887_PRESENT, | 643 | .radio_type = UNSET, |
571 | .inputs = {{ | 644 | .tuner_addr = ADDR_UNSET, |
572 | .name = name_tv, | 645 | .radio_addr = ADDR_UNSET, |
573 | .vmux = 1, | 646 | .tda9887_conf = TDA9887_PRESENT, |
574 | .amux = TV, | 647 | .inputs = {{ |
575 | .tv = 1, | 648 | .name = name_tv, |
576 | },{ | 649 | .vmux = 1, |
577 | .name = name_comp1, | 650 | .amux = TV, |
578 | .vmux = 4, | 651 | .tv = 1, |
579 | .amux = LINE2, | 652 | },{ |
580 | },{ | 653 | .name = name_comp1, |
581 | .name = name_svideo, | 654 | .vmux = 4, |
582 | .vmux = 6, | 655 | .amux = LINE2, |
583 | .amux = LINE2, | 656 | },{ |
584 | }}, | 657 | .name = name_svideo, |
585 | .radio = { | 658 | .vmux = 6, |
586 | .name = name_radio, | 659 | .amux = LINE2, |
587 | .amux = LINE1, | 660 | }}, |
588 | }, | 661 | .radio = { |
589 | }, | 662 | .name = name_radio, |
590 | [SAA7135_BOARD_ASUSTeK_TVFM7135] = { | 663 | .amux = LINE1, |
591 | .name = "ASUS TV-FM 7135", | 664 | }, |
592 | .audio_clock = 0x00187de7, | 665 | }, |
593 | .tuner_type = TUNER_PHILIPS_TDA8290, | 666 | [SAA7134_BOARD_ASUSTeK_TVFM7135] = { |
667 | .name = "ASUS TV-FM 7135", | ||
668 | .audio_clock = 0x00187de7, | ||
669 | .tuner_type = TUNER_PHILIPS_TDA8290, | ||
670 | .radio_type = UNSET, | ||
671 | .tuner_addr = ADDR_UNSET, | ||
672 | .radio_addr = ADDR_UNSET, | ||
594 | .gpiomask = 0x200000, | 673 | .gpiomask = 0x200000, |
595 | .inputs = {{ | 674 | .inputs = {{ |
596 | .name = name_tv, | 675 | .name = name_tv, |
597 | .vmux = 1, | 676 | .vmux = 1, |
598 | .amux = TV, | 677 | .amux = TV, |
599 | .gpio = 0x0000, | 678 | .gpio = 0x0000, |
600 | .tv = 1, | 679 | .tv = 1, |
601 | },{ | 680 | },{ |
602 | .name = name_comp1, | 681 | .name = name_comp1, |
603 | .vmux = 4, | 682 | .vmux = 4, |
604 | .amux = LINE2, | 683 | .amux = LINE2, |
605 | .gpio = 0x0000, | 684 | .gpio = 0x0000, |
606 | },{ | 685 | },{ |
607 | .name = name_svideo, | 686 | .name = name_svideo, |
608 | .vmux = 6, | 687 | .vmux = 6, |
609 | .amux = LINE2, | 688 | .amux = LINE2, |
610 | .gpio = 0x0000, | 689 | .gpio = 0x0000, |
611 | }}, | 690 | }}, |
612 | .radio = { | 691 | .radio = { |
613 | .name = name_radio, | 692 | .name = name_radio, |
614 | .amux = TV, | 693 | .amux = TV, |
615 | .gpio = 0x200000, | 694 | .gpio = 0x200000, |
616 | }, | 695 | }, |
696 | .mute = { | ||
697 | .name = name_mute, | ||
698 | .gpio = 0x0000, | ||
699 | }, | ||
700 | |||
617 | }, | 701 | }, |
618 | [SAA7134_BOARD_VA1000POWER] = { | 702 | [SAA7134_BOARD_VA1000POWER] = { |
619 | .name = "AOPEN VA1000 POWER", | 703 | .name = "AOPEN VA1000 POWER", |
620 | .audio_clock = 0x00187de7, | 704 | .audio_clock = 0x00187de7, |
621 | .tuner_type = TUNER_PHILIPS_NTSC, | 705 | .tuner_type = TUNER_PHILIPS_NTSC, |
622 | .inputs = {{ | 706 | .radio_type = UNSET, |
623 | .name = name_svideo, | 707 | .tuner_addr = ADDR_UNSET, |
624 | .vmux = 8, | 708 | .radio_addr = ADDR_UNSET, |
625 | .amux = LINE1, | 709 | .inputs = {{ |
626 | },{ | 710 | .name = name_svideo, |
627 | .name = name_comp1, | 711 | .vmux = 8, |
628 | .vmux = 3, | 712 | .amux = LINE1, |
629 | .amux = LINE1, | 713 | },{ |
630 | },{ | 714 | .name = name_comp1, |
631 | .name = name_tv, | 715 | .vmux = 3, |
632 | .vmux = 1, | 716 | .amux = LINE1, |
633 | .amux = LINE2, | 717 | },{ |
634 | .tv = 1, | 718 | .name = name_tv, |
635 | }}, | 719 | .vmux = 1, |
720 | .amux = LINE2, | ||
721 | .tv = 1, | ||
722 | }}, | ||
636 | }, | 723 | }, |
637 | [SAA7134_BOARD_10MOONSTVMASTER] = { | 724 | [SAA7134_BOARD_10MOONSTVMASTER] = { |
638 | /* "lilicheng" <llc@linuxfans.org> */ | 725 | /* "lilicheng" <llc@linuxfans.org> */ |
639 | .name = "10MOONS PCI TV CAPTURE CARD", | 726 | .name = "10MOONS PCI TV CAPTURE CARD", |
640 | .audio_clock = 0x00200000, | 727 | .audio_clock = 0x00200000, |
641 | .tuner_type = TUNER_LG_PAL_NEW_TAPC, | 728 | .tuner_type = TUNER_LG_PAL_NEW_TAPC, |
729 | .radio_type = UNSET, | ||
730 | .tuner_addr = ADDR_UNSET, | ||
731 | .radio_addr = ADDR_UNSET, | ||
642 | .gpiomask = 0xe000, | 732 | .gpiomask = 0xe000, |
643 | .inputs = {{ | 733 | .inputs = {{ |
644 | .name = name_tv, | 734 | .name = name_tv, |
@@ -662,14 +752,14 @@ struct saa7134_board saa7134_boards[] = { | |||
662 | .amux = LINE2, | 752 | .amux = LINE2, |
663 | .gpio = 0x4000, | 753 | .gpio = 0x4000, |
664 | }}, | 754 | }}, |
665 | .radio = { | 755 | .radio = { |
666 | .name = name_radio, | 756 | .name = name_radio, |
667 | .amux = LINE2, | 757 | .amux = LINE2, |
668 | .gpio = 0x2000, | 758 | .gpio = 0x2000, |
669 | }, | 759 | }, |
670 | .mute = { | 760 | .mute = { |
671 | .name = name_mute, | 761 | .name = name_mute, |
672 | .amux = LINE2, | 762 | .amux = LINE2, |
673 | .gpio = 0x8000, | 763 | .gpio = 0x8000, |
674 | }, | 764 | }, |
675 | }, | 765 | }, |
@@ -678,6 +768,9 @@ struct saa7134_board saa7134_boards[] = { | |||
678 | .name = "BMK MPEX No Tuner", | 768 | .name = "BMK MPEX No Tuner", |
679 | .audio_clock = 0x200000, | 769 | .audio_clock = 0x200000, |
680 | .tuner_type = TUNER_ABSENT, | 770 | .tuner_type = TUNER_ABSENT, |
771 | .radio_type = UNSET, | ||
772 | .tuner_addr = ADDR_UNSET, | ||
773 | .radio_addr = ADDR_UNSET, | ||
681 | .inputs = {{ | 774 | .inputs = {{ |
682 | .name = name_comp1, | 775 | .name = name_comp1, |
683 | .vmux = 4, | 776 | .vmux = 4, |
@@ -706,80 +799,94 @@ struct saa7134_board saa7134_boards[] = { | |||
706 | .name = "Compro VideoMate TV", | 799 | .name = "Compro VideoMate TV", |
707 | .audio_clock = 0x00187de7, | 800 | .audio_clock = 0x00187de7, |
708 | .tuner_type = TUNER_PHILIPS_NTSC_M, | 801 | .tuner_type = TUNER_PHILIPS_NTSC_M, |
709 | .inputs = {{ | 802 | .radio_type = UNSET, |
710 | .name = name_svideo, | 803 | .tuner_addr = ADDR_UNSET, |
711 | .vmux = 8, | 804 | .radio_addr = ADDR_UNSET, |
712 | .amux = LINE1, | 805 | .inputs = {{ |
713 | },{ | 806 | .name = name_svideo, |
714 | .name = name_comp1, | 807 | .vmux = 8, |
715 | .vmux = 3, | 808 | .amux = LINE1, |
716 | .amux = LINE1, | 809 | },{ |
717 | },{ | 810 | .name = name_comp1, |
718 | .name = name_tv, | 811 | .vmux = 3, |
719 | .vmux = 1, | 812 | .amux = LINE1, |
720 | .amux = LINE2, | 813 | },{ |
721 | .tv = 1, | 814 | .name = name_tv, |
722 | }}, | 815 | .vmux = 1, |
723 | }, | 816 | .amux = LINE2, |
724 | [SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS] = { | 817 | .tv = 1, |
818 | }}, | ||
819 | }, | ||
820 | [SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS] = { | ||
725 | .name = "Compro VideoMate TV Gold+", | 821 | .name = "Compro VideoMate TV Gold+", |
726 | .audio_clock = 0x00187de7, | 822 | .audio_clock = 0x00187de7, |
727 | .tuner_type = TUNER_PHILIPS_NTSC_M, | 823 | .tuner_type = TUNER_PHILIPS_NTSC_M, |
728 | .gpiomask = 0x800c0000, | 824 | .gpiomask = 0x800c0000, |
729 | .inputs = {{ | 825 | .radio_type = UNSET, |
730 | .name = name_svideo, | 826 | .tuner_addr = ADDR_UNSET, |
731 | .vmux = 8, | 827 | .radio_addr = ADDR_UNSET, |
732 | .amux = LINE1, | 828 | .inputs = {{ |
733 | .gpio = 0x06c00012, | 829 | .name = name_svideo, |
734 | },{ | 830 | .vmux = 8, |
735 | .name = name_comp1, | 831 | .amux = LINE1, |
736 | .vmux = 3, | 832 | .gpio = 0x06c00012, |
737 | .amux = LINE1, | 833 | },{ |
738 | .gpio = 0x0ac20012, | 834 | .name = name_comp1, |
739 | },{ | 835 | .vmux = 3, |
740 | .name = name_tv, | 836 | .amux = LINE1, |
741 | .vmux = 1, | 837 | .gpio = 0x0ac20012, |
742 | .amux = LINE2, | 838 | },{ |
743 | .gpio = 0x08c20012, | 839 | .name = name_tv, |
744 | .tv = 1, | 840 | .vmux = 1, |
745 | }}, | 841 | .amux = LINE2, |
746 | }, | 842 | .gpio = 0x08c20012, |
843 | .tv = 1, | ||
844 | }}, /* radio and probably mute is missing */ | ||
845 | }, | ||
747 | [SAA7134_BOARD_CRONOS_PLUS] = { | 846 | [SAA7134_BOARD_CRONOS_PLUS] = { |
748 | /* gpio pins: | 847 | /* |
749 | 0 .. 3 BASE_ID | 848 | gpio pins: |
750 | 4 .. 7 PROTECT_ID | 849 | 0 .. 3 BASE_ID |
751 | 8 .. 11 USER_OUT | 850 | 4 .. 7 PROTECT_ID |
752 | 12 .. 13 USER_IN | 851 | 8 .. 11 USER_OUT |
753 | 14 .. 15 VIDIN_SEL */ | 852 | 12 .. 13 USER_IN |
853 | 14 .. 15 VIDIN_SEL | ||
854 | */ | ||
754 | .name = "Matrox CronosPlus", | 855 | .name = "Matrox CronosPlus", |
755 | .tuner_type = TUNER_ABSENT, | 856 | .tuner_type = TUNER_ABSENT, |
857 | .radio_type = UNSET, | ||
858 | .tuner_addr = ADDR_UNSET, | ||
859 | .radio_addr = ADDR_UNSET, | ||
756 | .gpiomask = 0xcf00, | 860 | .gpiomask = 0xcf00, |
757 | .inputs = {{ | 861 | .inputs = {{ |
758 | .name = name_comp1, | 862 | .name = name_comp1, |
759 | .vmux = 0, | 863 | .vmux = 0, |
760 | .gpio = 2 << 14, | 864 | .gpio = 2 << 14, |
761 | },{ | 865 | },{ |
762 | .name = name_comp2, | 866 | .name = name_comp2, |
763 | .vmux = 0, | 867 | .vmux = 0, |
764 | .gpio = 1 << 14, | 868 | .gpio = 1 << 14, |
765 | },{ | 869 | },{ |
766 | .name = name_comp3, | 870 | .name = name_comp3, |
767 | .vmux = 0, | 871 | .vmux = 0, |
768 | .gpio = 0 << 14, | 872 | .gpio = 0 << 14, |
769 | },{ | 873 | },{ |
770 | .name = name_comp4, | 874 | .name = name_comp4, |
771 | .vmux = 0, | 875 | .vmux = 0, |
772 | .gpio = 3 << 14, | 876 | .gpio = 3 << 14, |
773 | },{ | 877 | },{ |
774 | .name = name_svideo, | 878 | .name = name_svideo, |
775 | .vmux = 8, | 879 | .vmux = 8, |
776 | .gpio = 2 << 14, | 880 | .gpio = 2 << 14, |
777 | }}, | 881 | }}, |
778 | }, | 882 | }, |
779 | [SAA7134_BOARD_MD2819] = { | 883 | [SAA7134_BOARD_MD2819] = { |
780 | .name = "AverMedia M156 / Medion 2819", | 884 | .name = "AverMedia M156 / Medion 2819", |
781 | .audio_clock = 0x00187de7, | 885 | .audio_clock = 0x00187de7, |
782 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | 886 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, |
887 | .radio_type = UNSET, | ||
888 | .tuner_addr = ADDR_UNSET, | ||
889 | .radio_addr = ADDR_UNSET, | ||
783 | .tda9887_conf = TDA9887_PRESENT, | 890 | .tda9887_conf = TDA9887_PRESENT, |
784 | .inputs = {{ | 891 | .inputs = {{ |
785 | .name = name_tv, | 892 | .name = name_tv, |
@@ -809,6 +916,9 @@ struct saa7134_board saa7134_boards[] = { | |||
809 | .name = "BMK MPEX Tuner", | 916 | .name = "BMK MPEX Tuner", |
810 | .audio_clock = 0x200000, | 917 | .audio_clock = 0x200000, |
811 | .tuner_type = TUNER_PHILIPS_PAL, | 918 | .tuner_type = TUNER_PHILIPS_PAL, |
919 | .radio_type = UNSET, | ||
920 | .tuner_addr = ADDR_UNSET, | ||
921 | .radio_addr = ADDR_UNSET, | ||
812 | .inputs = {{ | 922 | .inputs = {{ |
813 | .name = name_comp1, | 923 | .name = name_comp1, |
814 | .vmux = 1, | 924 | .vmux = 1, |
@@ -825,62 +935,72 @@ struct saa7134_board saa7134_boards[] = { | |||
825 | }}, | 935 | }}, |
826 | .mpeg = SAA7134_MPEG_EMPRESS, | 936 | .mpeg = SAA7134_MPEG_EMPRESS, |
827 | .video_out = CCIR656, | 937 | .video_out = CCIR656, |
828 | }, | 938 | }, |
829 | [SAA7134_BOARD_ASUSTEK_TVFM7133] = { | 939 | [SAA7134_BOARD_ASUSTEK_TVFM7133] = { |
830 | .name = "ASUS TV-FM 7133", | 940 | .name = "ASUS TV-FM 7133", |
831 | .audio_clock = 0x00187de7, | 941 | .audio_clock = 0x00187de7, |
832 | // probably wrong, the 7133 one is the NTSC version ... | 942 | /* probably wrong, the 7133 one is the NTSC version ... |
833 | // .tuner_type = TUNER_PHILIPS_FM1236_MK3 | 943 | * .tuner_type = TUNER_PHILIPS_FM1236_MK3 */ |
834 | .tuner_type = TUNER_LG_NTSC_NEW_TAPC, | 944 | .tuner_type = TUNER_LG_NTSC_NEW_TAPC, |
835 | .tda9887_conf = TDA9887_PRESENT, | 945 | .radio_type = UNSET, |
836 | .inputs = {{ | 946 | .tuner_addr = ADDR_UNSET, |
837 | .name = name_tv, | 947 | .radio_addr = ADDR_UNSET, |
838 | .vmux = 1, | 948 | .tda9887_conf = TDA9887_PRESENT, |
839 | .amux = TV, | 949 | .inputs = {{ |
840 | .tv = 1, | 950 | .name = name_tv, |
841 | },{ | 951 | .vmux = 1, |
842 | .name = name_comp1, | 952 | .amux = TV, |
843 | .vmux = 4, | 953 | .tv = 1, |
844 | .amux = LINE2, | 954 | |
845 | },{ | 955 | },{ |
846 | .name = name_svideo, | 956 | .name = name_comp1, |
847 | .vmux = 6, | 957 | .vmux = 4, |
848 | .amux = LINE2, | 958 | .amux = LINE2, |
849 | }}, | 959 | },{ |
850 | .radio = { | 960 | .name = name_svideo, |
851 | .name = name_radio, | 961 | .vmux = 6, |
852 | .amux = LINE1, | 962 | .amux = LINE2, |
853 | }, | 963 | }}, |
854 | }, | 964 | .radio = { |
965 | .name = name_radio, | ||
966 | .amux = LINE1, | ||
967 | }, | ||
968 | }, | ||
855 | [SAA7134_BOARD_PINNACLE_PCTV_STEREO] = { | 969 | [SAA7134_BOARD_PINNACLE_PCTV_STEREO] = { |
856 | .name = "Pinnacle PCTV Stereo (saa7134)", | 970 | .name = "Pinnacle PCTV Stereo (saa7134)", |
857 | .audio_clock = 0x00187de7, | 971 | .audio_clock = 0x00187de7, |
858 | .tuner_type = TUNER_MT2032, | 972 | .tuner_type = TUNER_MT2032, |
859 | .tda9887_conf = TDA9887_PRESENT | TDA9887_INTERCARRIER, | 973 | .radio_type = UNSET, |
860 | .inputs = {{ | 974 | .tuner_addr = ADDR_UNSET, |
861 | .name = name_tv, | 975 | .radio_addr = ADDR_UNSET, |
862 | .vmux = 3, | 976 | .tda9887_conf = TDA9887_PRESENT | TDA9887_INTERCARRIER, |
863 | .amux = TV, | 977 | .inputs = {{ |
864 | .tv = 1, | 978 | .name = name_tv, |
865 | },{ | 979 | .vmux = 3, |
866 | .name = name_comp1, | 980 | .amux = TV, |
867 | .vmux = 0, | 981 | .tv = 1, |
868 | .amux = LINE2, | 982 | },{ |
869 | },{ | 983 | .name = name_comp1, |
870 | .name = name_comp2, | 984 | .vmux = 0, |
871 | .vmux = 1, | 985 | .amux = LINE2, |
872 | .amux = LINE2, | 986 | },{ |
873 | },{ | 987 | .name = name_comp2, |
874 | .name = name_svideo, | 988 | .vmux = 1, |
875 | .vmux = 8, | 989 | .amux = LINE2, |
876 | .amux = LINE2, | 990 | },{ |
877 | }}, | 991 | .name = name_svideo, |
878 | }, | 992 | .vmux = 8, |
993 | .amux = LINE2, | ||
994 | }}, | ||
995 | }, | ||
879 | [SAA7134_BOARD_MANLI_MTV002] = { | 996 | [SAA7134_BOARD_MANLI_MTV002] = { |
880 | /* Ognjen Nastic <ognjen@logosoft.ba> */ | 997 | /* Ognjen Nastic <ognjen@logosoft.ba> */ |
881 | .name = "Manli MuchTV M-TV002/Behold TV 403 FM", | 998 | .name = "Manli MuchTV M-TV002/Behold TV 403 FM", |
882 | .audio_clock = 0x00200000, | 999 | .audio_clock = 0x00200000, |
883 | .tuner_type = TUNER_PHILIPS_PAL, | 1000 | .tuner_type = TUNER_PHILIPS_PAL, |
1001 | .radio_type = UNSET, | ||
1002 | .tuner_addr = ADDR_UNSET, | ||
1003 | .radio_addr = ADDR_UNSET, | ||
884 | .inputs = {{ | 1004 | .inputs = {{ |
885 | .name = name_svideo, | 1005 | .name = name_svideo, |
886 | .vmux = 8, | 1006 | .vmux = 8, |
@@ -905,6 +1025,9 @@ struct saa7134_board saa7134_boards[] = { | |||
905 | .name = "Manli MuchTV M-TV001/Behold TV 401", | 1025 | .name = "Manli MuchTV M-TV001/Behold TV 401", |
906 | .audio_clock = 0x00200000, | 1026 | .audio_clock = 0x00200000, |
907 | .tuner_type = TUNER_PHILIPS_PAL, | 1027 | .tuner_type = TUNER_PHILIPS_PAL, |
1028 | .radio_type = UNSET, | ||
1029 | .tuner_addr = ADDR_UNSET, | ||
1030 | .radio_addr = ADDR_UNSET, | ||
908 | .inputs = {{ | 1031 | .inputs = {{ |
909 | .name = name_svideo, | 1032 | .name = name_svideo, |
910 | .vmux = 8, | 1033 | .vmux = 8, |
@@ -921,14 +1044,17 @@ struct saa7134_board saa7134_boards[] = { | |||
921 | }}, | 1044 | }}, |
922 | .mute = { | 1045 | .mute = { |
923 | .name = name_mute, | 1046 | .name = name_mute, |
924 | .amux = LINE1, | 1047 | .amux = LINE1, |
925 | }, | 1048 | }, |
926 | }, | 1049 | }, |
927 | [SAA7134_BOARD_TG3000TV] = { | 1050 | [SAA7134_BOARD_TG3000TV] = { |
928 | /* TransGear 3000TV */ | 1051 | /* TransGear 3000TV */ |
929 | .name = "Nagase Sangyo TransGear 3000TV", | 1052 | .name = "Nagase Sangyo TransGear 3000TV", |
930 | .audio_clock = 0x00187de7, | 1053 | .audio_clock = 0x00187de7, |
931 | .tuner_type = TUNER_PHILIPS_NTSC_M, | 1054 | .tuner_type = TUNER_PHILIPS_NTSC_M, |
1055 | .radio_type = UNSET, | ||
1056 | .tuner_addr = ADDR_UNSET, | ||
1057 | .radio_addr = ADDR_UNSET, | ||
932 | .inputs = {{ | 1058 | .inputs = {{ |
933 | .name = name_tv, | 1059 | .name = name_tv, |
934 | .vmux = 1, | 1060 | .vmux = 1, |
@@ -944,81 +1070,90 @@ struct saa7134_board saa7134_boards[] = { | |||
944 | .amux = LINE2, | 1070 | .amux = LINE2, |
945 | }}, | 1071 | }}, |
946 | }, | 1072 | }, |
947 | [SAA7134_BOARD_ECS_TVP3XP] = { | 1073 | [SAA7134_BOARD_ECS_TVP3XP] = { |
948 | .name = "Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM) ", | 1074 | .name = "Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM) ", |
949 | .audio_clock = 0x187de7, // xtal 32.1 MHz | 1075 | .audio_clock = 0x187de7, /* xtal 32.1 MHz */ |
950 | .tuner_type = TUNER_PHILIPS_PAL, | 1076 | .tuner_type = TUNER_PHILIPS_PAL, |
951 | .inputs = {{ | 1077 | .radio_type = UNSET, |
952 | .name = name_tv, | 1078 | .tuner_addr = ADDR_UNSET, |
953 | .vmux = 1, | 1079 | .radio_addr = ADDR_UNSET, |
954 | .amux = TV, | 1080 | .inputs = {{ |
955 | .tv = 1, | 1081 | .name = name_tv, |
956 | },{ | 1082 | .vmux = 1, |
957 | .name = name_tv_mono, | 1083 | .amux = TV, |
958 | .vmux = 1, | 1084 | .tv = 1, |
959 | .amux = LINE2, | 1085 | },{ |
960 | .tv = 1, | 1086 | .name = name_tv_mono, |
961 | },{ | 1087 | .vmux = 1, |
962 | .name = name_comp1, | 1088 | .amux = LINE2, |
963 | .vmux = 3, | 1089 | .tv = 1, |
964 | .amux = LINE1, | 1090 | },{ |
965 | },{ | 1091 | .name = name_comp1, |
966 | .name = name_svideo, | 1092 | .vmux = 3, |
967 | .vmux = 8, | 1093 | .amux = LINE1, |
968 | .amux = LINE1, | 1094 | },{ |
1095 | .name = name_svideo, | ||
1096 | .vmux = 8, | ||
1097 | .amux = LINE1, | ||
969 | },{ | 1098 | },{ |
970 | .name = "CVid over SVid", | 1099 | .name = "CVid over SVid", |
971 | .vmux = 0, | 1100 | .vmux = 0, |
972 | .amux = LINE1, | 1101 | .amux = LINE1, |
973 | }}, | 1102 | }}, |
974 | .radio = { | 1103 | .radio = { |
975 | .name = name_radio, | 1104 | .name = name_radio, |
976 | .amux = LINE2, | 1105 | .amux = LINE2, |
977 | }, | 1106 | }, |
978 | }, | 1107 | }, |
979 | [SAA7134_BOARD_ECS_TVP3XP_4CB5] = { | 1108 | [SAA7134_BOARD_ECS_TVP3XP_4CB5] = { |
980 | .name = "Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM)", | 1109 | .name = "Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM)", |
981 | .audio_clock = 0x187de7, | 1110 | .audio_clock = 0x187de7, |
982 | .tuner_type = TUNER_PHILIPS_NTSC, | 1111 | .tuner_type = TUNER_PHILIPS_NTSC, |
983 | .inputs = {{ | 1112 | .radio_type = UNSET, |
984 | .name = name_tv, | 1113 | .tuner_addr = ADDR_UNSET, |
985 | .vmux = 1, | 1114 | .radio_addr = ADDR_UNSET, |
986 | .amux = TV, | 1115 | .inputs = {{ |
987 | .tv = 1, | 1116 | .name = name_tv, |
988 | },{ | 1117 | .vmux = 1, |
989 | .name = name_tv_mono, | 1118 | .amux = TV, |
990 | .vmux = 1, | 1119 | .tv = 1, |
991 | .amux = LINE2, | 1120 | },{ |
992 | .tv = 1, | 1121 | .name = name_tv_mono, |
993 | },{ | 1122 | .vmux = 1, |
994 | .name = name_comp1, | 1123 | .amux = LINE2, |
995 | .vmux = 3, | 1124 | .tv = 1, |
996 | .amux = LINE1, | 1125 | },{ |
997 | },{ | 1126 | .name = name_comp1, |
998 | .name = name_svideo, | 1127 | .vmux = 3, |
999 | .vmux = 8, | 1128 | .amux = LINE1, |
1000 | .amux = LINE1, | 1129 | },{ |
1001 | },{ | 1130 | .name = name_svideo, |
1002 | .name = "CVid over SVid", | 1131 | .vmux = 8, |
1003 | .vmux = 0, | 1132 | .amux = LINE1, |
1004 | .amux = LINE1, | 1133 | },{ |
1005 | }}, | 1134 | .name = "CVid over SVid", |
1006 | .radio = { | 1135 | .vmux = 0, |
1007 | .name = name_radio, | 1136 | .amux = LINE1, |
1008 | .amux = LINE2, | 1137 | }}, |
1009 | }, | 1138 | .radio = { |
1010 | }, | 1139 | .name = name_radio, |
1140 | .amux = LINE2, | ||
1141 | }, | ||
1142 | }, | ||
1011 | [SAA7134_BOARD_AVACSSMARTTV] = { | 1143 | [SAA7134_BOARD_AVACSSMARTTV] = { |
1012 | /* Roman Pszonczenko <romka@kolos.math.uni.lodz.pl> */ | 1144 | /* Roman Pszonczenko <romka@kolos.math.uni.lodz.pl> */ |
1013 | .name = "AVACS SmartTV", | 1145 | .name = "AVACS SmartTV", |
1014 | .audio_clock = 0x00187de7, | 1146 | .audio_clock = 0x00187de7, |
1015 | .tuner_type = TUNER_PHILIPS_PAL, | 1147 | .tuner_type = TUNER_PHILIPS_PAL, |
1148 | .radio_type = UNSET, | ||
1149 | .tuner_addr = ADDR_UNSET, | ||
1150 | .radio_addr = ADDR_UNSET, | ||
1016 | .inputs = {{ | 1151 | .inputs = {{ |
1017 | .name = name_tv, | 1152 | .name = name_tv, |
1018 | .vmux = 1, | 1153 | .vmux = 1, |
1019 | .amux = TV, | 1154 | .amux = TV, |
1020 | .tv = 1, | 1155 | .tv = 1, |
1021 | },{ | 1156 | },{ |
1022 | .name = name_tv_mono, | 1157 | .name = name_tv_mono, |
1023 | .vmux = 1, | 1158 | .vmux = 1, |
1024 | .amux = LINE2, | 1159 | .amux = LINE2, |
@@ -1047,6 +1182,9 @@ struct saa7134_board saa7134_boards[] = { | |||
1047 | .name = "AVerMedia DVD EZMaker", | 1182 | .name = "AVerMedia DVD EZMaker", |
1048 | .audio_clock = 0x00187de7, | 1183 | .audio_clock = 0x00187de7, |
1049 | .tuner_type = TUNER_ABSENT, | 1184 | .tuner_type = TUNER_ABSENT, |
1185 | .radio_type = UNSET, | ||
1186 | .tuner_addr = ADDR_UNSET, | ||
1187 | .radio_addr = ADDR_UNSET, | ||
1050 | .inputs = {{ | 1188 | .inputs = {{ |
1051 | .name = name_comp1, | 1189 | .name = name_comp1, |
1052 | .vmux = 3, | 1190 | .vmux = 3, |
@@ -1055,28 +1193,34 @@ struct saa7134_board saa7134_boards[] = { | |||
1055 | .vmux = 8, | 1193 | .vmux = 8, |
1056 | }}, | 1194 | }}, |
1057 | }, | 1195 | }, |
1058 | [SAA7134_BOARD_NOVAC_PRIMETV7133] = { | 1196 | [SAA7134_BOARD_NOVAC_PRIMETV7133] = { |
1059 | /* toshii@netbsd.org */ | 1197 | /* toshii@netbsd.org */ |
1060 | .name = "Noval Prime TV 7133", | 1198 | .name = "Noval Prime TV 7133", |
1061 | .audio_clock = 0x00200000, | 1199 | .audio_clock = 0x00200000, |
1062 | .tuner_type = TUNER_ALPS_TSBH1_NTSC, | 1200 | .tuner_type = TUNER_ALPS_TSBH1_NTSC, |
1063 | .inputs = {{ | 1201 | .radio_type = UNSET, |
1064 | .name = name_comp1, | 1202 | .tuner_addr = ADDR_UNSET, |
1065 | .vmux = 3, | 1203 | .radio_addr = ADDR_UNSET, |
1066 | },{ | 1204 | .inputs = {{ |
1067 | .name = name_tv, | 1205 | .name = name_comp1, |
1068 | .vmux = 1, | 1206 | .vmux = 3, |
1069 | .amux = TV, | 1207 | },{ |
1070 | .tv = 1, | 1208 | .name = name_tv, |
1071 | },{ | 1209 | .vmux = 1, |
1072 | .name = name_svideo, | 1210 | .amux = TV, |
1073 | .vmux = 8, | 1211 | .tv = 1, |
1074 | }}, | 1212 | },{ |
1075 | }, | 1213 | .name = name_svideo, |
1214 | .vmux = 8, | ||
1215 | }}, | ||
1216 | }, | ||
1076 | [SAA7134_BOARD_AVERMEDIA_STUDIO_305] = { | 1217 | [SAA7134_BOARD_AVERMEDIA_STUDIO_305] = { |
1077 | .name = "AverMedia AverTV Studio 305", | 1218 | .name = "AverMedia AverTV Studio 305", |
1078 | .audio_clock = 0x00187de7, | 1219 | .audio_clock = 0x00187de7, |
1079 | .tuner_type = TUNER_PHILIPS_FM1256_IH3, | 1220 | .tuner_type = TUNER_PHILIPS_FM1256_IH3, |
1221 | .radio_type = UNSET, | ||
1222 | .tuner_addr = ADDR_UNSET, | ||
1223 | .radio_addr = ADDR_UNSET, | ||
1080 | .tda9887_conf = TDA9887_PRESENT, | 1224 | .tda9887_conf = TDA9887_PRESENT, |
1081 | .inputs = {{ | 1225 | .inputs = {{ |
1082 | .name = name_tv, | 1226 | .name = name_tv, |
@@ -1097,35 +1241,41 @@ struct saa7134_board saa7134_boards[] = { | |||
1097 | .amux = LINE2, | 1241 | .amux = LINE2, |
1098 | }}, | 1242 | }}, |
1099 | .radio = { | 1243 | .radio = { |
1100 | .name = name_radio, | 1244 | .name = name_radio, |
1101 | .amux = LINE2, | 1245 | .amux = LINE2, |
1102 | }, | 1246 | }, |
1103 | .mute = { | 1247 | .mute = { |
1104 | .name = name_mute, | 1248 | .name = name_mute, |
1105 | .amux = LINE1, | 1249 | .amux = LINE1, |
1106 | }, | 1250 | }, |
1107 | }, | 1251 | }, |
1108 | [SAA7133_BOARD_UPMOST_PURPLE_TV] = { | 1252 | [SAA7134_BOARD_UPMOST_PURPLE_TV] = { |
1109 | .name = "UPMOST PURPLE TV", | 1253 | .name = "UPMOST PURPLE TV", |
1110 | .audio_clock = 0x00187de7, | 1254 | .audio_clock = 0x00187de7, |
1111 | .tuner_type = TUNER_PHILIPS_FM1236_MK3, | 1255 | .tuner_type = TUNER_PHILIPS_FM1236_MK3, |
1112 | .tda9887_conf = TDA9887_PRESENT, | 1256 | .radio_type = UNSET, |
1113 | .inputs = {{ | 1257 | .tuner_addr = ADDR_UNSET, |
1114 | .name = name_tv, | 1258 | .radio_addr = ADDR_UNSET, |
1115 | .vmux = 7, | 1259 | .tda9887_conf = TDA9887_PRESENT, |
1116 | .amux = TV, | 1260 | .inputs = {{ |
1117 | .tv = 1, | 1261 | .name = name_tv, |
1118 | },{ | 1262 | .vmux = 7, |
1119 | .name = name_svideo, | 1263 | .amux = TV, |
1120 | .vmux = 7, | 1264 | .tv = 1, |
1121 | .amux = LINE1, | 1265 | },{ |
1122 | }}, | 1266 | .name = name_svideo, |
1267 | .vmux = 7, | ||
1268 | .amux = LINE1, | ||
1269 | }}, | ||
1123 | }, | 1270 | }, |
1124 | [SAA7134_BOARD_ITEMS_MTV005] = { | 1271 | [SAA7134_BOARD_ITEMS_MTV005] = { |
1125 | /* Norman Jonas <normanjonas@arcor.de> */ | 1272 | /* Norman Jonas <normanjonas@arcor.de> */ |
1126 | .name = "Items MuchTV Plus / IT-005", | 1273 | .name = "Items MuchTV Plus / IT-005", |
1127 | .audio_clock = 0x00187de7, | 1274 | .audio_clock = 0x00187de7, |
1128 | .tuner_type = TUNER_PHILIPS_PAL, | 1275 | .tuner_type = TUNER_PHILIPS_PAL, |
1276 | .radio_type = UNSET, | ||
1277 | .tuner_addr = ADDR_UNSET, | ||
1278 | .radio_addr = ADDR_UNSET, | ||
1129 | .inputs = {{ | 1279 | .inputs = {{ |
1130 | .name = name_tv, | 1280 | .name = name_tv, |
1131 | .vmux = 3, | 1281 | .vmux = 3, |
@@ -1149,27 +1299,30 @@ struct saa7134_board saa7134_boards[] = { | |||
1149 | .name = "Terratec Cinergy 200 TV", | 1299 | .name = "Terratec Cinergy 200 TV", |
1150 | .audio_clock = 0x00200000, | 1300 | .audio_clock = 0x00200000, |
1151 | .tuner_type = TUNER_PHILIPS_PAL, | 1301 | .tuner_type = TUNER_PHILIPS_PAL, |
1302 | .radio_type = UNSET, | ||
1303 | .tuner_addr = ADDR_UNSET, | ||
1304 | .radio_addr = ADDR_UNSET, | ||
1152 | .inputs = {{ | 1305 | .inputs = {{ |
1153 | .name = name_tv, | 1306 | .name = name_tv, |
1154 | .vmux = 1, | 1307 | .vmux = 1, |
1155 | .amux = LINE2, | 1308 | .amux = LINE2, |
1156 | .tv = 1, | 1309 | .tv = 1, |
1157 | },{ | 1310 | },{ |
1158 | .name = name_comp1, | 1311 | .name = name_comp1, |
1159 | .vmux = 4, | 1312 | .vmux = 4, |
1160 | .amux = LINE1, | 1313 | .amux = LINE1, |
1161 | },{ | 1314 | },{ |
1162 | .name = name_svideo, | 1315 | .name = name_svideo, |
1163 | .vmux = 8, | 1316 | .vmux = 8, |
1164 | .amux = LINE1, | 1317 | .amux = LINE1, |
1165 | },{ | 1318 | },{ |
1166 | .name = name_comp2, // CVideo over SVideo Connector | 1319 | .name = name_comp2, /* CVideo over SVideo Connector */ |
1167 | .vmux = 0, | 1320 | .vmux = 0, |
1168 | .amux = LINE1, | 1321 | .amux = LINE1, |
1169 | }}, | 1322 | }}, |
1170 | .mute = { | 1323 | .mute = { |
1171 | .name = name_mute, | 1324 | .name = name_mute, |
1172 | .amux = LINE2, | 1325 | .amux = LINE2, |
1173 | }, | 1326 | }, |
1174 | }, | 1327 | }, |
1175 | [SAA7134_BOARD_VIDEOMATE_TV_PVR] = { | 1328 | [SAA7134_BOARD_VIDEOMATE_TV_PVR] = { |
@@ -1177,84 +1330,96 @@ struct saa7134_board saa7134_boards[] = { | |||
1177 | .name = "Compro VideoMate TV PVR/FM", | 1330 | .name = "Compro VideoMate TV PVR/FM", |
1178 | .audio_clock = 0x00187de7, | 1331 | .audio_clock = 0x00187de7, |
1179 | .tuner_type = TUNER_PHILIPS_NTSC_M, | 1332 | .tuner_type = TUNER_PHILIPS_NTSC_M, |
1333 | .radio_type = UNSET, | ||
1334 | .tuner_addr = ADDR_UNSET, | ||
1335 | .radio_addr = ADDR_UNSET, | ||
1180 | .gpiomask = 0x808c0080, | 1336 | .gpiomask = 0x808c0080, |
1181 | .inputs = {{ | 1337 | .inputs = {{ |
1182 | .name = name_svideo, | 1338 | .name = name_svideo, |
1183 | .vmux = 8, | 1339 | .vmux = 8, |
1184 | .amux = LINE1, | 1340 | .amux = LINE1, |
1185 | .gpio = 0x00080, | 1341 | .gpio = 0x00080, |
1186 | },{ | 1342 | },{ |
1187 | .name = name_comp1, | 1343 | .name = name_comp1, |
1188 | .vmux = 3, | 1344 | .vmux = 3, |
1189 | .amux = LINE1, | 1345 | .amux = LINE1, |
1190 | .gpio = 0x00080, | 1346 | .gpio = 0x00080, |
1191 | },{ | 1347 | },{ |
1192 | .name = name_tv, | 1348 | .name = name_tv, |
1193 | .vmux = 1, | 1349 | .vmux = 1, |
1194 | .amux = LINE2_LEFT, | 1350 | .amux = LINE2_LEFT, |
1195 | .tv = 1, | 1351 | .tv = 1, |
1196 | .gpio = 0x00080, | 1352 | .gpio = 0x00080, |
1197 | }}, | 1353 | }}, |
1198 | .radio = { | 1354 | .radio = { |
1199 | .name = name_radio, | 1355 | .name = name_radio, |
1200 | .amux = LINE2, | 1356 | .amux = LINE2, |
1201 | .gpio = 0x80000, | 1357 | .gpio = 0x80000, |
1202 | }, | 1358 | }, |
1203 | .mute = { | 1359 | .mute = { |
1204 | .name = name_mute, | 1360 | .name = name_mute, |
1205 | .amux = LINE2, | 1361 | .amux = LINE2, |
1206 | .gpio = 0x40000, | 1362 | .gpio = 0x40000, |
1207 | }, | 1363 | }, |
1208 | }, | 1364 | }, |
1209 | [SAA7134_BOARD_SABRENT_SBTTVFM] = { | 1365 | [SAA7134_BOARD_SABRENT_SBTTVFM] = { |
1210 | /* Michael Rodriguez-Torrent <mrtorrent@asu.edu> */ | 1366 | /* Michael Rodriguez-Torrent <mrtorrent@asu.edu> */ |
1211 | .name = "Sabrent SBT-TVFM (saa7130)", | 1367 | .name = "Sabrent SBT-TVFM (saa7130)", |
1212 | .audio_clock = 0x00187de7, | 1368 | .audio_clock = 0x00187de7, |
1213 | .tuner_type = TUNER_PHILIPS_NTSC_M, | 1369 | .tuner_type = TUNER_PHILIPS_NTSC_M, |
1214 | .inputs = {{ | 1370 | .radio_type = UNSET, |
1371 | .tuner_addr = ADDR_UNSET, | ||
1372 | .radio_addr = ADDR_UNSET, | ||
1373 | .inputs = {{ | ||
1215 | .name = name_comp1, | 1374 | .name = name_comp1, |
1216 | .vmux = 1, | 1375 | .vmux = 1, |
1217 | .amux = LINE2, | 1376 | .amux = LINE2, |
1218 | },{ | 1377 | },{ |
1219 | .name = name_tv, | 1378 | .name = name_tv, |
1220 | .vmux = 3, | 1379 | .vmux = 3, |
1221 | .amux = LINE2, | 1380 | .amux = LINE2, |
1222 | .tv = 1, | 1381 | .tv = 1, |
1223 | },{ | 1382 | },{ |
1224 | .name = name_svideo, | 1383 | .name = name_svideo, |
1225 | .vmux = 8, | 1384 | .vmux = 8, |
1226 | .amux = LINE2, | 1385 | .amux = LINE2, |
1227 | }}, | 1386 | }}, |
1228 | .radio = { | 1387 | .radio = { |
1229 | .name = name_radio, | 1388 | .name = name_radio, |
1230 | .amux = LINE2, | 1389 | .amux = LINE2, |
1231 | }, | 1390 | }, |
1232 | }, | 1391 | }, |
1233 | [SAA7134_BOARD_ZOLID_XPERT_TV7134] = { | 1392 | [SAA7134_BOARD_ZOLID_XPERT_TV7134] = { |
1234 | /* Helge Jensen <helge.jensen@slog.dk> */ | 1393 | /* Helge Jensen <helge.jensen@slog.dk> */ |
1235 | .name = ":Zolid Xpert TV7134", | 1394 | .name = ":Zolid Xpert TV7134", |
1236 | .audio_clock = 0x00187de7, | 1395 | .audio_clock = 0x00187de7, |
1237 | .tuner_type = TUNER_PHILIPS_NTSC, | 1396 | .tuner_type = TUNER_PHILIPS_NTSC, |
1238 | .inputs = {{ | 1397 | .radio_type = UNSET, |
1398 | .tuner_addr = ADDR_UNSET, | ||
1399 | .radio_addr = ADDR_UNSET, | ||
1400 | .inputs = {{ | ||
1239 | .name = name_svideo, | 1401 | .name = name_svideo, |
1240 | .vmux = 8, | 1402 | .vmux = 8, |
1241 | .amux = LINE1, | 1403 | .amux = LINE1, |
1242 | },{ | 1404 | },{ |
1243 | .name = name_comp1, | 1405 | .name = name_comp1, |
1244 | .vmux = 3, | 1406 | .vmux = 3, |
1245 | .amux = LINE1, | 1407 | .amux = LINE1, |
1246 | },{ | 1408 | },{ |
1247 | .name = name_tv, | 1409 | .name = name_tv, |
1248 | .vmux = 1, | 1410 | .vmux = 1, |
1249 | .amux = LINE2, | 1411 | .amux = LINE2, |
1250 | .tv = 1, | 1412 | .tv = 1, |
1251 | }}, | 1413 | }}, |
1252 | }, | 1414 | }, |
1253 | [SAA7134_BOARD_EMPIRE_PCI_TV_RADIO_LE] = { | 1415 | [SAA7134_BOARD_EMPIRE_PCI_TV_RADIO_LE] = { |
1254 | /* "Matteo Az" <matte.az@nospam.libero.it> ;-) */ | 1416 | /* "Matteo Az" <matte.az@nospam.libero.it> ;-) */ |
1255 | .name = "Empire PCI TV-Radio LE", | 1417 | .name = "Empire PCI TV-Radio LE", |
1256 | .audio_clock = 0x00187de7, | 1418 | .audio_clock = 0x00187de7, |
1257 | .tuner_type = TUNER_PHILIPS_PAL, | 1419 | .tuner_type = TUNER_PHILIPS_PAL, |
1420 | .radio_type = UNSET, | ||
1421 | .tuner_addr = ADDR_UNSET, | ||
1422 | .radio_addr = ADDR_UNSET, | ||
1258 | .gpiomask = 0x4000, | 1423 | .gpiomask = 0x4000, |
1259 | .inputs = {{ | 1424 | .inputs = {{ |
1260 | .name = name_tv_mono, | 1425 | .name = name_tv_mono, |
@@ -1273,18 +1438,18 @@ struct saa7134_board saa7134_boards[] = { | |||
1273 | .amux = LINE1, | 1438 | .amux = LINE1, |
1274 | .gpio = 0x8000, | 1439 | .gpio = 0x8000, |
1275 | }}, | 1440 | }}, |
1276 | .radio = { | 1441 | .radio = { |
1277 | .name = name_radio, | 1442 | .name = name_radio, |
1278 | .amux = LINE1, | 1443 | .amux = LINE1, |
1279 | .gpio = 0x8000, | 1444 | .gpio = 0x8000, |
1280 | }, | 1445 | }, |
1281 | .mute = { | 1446 | .mute = { |
1282 | .name = name_mute, | 1447 | .name = name_mute, |
1283 | .amux = TV, | 1448 | .amux = TV, |
1284 | .gpio =0x8000, | 1449 | .gpio =0x8000, |
1285 | } | 1450 | } |
1286 | }, | 1451 | }, |
1287 | [SAA7134_BOARD_AVERMEDIA_STUDIO_307] = { | 1452 | [SAA7134_BOARD_AVERMEDIA_STUDIO_307] = { |
1288 | /* | 1453 | /* |
1289 | Nickolay V. Shmyrev <nshmyrev@yandex.ru> | 1454 | Nickolay V. Shmyrev <nshmyrev@yandex.ru> |
1290 | Lots of thanks to Andrey Zolotarev <zolotarev_andrey@mail.ru> | 1455 | Lots of thanks to Andrey Zolotarev <zolotarev_andrey@mail.ru> |
@@ -1292,6 +1457,9 @@ struct saa7134_board saa7134_boards[] = { | |||
1292 | .name = "Avermedia AVerTV Studio 307", | 1457 | .name = "Avermedia AVerTV Studio 307", |
1293 | .audio_clock = 0x00187de7, | 1458 | .audio_clock = 0x00187de7, |
1294 | .tuner_type = TUNER_PHILIPS_FM1256_IH3, | 1459 | .tuner_type = TUNER_PHILIPS_FM1256_IH3, |
1460 | .radio_type = UNSET, | ||
1461 | .tuner_addr = ADDR_UNSET, | ||
1462 | .radio_addr = ADDR_UNSET, | ||
1295 | .tda9887_conf = TDA9887_PRESENT, | 1463 | .tda9887_conf = TDA9887_PRESENT, |
1296 | .gpiomask = 0x03, | 1464 | .gpiomask = 0x03, |
1297 | .inputs = {{ | 1465 | .inputs = {{ |
@@ -1321,13 +1489,21 @@ struct saa7134_board saa7134_boards[] = { | |||
1321 | .amux = LINE1, | 1489 | .amux = LINE1, |
1322 | .gpio = 0x01, | 1490 | .gpio = 0x01, |
1323 | }, | 1491 | }, |
1324 | }, | 1492 | .mute = { |
1325 | [SAA7134_BOARD_AVERMEDIA_GO_007_FM] = { | 1493 | .name = name_mute, |
1494 | .amux = LINE1, | ||
1495 | .gpio = 0x00, | ||
1496 | }, | ||
1497 | }, | ||
1498 | [SAA7134_BOARD_AVERMEDIA_GO_007_FM] = { | ||
1326 | .name = "Avermedia AVerTV GO 007 FM", | 1499 | .name = "Avermedia AVerTV GO 007 FM", |
1327 | .audio_clock = 0x00187de7, | 1500 | .audio_clock = 0x00187de7, |
1328 | .tuner_type = TUNER_PHILIPS_TDA8290, | 1501 | .tuner_type = TUNER_PHILIPS_TDA8290, |
1502 | .radio_type = UNSET, | ||
1503 | .tuner_addr = ADDR_UNSET, | ||
1504 | .radio_addr = ADDR_UNSET, | ||
1329 | .gpiomask = 0x00300003, | 1505 | .gpiomask = 0x00300003, |
1330 | // .gpiomask = 0x8c240003, | 1506 | /* .gpiomask = 0x8c240003, */ |
1331 | .inputs = {{ | 1507 | .inputs = {{ |
1332 | .name = name_tv, | 1508 | .name = name_tv, |
1333 | .vmux = 1, | 1509 | .vmux = 1, |
@@ -1350,16 +1526,24 @@ struct saa7134_board saa7134_boards[] = { | |||
1350 | .amux = LINE1, | 1526 | .amux = LINE1, |
1351 | .gpio = 0x00300001, | 1527 | .gpio = 0x00300001, |
1352 | }, | 1528 | }, |
1353 | }, | 1529 | .mute = { |
1530 | .name = name_mute, | ||
1531 | .amux = TV, | ||
1532 | .gpio = 0x01, | ||
1533 | }, | ||
1534 | }, | ||
1354 | [SAA7134_BOARD_AVERMEDIA_CARDBUS] = { | 1535 | [SAA7134_BOARD_AVERMEDIA_CARDBUS] = { |
1355 | /* Jon Westgate <oryn@oryn.fsck.tv> */ | 1536 | /* Kees.Blom@cwi.nl */ |
1356 | .name = "AVerMedia Cardbus TV/Radio", | 1537 | .name = "AVerMedia Cardbus TV/Radio (E500)", |
1357 | .audio_clock = 0x00200000, | 1538 | .audio_clock = 0x187de7, |
1358 | .tuner_type = TUNER_PHILIPS_PAL, | 1539 | .tuner_type = TUNER_PHILIPS_TDA8290, |
1540 | .radio_type = UNSET, | ||
1541 | .tuner_addr = ADDR_UNSET, | ||
1542 | .radio_addr = ADDR_UNSET, | ||
1359 | .inputs = {{ | 1543 | .inputs = {{ |
1360 | .name = name_tv, | 1544 | .name = name_tv, |
1361 | .vmux = 1, | 1545 | .vmux = 1, |
1362 | .amux = LINE2, | 1546 | .amux = TV, |
1363 | .tv = 1, | 1547 | .tv = 1, |
1364 | },{ | 1548 | },{ |
1365 | .name = name_comp1, | 1549 | .name = name_comp1, |
@@ -1368,10 +1552,10 @@ struct saa7134_board saa7134_boards[] = { | |||
1368 | },{ | 1552 | },{ |
1369 | .name = name_svideo, | 1553 | .name = name_svideo, |
1370 | .vmux = 8, | 1554 | .vmux = 8, |
1371 | .amux = LINE2, | 1555 | .amux = LINE1, |
1372 | }}, | 1556 | }}, |
1373 | .radio = { | 1557 | .radio = { |
1374 | .name = name_radio, | 1558 | .name = name_radio, |
1375 | .amux = LINE1, | 1559 | .amux = LINE1, |
1376 | }, | 1560 | }, |
1377 | }, | 1561 | }, |
@@ -1379,119 +1563,134 @@ struct saa7134_board saa7134_boards[] = { | |||
1379 | .name = "Terratec Cinergy 400 mobile", | 1563 | .name = "Terratec Cinergy 400 mobile", |
1380 | .audio_clock = 0x187de7, | 1564 | .audio_clock = 0x187de7, |
1381 | .tuner_type = TUNER_ALPS_TSBE5_PAL, | 1565 | .tuner_type = TUNER_ALPS_TSBE5_PAL, |
1382 | .tda9887_conf = TDA9887_PRESENT, | 1566 | .radio_type = UNSET, |
1567 | .tuner_addr = ADDR_UNSET, | ||
1568 | .radio_addr = ADDR_UNSET, | ||
1569 | .tda9887_conf = TDA9887_PRESENT, | ||
1383 | .inputs = {{ | 1570 | .inputs = {{ |
1384 | .name = name_tv, | 1571 | .name = name_tv, |
1385 | .vmux = 1, | 1572 | .vmux = 1, |
1386 | .amux = TV, | 1573 | .amux = TV, |
1387 | .tv = 1, | 1574 | .tv = 1, |
1388 | },{ | 1575 | },{ |
1389 | .name = name_tv_mono, | 1576 | .name = name_tv_mono, |
1390 | .vmux = 1, | 1577 | .vmux = 1, |
1391 | .amux = LINE2, | 1578 | .amux = LINE2, |
1392 | .tv = 1, | 1579 | .tv = 1, |
1393 | },{ | 1580 | },{ |
1394 | .name = name_comp1, | 1581 | .name = name_comp1, |
1395 | .vmux = 3, | 1582 | .vmux = 3, |
1396 | .amux = LINE1, | 1583 | .amux = LINE1, |
1397 | },{ | 1584 | },{ |
1398 | .name = name_svideo, | 1585 | .name = name_svideo, |
1399 | .vmux = 8, | 1586 | .vmux = 8, |
1400 | .amux = LINE1, | 1587 | .amux = LINE1, |
1401 | }}, | 1588 | }}, |
1402 | }, | 1589 | }, |
1403 | [SAA7134_BOARD_CINERGY600_MK3] = { | 1590 | [SAA7134_BOARD_CINERGY600_MK3] = { |
1404 | .name = "Terratec Cinergy 600 TV MK3", | 1591 | .name = "Terratec Cinergy 600 TV MK3", |
1405 | .audio_clock = 0x00200000, | 1592 | .audio_clock = 0x00200000, |
1406 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | 1593 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, |
1407 | .tda9887_conf = TDA9887_PRESENT, | 1594 | .radio_type = UNSET, |
1408 | .inputs = {{ | 1595 | .tuner_addr = ADDR_UNSET, |
1409 | .name = name_tv, | 1596 | .radio_addr = ADDR_UNSET, |
1410 | .vmux = 1, | 1597 | .tda9887_conf = TDA9887_PRESENT, |
1411 | .amux = TV, | 1598 | .inputs = {{ |
1412 | .tv = 1, | 1599 | .name = name_tv, |
1413 | },{ | 1600 | .vmux = 1, |
1414 | .name = name_comp1, | 1601 | .amux = TV, |
1415 | .vmux = 4, | 1602 | .tv = 1, |
1416 | .amux = LINE1, | 1603 | },{ |
1417 | },{ | 1604 | .name = name_comp1, |
1418 | .name = name_svideo, | 1605 | .vmux = 4, |
1419 | .vmux = 8, | 1606 | .amux = LINE1, |
1420 | .amux = LINE1, | 1607 | },{ |
1421 | },{ | 1608 | .name = name_svideo, |
1422 | .name = name_comp2, // CVideo over SVideo Connector | 1609 | .vmux = 8, |
1423 | .vmux = 0, | 1610 | .amux = LINE1, |
1424 | .amux = LINE1, | 1611 | },{ |
1425 | }}, | 1612 | .name = name_comp2, /* CVideo over SVideo Connector */ |
1613 | .vmux = 0, | ||
1614 | .amux = LINE1, | ||
1615 | }}, | ||
1426 | .radio = { | 1616 | .radio = { |
1427 | .name = name_radio, | 1617 | .name = name_radio, |
1428 | .amux = LINE2, | 1618 | .amux = LINE2, |
1429 | }, | 1619 | }, |
1430 | }, | 1620 | }, |
1431 | [SAA7134_BOARD_VIDEOMATE_GOLD_PLUS] = { | 1621 | [SAA7134_BOARD_VIDEOMATE_GOLD_PLUS] = { |
1432 | /* Dylan Walkden <dylan_walkden@hotmail.com> */ | 1622 | /* Dylan Walkden <dylan_walkden@hotmail.com> */ |
1433 | .name = "Compro VideoMate Gold+ Pal", | 1623 | .name = "Compro VideoMate Gold+ Pal", |
1434 | .audio_clock = 0x00187de7, | 1624 | .audio_clock = 0x00187de7, |
1435 | .tuner_type = TUNER_PHILIPS_PAL, | 1625 | .tuner_type = TUNER_PHILIPS_PAL, |
1436 | .gpiomask = 0x1ce780, | 1626 | .radio_type = UNSET, |
1437 | .inputs = {{ | 1627 | .tuner_addr = ADDR_UNSET, |
1438 | .name = name_svideo, | 1628 | .radio_addr = ADDR_UNSET, |
1439 | .vmux = 0, // CVideo over SVideo Connector - ok? | 1629 | .gpiomask = 0x1ce780, |
1440 | .amux = LINE1, | 1630 | .inputs = {{ |
1441 | .gpio = 0x008080, | 1631 | .name = name_svideo, |
1442 | },{ | 1632 | .vmux = 0, /* CVideo over SVideo Connector - ok? */ |
1443 | .name = name_comp1, | 1633 | .amux = LINE1, |
1444 | .vmux = 3, | 1634 | .gpio = 0x008080, |
1445 | .amux = LINE1, | 1635 | },{ |
1446 | .gpio = 0x008080, | 1636 | .name = name_comp1, |
1447 | },{ | 1637 | .vmux = 3, |
1448 | .name = name_tv, | 1638 | .amux = LINE1, |
1449 | .vmux = 1, | 1639 | .gpio = 0x008080, |
1450 | .amux = TV, | 1640 | },{ |
1451 | .tv = 1, | 1641 | .name = name_tv, |
1452 | .gpio = 0x008080, | 1642 | .vmux = 1, |
1453 | }}, | 1643 | .amux = TV, |
1454 | .radio = { | 1644 | .tv = 1, |
1455 | .name = name_radio, | 1645 | .gpio = 0x008080, |
1456 | .amux = LINE2, | 1646 | }}, |
1457 | .gpio = 0x80000, | 1647 | .radio = { |
1458 | }, | 1648 | .name = name_radio, |
1459 | .mute = { | 1649 | .amux = LINE2, |
1460 | .name = name_mute, | 1650 | .gpio = 0x80000, |
1461 | .amux = LINE2, | 1651 | }, |
1462 | .gpio = 0x0c8000, | 1652 | .mute = { |
1463 | }, | 1653 | .name = name_mute, |
1464 | }, | 1654 | .amux = LINE2, |
1655 | .gpio = 0x0c8000, | ||
1656 | }, | ||
1657 | }, | ||
1465 | [SAA7134_BOARD_PINNACLE_300I_DVBT_PAL] = { | 1658 | [SAA7134_BOARD_PINNACLE_300I_DVBT_PAL] = { |
1466 | .name = "Pinnacle PCTV 300i DVB-T + PAL", | 1659 | .name = "Pinnacle PCTV 300i DVB-T + PAL", |
1467 | .audio_clock = 0x00187de7, | 1660 | .audio_clock = 0x00187de7, |
1468 | .tuner_type = TUNER_MT2032, | 1661 | .tuner_type = TUNER_MT2032, |
1469 | .tda9887_conf = TDA9887_PRESENT | TDA9887_INTERCARRIER, | 1662 | .radio_type = UNSET, |
1663 | .tuner_addr = ADDR_UNSET, | ||
1664 | .radio_addr = ADDR_UNSET, | ||
1665 | .tda9887_conf = TDA9887_PRESENT | TDA9887_INTERCARRIER, | ||
1470 | .mpeg = SAA7134_MPEG_DVB, | 1666 | .mpeg = SAA7134_MPEG_DVB, |
1471 | .inputs = {{ | 1667 | .inputs = {{ |
1472 | .name = name_tv, | 1668 | .name = name_tv, |
1473 | .vmux = 3, | 1669 | .vmux = 3, |
1474 | .amux = TV, | 1670 | .amux = TV, |
1475 | .tv = 1, | 1671 | .tv = 1, |
1476 | },{ | 1672 | },{ |
1477 | .name = name_comp1, | 1673 | .name = name_comp1, |
1478 | .vmux = 0, | 1674 | .vmux = 0, |
1479 | .amux = LINE2, | 1675 | .amux = LINE2, |
1480 | },{ | 1676 | },{ |
1481 | .name = name_comp2, | 1677 | .name = name_comp2, |
1482 | .vmux = 1, | 1678 | .vmux = 1, |
1483 | .amux = LINE2, | 1679 | .amux = LINE2, |
1484 | },{ | 1680 | },{ |
1485 | .name = name_svideo, | 1681 | .name = name_svideo, |
1486 | .vmux = 8, | 1682 | .vmux = 8, |
1487 | .amux = LINE2, | 1683 | .amux = LINE2, |
1488 | }}, | 1684 | }}, |
1489 | }, | 1685 | }, |
1490 | [SAA7134_BOARD_PROVIDEO_PV952] = { | 1686 | [SAA7134_BOARD_PROVIDEO_PV952] = { |
1491 | /* andreas.kretschmer@web.de */ | 1687 | /* andreas.kretschmer@web.de */ |
1492 | .name = "ProVideo PV952", | 1688 | .name = "ProVideo PV952", |
1493 | .audio_clock = 0x00187de7, | 1689 | .audio_clock = 0x00187de7, |
1494 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | 1690 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, |
1691 | .radio_type = UNSET, | ||
1692 | .tuner_addr = ADDR_UNSET, | ||
1693 | .radio_addr = ADDR_UNSET, | ||
1495 | .tda9887_conf = TDA9887_PRESENT, | 1694 | .tda9887_conf = TDA9887_PRESENT, |
1496 | .inputs = {{ | 1695 | .inputs = {{ |
1497 | .name = name_comp1, | 1696 | .name = name_comp1, |
@@ -1515,10 +1714,13 @@ struct saa7134_board saa7134_boards[] = { | |||
1515 | }, | 1714 | }, |
1516 | [SAA7134_BOARD_AVERMEDIA_305] = { | 1715 | [SAA7134_BOARD_AVERMEDIA_305] = { |
1517 | /* much like the "studio" version but without radio | 1716 | /* much like the "studio" version but without radio |
1518 | * and another tuner (sirspiritus@yandex.ru) */ | 1717 | * and another tuner (sirspiritus@yandex.ru) */ |
1519 | .name = "AverMedia AverTV/305", | 1718 | .name = "AverMedia AverTV/305", |
1520 | .audio_clock = 0x00187de7, | 1719 | .audio_clock = 0x00187de7, |
1521 | .tuner_type = TUNER_PHILIPS_FQ1216ME, | 1720 | .tuner_type = TUNER_PHILIPS_FQ1216ME, |
1721 | .radio_type = UNSET, | ||
1722 | .tuner_addr = ADDR_UNSET, | ||
1723 | .radio_addr = ADDR_UNSET, | ||
1522 | .tda9887_conf = TDA9887_PRESENT, | 1724 | .tda9887_conf = TDA9887_PRESENT, |
1523 | .inputs = {{ | 1725 | .inputs = {{ |
1524 | .name = name_tv, | 1726 | .name = name_tv, |
@@ -1539,115 +1741,268 @@ struct saa7134_board saa7134_boards[] = { | |||
1539 | .amux = LINE2, | 1741 | .amux = LINE2, |
1540 | }}, | 1742 | }}, |
1541 | .mute = { | 1743 | .mute = { |
1542 | .name = name_mute, | 1744 | .name = name_mute, |
1543 | .amux = LINE1, | 1745 | .amux = LINE1, |
1544 | }, | 1746 | }, |
1545 | }, | 1747 | }, |
1546 | [SAA7134_BOARD_FLYDVBTDUO] = { | 1748 | [SAA7134_BOARD_FLYDVBTDUO] = { |
1547 | /* LifeView FlyDVB-T DUO */ | 1749 | /* LifeView FlyDVB-T DUO */ |
1548 | /* "Nico Sabbi <nsabbi@tiscali.it> */ | 1750 | /* "Nico Sabbi <nsabbi@tiscali.it> Hartmut Hackmann hartmut.hackmann@t-online.de*/ |
1549 | .name = "LifeView FlyDVB-T DUO", | 1751 | .name = "LifeView FlyDVB-T DUO", |
1550 | .audio_clock = 0x00200000, | 1752 | .audio_clock = 0x00200000, |
1551 | .tuner_type = TUNER_PHILIPS_TDA8290, | 1753 | .tuner_type = TUNER_PHILIPS_TDA8290, |
1552 | // .gpiomask = 0xe000, | 1754 | .radio_type = UNSET, |
1755 | .tuner_addr = ADDR_UNSET, | ||
1756 | .radio_addr = ADDR_UNSET, | ||
1757 | .mpeg = SAA7134_MPEG_DVB, | ||
1553 | .inputs = {{ | 1758 | .inputs = {{ |
1554 | .name = name_tv, | 1759 | .name = name_tv, |
1555 | .vmux = 1, | 1760 | .vmux = 1, |
1556 | .amux = TV, | 1761 | .amux = TV, |
1557 | // .gpio = 0x0000, | ||
1558 | .tv = 1, | 1762 | .tv = 1, |
1559 | },{ | 1763 | },{ |
1560 | .name = name_comp1, /* Composite signal on S-Video input */ | 1764 | .name = name_comp1, /* Composite signal on S-Video input */ |
1561 | .vmux = 0, | 1765 | .vmux = 0, |
1562 | .amux = LINE2, | 1766 | .amux = LINE2, |
1563 | // .gpio = 0x4000, | ||
1564 | },{ | 1767 | },{ |
1565 | .name = name_comp2, /* Composite input */ | 1768 | .name = name_comp2, /* Composite input */ |
1566 | .vmux = 3, | 1769 | .vmux = 3, |
1567 | .amux = LINE2, | 1770 | .amux = LINE2, |
1568 | // .gpio = 0x4000, | ||
1569 | },{ | 1771 | },{ |
1570 | .name = name_svideo, /* S-Video signal on S-Video input */ | 1772 | .name = name_svideo, /* S-Video signal on S-Video input */ |
1571 | .vmux = 8, | 1773 | .vmux = 8, |
1572 | .amux = LINE2, | 1774 | .amux = LINE2, |
1573 | // .gpio = 0x4000, | ||
1574 | }}, | 1775 | }}, |
1575 | }, | 1776 | }, |
1576 | [SAA7134_BOARD_AVERMEDIA_307] = { | 1777 | [SAA7134_BOARD_PHILIPS_TOUGH] = { |
1577 | /* | 1778 | .name = "Philips TOUGH DVB-T reference design", |
1578 | Davydov Vladimir <vladimir@iqmedia.com> | 1779 | .tuner_type = TUNER_ABSENT, |
1579 | */ | 1780 | .audio_clock = 0x00187de7, |
1580 | .name = "Avermedia AVerTV 307", | 1781 | .radio_type = UNSET, |
1581 | .audio_clock = 0x00187de7, | 1782 | .tuner_addr = ADDR_UNSET, |
1582 | .tuner_type = TUNER_PHILIPS_FQ1216ME, | 1783 | .radio_addr = ADDR_UNSET, |
1583 | .tda9887_conf = TDA9887_PRESENT, | 1784 | .mpeg = SAA7134_MPEG_DVB, |
1584 | .inputs = {{ | 1785 | .inputs = {{ |
1585 | .name = name_tv, | 1786 | .name = name_comp1, |
1586 | .vmux = 1, | 1787 | .vmux = 0, |
1587 | .amux = TV, | 1788 | .amux = LINE1, |
1588 | .tv = 1, | 1789 | },{ |
1589 | },{ | 1790 | .name = name_svideo, |
1590 | .name = name_comp1, | 1791 | .vmux = 8, |
1591 | .vmux = 0, | 1792 | .amux = LINE1, |
1592 | .amux = LINE1, | 1793 | }}, |
1593 | },{ | 1794 | }, |
1594 | .name = name_comp2, | 1795 | [SAA7134_BOARD_AVERMEDIA_307] = { |
1595 | .vmux = 3, | 1796 | /* |
1596 | .amux = LINE1, | 1797 | Davydov Vladimir <vladimir@iqmedia.com> |
1597 | },{ | 1798 | */ |
1598 | .name = name_svideo, | 1799 | .name = "Avermedia AVerTV 307", |
1599 | .vmux = 8, | 1800 | .audio_clock = 0x00187de7, |
1600 | .amux = LINE1, | 1801 | .tuner_type = TUNER_PHILIPS_FQ1216ME, |
1601 | }}, | 1802 | .radio_type = UNSET, |
1602 | }, | 1803 | .tuner_addr = ADDR_UNSET, |
1804 | .radio_addr = ADDR_UNSET, | ||
1805 | .tda9887_conf = TDA9887_PRESENT, | ||
1806 | .inputs = {{ | ||
1807 | .name = name_tv, | ||
1808 | .vmux = 1, | ||
1809 | .amux = TV, | ||
1810 | .tv = 1, | ||
1811 | },{ | ||
1812 | .name = name_comp1, | ||
1813 | .vmux = 0, | ||
1814 | .amux = LINE1, | ||
1815 | },{ | ||
1816 | .name = name_comp2, | ||
1817 | .vmux = 3, | ||
1818 | .amux = LINE1, | ||
1819 | },{ | ||
1820 | .name = name_svideo, | ||
1821 | .vmux = 8, | ||
1822 | .amux = LINE1, | ||
1823 | }}, | ||
1824 | }, | ||
1603 | [SAA7134_BOARD_ADS_INSTANT_TV] = { | 1825 | [SAA7134_BOARD_ADS_INSTANT_TV] = { |
1604 | .name = "ADS Tech Instant TV (saa7135)", | 1826 | .name = "ADS Tech Instant TV (saa7135)", |
1827 | .audio_clock = 0x00187de7, | ||
1828 | .tuner_type = TUNER_PHILIPS_TDA8290, | ||
1829 | .radio_type = UNSET, | ||
1830 | .tuner_addr = ADDR_UNSET, | ||
1831 | .radio_addr = ADDR_UNSET, | ||
1832 | .inputs = {{ | ||
1833 | .name = name_tv, | ||
1834 | .vmux = 1, | ||
1835 | .amux = TV, | ||
1836 | .tv = 1, | ||
1837 | },{ | ||
1838 | .name = name_comp1, | ||
1839 | .vmux = 3, | ||
1840 | .amux = LINE2, | ||
1841 | },{ | ||
1842 | .name = name_svideo, | ||
1843 | .vmux = 8, | ||
1844 | .amux = LINE2, | ||
1845 | }}, | ||
1846 | }, | ||
1847 | [SAA7134_BOARD_KWORLD_VSTREAM_XPERT] = { | ||
1848 | .name = "Kworld/Tevion V-Stream Xpert TV PVR7134", | ||
1605 | .audio_clock = 0x00187de7, | 1849 | .audio_clock = 0x00187de7, |
1606 | .tuner_type = TUNER_PHILIPS_TDA8290, | 1850 | .tuner_type = TUNER_PHILIPS_PAL_I, |
1607 | .inputs = {{ | 1851 | .radio_type = UNSET, |
1608 | .name = name_tv, | 1852 | .tuner_addr = ADDR_UNSET, |
1609 | .vmux = 1, | 1853 | .radio_addr = ADDR_UNSET, |
1610 | .amux = TV, | 1854 | .gpiomask = 0x0700, |
1611 | .tv = 1, | 1855 | .inputs = {{ |
1612 | },{ | 1856 | .name = name_tv, |
1613 | .name = name_comp1, | 1857 | .vmux = 1, |
1614 | .vmux = 3, | 1858 | .amux = TV, |
1615 | .amux = LINE2, | 1859 | .tv = 1, |
1616 | },{ | 1860 | .gpio = 0x000, |
1617 | .name = name_svideo, | 1861 | },{ |
1618 | .vmux = 8, | 1862 | .name = name_comp1, |
1619 | .amux = LINE2, | 1863 | .vmux = 3, |
1620 | }}, | 1864 | .amux = LINE1, |
1621 | }, | 1865 | .gpio = 0x200, /* gpio by DScaler */ |
1622 | [SAA7134_BOARD_KWORLD_VSTREAM_XPERT] = { | 1866 | },{ |
1623 | .name = "Kworld/Tevion V-Stream Xpert TV PVR7134", | 1867 | .name = name_svideo, |
1624 | .audio_clock = 0x00187de7, | 1868 | .vmux = 0, |
1625 | .tuner_type = TUNER_PHILIPS_PAL_I, | 1869 | .amux = LINE1, |
1626 | .gpiomask = 0x0700, | 1870 | .gpio = 0x200, |
1627 | .inputs = {{ | 1871 | }}, |
1628 | .name = name_tv, | 1872 | .radio = { |
1629 | .vmux = 1, | 1873 | .name = name_radio, |
1630 | .amux = TV, | 1874 | .amux = LINE1, |
1631 | .tv = 1, | 1875 | .gpio = 0x100, |
1632 | .gpio = 0x000, | 1876 | }, |
1633 | },{ | 1877 | .mute = { |
1634 | .name = name_comp1, | 1878 | .name = name_mute, |
1635 | .vmux = 3, | 1879 | .amux = TV, |
1636 | .amux = LINE1, | 1880 | .gpio = 0x000, |
1637 | .gpio = 0x200, //gpio by DScaler | 1881 | }, |
1638 | },{ | 1882 | }, |
1639 | .name = name_svideo, | 1883 | [SAA7134_BOARD_THYPHOON_DVBT_DUO_CARDBUS] = { |
1640 | .vmux = 0, | 1884 | .name = "Typhoon DVB-T Duo Digital/Analog Cardbus", |
1641 | .amux = LINE1, | 1885 | .audio_clock = 0x00200000, |
1642 | .gpio = 0x200, | 1886 | .tuner_type = TUNER_PHILIPS_TDA8290, |
1643 | }}, | 1887 | .radio_type = UNSET, |
1644 | .radio = { | 1888 | .tuner_addr = ADDR_UNSET, |
1645 | .name = name_radio, | 1889 | .radio_addr = ADDR_UNSET, |
1646 | .amux = LINE1, | 1890 | .mpeg = SAA7134_MPEG_DVB, |
1647 | .gpio = 0x100, | 1891 | /* .gpiomask = 0xe000, */ |
1648 | }, | 1892 | .inputs = {{ |
1649 | }, | 1893 | .name = name_tv, |
1650 | }; | 1894 | .vmux = 1, |
1895 | .amux = TV, | ||
1896 | /* .gpio = 0x0000, */ | ||
1897 | .tv = 1, | ||
1898 | },{ | ||
1899 | .name = name_comp1, /* Composite signal on S-Video input */ | ||
1900 | .vmux = 0, | ||
1901 | .amux = LINE2, | ||
1902 | /* .gpio = 0x4000, */ | ||
1903 | },{ | ||
1904 | .name = name_comp2, /* Composite input */ | ||
1905 | .vmux = 3, | ||
1906 | .amux = LINE2, | ||
1907 | /* .gpio = 0x4000, */ | ||
1908 | },{ | ||
1909 | .name = name_svideo, /* S-Video signal on S-Video input */ | ||
1910 | .vmux = 8, | ||
1911 | .amux = LINE2, | ||
1912 | /* .gpio = 0x4000, */ | ||
1913 | }}, | ||
1914 | .radio = { | ||
1915 | .name = name_radio, | ||
1916 | .amux = LINE2, | ||
1917 | }, | ||
1918 | .mute = { | ||
1919 | .name = name_mute, | ||
1920 | .amux = LINE1, | ||
1921 | }, | ||
1922 | }, | ||
1923 | [SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII] = { | ||
1924 | .name = "Compro VideoMate TV Gold+II", | ||
1925 | .audio_clock = 0x002187de7, | ||
1926 | .tuner_type = TUNER_LG_PAL_NEW_TAPC, | ||
1927 | .radio_type = TUNER_TEA5767, | ||
1928 | .tuner_addr = 0x63, | ||
1929 | .radio_addr = 0x60, | ||
1930 | .gpiomask = 0x8c1880, | ||
1931 | .inputs = {{ | ||
1932 | .name = name_svideo, | ||
1933 | .vmux = 0, | ||
1934 | .amux = LINE1, | ||
1935 | .gpio = 0x800800, | ||
1936 | },{ | ||
1937 | .name = name_comp1, | ||
1938 | .vmux = 3, | ||
1939 | .amux = LINE1, | ||
1940 | .gpio = 0x801000, | ||
1941 | },{ | ||
1942 | .name = name_tv, | ||
1943 | .vmux = 1, | ||
1944 | .amux = TV, | ||
1945 | .tv = 1, | ||
1946 | .gpio = 0x800000, | ||
1947 | }}, | ||
1948 | .radio = { | ||
1949 | .name = name_radio, | ||
1950 | .amux = TV, | ||
1951 | .gpio = 0x880000, | ||
1952 | }, | ||
1953 | .mute = { | ||
1954 | .name = name_mute, | ||
1955 | .amux = LINE2, | ||
1956 | .gpio = 0x840000, | ||
1957 | }, | ||
1958 | }, | ||
1959 | [SAA7134_BOARD_KWORLD_XPERT] = { | ||
1960 | /* | ||
1961 | FIXME: | ||
1962 | - Remote control doesn't initialize properly. | ||
1963 | - Audio volume starts muted, | ||
1964 | then gradually increases after channel change. | ||
1965 | - Overlay scaling problems (application error?) | ||
1966 | - Composite S-Video untested. | ||
1967 | From: Konrad Rzepecki <hannibal@megapolis.pl> | ||
1968 | */ | ||
1969 | .name = "Kworld Xpert TV PVR7134", | ||
1970 | .audio_clock = 0x00187de7, | ||
1971 | .tuner_type = TUNER_TENA_9533_DI, | ||
1972 | .radio_type = TUNER_TEA5767, | ||
1973 | .tuner_addr = 0x61, | ||
1974 | .radio_addr = 0x60, | ||
1975 | .gpiomask = 0x0700, | ||
1976 | .inputs = {{ | ||
1977 | .name = name_tv, | ||
1978 | .vmux = 1, | ||
1979 | .amux = TV, | ||
1980 | .tv = 1, | ||
1981 | .gpio = 0x000, | ||
1982 | },{ | ||
1983 | .name = name_comp1, | ||
1984 | .vmux = 3, | ||
1985 | .amux = LINE1, | ||
1986 | .gpio = 0x200, /* gpio by DScaler */ | ||
1987 | },{ | ||
1988 | .name = name_svideo, | ||
1989 | .vmux = 0, | ||
1990 | .amux = LINE1, | ||
1991 | .gpio = 0x200, | ||
1992 | }}, | ||
1993 | .radio = { | ||
1994 | .name = name_radio, | ||
1995 | .amux = LINE1, | ||
1996 | .gpio = 0x100, | ||
1997 | }, | ||
1998 | .mute = { | ||
1999 | .name = name_mute, | ||
2000 | .amux = TV, | ||
2001 | .gpio = 0x000, | ||
2002 | }, | ||
2003 | }, | ||
2004 | }; | ||
2005 | |||
1651 | 2006 | ||
1652 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); | 2007 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); |
1653 | 2008 | ||
@@ -1661,13 +2016,13 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
1661 | .subvendor = PCI_VENDOR_ID_PHILIPS, | 2016 | .subvendor = PCI_VENDOR_ID_PHILIPS, |
1662 | .subdevice = 0x2001, | 2017 | .subdevice = 0x2001, |
1663 | .driver_data = SAA7134_BOARD_PROTEUS_PRO, | 2018 | .driver_data = SAA7134_BOARD_PROTEUS_PRO, |
1664 | },{ | 2019 | },{ |
1665 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2020 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1666 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | 2021 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, |
1667 | .subvendor = PCI_VENDOR_ID_PHILIPS, | 2022 | .subvendor = PCI_VENDOR_ID_PHILIPS, |
1668 | .subdevice = 0x2001, | 2023 | .subdevice = 0x2001, |
1669 | .driver_data = SAA7134_BOARD_PROTEUS_PRO, | 2024 | .driver_data = SAA7134_BOARD_PROTEUS_PRO, |
1670 | },{ | 2025 | },{ |
1671 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2026 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1672 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2027 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
1673 | .subvendor = PCI_VENDOR_ID_PHILIPS, | 2028 | .subvendor = PCI_VENDOR_ID_PHILIPS, |
@@ -1676,70 +2031,70 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
1676 | },{ | 2031 | },{ |
1677 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2032 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1678 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2033 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
1679 | .subvendor = 0x1131, | 2034 | .subvendor = 0x1131, |
1680 | .subdevice = 0x4e85, | 2035 | .subdevice = 0x4e85, |
1681 | .driver_data = SAA7134_BOARD_MONSTERTV, | 2036 | .driver_data = SAA7134_BOARD_MONSTERTV, |
1682 | },{ | 2037 | },{ |
1683 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2038 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1684 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2039 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
1685 | .subvendor = 0x153B, | 2040 | .subvendor = 0x153B, |
1686 | .subdevice = 0x1142, | 2041 | .subdevice = 0x1142, |
1687 | .driver_data = SAA7134_BOARD_CINERGY400, | 2042 | .driver_data = SAA7134_BOARD_CINERGY400, |
1688 | },{ | 2043 | },{ |
1689 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2044 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1690 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2045 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
1691 | .subvendor = 0x153B, | 2046 | .subvendor = 0x153B, |
1692 | .subdevice = 0x1143, | 2047 | .subdevice = 0x1143, |
1693 | .driver_data = SAA7134_BOARD_CINERGY600, | 2048 | .driver_data = SAA7134_BOARD_CINERGY600, |
1694 | },{ | 2049 | },{ |
1695 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2050 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1696 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2051 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
1697 | .subvendor = 0x153B, | 2052 | .subvendor = 0x153B, |
1698 | .subdevice = 0x1158, | 2053 | .subdevice = 0x1158, |
1699 | .driver_data = SAA7134_BOARD_CINERGY600_MK3, | 2054 | .driver_data = SAA7134_BOARD_CINERGY600_MK3, |
1700 | },{ | 2055 | },{ |
1701 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2056 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1702 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | 2057 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, |
1703 | .subvendor = 0x153b, | 2058 | .subvendor = 0x153b, |
1704 | .subdevice = 0x1162, | 2059 | .subdevice = 0x1162, |
1705 | .driver_data = SAA7134_BOARD_CINERGY400_CARDBUS, | 2060 | .driver_data = SAA7134_BOARD_CINERGY400_CARDBUS, |
1706 | },{ | 2061 | },{ |
1707 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2062 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1708 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2063 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
1709 | .subvendor = 0x5168, | 2064 | .subvendor = 0x5168, |
1710 | .subdevice = 0x0138, | 2065 | .subdevice = 0x0138, |
1711 | .driver_data = SAA7134_BOARD_FLYVIDEO3000, | 2066 | .driver_data = SAA7134_BOARD_FLYVIDEO3000, |
1712 | },{ | 2067 | },{ |
1713 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2068 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1714 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2069 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
1715 | .subvendor = 0x4e42, //"Typhoon PCI Capture TV Card" Art.No. 50673 | 2070 | .subvendor = 0x4e42, /* "Typhoon PCI Capture TV Card" Art.No. 50673 */ |
1716 | .subdevice = 0x0138, | 2071 | .subdevice = 0x0138, |
1717 | .driver_data = SAA7134_BOARD_FLYVIDEO3000, | 2072 | .driver_data = SAA7134_BOARD_FLYVIDEO3000, |
1718 | },{ | 2073 | },{ |
1719 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2074 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1720 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | 2075 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, |
1721 | .subvendor = 0x5168, | 2076 | .subvendor = 0x5168, |
1722 | .subdevice = 0x0138, | 2077 | .subdevice = 0x0138, |
1723 | .driver_data = SAA7134_BOARD_FLYVIDEO2000, | 2078 | .driver_data = SAA7134_BOARD_FLYVIDEO2000, |
1724 | },{ | 2079 | },{ |
1725 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2080 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1726 | .device = PCI_DEVICE_ID_PHILIPS_SAA7135, | 2081 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, |
1727 | .subvendor = 0x5168, | 2082 | .subvendor = 0x5168, |
1728 | .subdevice = 0x0212, /* minipci, LR212 */ | 2083 | .subdevice = 0x0212, /* minipci, LR212 */ |
1729 | .driver_data = SAA7134_BOARD_FLYTVPLATINUM_MINI, | 2084 | .driver_data = SAA7134_BOARD_FLYTVPLATINUM_MINI, |
1730 | },{ | 2085 | },{ |
1731 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2086 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1732 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | 2087 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, |
1733 | .subvendor = 0x5168, /* Animation Technologies (LifeView) */ | 2088 | .subvendor = 0x5168, /* Animation Technologies (LifeView) */ |
1734 | .subdevice = 0x0214, /* Standard PCI, LR214WF */ | 2089 | .subdevice = 0x0214, /* Standard PCI, LR214WF */ |
1735 | .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM, | 2090 | .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM, |
1736 | },{ | 2091 | },{ |
1737 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2092 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1738 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | 2093 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, |
1739 | .subvendor = 0x1489, /* KYE */ | 2094 | .subvendor = 0x1489, /* KYE */ |
1740 | .subdevice = 0x0214, /* Genius VideoWonder ProTV */ | 2095 | .subdevice = 0x0214, /* Genius VideoWonder ProTV */ |
1741 | .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM, /* is an LR214WF actually */ | 2096 | .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM, /* is an LR214WF actually */ |
1742 | },{ | 2097 | },{ |
1743 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2098 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1744 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2099 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
1745 | .subvendor = 0x16be, | 2100 | .subvendor = 0x16be, |
@@ -1758,36 +2113,36 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
1758 | .subdevice = 0x226b, | 2113 | .subdevice = 0x226b, |
1759 | .driver_data = SAA7134_BOARD_ELSA_500TV, | 2114 | .driver_data = SAA7134_BOARD_ELSA_500TV, |
1760 | },{ | 2115 | },{ |
1761 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2116 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1762 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2117 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
1763 | .subvendor = PCI_VENDOR_ID_ASUSTEK, | 2118 | .subvendor = PCI_VENDOR_ID_ASUSTEK, |
1764 | .subdevice = 0x4842, | 2119 | .subdevice = 0x4842, |
1765 | .driver_data = SAA7134_BOARD_ASUSTeK_TVFM7134, | 2120 | .driver_data = SAA7134_BOARD_ASUSTeK_TVFM7134, |
1766 | },{ | 2121 | },{ |
1767 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2122 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1768 | .device = PCI_DEVICE_ID_PHILIPS_SAA7135, | 2123 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, |
1769 | .subvendor = PCI_VENDOR_ID_ASUSTEK, | 2124 | .subvendor = PCI_VENDOR_ID_ASUSTEK, |
1770 | .subdevice = 0x4845, | 2125 | .subdevice = 0x4845, |
1771 | .driver_data = SAA7135_BOARD_ASUSTeK_TVFM7135, | 2126 | .driver_data = SAA7134_BOARD_ASUSTeK_TVFM7135, |
1772 | },{ | 2127 | },{ |
1773 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2128 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1774 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2129 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
1775 | .subvendor = PCI_VENDOR_ID_ASUSTEK, | 2130 | .subvendor = PCI_VENDOR_ID_ASUSTEK, |
1776 | .subdevice = 0x4830, | 2131 | .subdevice = 0x4830, |
1777 | .driver_data = SAA7134_BOARD_ASUSTeK_TVFM7134, | 2132 | .driver_data = SAA7134_BOARD_ASUSTeK_TVFM7134, |
1778 | },{ | 2133 | },{ |
1779 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2134 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1780 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | 2135 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, |
1781 | .subvendor = PCI_VENDOR_ID_ASUSTEK, | 2136 | .subvendor = PCI_VENDOR_ID_ASUSTEK, |
1782 | .subdevice = 0x4843, | 2137 | .subdevice = 0x4843, |
1783 | .driver_data = SAA7134_BOARD_ASUSTEK_TVFM7133, | 2138 | .driver_data = SAA7134_BOARD_ASUSTEK_TVFM7133, |
2139 | },{ | ||
2140 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2141 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
2142 | .subvendor = PCI_VENDOR_ID_ASUSTEK, | ||
2143 | .subdevice = 0x4840, | ||
2144 | .driver_data = SAA7134_BOARD_ASUSTeK_TVFM7134, | ||
1784 | },{ | 2145 | },{ |
1785 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
1786 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
1787 | .subvendor = PCI_VENDOR_ID_ASUSTEK, | ||
1788 | .subdevice = 0x4840, | ||
1789 | .driver_data = SAA7134_BOARD_ASUSTeK_TVFM7134, | ||
1790 | },{ | ||
1791 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2146 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1792 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2147 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
1793 | .subvendor = PCI_VENDOR_ID_PHILIPS, | 2148 | .subvendor = PCI_VENDOR_ID_PHILIPS, |
@@ -1808,118 +2163,118 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
1808 | },{ | 2163 | },{ |
1809 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2164 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1810 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2165 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
1811 | .subvendor = 0x1131, | 2166 | .subvendor = 0x1131, |
1812 | .subdevice = 0x7133, | 2167 | .subdevice = 0x7133, |
1813 | .driver_data = SAA7134_BOARD_VA1000POWER, | 2168 | .driver_data = SAA7134_BOARD_VA1000POWER, |
1814 | },{ | 2169 | },{ |
1815 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2170 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1816 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | 2171 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, |
1817 | .subvendor = PCI_VENDOR_ID_PHILIPS, | 2172 | .subvendor = PCI_VENDOR_ID_PHILIPS, |
1818 | .subdevice = 0x2001, | 2173 | .subdevice = 0x2001, |
1819 | .driver_data = SAA7134_BOARD_10MOONSTVMASTER, | 2174 | .driver_data = SAA7134_BOARD_10MOONSTVMASTER, |
1820 | },{ | 2175 | },{ |
1821 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2176 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1822 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | 2177 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, |
1823 | .subvendor = 0x185b, | 2178 | .subvendor = 0x185b, |
1824 | .subdevice = 0xc100, | 2179 | .subdevice = 0xc100, |
1825 | .driver_data = SAA7134_BOARD_VIDEOMATE_TV, | 2180 | .driver_data = SAA7134_BOARD_VIDEOMATE_TV, |
1826 | },{ | 2181 | },{ |
1827 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2182 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1828 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | 2183 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, |
1829 | .subvendor = 0x185b, | 2184 | .subvendor = 0x185b, |
1830 | .subdevice = 0xc100, | 2185 | .subdevice = 0xc100, |
1831 | .driver_data = SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS, | 2186 | .driver_data = SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS, |
1832 | },{ | 2187 | },{ |
1833 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2188 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1834 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | 2189 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, |
1835 | .subvendor = PCI_VENDOR_ID_MATROX, | 2190 | .subvendor = PCI_VENDOR_ID_MATROX, |
1836 | .subdevice = 0x48d0, | 2191 | .subdevice = 0x48d0, |
1837 | .driver_data = SAA7134_BOARD_CRONOS_PLUS, | 2192 | .driver_data = SAA7134_BOARD_CRONOS_PLUS, |
1838 | },{ | 2193 | },{ |
1839 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2194 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1840 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2195 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
1841 | .subvendor = 0x1461, /* Avermedia Technologies Inc */ | 2196 | .subvendor = 0x1461, /* Avermedia Technologies Inc */ |
1842 | .subdevice = 0xa70b, | 2197 | .subdevice = 0xa70b, |
1843 | .driver_data = SAA7134_BOARD_MD2819, | 2198 | .driver_data = SAA7134_BOARD_MD2819, |
1844 | },{ | 2199 | },{ |
1845 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2200 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1846 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | 2201 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, |
1847 | .subvendor = 0x1461, /* Avermedia Technologies Inc */ | 2202 | .subvendor = 0x1461, /* Avermedia Technologies Inc */ |
1848 | .subdevice = 0x2115, | 2203 | .subdevice = 0x2115, |
1849 | .driver_data = SAA7134_BOARD_AVERMEDIA_STUDIO_305, | 2204 | .driver_data = SAA7134_BOARD_AVERMEDIA_STUDIO_305, |
1850 | },{ | 2205 | },{ |
1851 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2206 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1852 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | 2207 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, |
1853 | .subvendor = 0x1461, /* Avermedia Technologies Inc */ | 2208 | .subvendor = 0x1461, /* Avermedia Technologies Inc */ |
1854 | .subdevice = 0x2108, | 2209 | .subdevice = 0x2108, |
1855 | .driver_data = SAA7134_BOARD_AVERMEDIA_305, | 2210 | .driver_data = SAA7134_BOARD_AVERMEDIA_305, |
1856 | },{ | 2211 | },{ |
1857 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2212 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1858 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | 2213 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, |
1859 | .subvendor = 0x1461, /* Avermedia Technologies Inc */ | 2214 | .subvendor = 0x1461, /* Avermedia Technologies Inc */ |
1860 | .subdevice = 0x10ff, | 2215 | .subdevice = 0x10ff, |
1861 | .driver_data = SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER, | 2216 | .driver_data = SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER, |
1862 | },{ | 2217 | },{ |
1863 | /* AVerMedia CardBus */ | 2218 | /* AVerMedia CardBus */ |
1864 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2219 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1865 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2220 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
1866 | .subvendor = 0x1461, /* Avermedia Technologies Inc */ | 2221 | .subvendor = 0x1461, /* Avermedia Technologies Inc */ |
1867 | .subdevice = 0xd6ee, | 2222 | .subdevice = 0xd6ee, |
1868 | .driver_data = SAA7134_BOARD_AVERMEDIA_CARDBUS, | 2223 | .driver_data = SAA7134_BOARD_AVERMEDIA_CARDBUS, |
1869 | },{ | 2224 | },{ |
1870 | /* TransGear 3000TV */ | 2225 | /* TransGear 3000TV */ |
1871 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2226 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1872 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | 2227 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, |
1873 | .subvendor = 0x1461, /* Avermedia Technologies Inc */ | 2228 | .subvendor = 0x1461, /* Avermedia Technologies Inc */ |
1874 | .subdevice = 0x050c, | 2229 | .subdevice = 0x050c, |
1875 | .driver_data = SAA7134_BOARD_TG3000TV, | 2230 | .driver_data = SAA7134_BOARD_TG3000TV, |
1876 | },{ | 2231 | },{ |
1877 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
1878 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
1879 | .subvendor = 0x11bd, | ||
1880 | .subdevice = 0x002b, | ||
1881 | .driver_data = SAA7134_BOARD_PINNACLE_PCTV_STEREO, | ||
1882 | },{ | ||
1883 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
1884 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
1885 | .subvendor = 0x11bd, | ||
1886 | .subdevice = 0x002d, | ||
1887 | .driver_data = SAA7134_BOARD_PINNACLE_300I_DVBT_PAL, | ||
1888 | },{ | ||
1889 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
1890 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
1891 | .subvendor = 0x1019, | ||
1892 | .subdevice = 0x4cb4, | ||
1893 | .driver_data = SAA7134_BOARD_ECS_TVP3XP, | ||
1894 | },{ | ||
1895 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
1896 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
1897 | .subvendor = 0x1019, | ||
1898 | .subdevice = 0x4cb5, | ||
1899 | .driver_data = SAA7134_BOARD_ECS_TVP3XP_4CB5, | ||
1900 | },{ | ||
1901 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2232 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1902 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | 2233 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
1903 | .subvendor = 0x12ab, | 2234 | .subvendor = 0x11bd, |
1904 | .subdevice = 0x0800, | 2235 | .subdevice = 0x002b, |
1905 | .driver_data = SAA7133_BOARD_UPMOST_PURPLE_TV, | 2236 | .driver_data = SAA7134_BOARD_PINNACLE_PCTV_STEREO, |
2237 | },{ | ||
2238 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2239 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
2240 | .subvendor = 0x11bd, | ||
2241 | .subdevice = 0x002d, | ||
2242 | .driver_data = SAA7134_BOARD_PINNACLE_300I_DVBT_PAL, | ||
2243 | },{ | ||
2244 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2245 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
2246 | .subvendor = 0x1019, | ||
2247 | .subdevice = 0x4cb4, | ||
2248 | .driver_data = SAA7134_BOARD_ECS_TVP3XP, | ||
2249 | },{ | ||
2250 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2251 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
2252 | .subvendor = 0x1019, | ||
2253 | .subdevice = 0x4cb5, | ||
2254 | .driver_data = SAA7134_BOARD_ECS_TVP3XP_4CB5, | ||
2255 | },{ | ||
2256 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2257 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
2258 | .subvendor = 0x12ab, | ||
2259 | .subdevice = 0x0800, | ||
2260 | .driver_data = SAA7134_BOARD_UPMOST_PURPLE_TV, | ||
1906 | },{ | 2261 | },{ |
1907 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2262 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1908 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | 2263 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, |
1909 | .subvendor = 0x153B, | 2264 | .subvendor = 0x153B, |
1910 | .subdevice = 0x1152, | 2265 | .subdevice = 0x1152, |
1911 | .driver_data = SAA7134_BOARD_CINERGY200, | 2266 | .driver_data = SAA7134_BOARD_CINERGY200, |
1912 | },{ | 2267 | },{ |
1913 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2268 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1914 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | 2269 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, |
1915 | .subvendor = 0x185b, | 2270 | .subvendor = 0x185b, |
1916 | .subdevice = 0xc100, | 2271 | .subdevice = 0xc100, |
1917 | .driver_data = SAA7134_BOARD_VIDEOMATE_TV_PVR, | 2272 | .driver_data = SAA7134_BOARD_VIDEOMATE_TV_PVR, |
1918 | },{ | 2273 | },{ |
1919 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2274 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1920 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | 2275 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, |
1921 | .subvendor = 0x1131, | 2276 | .subvendor = 0x1131, |
1922 | .subdevice = 0, | 2277 | .subdevice = 0, |
1923 | .driver_data = SAA7134_BOARD_SABRENT_SBTTVFM, | 2278 | .driver_data = SAA7134_BOARD_SABRENT_SBTTVFM, |
1924 | },{ | 2279 | },{ |
1925 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2280 | .vendor = PCI_VENDOR_ID_PHILIPS, |
@@ -1939,18 +2294,24 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
1939 | .subvendor = 0x185b, | 2294 | .subvendor = 0x185b, |
1940 | .subdevice = 0xc200, | 2295 | .subdevice = 0xc200, |
1941 | .driver_data = SAA7134_BOARD_VIDEOMATE_GOLD_PLUS, | 2296 | .driver_data = SAA7134_BOARD_VIDEOMATE_GOLD_PLUS, |
1942 | },{ | 2297 | },{ |
1943 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2298 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1944 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2299 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
1945 | .subvendor = 0x1540, | 2300 | .subvendor = 0x1540, |
1946 | .subdevice = 0x9524, | 2301 | .subdevice = 0x9524, |
1947 | .driver_data = SAA7134_BOARD_PROVIDEO_PV952, | 2302 | .driver_data = SAA7134_BOARD_PROVIDEO_PV952, |
1948 | 2303 | ||
1949 | },{ | 2304 | },{ |
1950 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2305 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1951 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | 2306 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, |
1952 | .subvendor = 0x5168, | 2307 | .subvendor = 0x5168, |
1953 | .subdevice = 0x0306, | 2308 | .subdevice = 0x0502, /* Cardbus version */ |
2309 | .driver_data = SAA7134_BOARD_FLYDVBTDUO, | ||
2310 | },{ | ||
2311 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2312 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
2313 | .subvendor = 0x5168, | ||
2314 | .subdevice = 0x0306, /* PCI version */ | ||
1954 | .driver_data = SAA7134_BOARD_FLYDVBTDUO, | 2315 | .driver_data = SAA7134_BOARD_FLYDVBTDUO, |
1955 | },{ | 2316 | },{ |
1956 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2317 | .vendor = PCI_VENDOR_ID_PHILIPS, |
@@ -1959,31 +2320,44 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
1959 | .subdevice = 0xf31f, | 2320 | .subdevice = 0xf31f, |
1960 | .driver_data = SAA7134_BOARD_AVERMEDIA_GO_007_FM, | 2321 | .driver_data = SAA7134_BOARD_AVERMEDIA_GO_007_FM, |
1961 | 2322 | ||
1962 | },{ | 2323 | },{ |
1963 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2324 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1964 | .device = PCI_DEVICE_ID_PHILIPS_SAA7135, | 2325 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, |
2326 | .subvendor = PCI_VENDOR_ID_PHILIPS, | ||
2327 | .subdevice = 0x2004, | ||
2328 | .driver_data = SAA7134_BOARD_PHILIPS_TOUGH, | ||
2329 | },{ | ||
2330 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2331 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
1965 | .subvendor = 0x1421, | 2332 | .subvendor = 0x1421, |
1966 | .subdevice = 0x0350, /* PCI version */ | 2333 | .subdevice = 0x0350, /* PCI version */ |
1967 | .driver_data = SAA7134_BOARD_ADS_INSTANT_TV, | 2334 | .driver_data = SAA7134_BOARD_ADS_INSTANT_TV, |
1968 | 2335 | ||
1969 | },{ | 2336 | },{ |
1970 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2337 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1971 | .device = PCI_DEVICE_ID_PHILIPS_SAA7135, | 2338 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, |
1972 | .subvendor = 0x1421, | 2339 | .subvendor = 0x1421, |
1973 | .subdevice = 0x0370, /* cardbus version */ | 2340 | .subdevice = 0x0370, /* cardbus version */ |
1974 | .driver_data = SAA7134_BOARD_ADS_INSTANT_TV, | 2341 | .driver_data = SAA7134_BOARD_ADS_INSTANT_TV, |
1975 | 2342 | ||
1976 | },{ | 2343 | },{ /* Typhoon DVB-T Duo Digital/Analog Cardbus */ |
2344 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2345 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
2346 | .subvendor = 0x4e42, | ||
2347 | .subdevice = 0x0502, | ||
2348 | .driver_data = SAA7134_BOARD_THYPHOON_DVBT_DUO_CARDBUS, | ||
2349 | |||
2350 | },{ | ||
1977 | /* --- boards without eeprom + subsystem ID --- */ | 2351 | /* --- boards without eeprom + subsystem ID --- */ |
1978 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2352 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1979 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2353 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
1980 | .subvendor = PCI_VENDOR_ID_PHILIPS, | 2354 | .subvendor = PCI_VENDOR_ID_PHILIPS, |
1981 | .subdevice = 0, | 2355 | .subdevice = 0, |
1982 | .driver_data = SAA7134_BOARD_NOAUTO, | 2356 | .driver_data = SAA7134_BOARD_NOAUTO, |
1983 | },{ | 2357 | },{ |
1984 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2358 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1985 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | 2359 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, |
1986 | .subvendor = PCI_VENDOR_ID_PHILIPS, | 2360 | .subvendor = PCI_VENDOR_ID_PHILIPS, |
1987 | .subdevice = 0, | 2361 | .subdevice = 0, |
1988 | .driver_data = SAA7134_BOARD_NOAUTO, | 2362 | .driver_data = SAA7134_BOARD_NOAUTO, |
1989 | },{ | 2363 | },{ |
@@ -1991,26 +2365,26 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
1991 | /* --- default catch --- */ | 2365 | /* --- default catch --- */ |
1992 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2366 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1993 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | 2367 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, |
1994 | .subvendor = PCI_ANY_ID, | 2368 | .subvendor = PCI_ANY_ID, |
1995 | .subdevice = PCI_ANY_ID, | 2369 | .subdevice = PCI_ANY_ID, |
1996 | .driver_data = SAA7134_BOARD_UNKNOWN, | 2370 | .driver_data = SAA7134_BOARD_UNKNOWN, |
1997 | },{ | 2371 | },{ |
1998 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2372 | .vendor = PCI_VENDOR_ID_PHILIPS, |
1999 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | 2373 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, |
2000 | .subvendor = PCI_ANY_ID, | 2374 | .subvendor = PCI_ANY_ID, |
2001 | .subdevice = PCI_ANY_ID, | 2375 | .subdevice = PCI_ANY_ID, |
2002 | .driver_data = SAA7134_BOARD_UNKNOWN, | 2376 | .driver_data = SAA7134_BOARD_UNKNOWN, |
2003 | },{ | 2377 | },{ |
2004 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2378 | .vendor = PCI_VENDOR_ID_PHILIPS, |
2005 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2379 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
2006 | .subvendor = PCI_ANY_ID, | 2380 | .subvendor = PCI_ANY_ID, |
2007 | .subdevice = PCI_ANY_ID, | 2381 | .subdevice = PCI_ANY_ID, |
2008 | .driver_data = SAA7134_BOARD_UNKNOWN, | 2382 | .driver_data = SAA7134_BOARD_UNKNOWN, |
2009 | },{ | 2383 | },{ |
2010 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2384 | .vendor = PCI_VENDOR_ID_PHILIPS, |
2011 | .device = PCI_DEVICE_ID_PHILIPS_SAA7135, | 2385 | .device = PCI_DEVICE_ID_PHILIPS_SAA7135, |
2012 | .subvendor = PCI_ANY_ID, | 2386 | .subvendor = PCI_ANY_ID, |
2013 | .subdevice = PCI_ANY_ID, | 2387 | .subdevice = PCI_ANY_ID, |
2014 | .driver_data = SAA7134_BOARD_UNKNOWN, | 2388 | .driver_data = SAA7134_BOARD_UNKNOWN, |
2015 | },{ | 2389 | },{ |
2016 | /* --- end of list --- */ | 2390 | /* --- end of list --- */ |
@@ -2021,46 +2395,9 @@ MODULE_DEVICE_TABLE(pci, saa7134_pci_tbl); | |||
2021 | /* ----------------------------------------------------------- */ | 2395 | /* ----------------------------------------------------------- */ |
2022 | /* flyvideo tweaks */ | 2396 | /* flyvideo tweaks */ |
2023 | 2397 | ||
2024 | #if 0 | ||
2025 | static struct { | ||
2026 | char *model; | ||
2027 | int tuner_type; | ||
2028 | } fly_list[0x20] = { | ||
2029 | /* default catch ... */ | ||
2030 | [ 0 ... 0x1f ] = { | ||
2031 | .model = "UNKNOWN", | ||
2032 | .tuner_type = TUNER_ABSENT, | ||
2033 | }, | ||
2034 | /* ... the ones known so far */ | ||
2035 | [ 0x05 ] = { | ||
2036 | .model = "PAL-BG", | ||
2037 | .tuner_type = TUNER_LG_PAL_NEW_TAPC, | ||
2038 | }, | ||
2039 | [ 0x10 ] = { | ||
2040 | .model = "PAL-BG / PAL-DK", | ||
2041 | .tuner_type = TUNER_PHILIPS_PAL, | ||
2042 | }, | ||
2043 | [ 0x15 ] = { | ||
2044 | .model = "NTSC", | ||
2045 | .tuner_type = TUNER_ABSENT /* FIXME */, | ||
2046 | }, | ||
2047 | }; | ||
2048 | #endif | ||
2049 | 2398 | ||
2050 | static void board_flyvideo(struct saa7134_dev *dev) | 2399 | static void board_flyvideo(struct saa7134_dev *dev) |
2051 | { | 2400 | { |
2052 | #if 0 | ||
2053 | /* non-working attempt to detect the correct tuner type ... */ | ||
2054 | u32 value; | ||
2055 | int index; | ||
2056 | |||
2057 | value = dev->gpio_value; | ||
2058 | index = (value & 0x1f00) >> 8; | ||
2059 | printk(KERN_INFO "%s: flyvideo: gpio is 0x%x [model=%s,tuner=%d]\n", | ||
2060 | dev->name, value, fly_list[index].model, | ||
2061 | fly_list[index].tuner_type); | ||
2062 | dev->tuner_type = fly_list[index].tuner_type; | ||
2063 | #endif | ||
2064 | printk("%s: there are different flyvideo cards with different tuners\n" | 2401 | printk("%s: there are different flyvideo cards with different tuners\n" |
2065 | "%s: out there, you might have to use the tuner=<nr> insmod\n" | 2402 | "%s: out there, you might have to use the tuner=<nr> insmod\n" |
2066 | "%s: option to override the default value.\n", | 2403 | "%s: option to override the default value.\n", |
@@ -2071,7 +2408,7 @@ static void board_flyvideo(struct saa7134_dev *dev) | |||
2071 | 2408 | ||
2072 | int saa7134_board_init1(struct saa7134_dev *dev) | 2409 | int saa7134_board_init1(struct saa7134_dev *dev) |
2073 | { | 2410 | { |
2074 | // Always print gpio, often manufacturers encode tuner type and other info. | 2411 | /* Always print gpio, often manufacturers encode tuner type and other info. */ |
2075 | saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0); | 2412 | saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0); |
2076 | dev->gpio_value = saa_readl(SAA7134_GPIO_GPSTATUS0 >> 2); | 2413 | dev->gpio_value = saa_readl(SAA7134_GPIO_GPSTATUS0 >> 2); |
2077 | printk(KERN_INFO "%s: board init: gpio is %x\n", dev->name, dev->gpio_value); | 2414 | printk(KERN_INFO "%s: board init: gpio is %x\n", dev->name, dev->gpio_value); |
@@ -2082,7 +2419,7 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
2082 | dev->has_remote = 1; | 2419 | dev->has_remote = 1; |
2083 | board_flyvideo(dev); | 2420 | board_flyvideo(dev); |
2084 | break; | 2421 | break; |
2085 | case SAA7134_BOARD_FLYTVPLATINUM_FM: | 2422 | case SAA7134_BOARD_FLYTVPLATINUM_FM: |
2086 | case SAA7134_BOARD_CINERGY400: | 2423 | case SAA7134_BOARD_CINERGY400: |
2087 | case SAA7134_BOARD_CINERGY600: | 2424 | case SAA7134_BOARD_CINERGY600: |
2088 | case SAA7134_BOARD_CINERGY600_MK3: | 2425 | case SAA7134_BOARD_CINERGY600_MK3: |
@@ -2090,23 +2427,25 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
2090 | case SAA7134_BOARD_ECS_TVP3XP_4CB5: | 2427 | case SAA7134_BOARD_ECS_TVP3XP_4CB5: |
2091 | case SAA7134_BOARD_MD2819: | 2428 | case SAA7134_BOARD_MD2819: |
2092 | case SAA7134_BOARD_KWORLD_VSTREAM_XPERT: | 2429 | case SAA7134_BOARD_KWORLD_VSTREAM_XPERT: |
2430 | case SAA7134_BOARD_KWORLD_XPERT: | ||
2093 | case SAA7134_BOARD_AVERMEDIA_STUDIO_305: | 2431 | case SAA7134_BOARD_AVERMEDIA_STUDIO_305: |
2094 | case SAA7134_BOARD_AVERMEDIA_305: | 2432 | case SAA7134_BOARD_AVERMEDIA_305: |
2095 | case SAA7134_BOARD_AVERMEDIA_STUDIO_307: | 2433 | case SAA7134_BOARD_AVERMEDIA_STUDIO_307: |
2096 | case SAA7134_BOARD_AVERMEDIA_307: | 2434 | case SAA7134_BOARD_AVERMEDIA_307: |
2097 | case SAA7134_BOARD_AVERMEDIA_GO_007_FM: | 2435 | case SAA7134_BOARD_AVERMEDIA_GO_007_FM: |
2098 | // case SAA7134_BOARD_SABRENT_SBTTVFM: /* not finished yet */ | 2436 | /* case SAA7134_BOARD_SABRENT_SBTTVFM: */ /* not finished yet */ |
2099 | case SAA7134_BOARD_VIDEOMATE_TV_PVR: | 2437 | case SAA7134_BOARD_VIDEOMATE_TV_PVR: |
2100 | case SAA7134_BOARD_MANLI_MTV001: | 2438 | case SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII: |
2101 | case SAA7134_BOARD_MANLI_MTV002: | 2439 | case SAA7134_BOARD_MANLI_MTV001: |
2440 | case SAA7134_BOARD_MANLI_MTV002: | ||
2102 | case SAA7134_BOARD_AVACSSMARTTV: | 2441 | case SAA7134_BOARD_AVACSSMARTTV: |
2103 | dev->has_remote = 1; | 2442 | dev->has_remote = 1; |
2104 | break; | 2443 | break; |
2105 | case SAA7134_BOARD_MD5044: | 2444 | case SAA7134_BOARD_MD5044: |
2106 | printk("%s: seems there are two different versions of the MD5044\n" | 2445 | printk("%s: seems there are two different versions of the MD5044\n" |
2107 | "%s: (with the same ID) out there. If sound doesn't work for\n" | 2446 | "%s: (with the same ID) out there. If sound doesn't work for\n" |
2108 | "%s: you try the audio_clock_override=0x200000 insmod option.\n", | 2447 | "%s: you try the audio_clock_override=0x200000 insmod option.\n", |
2109 | dev->name,dev->name,dev->name); | 2448 | dev->name,dev->name,dev->name); |
2110 | break; | 2449 | break; |
2111 | case SAA7134_BOARD_CINERGY400_CARDBUS: | 2450 | case SAA7134_BOARD_CINERGY400_CARDBUS: |
2112 | /* power-up tuner chip */ | 2451 | /* power-up tuner chip */ |
@@ -2114,11 +2453,19 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
2114 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000000); | 2453 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000000); |
2115 | msleep(1); | 2454 | msleep(1); |
2116 | break; | 2455 | break; |
2456 | case SAA7134_BOARD_FLYDVBTDUO: | ||
2457 | case SAA7134_BOARD_THYPHOON_DVBT_DUO_CARDBUS: | ||
2458 | /* turn the fan on Hac: static for the time being */ | ||
2459 | saa_writeb(SAA7134_GPIO_GPMODE3, 0x08); | ||
2460 | saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06); | ||
2461 | break; | ||
2462 | case SAA7134_BOARD_AVERMEDIA_CARDBUS: | ||
2463 | /* power-up tuner chip */ | ||
2464 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0xffffffff, 0xffffffff); | ||
2465 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff); | ||
2466 | msleep(1); | ||
2467 | break; | ||
2117 | } | 2468 | } |
2118 | if (dev->has_remote) | ||
2119 | dev->irq2_mask |= (SAA7134_IRQ2_INTE_GPIO18 | | ||
2120 | SAA7134_IRQ2_INTE_GPIO18A | | ||
2121 | SAA7134_IRQ2_INTE_GPIO16 ); | ||
2122 | return 0; | 2469 | return 0; |
2123 | } | 2470 | } |
2124 | 2471 | ||
@@ -2139,10 +2486,85 @@ int saa7134_board_init2(struct saa7134_dev *dev) | |||
2139 | break; | 2486 | break; |
2140 | dev->board = board; | 2487 | dev->board = board; |
2141 | printk("%s: board type fixup: %s\n", dev->name, | 2488 | printk("%s: board type fixup: %s\n", dev->name, |
2142 | saa7134_boards[dev->board].name); | 2489 | saa7134_boards[dev->board].name); |
2143 | dev->tuner_type = saa7134_boards[dev->board].tuner_type; | 2490 | dev->tuner_type = saa7134_boards[dev->board].tuner_type; |
2144 | if (TUNER_ABSENT != dev->tuner_type) | 2491 | |
2145 | saa7134_i2c_call_clients(dev,TUNER_SET_TYPE,&dev->tuner_type); | 2492 | if (TUNER_ABSENT != dev->tuner_type) { |
2493 | struct tuner_setup tun_setup; | ||
2494 | |||
2495 | tun_setup.mode_mask = T_RADIO | T_ANALOG_TV | T_DIGITAL_TV; | ||
2496 | tun_setup.type = dev->tuner_type; | ||
2497 | tun_setup.addr = ADDR_UNSET; | ||
2498 | |||
2499 | saa7134_i2c_call_clients (dev, TUNER_SET_TYPE_ADDR, &tun_setup); | ||
2500 | } | ||
2501 | break; | ||
2502 | case SAA7134_BOARD_MD7134: | ||
2503 | { | ||
2504 | struct tuner_setup tun_setup; | ||
2505 | u8 subaddr; | ||
2506 | u8 data[3]; | ||
2507 | int ret, tuner_t; | ||
2508 | |||
2509 | struct i2c_msg msg[] = {{.addr=0x50, .flags=0, .buf=&subaddr, .len = 1}, | ||
2510 | {.addr=0x50, .flags=I2C_M_RD, .buf=data, .len = 3}}; | ||
2511 | subaddr= 0x14; | ||
2512 | tuner_t = 0; | ||
2513 | ret = i2c_transfer(&dev->i2c_adap, msg, 2); | ||
2514 | if (ret != 2) { | ||
2515 | printk(KERN_ERR "EEPROM read failure\n"); | ||
2516 | } else if ((data[0] != 0) && (data[0] != 0xff)) { | ||
2517 | /* old config structure */ | ||
2518 | subaddr = data[0] + 2; | ||
2519 | msg[1].len = 2; | ||
2520 | i2c_transfer(&dev->i2c_adap, msg, 2); | ||
2521 | tuner_t = (data[0] << 8) + data[1]; | ||
2522 | switch (tuner_t){ | ||
2523 | case 0x0103: | ||
2524 | dev->tuner_type = TUNER_PHILIPS_PAL; | ||
2525 | break; | ||
2526 | case 0x010C: | ||
2527 | dev->tuner_type = TUNER_PHILIPS_FM1216ME_MK3; | ||
2528 | break; | ||
2529 | default: | ||
2530 | printk(KERN_ERR "%s Cant determine tuner type %x from EEPROM\n", dev->name, tuner_t); | ||
2531 | } | ||
2532 | } else if ((data[1] != 0) && (data[1] != 0xff)) { | ||
2533 | /* new config structure */ | ||
2534 | subaddr = data[1] + 1; | ||
2535 | msg[1].len = 1; | ||
2536 | i2c_transfer(&dev->i2c_adap, msg, 2); | ||
2537 | subaddr = data[0] + 1; | ||
2538 | msg[1].len = 2; | ||
2539 | i2c_transfer(&dev->i2c_adap, msg, 2); | ||
2540 | tuner_t = (data[1] << 8) + data[0]; | ||
2541 | switch (tuner_t) { | ||
2542 | case 0x0005: | ||
2543 | dev->tuner_type = TUNER_PHILIPS_FM1216ME_MK3; | ||
2544 | break; | ||
2545 | case 0x001d: | ||
2546 | dev->tuner_type = TUNER_PHILIPS_FMD1216ME_MK3; | ||
2547 | printk(KERN_INFO "%s Board has DVB-T\n", dev->name); | ||
2548 | break; | ||
2549 | default: | ||
2550 | printk(KERN_ERR "%s Cant determine tuner type %x from EEPROM\n", dev->name, tuner_t); | ||
2551 | } | ||
2552 | } else { | ||
2553 | printk(KERN_ERR "%s unexpected config structure\n", dev->name); | ||
2554 | } | ||
2555 | |||
2556 | printk(KERN_INFO "%s Tuner type is %d\n", dev->name, dev->tuner_type); | ||
2557 | if (dev->tuner_type == TUNER_PHILIPS_FMD1216ME_MK3) { | ||
2558 | dev->tda9887_conf = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE | TDA9887_PORT2_ACTIVE; | ||
2559 | saa7134_i2c_call_clients(dev,TDA9887_SET_CONFIG, &dev->tda9887_conf); | ||
2560 | } | ||
2561 | |||
2562 | tun_setup.mode_mask = T_RADIO | T_ANALOG_TV | T_DIGITAL_TV; | ||
2563 | tun_setup.type = dev->tuner_type; | ||
2564 | tun_setup.addr = ADDR_UNSET; | ||
2565 | |||
2566 | saa7134_i2c_call_clients (dev, TUNER_SET_TYPE_ADDR,&tun_setup); | ||
2567 | } | ||
2146 | break; | 2568 | break; |
2147 | } | 2569 | } |
2148 | return 0; | 2570 | return 0; |
diff --git a/drivers/media/video/saa7134/saa7134-core.c b/drivers/media/video/saa7134/saa7134-core.c index f61ed1849a2a..1dbe61755e9f 100644 --- a/drivers/media/video/saa7134/saa7134-core.c +++ b/drivers/media/video/saa7134/saa7134-core.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * $Id: saa7134-core.c,v 1.30 2005/05/22 19:23:39 nsh Exp $ | 2 | * $Id: saa7134-core.c,v 1.39 2005/07/05 17:37:35 nsh Exp $ |
3 | * | 3 | * |
4 | * device driver for philips saa7134 based TV cards | 4 | * device driver for philips saa7134 based TV cards |
5 | * driver core | 5 | * driver core |
@@ -183,46 +183,6 @@ void saa7134_track_gpio(struct saa7134_dev *dev, char *msg) | |||
183 | 183 | ||
184 | /* ------------------------------------------------------------------ */ | 184 | /* ------------------------------------------------------------------ */ |
185 | 185 | ||
186 | #if 0 | ||
187 | static char *dec1_bits[8] = { | ||
188 | "DCSTD0", "DCSCT1", "WIPA", "GLIMB", | ||
189 | "GLIMT", "SLTCA", "HLCK" | ||
190 | }; | ||
191 | static char *dec2_bits[8] = { | ||
192 | "RDCAP", "COPRO", "COLSTR", "TYPE3", | ||
193 | NULL, "FIDT", "HLVLN", "INTL" | ||
194 | }; | ||
195 | static char *scale1_bits[8] = { | ||
196 | "VID_A", "VBI_A", NULL, NULL, "VID_B", "VBI_B" | ||
197 | }; | ||
198 | static char *scale2_bits[8] = { | ||
199 | "TRERR", "CFERR", "LDERR", "WASRST", | ||
200 | "FIDSCI", "FIDSCO", "D6^D5", "TASK" | ||
201 | }; | ||
202 | |||
203 | static void dump_statusreg(struct saa7134_dev *dev, int reg, | ||
204 | char *regname, char **bits) | ||
205 | { | ||
206 | int value,i; | ||
207 | |||
208 | value = saa_readb(reg); | ||
209 | printk(KERN_DEBUG "%s: %s:", dev->name, regname); | ||
210 | for (i = 7; i >= 0; i--) { | ||
211 | if (NULL == bits[i]) | ||
212 | continue; | ||
213 | printk(" %s=%d", bits[i], (value & (1 << i)) ? 1 : 0); | ||
214 | } | ||
215 | printk("\n"); | ||
216 | } | ||
217 | |||
218 | static void dump_statusregs(struct saa7134_dev *dev) | ||
219 | { | ||
220 | dump_statusreg(dev,SAA7134_STATUS_VIDEO1,"dec1",dec1_bits); | ||
221 | dump_statusreg(dev,SAA7134_STATUS_VIDEO2,"dec2",dec2_bits); | ||
222 | dump_statusreg(dev,SAA7134_SCALER_STATUS0,"scale0",scale1_bits); | ||
223 | dump_statusreg(dev,SAA7134_SCALER_STATUS1,"scale1",scale2_bits); | ||
224 | } | ||
225 | #endif | ||
226 | 186 | ||
227 | /* ----------------------------------------------------------- */ | 187 | /* ----------------------------------------------------------- */ |
228 | /* delayed request_module */ | 188 | /* delayed request_module */ |
@@ -616,10 +576,6 @@ static irqreturn_t saa7134_irq(int irq, void *dev_id, struct pt_regs *regs) | |||
616 | if (irq_debug) | 576 | if (irq_debug) |
617 | print_irqstatus(dev,loop,report,status); | 577 | print_irqstatus(dev,loop,report,status); |
618 | 578 | ||
619 | #if 0 | ||
620 | if (report & SAA7134_IRQ_REPORT_CONF_ERR) | ||
621 | dump_statusregs(dev); | ||
622 | #endif | ||
623 | 579 | ||
624 | if (report & SAA7134_IRQ_REPORT_RDCAP /* _INTL */) | 580 | if (report & SAA7134_IRQ_REPORT_RDCAP /* _INTL */) |
625 | saa7134_irq_video_intl(dev); | 581 | saa7134_irq_video_intl(dev); |
@@ -711,7 +667,6 @@ static int saa7134_hwinit1(struct saa7134_dev *dev) | |||
711 | SAA7134_MAIN_CTRL_EVFE1 | | 667 | SAA7134_MAIN_CTRL_EVFE1 | |
712 | SAA7134_MAIN_CTRL_EVFE2 | | 668 | SAA7134_MAIN_CTRL_EVFE2 | |
713 | SAA7134_MAIN_CTRL_ESFE | | 669 | SAA7134_MAIN_CTRL_ESFE | |
714 | SAA7134_MAIN_CTRL_EBADC | | ||
715 | SAA7134_MAIN_CTRL_EBDAC); | 670 | SAA7134_MAIN_CTRL_EBDAC); |
716 | 671 | ||
717 | /* enable peripheral devices */ | 672 | /* enable peripheral devices */ |
@@ -726,14 +681,28 @@ static int saa7134_hwinit1(struct saa7134_dev *dev) | |||
726 | /* late init (with i2c + irq) */ | 681 | /* late init (with i2c + irq) */ |
727 | static int saa7134_hwinit2(struct saa7134_dev *dev) | 682 | static int saa7134_hwinit2(struct saa7134_dev *dev) |
728 | { | 683 | { |
684 | unsigned int irq2_mask; | ||
729 | dprintk("hwinit2\n"); | 685 | dprintk("hwinit2\n"); |
730 | 686 | ||
731 | saa7134_video_init2(dev); | 687 | saa7134_video_init2(dev); |
732 | saa7134_tvaudio_init2(dev); | 688 | saa7134_tvaudio_init2(dev); |
733 | 689 | ||
734 | /* enable IRQ's */ | 690 | /* enable IRQ's */ |
691 | irq2_mask = | ||
692 | SAA7134_IRQ2_INTE_DEC3 | | ||
693 | SAA7134_IRQ2_INTE_DEC2 | | ||
694 | SAA7134_IRQ2_INTE_DEC1 | | ||
695 | SAA7134_IRQ2_INTE_DEC0 | | ||
696 | SAA7134_IRQ2_INTE_PE | | ||
697 | SAA7134_IRQ2_INTE_AR; | ||
698 | |||
699 | if (dev->has_remote) | ||
700 | irq2_mask |= (SAA7134_IRQ2_INTE_GPIO18 | | ||
701 | SAA7134_IRQ2_INTE_GPIO18A | | ||
702 | SAA7134_IRQ2_INTE_GPIO16 ); | ||
703 | |||
735 | saa_writel(SAA7134_IRQ1, 0); | 704 | saa_writel(SAA7134_IRQ1, 0); |
736 | saa_writel(SAA7134_IRQ2, dev->irq2_mask); | 705 | saa_writel(SAA7134_IRQ2, irq2_mask); |
737 | 706 | ||
738 | return 0; | 707 | return 0; |
739 | } | 708 | } |
@@ -954,13 +923,6 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev, | |||
954 | } | 923 | } |
955 | 924 | ||
956 | /* initialize hardware #1 */ | 925 | /* initialize hardware #1 */ |
957 | dev->irq2_mask = | ||
958 | SAA7134_IRQ2_INTE_DEC3 | | ||
959 | SAA7134_IRQ2_INTE_DEC2 | | ||
960 | SAA7134_IRQ2_INTE_DEC1 | | ||
961 | SAA7134_IRQ2_INTE_DEC0 | | ||
962 | SAA7134_IRQ2_INTE_PE | | ||
963 | SAA7134_IRQ2_INTE_AR; | ||
964 | saa7134_board_init1(dev); | 926 | saa7134_board_init1(dev); |
965 | saa7134_hwinit1(dev); | 927 | saa7134_hwinit1(dev); |
966 | 928 | ||
@@ -990,6 +952,7 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev, | |||
990 | request_module("saa6752hs"); | 952 | request_module("saa6752hs"); |
991 | request_module_depend("saa7134-empress",&need_empress); | 953 | request_module_depend("saa7134-empress",&need_empress); |
992 | } | 954 | } |
955 | |||
993 | if (card_is_dvb(dev)) | 956 | if (card_is_dvb(dev)) |
994 | request_module_depend("saa7134-dvb",&need_dvb); | 957 | request_module_depend("saa7134-dvb",&need_dvb); |
995 | 958 | ||
@@ -1144,9 +1107,6 @@ static void __devexit saa7134_finidev(struct pci_dev *pci_dev) | |||
1144 | release_mem_region(pci_resource_start(pci_dev,0), | 1107 | release_mem_region(pci_resource_start(pci_dev,0), |
1145 | pci_resource_len(pci_dev,0)); | 1108 | pci_resource_len(pci_dev,0)); |
1146 | 1109 | ||
1147 | #if 0 /* causes some trouble when reinserting the driver ... */ | ||
1148 | pci_disable_device(pci_dev); | ||
1149 | #endif | ||
1150 | pci_set_drvdata(pci_dev, NULL); | 1110 | pci_set_drvdata(pci_dev, NULL); |
1151 | 1111 | ||
1152 | /* free memory */ | 1112 | /* free memory */ |
diff --git a/drivers/media/video/saa7134/saa7134-i2c.c b/drivers/media/video/saa7134/saa7134-i2c.c index b6f002e8421d..93dd61978541 100644 --- a/drivers/media/video/saa7134/saa7134-i2c.c +++ b/drivers/media/video/saa7134/saa7134-i2c.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * $Id: saa7134-i2c.c,v 1.11 2005/06/12 01:36:14 mchehab Exp $ | 2 | * $Id: saa7134-i2c.c,v 1.19 2005/07/07 01:49:30 mkrufky Exp $ |
3 | * | 3 | * |
4 | * device driver for philips saa7134 based TV cards | 4 | * device driver for philips saa7134 based TV cards |
5 | * i2c interface support | 5 | * i2c interface support |
@@ -197,10 +197,6 @@ static inline int i2c_send_byte(struct saa7134_dev *dev, | |||
197 | enum i2c_status status; | 197 | enum i2c_status status; |
198 | __u32 dword; | 198 | __u32 dword; |
199 | 199 | ||
200 | #if 0 | ||
201 | i2c_set_attr(dev,attr); | ||
202 | saa_writeb(SAA7134_I2C_DATA, data); | ||
203 | #else | ||
204 | /* have to write both attr + data in one 32bit word */ | 200 | /* have to write both attr + data in one 32bit word */ |
205 | dword = saa_readl(SAA7134_I2C_ATTR_STATUS >> 2); | 201 | dword = saa_readl(SAA7134_I2C_ATTR_STATUS >> 2); |
206 | dword &= 0x0f; | 202 | dword &= 0x0f; |
@@ -210,7 +206,6 @@ static inline int i2c_send_byte(struct saa7134_dev *dev, | |||
210 | // dword |= 0x40 << 16; /* 400 kHz */ | 206 | // dword |= 0x40 << 16; /* 400 kHz */ |
211 | dword |= 0xf0 << 24; | 207 | dword |= 0xf0 << 24; |
212 | saa_writel(SAA7134_I2C_ATTR_STATUS >> 2, dword); | 208 | saa_writel(SAA7134_I2C_ATTR_STATUS >> 2, dword); |
213 | #endif | ||
214 | d2printk(KERN_DEBUG "%s: i2c data => 0x%x\n",dev->name,data); | 209 | d2printk(KERN_DEBUG "%s: i2c data => 0x%x\n",dev->name,data); |
215 | 210 | ||
216 | if (!i2c_is_busy_wait(dev)) | 211 | if (!i2c_is_busy_wait(dev)) |
@@ -331,12 +326,44 @@ static u32 functionality(struct i2c_adapter *adap) | |||
331 | 326 | ||
332 | static int attach_inform(struct i2c_client *client) | 327 | static int attach_inform(struct i2c_client *client) |
333 | { | 328 | { |
334 | struct saa7134_dev *dev = client->adapter->algo_data; | 329 | struct saa7134_dev *dev = client->adapter->algo_data; |
335 | int tuner = dev->tuner_type; | 330 | int tuner = dev->tuner_type; |
336 | int conf = dev->tda9887_conf; | 331 | int conf = dev->tda9887_conf; |
332 | struct tuner_setup tun_setup; | ||
333 | |||
334 | d1printk( "%s i2c attach [addr=0x%x,client=%s]\n", | ||
335 | client->driver->name,client->addr,i2c_clientname(client)); | ||
336 | |||
337 | if (!client->driver->command) | ||
338 | return 0; | ||
339 | |||
340 | if (saa7134_boards[dev->board].radio_type != UNSET) { | ||
341 | |||
342 | tun_setup.type = saa7134_boards[dev->board].radio_type; | ||
343 | tun_setup.addr = saa7134_boards[dev->board].radio_addr; | ||
344 | |||
345 | if ((tun_setup.addr == ADDR_UNSET) || (tun_setup.addr == client->addr)) { | ||
346 | tun_setup.mode_mask = T_RADIO; | ||
347 | |||
348 | client->driver->command(client, TUNER_SET_TYPE_ADDR, &tun_setup); | ||
349 | } | ||
350 | } | ||
351 | |||
352 | if (tuner != UNSET) { | ||
353 | |||
354 | tun_setup.type = tuner; | ||
355 | tun_setup.addr = saa7134_boards[dev->board].tuner_addr; | ||
356 | |||
357 | if ((tun_setup.addr == ADDR_UNSET)||(tun_setup.addr == client->addr)) { | ||
358 | |||
359 | tun_setup.mode_mask = T_ANALOG_TV; | ||
360 | |||
361 | client->driver->command(client,TUNER_SET_TYPE_ADDR, &tun_setup); | ||
362 | } | ||
363 | } | ||
364 | |||
365 | client->driver->command(client, TDA9887_SET_CONFIG, &conf); | ||
337 | 366 | ||
338 | saa7134_i2c_call_clients(dev,TUNER_SET_TYPE,&tuner); | ||
339 | saa7134_i2c_call_clients(dev,TDA9887_SET_CONFIG,&conf); | ||
340 | return 0; | 367 | return 0; |
341 | } | 368 | } |
342 | 369 | ||
diff --git a/drivers/media/video/saa7134/saa7134-input.c b/drivers/media/video/saa7134/saa7134-input.c index aba2b9de60de..213740122fe6 100644 --- a/drivers/media/video/saa7134/saa7134-input.c +++ b/drivers/media/video/saa7134/saa7134-input.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * $Id: saa7134-input.c,v 1.19 2005/06/07 18:02:26 nsh Exp $ | 2 | * $Id: saa7134-input.c,v 1.21 2005/06/22 23:37:34 nsh Exp $ |
3 | * | 3 | * |
4 | * handle saa7134 IR remotes via linux kernel input layer. | 4 | * handle saa7134 IR remotes via linux kernel input layer. |
5 | * | 5 | * |
@@ -68,10 +68,8 @@ static IR_KEYTAB_TYPE flyvideo_codes[IR_KEYTAB_SIZE] = { | |||
68 | [ 6 ] = KEY_AGAIN, // Recal | 68 | [ 6 ] = KEY_AGAIN, // Recal |
69 | [ 16 ] = KEY_KPENTER, // Enter | 69 | [ 16 ] = KEY_KPENTER, // Enter |
70 | 70 | ||
71 | #if 1 /* FIXME */ | ||
72 | [ 26 ] = KEY_F22, // Stereo | 71 | [ 26 ] = KEY_F22, // Stereo |
73 | [ 24 ] = KEY_EDIT, // AV Source | 72 | [ 24 ] = KEY_EDIT, // AV Source |
74 | #endif | ||
75 | }; | 73 | }; |
76 | 74 | ||
77 | static IR_KEYTAB_TYPE cinergy_codes[IR_KEYTAB_SIZE] = { | 75 | static IR_KEYTAB_TYPE cinergy_codes[IR_KEYTAB_SIZE] = { |
@@ -172,45 +170,45 @@ static IR_KEYTAB_TYPE eztv_codes[IR_KEYTAB_SIZE] = { | |||
172 | }; | 170 | }; |
173 | 171 | ||
174 | static IR_KEYTAB_TYPE avacssmart_codes[IR_KEYTAB_SIZE] = { | 172 | static IR_KEYTAB_TYPE avacssmart_codes[IR_KEYTAB_SIZE] = { |
175 | [ 30 ] = KEY_POWER, // power | 173 | [ 30 ] = KEY_POWER, // power |
176 | [ 28 ] = KEY_SEARCH, // scan | 174 | [ 28 ] = KEY_SEARCH, // scan |
177 | [ 7 ] = KEY_SELECT, // source | 175 | [ 7 ] = KEY_SELECT, // source |
178 | 176 | ||
179 | [ 22 ] = KEY_VOLUMEUP, | 177 | [ 22 ] = KEY_VOLUMEUP, |
180 | [ 20 ] = KEY_VOLUMEDOWN, | 178 | [ 20 ] = KEY_VOLUMEDOWN, |
181 | [ 31 ] = KEY_CHANNELUP, | 179 | [ 31 ] = KEY_CHANNELUP, |
182 | [ 23 ] = KEY_CHANNELDOWN, | 180 | [ 23 ] = KEY_CHANNELDOWN, |
183 | [ 24 ] = KEY_MUTE, | 181 | [ 24 ] = KEY_MUTE, |
184 | 182 | ||
185 | [ 2 ] = KEY_KP0, | 183 | [ 2 ] = KEY_KP0, |
186 | [ 1 ] = KEY_KP1, | 184 | [ 1 ] = KEY_KP1, |
187 | [ 11 ] = KEY_KP2, | 185 | [ 11 ] = KEY_KP2, |
188 | [ 27 ] = KEY_KP3, | 186 | [ 27 ] = KEY_KP3, |
189 | [ 5 ] = KEY_KP4, | 187 | [ 5 ] = KEY_KP4, |
190 | [ 9 ] = KEY_KP5, | 188 | [ 9 ] = KEY_KP5, |
191 | [ 21 ] = KEY_KP6, | 189 | [ 21 ] = KEY_KP6, |
192 | [ 6 ] = KEY_KP7, | 190 | [ 6 ] = KEY_KP7, |
193 | [ 10 ] = KEY_KP8, | 191 | [ 10 ] = KEY_KP8, |
194 | [ 18 ] = KEY_KP9, | 192 | [ 18 ] = KEY_KP9, |
195 | [ 16 ] = KEY_KPDOT, | 193 | [ 16 ] = KEY_KPDOT, |
196 | 194 | ||
197 | [ 3 ] = KEY_TUNER, // tv/fm | 195 | [ 3 ] = KEY_TUNER, // tv/fm |
198 | [ 4 ] = KEY_REWIND, // fm tuning left or function left | 196 | [ 4 ] = KEY_REWIND, // fm tuning left or function left |
199 | [ 12 ] = KEY_FORWARD, // fm tuning right or function right | 197 | [ 12 ] = KEY_FORWARD, // fm tuning right or function right |
200 | 198 | ||
201 | [ 0 ] = KEY_RECORD, | 199 | [ 0 ] = KEY_RECORD, |
202 | [ 8 ] = KEY_STOP, | 200 | [ 8 ] = KEY_STOP, |
203 | [ 17 ] = KEY_PLAY, | 201 | [ 17 ] = KEY_PLAY, |
204 | 202 | ||
205 | [ 25 ] = KEY_ZOOM, | 203 | [ 25 ] = KEY_ZOOM, |
206 | [ 14 ] = KEY_MENU, // function | 204 | [ 14 ] = KEY_MENU, // function |
207 | [ 19 ] = KEY_AGAIN, // recall | 205 | [ 19 ] = KEY_AGAIN, // recall |
208 | [ 29 ] = KEY_RESTART, // reset | 206 | [ 29 ] = KEY_RESTART, // reset |
207 | [ 26 ] = KEY_SHUFFLE, // snapshot/shuffle | ||
209 | 208 | ||
210 | // FIXME | 209 | // FIXME |
211 | [ 13 ] = KEY_F21, // mts | 210 | [ 13 ] = KEY_F21, // mts |
212 | [ 15 ] = KEY_F22, // min | 211 | [ 15 ] = KEY_F22, // min |
213 | [ 26 ] = KEY_F23, // freeze | ||
214 | }; | 212 | }; |
215 | 213 | ||
216 | /* Alex Hermann <gaaf@gmx.net> */ | 214 | /* Alex Hermann <gaaf@gmx.net> */ |
@@ -489,13 +487,14 @@ int saa7134_input_init1(struct saa7134_dev *dev) | |||
489 | break; | 487 | break; |
490 | case SAA7134_BOARD_ECS_TVP3XP: | 488 | case SAA7134_BOARD_ECS_TVP3XP: |
491 | case SAA7134_BOARD_ECS_TVP3XP_4CB5: | 489 | case SAA7134_BOARD_ECS_TVP3XP_4CB5: |
492 | ir_codes = eztv_codes; | 490 | ir_codes = eztv_codes; |
493 | mask_keycode = 0x00017c; | 491 | mask_keycode = 0x00017c; |
494 | mask_keyup = 0x000002; | 492 | mask_keyup = 0x000002; |
495 | polling = 50; // ms | 493 | polling = 50; // ms |
496 | break; | 494 | break; |
495 | case SAA7134_BOARD_KWORLD_XPERT: | ||
497 | case SAA7134_BOARD_AVACSSMARTTV: | 496 | case SAA7134_BOARD_AVACSSMARTTV: |
498 | ir_codes = avacssmart_codes; | 497 | ir_codes = avacssmart_codes; |
499 | mask_keycode = 0x00001F; | 498 | mask_keycode = 0x00001F; |
500 | mask_keyup = 0x000020; | 499 | mask_keyup = 0x000020; |
501 | polling = 50; // ms | 500 | polling = 50; // ms |
@@ -524,6 +523,7 @@ int saa7134_input_init1(struct saa7134_dev *dev) | |||
524 | polling = 50; // ms | 523 | polling = 50; // ms |
525 | break; | 524 | break; |
526 | case SAA7134_BOARD_VIDEOMATE_TV_PVR: | 525 | case SAA7134_BOARD_VIDEOMATE_TV_PVR: |
526 | case SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII: | ||
527 | ir_codes = videomate_tv_pvr_codes; | 527 | ir_codes = videomate_tv_pvr_codes; |
528 | mask_keycode = 0x00003F; | 528 | mask_keycode = 0x00003F; |
529 | mask_keyup = 0x400000; | 529 | mask_keyup = 0x400000; |
diff --git a/drivers/media/video/saa7134/saa7134-oss.c b/drivers/media/video/saa7134/saa7134-oss.c index 81732904623f..b5bede95dbf5 100644 --- a/drivers/media/video/saa7134/saa7134-oss.c +++ b/drivers/media/video/saa7134/saa7134-oss.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * $Id: saa7134-oss.c,v 1.14 2005/05/18 22:45:16 hhackmann Exp $ | 2 | * $Id: saa7134-oss.c,v 1.17 2005/06/28 23:41:47 mkrufky Exp $ |
3 | * | 3 | * |
4 | * device driver for philips saa7134 based TV cards | 4 | * device driver for philips saa7134 based TV cards |
5 | * oss dsp interface | 5 | * oss dsp interface |
@@ -556,21 +556,28 @@ mixer_recsrc_7134(struct saa7134_dev *dev) | |||
556 | static int | 556 | static int |
557 | mixer_recsrc_7133(struct saa7134_dev *dev) | 557 | mixer_recsrc_7133(struct saa7134_dev *dev) |
558 | { | 558 | { |
559 | u32 value = 0xbbbbbb; | 559 | u32 anabar, xbarin; |
560 | 560 | ||
561 | xbarin = 0x03; // adc | ||
562 | anabar = 0; | ||
561 | switch (dev->oss.input) { | 563 | switch (dev->oss.input) { |
562 | case TV: | 564 | case TV: |
563 | value = 0xbbbb10; /* MAIN */ | 565 | xbarin = 0; // Demodulator |
566 | anabar = 2; // DACs | ||
564 | break; | 567 | break; |
565 | case LINE1: | 568 | case LINE1: |
566 | value = 0xbbbb32; /* AUX1 */ | 569 | anabar = 0; // aux1, aux1 |
567 | break; | 570 | break; |
568 | case LINE2: | 571 | case LINE2: |
569 | case LINE2_LEFT: | 572 | case LINE2_LEFT: |
570 | value = 0xbbbb54; /* AUX2 */ | 573 | anabar = 9; // aux2, aux2 |
571 | break; | 574 | break; |
572 | } | 575 | } |
573 | saa_dsp_writel(dev, 0x46c >> 2, value); | 576 | /* output xbar always main channel */ |
577 | saa_dsp_writel(dev, 0x46c >> 2, 0xbbbb10); | ||
578 | saa_dsp_writel(dev, 0x464 >> 2, xbarin); | ||
579 | saa_writel(0x594 >> 2, anabar); | ||
580 | |||
574 | return 0; | 581 | return 0; |
575 | } | 582 | } |
576 | 583 | ||
diff --git a/drivers/media/video/saa7134/saa7134-ts.c b/drivers/media/video/saa7134/saa7134-ts.c index 345eb2a8c28d..4dd9f1b23928 100644 --- a/drivers/media/video/saa7134/saa7134-ts.c +++ b/drivers/media/video/saa7134/saa7134-ts.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * $Id: saa7134-ts.c,v 1.14 2005/02/03 10:24:33 kraxel Exp $ | 2 | * $Id: saa7134-ts.c,v 1.15 2005/06/14 22:48:18 hhackmann Exp $ |
3 | * | 3 | * |
4 | * device driver for philips saa7134 based TV cards | 4 | * device driver for philips saa7134 based TV cards |
5 | * video4linux video interface | 5 | * video4linux video interface |
@@ -221,10 +221,10 @@ void saa7134_irq_ts_done(struct saa7134_dev *dev, unsigned long status) | |||
221 | if (dev->ts_q.curr) { | 221 | if (dev->ts_q.curr) { |
222 | field = dev->ts_q.curr->vb.field; | 222 | field = dev->ts_q.curr->vb.field; |
223 | if (field == V4L2_FIELD_TOP) { | 223 | if (field == V4L2_FIELD_TOP) { |
224 | if ((status & 0x100000) != 0x000000) | 224 | if ((status & 0x100000) != 0x100000) |
225 | goto done; | 225 | goto done; |
226 | } else { | 226 | } else { |
227 | if ((status & 0x100000) != 0x100000) | 227 | if ((status & 0x100000) != 0x000000) |
228 | goto done; | 228 | goto done; |
229 | } | 229 | } |
230 | saa7134_buffer_finish(dev,&dev->ts_q,STATE_DONE); | 230 | saa7134_buffer_finish(dev,&dev->ts_q,STATE_DONE); |
diff --git a/drivers/media/video/saa7134/saa7134-tvaudio.c b/drivers/media/video/saa7134/saa7134-tvaudio.c index 3617e7f7a410..eeafa5a71d2b 100644 --- a/drivers/media/video/saa7134/saa7134-tvaudio.c +++ b/drivers/media/video/saa7134/saa7134-tvaudio.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * $Id: saa7134-tvaudio.c,v 1.25 2005/06/07 19:00:38 nsh Exp $ | 2 | * $Id: saa7134-tvaudio.c,v 1.30 2005/06/28 23:41:47 mkrufky Exp $ |
3 | * | 3 | * |
4 | * device driver for philips saa7134 based TV cards | 4 | * device driver for philips saa7134 based TV cards |
5 | * tv audio decoder (fm stereo, nicam, ...) | 5 | * tv audio decoder (fm stereo, nicam, ...) |
@@ -169,7 +169,7 @@ static void tvaudio_init(struct saa7134_dev *dev) | |||
169 | int clock = saa7134_boards[dev->board].audio_clock; | 169 | int clock = saa7134_boards[dev->board].audio_clock; |
170 | 170 | ||
171 | if (UNSET != audio_clock_override) | 171 | if (UNSET != audio_clock_override) |
172 | clock = audio_clock_override; | 172 | clock = audio_clock_override; |
173 | 173 | ||
174 | /* init all audio registers */ | 174 | /* init all audio registers */ |
175 | saa_writeb(SAA7134_AUDIO_PLL_CTRL, 0x00); | 175 | saa_writeb(SAA7134_AUDIO_PLL_CTRL, 0x00); |
@@ -219,14 +219,17 @@ static void mute_input_7134(struct saa7134_dev *dev) | |||
219 | in = dev->input; | 219 | in = dev->input; |
220 | mute = (dev->ctl_mute || | 220 | mute = (dev->ctl_mute || |
221 | (dev->automute && (&card(dev).radio) != in)); | 221 | (dev->automute && (&card(dev).radio) != in)); |
222 | if (PCI_DEVICE_ID_PHILIPS_SAA7130 == dev->pci->device && | 222 | if (card(dev).mute.name) { |
223 | card(dev).mute.name) { | 223 | /* |
224 | /* 7130 - we'll mute using some unconnected audio input */ | 224 | * 7130 - we'll mute using some unconnected audio input |
225 | * 7134 - we'll probably should switch external mux with gpio | ||
226 | */ | ||
225 | if (mute) | 227 | if (mute) |
226 | in = &card(dev).mute; | 228 | in = &card(dev).mute; |
227 | } | 229 | } |
230 | |||
228 | if (dev->hw_mute == mute && | 231 | if (dev->hw_mute == mute && |
229 | dev->hw_input == in) { | 232 | dev->hw_input == in) { |
230 | dprintk("mute/input: nothing to do [mute=%d,input=%s]\n", | 233 | dprintk("mute/input: nothing to do [mute=%d,input=%s]\n", |
231 | mute,in->name); | 234 | mute,in->name); |
232 | return; | 235 | return; |
@@ -260,6 +263,7 @@ static void mute_input_7134(struct saa7134_dev *dev) | |||
260 | /* switch gpio-connected external audio mux */ | 263 | /* switch gpio-connected external audio mux */ |
261 | if (0 == card(dev).gpiomask) | 264 | if (0 == card(dev).gpiomask) |
262 | return; | 265 | return; |
266 | |||
263 | mask = card(dev).gpiomask; | 267 | mask = card(dev).gpiomask; |
264 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, mask, mask); | 268 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, mask, mask); |
265 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, mask, in->gpio); | 269 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, mask, in->gpio); |
@@ -339,13 +343,8 @@ static int tvaudio_sleep(struct saa7134_dev *dev, int timeout) | |||
339 | set_current_state(TASK_INTERRUPTIBLE); | 343 | set_current_state(TASK_INTERRUPTIBLE); |
340 | schedule(); | 344 | schedule(); |
341 | } else { | 345 | } else { |
342 | #if 0 | ||
343 | /* hmm, that one doesn't return on wakeup ... */ | ||
344 | msleep_interruptible(timeout); | ||
345 | #else | ||
346 | set_current_state(TASK_INTERRUPTIBLE); | 346 | set_current_state(TASK_INTERRUPTIBLE); |
347 | schedule_timeout(msecs_to_jiffies(timeout)); | 347 | schedule_timeout(msecs_to_jiffies(timeout)); |
348 | #endif | ||
349 | } | 348 | } |
350 | } | 349 | } |
351 | remove_wait_queue(&dev->thread.wq, &wait); | 350 | remove_wait_queue(&dev->thread.wq, &wait); |
@@ -400,27 +399,10 @@ static int tvaudio_checkcarrier(struct saa7134_dev *dev, struct mainscan *scan) | |||
400 | return value; | 399 | return value; |
401 | } | 400 | } |
402 | 401 | ||
403 | #if 0 | ||
404 | static void sifdebug_dump_regs(struct saa7134_dev *dev) | ||
405 | { | ||
406 | print_regb(AUDIO_STATUS); | ||
407 | print_regb(IDENT_SIF); | ||
408 | print_regb(LEVEL_READOUT1); | ||
409 | print_regb(LEVEL_READOUT2); | ||
410 | print_regb(DCXO_IDENT_CTRL); | ||
411 | print_regb(DEMODULATOR); | ||
412 | print_regb(AGC_GAIN_SELECT); | ||
413 | print_regb(MONITOR_SELECT); | ||
414 | print_regb(FM_DEEMPHASIS); | ||
415 | print_regb(FM_DEMATRIX); | ||
416 | print_regb(SIF_SAMPLE_FREQ); | ||
417 | print_regb(ANALOG_IO_SELECT); | ||
418 | } | ||
419 | #endif | ||
420 | 402 | ||
421 | static int tvaudio_getstereo(struct saa7134_dev *dev, struct saa7134_tvaudio *audio) | 403 | static int tvaudio_getstereo(struct saa7134_dev *dev, struct saa7134_tvaudio *audio) |
422 | { | 404 | { |
423 | __u32 idp,nicam; | 405 | __u32 idp, nicam, nicam_status; |
424 | int retval = -1; | 406 | int retval = -1; |
425 | 407 | ||
426 | switch (audio->mode) { | 408 | switch (audio->mode) { |
@@ -442,18 +424,24 @@ static int tvaudio_getstereo(struct saa7134_dev *dev, struct saa7134_tvaudio *au | |||
442 | break; | 424 | break; |
443 | case TVAUDIO_NICAM_FM: | 425 | case TVAUDIO_NICAM_FM: |
444 | case TVAUDIO_NICAM_AM: | 426 | case TVAUDIO_NICAM_AM: |
445 | nicam = saa_readb(SAA7134_NICAM_STATUS); | 427 | nicam = saa_readb(SAA7134_AUDIO_STATUS); |
446 | dprintk("getstereo: nicam=0x%x\n",nicam); | 428 | dprintk("getstereo: nicam=0x%x\n",nicam); |
447 | switch (nicam & 0x0b) { | 429 | if (nicam & 0x1) { |
448 | case 0x08: | 430 | nicam_status = saa_readb(SAA7134_NICAM_STATUS); |
449 | retval = V4L2_TUNER_SUB_MONO; | 431 | dprintk("getstereo: nicam_status=0x%x\n", nicam_status); |
450 | break; | 432 | |
451 | case 0x09: | 433 | switch (nicam_status & 0x03) { |
452 | retval = V4L2_TUNER_SUB_LANG1 | V4L2_TUNER_SUB_LANG2; | 434 | case 0x01: |
453 | break; | 435 | retval = V4L2_TUNER_SUB_LANG1 | V4L2_TUNER_SUB_LANG2; |
454 | case 0x0a: | 436 | break; |
455 | retval = V4L2_TUNER_SUB_MONO | V4L2_TUNER_SUB_STEREO; | 437 | case 0x02: |
456 | break; | 438 | retval = V4L2_TUNER_SUB_MONO | V4L2_TUNER_SUB_STEREO; |
439 | break; | ||
440 | default: | ||
441 | retval = V4L2_TUNER_SUB_MONO; | ||
442 | } | ||
443 | } else { | ||
444 | /* No nicam detected */ | ||
457 | } | 445 | } |
458 | break; | 446 | break; |
459 | } | 447 | } |
@@ -489,15 +477,15 @@ static int tvaudio_setstereo(struct saa7134_dev *dev, struct saa7134_tvaudio *au | |||
489 | break; | 477 | break; |
490 | case TVAUDIO_FM_K_STEREO: | 478 | case TVAUDIO_FM_K_STEREO: |
491 | case TVAUDIO_FM_BG_STEREO: | 479 | case TVAUDIO_FM_BG_STEREO: |
480 | case TVAUDIO_NICAM_AM: | ||
481 | case TVAUDIO_NICAM_FM: | ||
492 | dprintk("setstereo [fm] => %s\n", | 482 | dprintk("setstereo [fm] => %s\n", |
493 | name[ mode % ARRAY_SIZE(name) ]); | 483 | name[ mode % ARRAY_SIZE(name) ]); |
494 | reg = fm[ mode % ARRAY_SIZE(fm) ]; | 484 | reg = fm[ mode % ARRAY_SIZE(fm) ]; |
495 | saa_writeb(SAA7134_FM_DEMATRIX, reg); | 485 | saa_writeb(SAA7134_FM_DEMATRIX, reg); |
496 | break; | 486 | break; |
497 | case TVAUDIO_FM_SAT_STEREO: | 487 | case TVAUDIO_FM_SAT_STEREO: |
498 | case TVAUDIO_NICAM_AM: | 488 | /* Not implemented */ |
499 | case TVAUDIO_NICAM_FM: | ||
500 | /* FIXME */ | ||
501 | break; | 489 | break; |
502 | } | 490 | } |
503 | return 0; | 491 | return 0; |
@@ -596,7 +584,7 @@ static int tvaudio_thread(void *data) | |||
596 | /* find the exact tv audio norm */ | 584 | /* find the exact tv audio norm */ |
597 | for (audio = UNSET, i = 0; i < TVAUDIO; i++) { | 585 | for (audio = UNSET, i = 0; i < TVAUDIO; i++) { |
598 | if (dev->tvnorm->id != UNSET && | 586 | if (dev->tvnorm->id != UNSET && |
599 | !(dev->tvnorm->id & tvaudio[i].std)) | 587 | !(dev->tvnorm->id & tvaudio[i].std)) |
600 | continue; | 588 | continue; |
601 | if (tvaudio[i].carr1 != carrier) | 589 | if (tvaudio[i].carr1 != carrier) |
602 | continue; | 590 | continue; |
@@ -703,24 +691,6 @@ static inline int saa_dsp_wait_bit(struct saa7134_dev *dev, int bit) | |||
703 | return 0; | 691 | return 0; |
704 | } | 692 | } |
705 | 693 | ||
706 | #if 0 | ||
707 | static int saa_dsp_readl(struct saa7134_dev *dev, int reg, u32 *value) | ||
708 | { | ||
709 | int err; | ||
710 | |||
711 | d2printk("dsp read reg 0x%x\n", reg<<2); | ||
712 | saa_readl(reg); | ||
713 | err = saa_dsp_wait_bit(dev,SAA7135_DSP_RWSTATE_RDB); | ||
714 | if (err < 0) | ||
715 | return err; | ||
716 | *value = saa_readl(reg); | ||
717 | d2printk("dsp read => 0x%06x\n", *value & 0xffffff); | ||
718 | err = saa_dsp_wait_bit(dev,SAA7135_DSP_RWSTATE_IDA); | ||
719 | if (err < 0) | ||
720 | return err; | ||
721 | return 0; | ||
722 | } | ||
723 | #endif | ||
724 | 694 | ||
725 | int saa_dsp_writel(struct saa7134_dev *dev, int reg, u32 value) | 695 | int saa_dsp_writel(struct saa7134_dev *dev, int reg, u32 value) |
726 | { | 696 | { |
@@ -753,31 +723,50 @@ static int getstereo_7133(struct saa7134_dev *dev) | |||
753 | static int mute_input_7133(struct saa7134_dev *dev) | 723 | static int mute_input_7133(struct saa7134_dev *dev) |
754 | { | 724 | { |
755 | u32 reg = 0; | 725 | u32 reg = 0; |
726 | u32 xbarin, xbarout; | ||
756 | int mask; | 727 | int mask; |
728 | struct saa7134_input *in; | ||
757 | 729 | ||
730 | /* Hac 0506 route OSS sound simultanously */ | ||
731 | xbarin = 0x03; | ||
758 | switch (dev->input->amux) { | 732 | switch (dev->input->amux) { |
759 | case TV: | 733 | case TV: |
760 | reg = 0x02; | 734 | reg = 0x02; |
735 | xbarin = 0; | ||
761 | break; | 736 | break; |
762 | case LINE1: | 737 | case LINE1: |
763 | reg = 0x00; | 738 | reg = 0x00; |
764 | break; | 739 | break; |
765 | case LINE2: | 740 | case LINE2: |
766 | case LINE2_LEFT: | 741 | case LINE2_LEFT: |
767 | reg = 0x01; | 742 | reg = 0x09; |
768 | break; | 743 | break; |
769 | } | 744 | } |
770 | if (dev->ctl_mute) | 745 | saa_dsp_writel(dev, 0x464 >> 2, xbarin); |
746 | if (dev->ctl_mute) { | ||
771 | reg = 0x07; | 747 | reg = 0x07; |
748 | xbarout = 0xbbbbbb; | ||
749 | } else | ||
750 | xbarout = 0xbbbb10; | ||
751 | saa_dsp_writel(dev, 0x46c >> 2, xbarout); | ||
752 | |||
772 | saa_writel(0x594 >> 2, reg); | 753 | saa_writel(0x594 >> 2, reg); |
773 | 754 | ||
755 | |||
774 | /* switch gpio-connected external audio mux */ | 756 | /* switch gpio-connected external audio mux */ |
775 | if (0 != card(dev).gpiomask) { | 757 | if (0 != card(dev).gpiomask) { |
776 | mask = card(dev).gpiomask; | 758 | mask = card(dev).gpiomask; |
759 | |||
760 | if (card(dev).mute.name && dev->ctl_mute) | ||
761 | in = &card(dev).mute; | ||
762 | else | ||
763 | in = dev->input; | ||
764 | |||
777 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, mask, mask); | 765 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, mask, mask); |
778 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, mask, dev->input->gpio); | 766 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, mask, in->gpio); |
779 | saa7134_track_gpio(dev,dev->input->name); | 767 | saa7134_track_gpio(dev,in->name); |
780 | } | 768 | } |
769 | |||
781 | return 0; | 770 | return 0; |
782 | } | 771 | } |
783 | 772 | ||
diff --git a/drivers/media/video/saa7134/saa7134-vbi.c b/drivers/media/video/saa7134/saa7134-vbi.c index 3c33c591cc85..29e51cad2aaf 100644 --- a/drivers/media/video/saa7134/saa7134-vbi.c +++ b/drivers/media/video/saa7134/saa7134-vbi.c | |||
@@ -130,13 +130,7 @@ static int buffer_prepare(struct videobuf_queue *q, | |||
130 | lines = norm->vbi_v_stop_0 - norm->vbi_v_start_0 +1; | 130 | lines = norm->vbi_v_stop_0 - norm->vbi_v_start_0 +1; |
131 | if (lines > VBI_LINE_COUNT) | 131 | if (lines > VBI_LINE_COUNT) |
132 | lines = VBI_LINE_COUNT; | 132 | lines = VBI_LINE_COUNT; |
133 | #if 1 | ||
134 | llength = VBI_LINE_LENGTH; | 133 | llength = VBI_LINE_LENGTH; |
135 | #else | ||
136 | llength = (norm->h_stop - norm->h_start +1) * 2; | ||
137 | if (llength > VBI_LINE_LENGTH) | ||
138 | llength = VBI_LINE_LENGTH; | ||
139 | #endif | ||
140 | size = lines * llength * 2; | 134 | size = lines * llength * 2; |
141 | if (0 != buf->vb.baddr && buf->vb.bsize < size) | 135 | if (0 != buf->vb.baddr && buf->vb.bsize < size) |
142 | return -EINVAL; | 136 | return -EINVAL; |
@@ -178,13 +172,7 @@ buffer_setup(struct videobuf_queue *q, unsigned int *count, unsigned int *size) | |||
178 | int llength,lines; | 172 | int llength,lines; |
179 | 173 | ||
180 | lines = dev->tvnorm->vbi_v_stop_0 - dev->tvnorm->vbi_v_start_0 +1; | 174 | lines = dev->tvnorm->vbi_v_stop_0 - dev->tvnorm->vbi_v_start_0 +1; |
181 | #if 1 | ||
182 | llength = VBI_LINE_LENGTH; | 175 | llength = VBI_LINE_LENGTH; |
183 | #else | ||
184 | llength = (norm->h_stop - norm->h_start +1) * 2; | ||
185 | if (llength > VBI_LINE_LENGTH) | ||
186 | llength = VBI_LINE_LENGTH; | ||
187 | #endif | ||
188 | *size = lines * llength * 2; | 176 | *size = lines * llength * 2; |
189 | if (0 == *count) | 177 | if (0 == *count) |
190 | *count = vbibufs; | 178 | *count = vbibufs; |
diff --git a/drivers/media/video/saa7134/saa7134-video.c b/drivers/media/video/saa7134/saa7134-video.c index c0a2ee520531..a4c2f751d097 100644 --- a/drivers/media/video/saa7134/saa7134-video.c +++ b/drivers/media/video/saa7134/saa7134-video.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * $Id: saa7134-video.c,v 1.30 2005/06/07 19:00:38 nsh Exp $ | 2 | * $Id: saa7134-video.c,v 1.36 2005/06/28 23:41:47 mkrufky Exp $ |
3 | * | 3 | * |
4 | * device driver for philips saa7134 based TV cards | 4 | * device driver for philips saa7134 based TV cards |
5 | * video4linux video interface | 5 | * video4linux video interface |
@@ -274,7 +274,7 @@ static struct saa7134_tvnorm tvnorms[] = { | |||
274 | 274 | ||
275 | .h_start = 0, | 275 | .h_start = 0, |
276 | .h_stop = 719, | 276 | .h_stop = 719, |
277 | .video_v_start = 23, | 277 | .video_v_start = 23, |
278 | .video_v_stop = 262, | 278 | .video_v_stop = 262, |
279 | .vbi_v_start_0 = 10, | 279 | .vbi_v_start_0 = 10, |
280 | .vbi_v_stop_0 = 21, | 280 | .vbi_v_stop_0 = 21, |
@@ -1204,7 +1204,6 @@ static int video_open(struct inode *inode, struct file *file) | |||
1204 | struct list_head *list; | 1204 | struct list_head *list; |
1205 | enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE; | 1205 | enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE; |
1206 | int radio = 0; | 1206 | int radio = 0; |
1207 | |||
1208 | list_for_each(list,&saa7134_devlist) { | 1207 | list_for_each(list,&saa7134_devlist) { |
1209 | h = list_entry(list, struct saa7134_dev, devlist); | 1208 | h = list_entry(list, struct saa7134_dev, devlist); |
1210 | if (h->video_dev && (h->video_dev->minor == minor)) | 1209 | if (h->video_dev && (h->video_dev->minor == minor)) |
@@ -1256,12 +1255,12 @@ static int video_open(struct inode *inode, struct file *file) | |||
1256 | if (fh->radio) { | 1255 | if (fh->radio) { |
1257 | /* switch to radio mode */ | 1256 | /* switch to radio mode */ |
1258 | saa7134_tvaudio_setinput(dev,&card(dev).radio); | 1257 | saa7134_tvaudio_setinput(dev,&card(dev).radio); |
1259 | saa7134_i2c_call_clients(dev,AUDC_SET_RADIO,NULL); | 1258 | saa7134_i2c_call_clients(dev,AUDC_SET_RADIO, NULL); |
1260 | } else { | 1259 | } else { |
1261 | /* switch to video/vbi mode */ | 1260 | /* switch to video/vbi mode */ |
1262 | video_mux(dev,dev->ctl_input); | 1261 | video_mux(dev,dev->ctl_input); |
1263 | } | 1262 | } |
1264 | return 0; | 1263 | return 0; |
1265 | } | 1264 | } |
1266 | 1265 | ||
1267 | static ssize_t | 1266 | static ssize_t |
@@ -1304,10 +1303,10 @@ video_poll(struct file *file, struct poll_table_struct *wait) | |||
1304 | } else { | 1303 | } else { |
1305 | down(&fh->cap.lock); | 1304 | down(&fh->cap.lock); |
1306 | if (UNSET == fh->cap.read_off) { | 1305 | if (UNSET == fh->cap.read_off) { |
1307 | /* need to capture a new frame */ | 1306 | /* need to capture a new frame */ |
1308 | if (res_locked(fh->dev,RESOURCE_VIDEO)) { | 1307 | if (res_locked(fh->dev,RESOURCE_VIDEO)) { |
1309 | up(&fh->cap.lock); | 1308 | up(&fh->cap.lock); |
1310 | return POLLERR; | 1309 | return POLLERR; |
1311 | } | 1310 | } |
1312 | if (0 != fh->cap.ops->buf_prepare(&fh->cap,fh->cap.read_buf,fh->cap.field)) { | 1311 | if (0 != fh->cap.ops->buf_prepare(&fh->cap,fh->cap.read_buf,fh->cap.field)) { |
1313 | up(&fh->cap.lock); | 1312 | up(&fh->cap.lock); |
@@ -1363,6 +1362,36 @@ static int video_release(struct inode *inode, struct file *file) | |||
1363 | res_free(dev,fh,RESOURCE_VBI); | 1362 | res_free(dev,fh,RESOURCE_VBI); |
1364 | } | 1363 | } |
1365 | 1364 | ||
1365 | /* ts-capture will not work in planar mode, so turn it off Hac: 04.05*/ | ||
1366 | saa_andorb(SAA7134_OFMT_VIDEO_A, 0x1f, 0); | ||
1367 | saa_andorb(SAA7134_OFMT_VIDEO_B, 0x1f, 0); | ||
1368 | saa_andorb(SAA7134_OFMT_DATA_A, 0x1f, 0); | ||
1369 | saa_andorb(SAA7134_OFMT_DATA_B, 0x1f, 0); | ||
1370 | |||
1371 | if (dev->tuner_type == TUNER_PHILIPS_TDA8290) { | ||
1372 | u8 data[2]; | ||
1373 | int ret; | ||
1374 | struct i2c_msg msg = {.addr=I2C_ADDR_TDA8290, .flags=0, .buf=data, .len = 2}; | ||
1375 | data[0] = 0x21; | ||
1376 | data[1] = 0xc0; | ||
1377 | ret = i2c_transfer(&dev->i2c_adap, &msg, 1); | ||
1378 | if (ret != 1) | ||
1379 | printk(KERN_ERR "TDA8290 access failure\n"); | ||
1380 | msg.addr = I2C_ADDR_TDA8275; | ||
1381 | data[0] = 0x30; | ||
1382 | data[1] = 0xd0; | ||
1383 | ret = i2c_transfer(&dev->i2c_adap, &msg, 1); | ||
1384 | if (ret != 1) | ||
1385 | printk(KERN_ERR "TDA8275 access failure\n"); | ||
1386 | msg.addr = I2C_ADDR_TDA8290; | ||
1387 | data[0] = 0x21; | ||
1388 | data[1] = 0x80; | ||
1389 | i2c_transfer(&dev->i2c_adap, &msg, 1); | ||
1390 | data[0] = 0x00; | ||
1391 | data[1] = 0x02; | ||
1392 | i2c_transfer(&dev->i2c_adap, &msg, 1); | ||
1393 | } | ||
1394 | |||
1366 | /* free stuff */ | 1395 | /* free stuff */ |
1367 | videobuf_mmap_free(&fh->cap); | 1396 | videobuf_mmap_free(&fh->cap); |
1368 | videobuf_mmap_free(&fh->vbi); | 1397 | videobuf_mmap_free(&fh->vbi); |
@@ -1399,13 +1428,6 @@ static void saa7134_vbi_fmt(struct saa7134_dev *dev, struct v4l2_format *f) | |||
1399 | f->fmt.vbi.count[1] = f->fmt.vbi.count[0]; | 1428 | f->fmt.vbi.count[1] = f->fmt.vbi.count[0]; |
1400 | f->fmt.vbi.flags = 0; /* VBI_UNSYNC VBI_INTERLACED */ | 1429 | f->fmt.vbi.flags = 0; /* VBI_UNSYNC VBI_INTERLACED */ |
1401 | 1430 | ||
1402 | #if 0 | ||
1403 | if (V4L2_STD_PAL == norm->id) { | ||
1404 | /* FIXME */ | ||
1405 | f->fmt.vbi.start[0] += 3; | ||
1406 | f->fmt.vbi.start[1] += 3*2; | ||
1407 | } | ||
1408 | #endif | ||
1409 | } | 1431 | } |
1410 | 1432 | ||
1411 | static int saa7134_g_fmt(struct saa7134_dev *dev, struct saa7134_fh *fh, | 1433 | static int saa7134_g_fmt(struct saa7134_dev *dev, struct saa7134_fh *fh, |
@@ -2120,8 +2142,6 @@ static int radio_do_ioctl(struct inode *inode, struct file *file, | |||
2120 | 2142 | ||
2121 | memset(t,0,sizeof(*t)); | 2143 | memset(t,0,sizeof(*t)); |
2122 | strcpy(t->name, "Radio"); | 2144 | strcpy(t->name, "Radio"); |
2123 | t->rangelow = (int)(65*16); | ||
2124 | t->rangehigh = (int)(108*16); | ||
2125 | 2145 | ||
2126 | saa7134_i2c_call_clients(dev, VIDIOC_G_TUNER, t); | 2146 | saa7134_i2c_call_clients(dev, VIDIOC_G_TUNER, t); |
2127 | 2147 | ||
diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h index d6b1c0d4d0f9..6836c07794fc 100644 --- a/drivers/media/video/saa7134/saa7134.h +++ b/drivers/media/video/saa7134/saa7134.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * $Id: saa7134.h,v 1.41 2005/06/07 18:02:26 nsh Exp $ | 2 | * $Id: saa7134.h,v 1.48 2005/07/01 08:22:24 nsh Exp $ |
3 | * | 3 | * |
4 | * v4l2 device driver for philips saa7134 based TV cards | 4 | * v4l2 device driver for philips saa7134 based TV cards |
5 | * | 5 | * |
@@ -46,8 +46,6 @@ | |||
46 | #endif | 46 | #endif |
47 | #define UNSET (-1U) | 47 | #define UNSET (-1U) |
48 | 48 | ||
49 | /* 2.4 / 2.5 driver compatibility stuff */ | ||
50 | |||
51 | /* ----------------------------------------------------------- */ | 49 | /* ----------------------------------------------------------- */ |
52 | /* enums */ | 50 | /* enums */ |
53 | 51 | ||
@@ -159,7 +157,7 @@ struct saa7134_format { | |||
159 | #define SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER 33 | 157 | #define SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER 33 |
160 | #define SAA7134_BOARD_NOVAC_PRIMETV7133 34 | 158 | #define SAA7134_BOARD_NOVAC_PRIMETV7133 34 |
161 | #define SAA7134_BOARD_AVERMEDIA_STUDIO_305 35 | 159 | #define SAA7134_BOARD_AVERMEDIA_STUDIO_305 35 |
162 | #define SAA7133_BOARD_UPMOST_PURPLE_TV 36 | 160 | #define SAA7134_BOARD_UPMOST_PURPLE_TV 36 |
163 | #define SAA7134_BOARD_ITEMS_MTV005 37 | 161 | #define SAA7134_BOARD_ITEMS_MTV005 37 |
164 | #define SAA7134_BOARD_CINERGY200 38 | 162 | #define SAA7134_BOARD_CINERGY200 38 |
165 | #define SAA7134_BOARD_FLYTVPLATINUM_MINI 39 | 163 | #define SAA7134_BOARD_FLYTVPLATINUM_MINI 39 |
@@ -176,13 +174,17 @@ struct saa7134_format { | |||
176 | #define SAA7134_BOARD_PINNACLE_300I_DVBT_PAL 50 | 174 | #define SAA7134_BOARD_PINNACLE_300I_DVBT_PAL 50 |
177 | #define SAA7134_BOARD_PROVIDEO_PV952 51 | 175 | #define SAA7134_BOARD_PROVIDEO_PV952 51 |
178 | #define SAA7134_BOARD_AVERMEDIA_305 52 | 176 | #define SAA7134_BOARD_AVERMEDIA_305 52 |
179 | #define SAA7135_BOARD_ASUSTeK_TVFM7135 53 | 177 | #define SAA7134_BOARD_ASUSTeK_TVFM7135 53 |
180 | #define SAA7134_BOARD_FLYTVPLATINUM_FM 54 | 178 | #define SAA7134_BOARD_FLYTVPLATINUM_FM 54 |
181 | #define SAA7134_BOARD_FLYDVBTDUO 55 | 179 | #define SAA7134_BOARD_FLYDVBTDUO 55 |
182 | #define SAA7134_BOARD_AVERMEDIA_307 56 | 180 | #define SAA7134_BOARD_AVERMEDIA_307 56 |
183 | #define SAA7134_BOARD_AVERMEDIA_GO_007_FM 57 | 181 | #define SAA7134_BOARD_AVERMEDIA_GO_007_FM 57 |
184 | #define SAA7134_BOARD_ADS_INSTANT_TV 58 | 182 | #define SAA7134_BOARD_ADS_INSTANT_TV 58 |
185 | #define SAA7134_BOARD_KWORLD_VSTREAM_XPERT 59 | 183 | #define SAA7134_BOARD_KWORLD_VSTREAM_XPERT 59 |
184 | #define SAA7134_BOARD_THYPHOON_DVBT_DUO_CARDBUS 60 | ||
185 | #define SAA7134_BOARD_PHILIPS_TOUGH 61 | ||
186 | #define SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII 62 | ||
187 | #define SAA7134_BOARD_KWORLD_XPERT 63 | ||
186 | 188 | ||
187 | #define SAA7134_MAXBOARDS 8 | 189 | #define SAA7134_MAXBOARDS 8 |
188 | #define SAA7134_INPUT_MAX 8 | 190 | #define SAA7134_INPUT_MAX 8 |
@@ -213,6 +215,10 @@ struct saa7134_board { | |||
213 | 215 | ||
214 | /* i2c chip info */ | 216 | /* i2c chip info */ |
215 | unsigned int tuner_type; | 217 | unsigned int tuner_type; |
218 | unsigned int radio_type; | ||
219 | unsigned char tuner_addr; | ||
220 | unsigned char radio_addr; | ||
221 | |||
216 | unsigned int tda9887_conf; | 222 | unsigned int tda9887_conf; |
217 | 223 | ||
218 | /* peripheral I/O */ | 224 | /* peripheral I/O */ |
@@ -403,9 +409,12 @@ struct saa7134_dev { | |||
403 | /* config info */ | 409 | /* config info */ |
404 | unsigned int board; | 410 | unsigned int board; |
405 | unsigned int tuner_type; | 411 | unsigned int tuner_type; |
412 | unsigned int radio_type; | ||
413 | unsigned char tuner_addr; | ||
414 | unsigned char radio_addr; | ||
415 | |||
406 | unsigned int tda9887_conf; | 416 | unsigned int tda9887_conf; |
407 | unsigned int gpio_value; | 417 | unsigned int gpio_value; |
408 | unsigned int irq2_mask; | ||
409 | 418 | ||
410 | /* i2c i/o */ | 419 | /* i2c i/o */ |
411 | struct i2c_adapter i2c_adap; | 420 | struct i2c_adapter i2c_adap; |