1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  *
4  * device driver for philips saa7134 based TV cards
5  * card-specific stuff.
6  *
7  * (c) 2001-04 Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]
8  */
9 
10 #include "saa7134.h"
11 #include "saa7134-reg.h"
12 
13 #include <linux/init.h>
14 #include <linux/module.h>
15 #include <linux/i2c.h>
16 #include <linux/i2c-algo-bit.h>
17 
18 #include "xc2028.h"
19 #include <media/v4l2-common.h>
20 #include <media/tveeprom.h>
21 #include "tea5767.h"
22 #include "tda18271.h"
23 #include "xc5000.h"
24 #include "s5h1411.h"
25 
26 /* Input names */
27 const char * const saa7134_input_name[] = {
28 	[SAA7134_INPUT_MUTE]       = "mute",
29 	[SAA7134_INPUT_RADIO]      = "Radio",
30 	[SAA7134_INPUT_TV]         = "Television",
31 	[SAA7134_INPUT_TV_MONO]    = "TV (mono only)",
32 	[SAA7134_INPUT_COMPOSITE]  = "Composite",
33 	[SAA7134_INPUT_COMPOSITE0] = "Composite0",
34 	[SAA7134_INPUT_COMPOSITE1] = "Composite1",
35 	[SAA7134_INPUT_COMPOSITE2] = "Composite2",
36 	[SAA7134_INPUT_COMPOSITE3] = "Composite3",
37 	[SAA7134_INPUT_COMPOSITE4] = "Composite4",
38 	[SAA7134_INPUT_SVIDEO]     = "S-Video",
39 	[SAA7134_INPUT_SVIDEO0]    = "S-Video0",
40 	[SAA7134_INPUT_SVIDEO1]    = "S-Video1",
41 	[SAA7134_INPUT_COMPOSITE_OVER_SVIDEO] = "Composite over S-Video",
42 };
43 
44 /* ------------------------------------------------------------------ */
45 /* board config info                                                  */
46 
47 static struct tda18271_std_map aver_a706_std_map = {
48 	.fm_radio = { .if_freq = 5500, .fm_rfn = 0, .agc_mode = 3, .std = 0,
49 		      .if_lvl = 0, .rfagc_top = 0x2c, },
50 };
51 
52 /* If radio_type !=UNSET, radio_addr should be specified
53  */
54 
55 struct saa7134_board saa7134_boards[] = {
56 	[SAA7134_BOARD_UNKNOWN] = {
57 		.name		= "UNKNOWN/GENERIC",
58 		.audio_clock	= 0x00187de7,
59 		.tuner_type	= TUNER_ABSENT,
60 		.radio_type     = UNSET,
61 		.tuner_addr	= ADDR_UNSET,
62 		.radio_addr	= ADDR_UNSET,
63 
64 		.inputs         = {{
65 			.type = SAA7134_INPUT_COMPOSITE,
66 			.vmux = 0,
67 			.amux = LINE1,
68 		}},
69 	},
70 	[SAA7134_BOARD_PROTEUS_PRO] = {
71 		/* /me */
72 		.name		= "Proteus Pro [philips reference design]",
73 		.audio_clock	= 0x00187de7,
74 		.tuner_type	= TUNER_PHILIPS_PAL,
75 		.radio_type     = UNSET,
76 		.tuner_addr	= ADDR_UNSET,
77 		.radio_addr	= ADDR_UNSET,
78 
79 		.inputs         = {{
80 			.type = SAA7134_INPUT_COMPOSITE1,
81 			.vmux = 0,
82 			.amux = LINE1,
83 		},{
84 			.type = SAA7134_INPUT_TV,
85 			.vmux = 1,
86 			.amux = TV,
87 		},{
88 			.type = SAA7134_INPUT_TV_MONO,
89 			.vmux = 1,
90 			.amux = LINE2,
91 		}},
92 		.radio = {
93 			.type = SAA7134_INPUT_RADIO,
94 			.amux = LINE2,
95 		},
96 	},
97 	[SAA7134_BOARD_FLYVIDEO3000] = {
98 		/* "Marco d'Itri" <md@Linux.IT> */
99 		.name		= "LifeView FlyVIDEO3000",
100 		.audio_clock	= 0x00200000,
101 		.tuner_type	= TUNER_PHILIPS_PAL,
102 		.radio_type     = UNSET,
103 		.tuner_addr	= ADDR_UNSET,
104 		.radio_addr	= ADDR_UNSET,
105 
106 		.gpiomask       = 0xe000,
107 		.inputs         = {{
108 			.type = SAA7134_INPUT_TV,
109 			.vmux = 1,
110 			.amux = TV,
111 			.gpio = 0x8000,
112 		},{
113 			.type = SAA7134_INPUT_TV_MONO,
114 			.vmux = 1,
115 			.amux = LINE2,
116 			.gpio = 0x0000,
117 		},{
118 			.type = SAA7134_INPUT_COMPOSITE1,
119 			.vmux = 0,
120 			.amux = LINE2,
121 			.gpio = 0x4000,
122 		},{
123 			.type = SAA7134_INPUT_COMPOSITE2,
124 			.vmux = 3,
125 			.amux = LINE2,
126 			.gpio = 0x4000,
127 		},{
128 			.type = SAA7134_INPUT_SVIDEO,
129 			.vmux = 8,
130 			.amux = LINE2,
131 			.gpio = 0x4000,
132 		}},
133 		.radio = {
134 			.type = SAA7134_INPUT_RADIO,
135 			.amux = LINE2,
136 			.gpio = 0x2000,
137 		},
138 		.mute = {
139 			.type = SAA7134_INPUT_MUTE,
140 			.amux = TV,
141 			.gpio = 0x8000,
142 		},
143 	},
144 	[SAA7134_BOARD_FLYVIDEO2000] = {
145 		/* "TC Wan" <tcwan@cs.usm.my> */
146 		.name           = "LifeView/Typhoon FlyVIDEO2000",
147 		.audio_clock    = 0x00200000,
148 		.tuner_type     = TUNER_LG_PAL_NEW_TAPC,
149 		.radio_type     = UNSET,
150 		.tuner_addr	= ADDR_UNSET,
151 		.radio_addr	= ADDR_UNSET,
152 
153 		.gpiomask       = 0xe000,
154 		.inputs         = {{
155 			.type = SAA7134_INPUT_TV,
156 			.vmux = 1,
157 			.amux = LINE2,
158 			.gpio = 0x0000,
159 		},{
160 			.type = SAA7134_INPUT_COMPOSITE1,
161 			.vmux = 0,
162 			.amux = LINE2,
163 			.gpio = 0x4000,
164 		},{
165 			.type = SAA7134_INPUT_COMPOSITE2,
166 			.vmux = 3,
167 			.amux = LINE2,
168 			.gpio = 0x4000,
169 		},{
170 			.type = SAA7134_INPUT_SVIDEO,
171 			.vmux = 8,
172 			.amux = LINE2,
173 			.gpio = 0x4000,
174 		}},
175 		.radio = {
176 			.type = SAA7134_INPUT_RADIO,
177 			.amux = LINE2,
178 			.gpio = 0x2000,
179 		},
180 		.mute = {
181 			.type = SAA7134_INPUT_MUTE,
182 			.amux = LINE2,
183 			.gpio = 0x8000,
184 		},
185 	},
186 	[SAA7134_BOARD_FLYTVPLATINUM_MINI] = {
187 		/* "Arnaud Quette" <aquette@free.fr> */
188 		.name           = "LifeView FlyTV Platinum Mini",
189 		.audio_clock    = 0x00200000,
190 		.tuner_type     = TUNER_PHILIPS_TDA8290,
191 		.radio_type     = UNSET,
192 		.tuner_addr	= ADDR_UNSET,
193 		.radio_addr	= ADDR_UNSET,
194 
195 		.inputs         = {{
196 			.type = SAA7134_INPUT_TV,
197 			.vmux = 1,
198 			.amux = TV,
199 		},{
200 			.type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
201 			.vmux = 0,
202 			.amux = LINE2,
203 		},{
204 			.type = SAA7134_INPUT_COMPOSITE,
205 			.vmux = 3,
206 			.amux = LINE2,
207 		},{
208 			.type = SAA7134_INPUT_SVIDEO,
209 			.vmux = 8,
210 			.amux = LINE2,
211 		}},
212 	},
213 	[SAA7134_BOARD_FLYTVPLATINUM_FM] = {
214 		/* LifeView FlyTV Platinum FM (LR214WF) */
215 		/* "Peter Missel <peter.missel@onlinehome.de> */
216 		.name           = "LifeView FlyTV Platinum FM / Gold",
217 		.audio_clock    = 0x00200000,
218 		.tuner_type     = TUNER_PHILIPS_TDA8290,
219 		.radio_type     = UNSET,
220 		.tuner_addr	= ADDR_UNSET,
221 		.radio_addr	= ADDR_UNSET,
222 
223 		.gpiomask       = 0x1E000,	/* Set GP16 and unused 15,14,13 to Output */
224 		.inputs         = {{
225 			.type = SAA7134_INPUT_TV,
226 			.vmux = 1,
227 			.amux = TV,
228 			.gpio = 0x10000,	/* GP16=1 selects TV input */
229 		},{
230 /*			.type = SAA7134_INPUT_TV_MONO,
231 			.vmux = 1,
232 			.amux = LINE2,
233 			.gpio = 0x0000,
234 		},{
235 */			.type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
236 			.vmux = 0,
237 			.amux = LINE2,
238 /*			.gpio = 0x4000,         */
239 		},{
240 			.type = SAA7134_INPUT_COMPOSITE,
241 			.vmux = 3,
242 			.amux = LINE2,
243 /*			.gpio = 0x4000,         */
244 		},{
245 			.type = SAA7134_INPUT_SVIDEO,
246 			.vmux = 8,
247 			.amux = LINE2,
248 /*			.gpio = 0x4000,         */
249 		}},
250 		.radio = {
251 			.type = SAA7134_INPUT_RADIO,
252 			.amux = TV,
253 			.gpio = 0x00000,	/* GP16=0 selects FM radio antenna */
254 		},
255 		.mute = {
256 			.type = SAA7134_INPUT_MUTE,
257 			.amux = TV,
258 			.gpio = 0x10000,
259 		},
260 	},
261 	[SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM] = {
262 		/* RoverMedia TV Link Pro FM (LR138 REV:I) */
263 		/* Eugene Yudin <Eugene.Yudin@gmail.com> */
264 		.name		= "RoverMedia TV Link Pro FM",
265 		.audio_clock	= 0x00200000,
266 		.tuner_type	= TUNER_PHILIPS_FM1216ME_MK3, /* TCL MFPE05 2 */
267 		.radio_type     = UNSET,
268 		.tuner_addr	= ADDR_UNSET,
269 		.radio_addr	= ADDR_UNSET,
270 		.tda9887_conf   = TDA9887_PRESENT,
271 		.gpiomask       = 0xe000,
272 		.inputs         = { {
273 			.type = SAA7134_INPUT_TV,
274 			.vmux = 1,
275 			.amux = TV,
276 			.gpio = 0x8000,
277 		}, {
278 			.type = SAA7134_INPUT_TV_MONO,
279 			.vmux = 1,
280 			.amux = LINE2,
281 			.gpio = 0x0000,
282 		}, {
283 			.type = SAA7134_INPUT_COMPOSITE1,
284 			.vmux = 0,
285 			.amux = LINE2,
286 			.gpio = 0x4000,
287 		}, {
288 			.type = SAA7134_INPUT_COMPOSITE2,
289 			.vmux = 3,
290 			.amux = LINE2,
291 			.gpio = 0x4000,
292 		}, {
293 			.type = SAA7134_INPUT_SVIDEO,
294 			.vmux = 8,
295 			.amux = LINE2,
296 			.gpio = 0x4000,
297 		} },
298 		.radio = {
299 			.type = SAA7134_INPUT_RADIO,
300 			.amux = LINE2,
301 			.gpio = 0x2000,
302 		},
303 		.mute = {
304 			.type = SAA7134_INPUT_MUTE,
305 			.amux = TV,
306 			.gpio = 0x8000,
307 		},
308 	},
309 	[SAA7134_BOARD_EMPRESS] = {
310 		/* "Gert Vervoort" <gert.vervoort@philips.com> */
311 		.name		= "EMPRESS",
312 		.audio_clock	= 0x00187de7,
313 		.tuner_type	= TUNER_PHILIPS_PAL,
314 		.radio_type     = UNSET,
315 		.tuner_addr	= ADDR_UNSET,
316 		.radio_addr	= ADDR_UNSET,
317 		.empress_addr	= 0x20,
318 
319 		.inputs         = {{
320 			.type = SAA7134_INPUT_COMPOSITE1,
321 			.vmux = 0,
322 			.amux = LINE1,
323 		},{
324 			.type = SAA7134_INPUT_SVIDEO,
325 			.vmux = 8,
326 			.amux = LINE1,
327 		},{
328 			.type = SAA7134_INPUT_TV,
329 			.vmux = 1,
330 			.amux = LINE2,
331 		}},
332 		.radio = {
333 			.type = SAA7134_INPUT_RADIO,
334 			.amux = LINE2,
335 		},
336 		.mpeg      = SAA7134_MPEG_EMPRESS,
337 		.video_out = CCIR656,
338 	},
339 	[SAA7134_BOARD_MONSTERTV] = {
340 		/* "K.Ohta" <alpha292@bremen.or.jp> */
341 		.name           = "SKNet Monster TV",
342 		.audio_clock    = 0x00187de7,
343 		.tuner_type     = TUNER_PHILIPS_NTSC_M,
344 		.radio_type     = UNSET,
345 		.tuner_addr	= ADDR_UNSET,
346 		.radio_addr	= ADDR_UNSET,
347 
348 		.inputs         = {{
349 			.type = SAA7134_INPUT_TV,
350 			.vmux = 1,
351 			.amux = TV,
352 		},{
353 			.type = SAA7134_INPUT_COMPOSITE1,
354 			.vmux = 0,
355 			.amux = LINE1,
356 		},{
357 			.type = SAA7134_INPUT_SVIDEO,
358 			.vmux = 8,
359 			.amux = LINE1,
360 		}},
361 		.radio = {
362 			.type = SAA7134_INPUT_RADIO,
363 			.amux = LINE2,
364 		},
365 	},
366 	[SAA7134_BOARD_MD9717] = {
367 		.name		= "Tevion MD 9717",
368 		.audio_clock	= 0x00200000,
369 		.tuner_type	= TUNER_PHILIPS_PAL,
370 		.radio_type     = UNSET,
371 		.tuner_addr	= ADDR_UNSET,
372 		.radio_addr	= ADDR_UNSET,
373 		.inputs         = {{
374 			.type = SAA7134_INPUT_TV,
375 			.vmux = 1,
376 			.amux = TV,
377 		},{
378 			/* workaround for problems with normal TV sound */
379 			.type = SAA7134_INPUT_TV_MONO,
380 			.vmux = 1,
381 			.amux = LINE2,
382 		},{
383 			.type = SAA7134_INPUT_COMPOSITE1,
384 			.vmux = 0,
385 			.amux = LINE1,
386 		},{
387 			.type = SAA7134_INPUT_COMPOSITE2,
388 			.vmux = 3,
389 			.amux = LINE1,
390 		},{
391 			.type = SAA7134_INPUT_SVIDEO,
392 			.vmux = 8,
393 			.amux = LINE1,
394 		}},
395 		.radio = {
396 			.type = SAA7134_INPUT_RADIO,
397 			.amux = LINE2,
398 		},
399 	       .mute = {
400 		       .type = SAA7134_INPUT_MUTE,
401 		       .amux = TV,
402 	       },
403 	},
404 	[SAA7134_BOARD_TVSTATION_RDS] = {
405 		/* Typhoon TV Tuner RDS: Art.Nr. 50694 */
406 		.name		= "KNC One TV-Station RDS / Typhoon TV Tuner RDS",
407 		.audio_clock	= 0x00200000,
408 		.tuner_type	= TUNER_PHILIPS_FM1216ME_MK3,
409 		.radio_type     = UNSET,
410 		.tuner_addr	= ADDR_UNSET,
411 		.radio_addr	= ADDR_UNSET,
412 		.tda9887_conf   = TDA9887_PRESENT,
413 		.inputs         = {{
414 			.type = SAA7134_INPUT_TV,
415 			.vmux = 1,
416 			.amux = TV,
417 		},{
418 			.type = SAA7134_INPUT_TV_MONO,
419 			.vmux = 1,
420 			.amux   = LINE2,
421 		},{
422 
423 			.type = SAA7134_INPUT_SVIDEO,
424 			.vmux = 8,
425 			.amux = LINE1,
426 		},{
427 			.type = SAA7134_INPUT_COMPOSITE1,
428 			.vmux = 3,
429 			.amux = LINE1,
430 		},{
431 
432 			.type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
433 			.vmux = 0,
434 			.amux = LINE1,
435 		}},
436 		.radio = {
437 			.type = SAA7134_INPUT_RADIO,
438 			.amux = LINE2,
439 		},
440 	},
441 	[SAA7134_BOARD_TVSTATION_DVR] = {
442 		.name		= "KNC One TV-Station DVR",
443 		.audio_clock	= 0x00200000,
444 		.tuner_type	= TUNER_PHILIPS_FM1216ME_MK3,
445 		.radio_type     = UNSET,
446 		.tuner_addr	= ADDR_UNSET,
447 		.radio_addr	= ADDR_UNSET,
448 		.empress_addr	= 0x20,
449 		.tda9887_conf	= TDA9887_PRESENT,
450 		.gpiomask	= 0x820000,
451 		.inputs		= {{
452 			.type = SAA7134_INPUT_TV,
453 			.vmux = 1,
454 			.amux = TV,
455 			.gpio = 0x20000,
456 		},{
457 			.type = SAA7134_INPUT_SVIDEO,
458 			.vmux = 8,
459 			.amux = LINE1,
460 			.gpio = 0x20000,
461 		},{
462 			.type = SAA7134_INPUT_COMPOSITE1,
463 			.vmux = 3,
464 			.amux = LINE1,
465 			.gpio = 0x20000,
466 		}},
467 		.radio		= {
468 			.type = SAA7134_INPUT_RADIO,
469 			.amux = LINE2,
470 			.gpio = 0x20000,
471 		},
472 		.mpeg           = SAA7134_MPEG_EMPRESS,
473 		.video_out	= CCIR656,
474 	},
475 	[SAA7134_BOARD_CINERGY400] = {
476 		.name           = "Terratec Cinergy 400 TV",
477 		.audio_clock    = 0x00200000,
478 		.tuner_type     = TUNER_PHILIPS_PAL,
479 		.radio_type     = UNSET,
480 		.tuner_addr	= ADDR_UNSET,
481 		.radio_addr	= ADDR_UNSET,
482 		.inputs         = {{
483 			.type = SAA7134_INPUT_TV,
484 			.vmux = 1,
485 			.amux = TV,
486 		},{
487 			.type = SAA7134_INPUT_COMPOSITE,
488 			.vmux = 4,
489 			.amux = LINE1,
490 		},{
491 			.type = SAA7134_INPUT_SVIDEO,
492 			.vmux = 8,
493 			.amux = LINE1,
494 		},{
495 			.type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
496 			.vmux = 0,
497 			.amux = LINE1,
498 		}}
499 	},
500 	[SAA7134_BOARD_MD5044] = {
501 		.name           = "Medion 5044",
502 		.audio_clock    = 0x00187de7, /* was: 0x00200000, */
503 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
504 		.radio_type     = UNSET,
505 		.tuner_addr	= ADDR_UNSET,
506 		.radio_addr	= ADDR_UNSET,
507 		.tda9887_conf   = TDA9887_PRESENT,
508 		.inputs         = {{
509 			.type = SAA7134_INPUT_TV,
510 			.vmux = 1,
511 			.amux = TV,
512 		},{
513 			/* workaround for problems with normal TV sound */
514 			.type = SAA7134_INPUT_TV_MONO,
515 			.vmux = 1,
516 			.amux = LINE2,
517 		},{
518 			.type = SAA7134_INPUT_COMPOSITE1,
519 			.vmux = 0,
520 			.amux = LINE2,
521 		},{
522 			.type = SAA7134_INPUT_COMPOSITE2,
523 			.vmux = 3,
524 			.amux = LINE2,
525 		},{
526 			.type = SAA7134_INPUT_SVIDEO,
527 			.vmux = 8,
528 			.amux = LINE2,
529 		}},
530 		.radio = {
531 			.type = SAA7134_INPUT_RADIO,
532 			.amux = LINE2,
533 		},
534 	},
535 	[SAA7134_BOARD_KWORLD] = {
536 		.name           = "Kworld/KuroutoShikou SAA7130-TVPCI",
537 		.audio_clock    = 0x00187de7,
538 		.tuner_type     = TUNER_PHILIPS_NTSC_M,
539 		.radio_type     = UNSET,
540 		.tuner_addr	= ADDR_UNSET,
541 		.radio_addr	= ADDR_UNSET,
542 		.inputs         = {{
543 			.type = SAA7134_INPUT_SVIDEO,
544 			.vmux = 8,
545 			.amux = LINE1,
546 		},{
547 			.type = SAA7134_INPUT_COMPOSITE1,
548 			.vmux = 3,
549 			.amux = LINE1,
550 		},{
551 			.type = SAA7134_INPUT_TV,
552 			.vmux = 1,
553 			.amux = LINE2,
554 		}},
555 	},
556 	[SAA7134_BOARD_CINERGY600] = {
557 		.name           = "Terratec Cinergy 600 TV",
558 		.audio_clock    = 0x00200000,
559 		.tuner_type     = TUNER_PHILIPS_PAL,
560 		.radio_type     = UNSET,
561 		.tuner_addr	= ADDR_UNSET,
562 		.radio_addr	= ADDR_UNSET,
563 		.tda9887_conf   = TDA9887_PRESENT,
564 		.inputs         = {{
565 			.type = SAA7134_INPUT_TV,
566 			.vmux = 1,
567 			.amux = TV,
568 		},{
569 			.type = SAA7134_INPUT_COMPOSITE1,
570 			.vmux = 4,
571 			.amux = LINE1,
572 		},{
573 			.type = SAA7134_INPUT_SVIDEO,
574 			.vmux = 8,
575 			.amux = LINE1,
576 		},{
577 			.type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
578 			.vmux = 0,
579 			.amux = LINE1,
580 		}},
581 		.radio = {
582 			.type = SAA7134_INPUT_RADIO,
583 			.amux = LINE2,
584 		},
585 	},
586 	[SAA7134_BOARD_MD7134] = {
587 		.name           = "Medion 7134",
588 		.audio_clock    = 0x00187de7,
589 		.tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
590 		.radio_type     = UNSET,
591 		.tuner_addr	= ADDR_UNSET,
592 		.radio_addr	= ADDR_UNSET,
593 		.tda9887_conf   = TDA9887_PRESENT,
594 		.mpeg           = SAA7134_MPEG_DVB,
595 		.inputs = {{
596 			.type = SAA7134_INPUT_TV,
597 			.vmux   = 1,
598 			.amux   = TV,
599 		},{
600 			.type = SAA7134_INPUT_COMPOSITE1,
601 			.vmux   = 0,
602 			.amux   = LINE1,
603 		},{
604 			.type = SAA7134_INPUT_SVIDEO,
605 			.vmux   = 8,
606 			.amux   = LINE1,
607 		}},
608 		.radio = {
609 			.type = SAA7134_INPUT_RADIO,
610 			.amux   = LINE2,
611 	       },
612 	       .mute = {
613 		       .type = SAA7134_INPUT_MUTE,
614 		       .amux = TV,
615 		},
616 	},
617 	[SAA7134_BOARD_TYPHOON_90031] = {
618 		/* aka Typhoon "TV+Radio", Art.Nr 90031 */
619 		/* Tom Zoerner <tomzo at users sourceforge net> */
620 		.name           = "Typhoon TV+Radio 90031",
621 		.audio_clock    = 0x00200000,
622 		.tuner_type     = TUNER_PHILIPS_PAL,
623 		.radio_type     = UNSET,
624 		.tuner_addr	= ADDR_UNSET,
625 		.radio_addr	= ADDR_UNSET,
626 		.tda9887_conf   = TDA9887_PRESENT,
627 		.inputs         = {{
628 			.type = SAA7134_INPUT_TV,
629 			.vmux   = 1,
630 			.amux   = TV,
631 		},{
632 			.type = SAA7134_INPUT_COMPOSITE1,
633 			.vmux   = 3,
634 			.amux   = LINE1,
635 		},{
636 			.type = SAA7134_INPUT_SVIDEO,
637 			.vmux   = 8,
638 			.amux   = LINE1,
639 		}},
640 		.radio = {
641 			.type = SAA7134_INPUT_RADIO,
642 			.amux   = LINE2,
643 		},
644 	},
645 	[SAA7134_BOARD_ELSA] = {
646 		.name           = "ELSA EX-VISION 300TV",
647 		.audio_clock    = 0x00187de7,
648 		.tuner_type     = TUNER_HITACHI_NTSC,
649 		.radio_type     = UNSET,
650 		.tuner_addr	= ADDR_UNSET,
651 		.radio_addr	= ADDR_UNSET,
652 		.inputs         = {{
653 			.type = SAA7134_INPUT_SVIDEO,
654 			.vmux = 8,
655 			.amux = LINE1,
656 		},{
657 			.type = SAA7134_INPUT_COMPOSITE1,
658 			.vmux   = 0,
659 			.amux   = LINE1,
660 		},{
661 			.type = SAA7134_INPUT_TV,
662 			.vmux = 4,
663 			.amux = LINE2,
664 		}},
665 	},
666 	[SAA7134_BOARD_ELSA_500TV] = {
667 		.name           = "ELSA EX-VISION 500TV",
668 		.audio_clock    = 0x00187de7,
669 		.tuner_type     = TUNER_HITACHI_NTSC,
670 		.radio_type     = UNSET,
671 		.tuner_addr	= ADDR_UNSET,
672 		.radio_addr	= ADDR_UNSET,
673 		.inputs         = {{
674 			.type = SAA7134_INPUT_SVIDEO,
675 			.vmux = 7,
676 			.amux = LINE1,
677 		},{
678 			.type = SAA7134_INPUT_TV,
679 			.vmux = 8,
680 			.amux = TV,
681 		},{
682 			.type = SAA7134_INPUT_TV_MONO,
683 			.vmux = 8,
684 			.amux = LINE2,
685 		}},
686 	},
687 	[SAA7134_BOARD_ELSA_700TV] = {
688 		.name           = "ELSA EX-VISION 700TV",
689 		.audio_clock    = 0x00187de7,
690 		.tuner_type     = TUNER_HITACHI_NTSC,
691 		.radio_type     = UNSET,
692 		.tuner_addr	= ADDR_UNSET,
693 		.radio_addr	= ADDR_UNSET,
694 		.inputs         = {{
695 			.type = SAA7134_INPUT_TV,
696 			.vmux = 4,
697 			.amux = LINE2,
698 		},{
699 			.type = SAA7134_INPUT_COMPOSITE1,
700 			.vmux = 6,
701 			.amux = LINE1,
702 		},{
703 			.type = SAA7134_INPUT_SVIDEO,
704 			.vmux = 7,
705 			.amux = LINE1,
706 		}},
707 		.mute           = {
708 			.type = SAA7134_INPUT_MUTE,
709 			.amux = TV,
710 		},
711 	},
712 	[SAA7134_BOARD_ASUSTeK_TVFM7134] = {
713 		.name           = "ASUS TV-FM 7134",
714 		.audio_clock    = 0x00187de7,
715 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
716 		.radio_type     = UNSET,
717 		.tuner_addr	= ADDR_UNSET,
718 		.radio_addr	= ADDR_UNSET,
719 		.tda9887_conf   = TDA9887_PRESENT,
720 		.inputs         = {{
721 			.type = SAA7134_INPUT_TV,
722 			.vmux = 1,
723 			.amux = TV,
724 		},{
725 			.type = SAA7134_INPUT_COMPOSITE1,
726 			.vmux = 4,
727 			.amux = LINE2,
728 		},{
729 			.type = SAA7134_INPUT_SVIDEO,
730 			.vmux = 6,
731 			.amux = LINE2,
732 		}},
733 		.radio = {
734 			.type = SAA7134_INPUT_RADIO,
735 			.amux = LINE1,
736 		},
737 	},
738 	[SAA7134_BOARD_ASUSTeK_TVFM7135] = {
739 		.name           = "ASUS TV-FM 7135",
740 		.audio_clock    = 0x00187de7,
741 		.tuner_type     = TUNER_PHILIPS_TDA8290,
742 		.radio_type     = UNSET,
743 		.tuner_addr	= ADDR_UNSET,
744 		.radio_addr	= ADDR_UNSET,
745 		.gpiomask       = 0x200000,
746 		.inputs         = {{
747 			.type = SAA7134_INPUT_TV,
748 			.vmux = 1,
749 			.amux = TV,
750 			.gpio = 0x0000,
751 		},{
752 			.type = SAA7134_INPUT_COMPOSITE1,
753 			.vmux = 4,
754 			.amux = LINE2,
755 			.gpio = 0x0000,
756 		},{
757 			.type = SAA7134_INPUT_SVIDEO,
758 			.vmux = 6,
759 			.amux = LINE2,
760 			.gpio = 0x0000,
761 		}},
762 		.radio = {
763 			.type = SAA7134_INPUT_RADIO,
764 			.amux = TV,
765 			.gpio = 0x200000,
766 		},
767 		.mute  = {
768 			.type = SAA7134_INPUT_MUTE,
769 			.gpio = 0x0000,
770 		},
771 
772 	},
773 	[SAA7134_BOARD_VA1000POWER] = {
774 		.name           = "AOPEN VA1000 POWER",
775 		.audio_clock    = 0x00187de7,
776 		.tuner_type     = TUNER_PHILIPS_NTSC,
777 		.radio_type     = UNSET,
778 		.tuner_addr	= ADDR_UNSET,
779 		.radio_addr	= ADDR_UNSET,
780 		.inputs         = {{
781 			.type = SAA7134_INPUT_SVIDEO,
782 			.vmux = 8,
783 			.amux = LINE1,
784 		},{
785 			.type = SAA7134_INPUT_COMPOSITE1,
786 			.vmux = 3,
787 			.amux = LINE1,
788 		},{
789 			.type = SAA7134_INPUT_TV,
790 			.vmux = 1,
791 			.amux = LINE2,
792 		}},
793 	},
794 	[SAA7134_BOARD_10MOONSTVMASTER] = {
795 		/* "lilicheng" <llc@linuxfans.org> */
796 		.name           = "10MOONS PCI TV CAPTURE CARD",
797 		.audio_clock    = 0x00200000,
798 		.tuner_type     = TUNER_LG_PAL_NEW_TAPC,
799 		.radio_type     = UNSET,
800 		.tuner_addr	= ADDR_UNSET,
801 		.radio_addr	= ADDR_UNSET,
802 		.gpiomask       = 0xe000,
803 		.inputs         = {{
804 			.type = SAA7134_INPUT_TV,
805 			.vmux = 1,
806 			.amux = LINE2,
807 			.gpio = 0x0000,
808 		},{
809 			.type = SAA7134_INPUT_COMPOSITE1,
810 			.vmux = 0,
811 			.amux = LINE2,
812 			.gpio = 0x4000,
813 		},{
814 			.type = SAA7134_INPUT_COMPOSITE2,
815 			.vmux = 3,
816 			.amux = LINE2,
817 			.gpio = 0x4000,
818 		},{
819 			.type = SAA7134_INPUT_SVIDEO,
820 			.vmux = 8,
821 			.amux = LINE2,
822 			.gpio = 0x4000,
823 		}},
824 		.radio = {
825 			.type = SAA7134_INPUT_RADIO,
826 			.amux = LINE2,
827 			.gpio = 0x2000,
828 		},
829 		.mute = {
830 			.type = SAA7134_INPUT_MUTE,
831 			.amux = LINE2,
832 			.gpio = 0x8000,
833 		},
834 	},
835 	[SAA7134_BOARD_BMK_MPEX_NOTUNER] = {
836 		/* "Andrew de Quincey" <adq@lidskialf.net> */
837 		.name		= "BMK MPEX No Tuner",
838 		.audio_clock	= 0x200000,
839 		.tuner_type	= TUNER_ABSENT,
840 		.radio_type     = UNSET,
841 		.tuner_addr	= ADDR_UNSET,
842 		.radio_addr	= ADDR_UNSET,
843 		.empress_addr	= 0x20,
844 		.inputs         = {{
845 			.type = SAA7134_INPUT_COMPOSITE1,
846 			.vmux = 4,
847 			.amux = LINE1,
848 		},{
849 			.type = SAA7134_INPUT_COMPOSITE2,
850 			.vmux = 3,
851 			.amux = LINE1,
852 		},{
853 			.type = SAA7134_INPUT_COMPOSITE3,
854 			.vmux = 0,
855 			.amux = LINE1,
856 		},{
857 			.type = SAA7134_INPUT_COMPOSITE4,
858 			.vmux = 1,
859 			.amux = LINE1,
860 		},{
861 			.type = SAA7134_INPUT_SVIDEO,
862 			.vmux = 8,
863 			.amux = LINE1,
864 		}},
865 		.mpeg      = SAA7134_MPEG_EMPRESS,
866 		.video_out = CCIR656,
867 	},
868 	[SAA7134_BOARD_VIDEOMATE_TV] = {
869 		.name           = "Compro VideoMate TV",
870 		.audio_clock    = 0x00187de7,
871 		.tuner_type     = TUNER_PHILIPS_NTSC_M,
872 		.radio_type     = UNSET,
873 		.tuner_addr	= ADDR_UNSET,
874 		.radio_addr	= ADDR_UNSET,
875 		.inputs         = {{
876 			.type = SAA7134_INPUT_SVIDEO,
877 			.vmux = 8,
878 			.amux = LINE1,
879 		},{
880 			.type = SAA7134_INPUT_COMPOSITE1,
881 			.vmux = 3,
882 			.amux = LINE1,
883 		},{
884 			.type = SAA7134_INPUT_TV,
885 			.vmux = 1,
886 			.amux = LINE2,
887 		}},
888 	},
889 	[SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS] = {
890 		.name           = "Compro VideoMate TV Gold+",
891 		.audio_clock    = 0x00187de7,
892 		.tuner_type     = TUNER_PHILIPS_NTSC_M,
893 		.gpiomask       = 0x800c0000,
894 		.radio_type     = UNSET,
895 		.tuner_addr	= ADDR_UNSET,
896 		.radio_addr	= ADDR_UNSET,
897 		.inputs         = {{
898 			.type = SAA7134_INPUT_SVIDEO,
899 			.vmux = 8,
900 			.amux = LINE1,
901 			.gpio = 0x06c00012,
902 		},{
903 			.type = SAA7134_INPUT_COMPOSITE1,
904 			.vmux = 3,
905 			.amux = LINE1,
906 			.gpio = 0x0ac20012,
907 		},{
908 			.type = SAA7134_INPUT_TV,
909 			.vmux = 1,
910 			.amux = LINE2,
911 			.gpio = 0x08c20012,
912 		}},				/* radio and probably mute is missing */
913 	},
914 	[SAA7134_BOARD_CRONOS_PLUS] = {
915 		/*
916 		gpio pins:
917 			0  .. 3   BASE_ID
918 			4  .. 7   PROTECT_ID
919 			8  .. 11  USER_OUT
920 			12 .. 13  USER_IN
921 			14 .. 15  VIDIN_SEL
922 		*/
923 		.name           = "Matrox CronosPlus",
924 		.tuner_type     = TUNER_ABSENT,
925 		.radio_type     = UNSET,
926 		.tuner_addr	= ADDR_UNSET,
927 		.radio_addr	= ADDR_UNSET,
928 		.gpiomask       = 0xcf00,
929 		.inputs         = {{
930 			.type = SAA7134_INPUT_COMPOSITE1,
931 			.vmux = 0,
932 			.gpio = 2 << 14,
933 		},{
934 			.type = SAA7134_INPUT_COMPOSITE2,
935 			.vmux = 0,
936 			.gpio = 1 << 14,
937 		},{
938 			.type = SAA7134_INPUT_COMPOSITE3,
939 			.vmux = 0,
940 			.gpio = 0 << 14,
941 		},{
942 			.type = SAA7134_INPUT_COMPOSITE4,
943 			.vmux = 0,
944 			.gpio = 3 << 14,
945 		},{
946 			.type = SAA7134_INPUT_SVIDEO,
947 			.vmux = 8,
948 			.gpio = 2 << 14,
949 		}},
950 	},
951 	[SAA7134_BOARD_MD2819] = {
952 		.name           = "AverMedia M156 / Medion 2819",
953 		.audio_clock    = 0x00187de7,
954 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
955 		.radio_type     = UNSET,
956 		.tuner_addr	= ADDR_UNSET,
957 		.radio_addr	= ADDR_UNSET,
958 		.tda9887_conf   = TDA9887_PRESENT,
959 		.gpiomask	= 0x03,
960 		.inputs         = {{
961 			.type = SAA7134_INPUT_TV,
962 			.vmux = 1,
963 			.amux = TV,
964 			.gpio = 0x00,
965 		}, {
966 			.type = SAA7134_INPUT_COMPOSITE1,
967 			.vmux = 3,
968 			.amux = LINE1,
969 			.gpio = 0x02,
970 		}, {
971 			.type = SAA7134_INPUT_COMPOSITE2,
972 			.vmux = 0,
973 			.amux = LINE1,
974 			.gpio = 0x02,
975 		}, {
976 			.type = SAA7134_INPUT_SVIDEO,
977 			.vmux = 8,
978 			.amux = LINE1,
979 			.gpio = 0x02,
980 		} },
981 		.radio = {
982 			.type = SAA7134_INPUT_RADIO,
983 			.amux = LINE1,
984 			.gpio = 0x01,
985 		},
986 		.mute  = {
987 			.type = SAA7134_INPUT_MUTE,
988 			.amux = TV,
989 			.gpio = 0x00,
990 		},
991 	},
992 	[SAA7134_BOARD_BMK_MPEX_TUNER] = {
993 		/* "Greg Wickham <greg.wickham@grangenet.net> */
994 		.name           = "BMK MPEX Tuner",
995 		.audio_clock    = 0x200000,
996 		.tuner_type     = TUNER_PHILIPS_PAL,
997 		.radio_type     = UNSET,
998 		.tuner_addr	= ADDR_UNSET,
999 		.radio_addr	= ADDR_UNSET,
1000 		.empress_addr	= 0x20,
1001 		.inputs         = {{
1002 			.type = SAA7134_INPUT_COMPOSITE1,
1003 			.vmux = 1,
1004 			.amux = LINE1,
1005 		},{
1006 			.type = SAA7134_INPUT_SVIDEO,
1007 			.vmux = 8,
1008 			.amux = LINE1,
1009 		},{
1010 			.type = SAA7134_INPUT_TV,
1011 			.vmux = 3,
1012 			.amux = TV,
1013 		}},
1014 		.mpeg      = SAA7134_MPEG_EMPRESS,
1015 		.video_out = CCIR656,
1016 	},
1017 	[SAA7134_BOARD_ASUSTEK_TVFM7133] = {
1018 		.name           = "ASUS TV-FM 7133",
1019 		.audio_clock    = 0x00187de7,
1020 		/* probably wrong, the 7133 one is the NTSC version ...
1021 		* .tuner_type  = TUNER_PHILIPS_FM1236_MK3 */
1022 		.tuner_type     = TUNER_LG_NTSC_NEW_TAPC,
1023 		.radio_type     = UNSET,
1024 		.tuner_addr	= ADDR_UNSET,
1025 		.radio_addr	= ADDR_UNSET,
1026 		.tda9887_conf   = TDA9887_PRESENT,
1027 		.inputs         = {{
1028 			.type = SAA7134_INPUT_TV,
1029 			.vmux = 1,
1030 			.amux = TV,
1031 
1032 		},{
1033 			.type = SAA7134_INPUT_COMPOSITE1,
1034 			.vmux = 4,
1035 			.amux = LINE2,
1036 		},{
1037 			.type = SAA7134_INPUT_SVIDEO,
1038 			.vmux = 6,
1039 			.amux = LINE2,
1040 		}},
1041 		.radio = {
1042 			.type = SAA7134_INPUT_RADIO,
1043 			.amux = LINE1,
1044 		},
1045 	},
1046 	[SAA7134_BOARD_PINNACLE_PCTV_STEREO] = {
1047 		.name           = "Pinnacle PCTV Stereo (saa7134)",
1048 		.audio_clock    = 0x00187de7,
1049 		.tuner_type     = TUNER_MT2032,
1050 		.radio_type     = UNSET,
1051 		.tuner_addr	= ADDR_UNSET,
1052 		.radio_addr	= ADDR_UNSET,
1053 		.tda9887_conf   = TDA9887_PRESENT | TDA9887_INTERCARRIER | TDA9887_PORT2_INACTIVE,
1054 		.inputs         = {{
1055 			.type = SAA7134_INPUT_TV,
1056 			.vmux = 3,
1057 			.amux = TV,
1058 		},{
1059 			.type = SAA7134_INPUT_COMPOSITE1,
1060 			.vmux = 0,
1061 			.amux = LINE2,
1062 		},{
1063 			.type = SAA7134_INPUT_COMPOSITE2,
1064 			.vmux = 1,
1065 			.amux = LINE2,
1066 		},{
1067 			.type = SAA7134_INPUT_SVIDEO,
1068 			.vmux = 8,
1069 			.amux = LINE2,
1070 		}},
1071 	},
1072 	[SAA7134_BOARD_MANLI_MTV002] = {
1073 		/* Ognjen Nastic <ognjen@logosoft.ba> */
1074 		.name           = "Manli MuchTV M-TV002",
1075 		.audio_clock    = 0x00200000,
1076 		.tuner_type     = TUNER_PHILIPS_PAL,
1077 		.radio_type     = UNSET,
1078 		.tuner_addr	= ADDR_UNSET,
1079 		.radio_addr	= ADDR_UNSET,
1080 		.inputs         = {{
1081 			.type = SAA7134_INPUT_SVIDEO,
1082 			.vmux = 8,
1083 			.amux = LINE1,
1084 		},{
1085 			.type = SAA7134_INPUT_COMPOSITE1,
1086 			.vmux   = 1,
1087 			.amux   = LINE1,
1088 		},{
1089 			.type = SAA7134_INPUT_TV,
1090 			.vmux = 3,
1091 			.amux = LINE2,
1092 		}},
1093 		.radio = {
1094 			.type = SAA7134_INPUT_RADIO,
1095 			.amux = LINE2,
1096 		},
1097 	},
1098 	[SAA7134_BOARD_MANLI_MTV001] = {
1099 		/* Ognjen Nastic <ognjen@logosoft.ba> UNTESTED */
1100 		.name           = "Manli MuchTV M-TV001",
1101 		.audio_clock    = 0x00200000,
1102 		.tuner_type     = TUNER_PHILIPS_PAL,
1103 		.radio_type     = UNSET,
1104 		.tuner_addr	= ADDR_UNSET,
1105 		.radio_addr	= ADDR_UNSET,
1106 		.inputs         = {{
1107 			.type = SAA7134_INPUT_SVIDEO,
1108 			.vmux = 8,
1109 			.amux = LINE1,
1110 		},{
1111 			.type = SAA7134_INPUT_COMPOSITE1,
1112 			.vmux = 1,
1113 			.amux = LINE1,
1114 		},{
1115 			.type = SAA7134_INPUT_TV,
1116 			.vmux = 3,
1117 			.amux = LINE2,
1118 		}},
1119 		.mute = {
1120 			.type = SAA7134_INPUT_MUTE,
1121 			.amux = LINE1,
1122 		},
1123 	},
1124 	[SAA7134_BOARD_TG3000TV] = {
1125 		/* TransGear 3000TV */
1126 		.name           = "Nagase Sangyo TransGear 3000TV",
1127 		.audio_clock    = 0x00187de7,
1128 		.tuner_type     = TUNER_PHILIPS_NTSC_M,
1129 		.radio_type     = UNSET,
1130 		.tuner_addr	= ADDR_UNSET,
1131 		.radio_addr	= ADDR_UNSET,
1132 		.inputs         = {{
1133 			.type = SAA7134_INPUT_TV,
1134 			.vmux = 1,
1135 			.amux = LINE2,
1136 		},{
1137 			.type = SAA7134_INPUT_COMPOSITE1,
1138 			.vmux = 3,
1139 			.amux = LINE2,
1140 		},{
1141 			.type = SAA7134_INPUT_SVIDEO,
1142 			.vmux = 8,
1143 			.amux = LINE2,
1144 		}},
1145 	},
1146 	[SAA7134_BOARD_ECS_TVP3XP] = {
1147 		.name           = "Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM) ",
1148 		.audio_clock    = 0x187de7,  /* xtal 32.1 MHz */
1149 		.tuner_type     = TUNER_PHILIPS_PAL,
1150 		.radio_type     = UNSET,
1151 		.tuner_addr	= ADDR_UNSET,
1152 		.radio_addr	= ADDR_UNSET,
1153 		.inputs         = {{
1154 			.type = SAA7134_INPUT_TV,
1155 			.vmux   = 1,
1156 			.amux   = TV,
1157 		},{
1158 			.type = SAA7134_INPUT_TV_MONO,
1159 			.vmux   = 1,
1160 			.amux   = LINE2,
1161 		},{
1162 			.type = SAA7134_INPUT_COMPOSITE1,
1163 			.vmux   = 3,
1164 			.amux   = LINE1,
1165 		},{
1166 			.type = SAA7134_INPUT_SVIDEO,
1167 			.vmux   = 8,
1168 			.amux   = LINE1,
1169 		},{
1170 			.type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
1171 			.vmux   = 0,
1172 			.amux   = LINE1,
1173 		}},
1174 		.radio = {
1175 			.type = SAA7134_INPUT_RADIO,
1176 			.amux   = LINE2,
1177 		},
1178 	},
1179 	[SAA7134_BOARD_ECS_TVP3XP_4CB5] = {
1180 		.name           = "Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM)",
1181 		.audio_clock    = 0x187de7,
1182 		.tuner_type     = TUNER_PHILIPS_NTSC,
1183 		.radio_type     = UNSET,
1184 		.tuner_addr	= ADDR_UNSET,
1185 		.radio_addr	= ADDR_UNSET,
1186 		.inputs         = {{
1187 			.type = SAA7134_INPUT_TV,
1188 			.vmux   = 1,
1189 			.amux   = TV,
1190 		},{
1191 			.type = SAA7134_INPUT_TV_MONO,
1192 			.vmux   = 1,
1193 			.amux   = LINE2,
1194 		},{
1195 			.type = SAA7134_INPUT_COMPOSITE1,
1196 			.vmux   = 3,
1197 			.amux   = LINE1,
1198 		},{
1199 			.type = SAA7134_INPUT_SVIDEO,
1200 			.vmux   = 8,
1201 			.amux   = LINE1,
1202 		},{
1203 			.type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
1204 			.vmux   = 0,
1205 			.amux   = LINE1,
1206 		}},
1207 		.radio = {
1208 			.type = SAA7134_INPUT_RADIO,
1209 			.amux   = LINE2,
1210 		},
1211 	},
1212     [SAA7134_BOARD_ECS_TVP3XP_4CB6] = {
1213 		/* Barry Scott <barry.scott@onelan.co.uk> */
1214 		.name		= "Elitegroup ECS TVP3XP FM1246 Tuner Card (PAL,FM)",
1215 		.audio_clock    = 0x187de7,
1216 		.tuner_type     = TUNER_PHILIPS_PAL_I,
1217 		.radio_type     = UNSET,
1218 		.tuner_addr	= ADDR_UNSET,
1219 		.radio_addr	= ADDR_UNSET,
1220 		.inputs         = {{
1221 			.type = SAA7134_INPUT_TV,
1222 			.vmux   = 1,
1223 			.amux   = TV,
1224 		},{
1225 			.type = SAA7134_INPUT_TV_MONO,
1226 			.vmux   = 1,
1227 			.amux   = LINE2,
1228 		},{
1229 			.type = SAA7134_INPUT_COMPOSITE1,
1230 			.vmux   = 3,
1231 			.amux   = LINE1,
1232 		},{
1233 			.type = SAA7134_INPUT_SVIDEO,
1234 			.vmux   = 8,
1235 			.amux   = LINE1,
1236 		},{
1237 			.type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
1238 			.vmux   = 0,
1239 			.amux   = LINE1,
1240 		}},
1241 		.radio = {
1242 			.type = SAA7134_INPUT_RADIO,
1243 			.amux   = LINE2,
1244 		},
1245 	},
1246 	[SAA7134_BOARD_AVACSSMARTTV] = {
1247 		/* Roman Pszonczenko <romka@kolos.math.uni.lodz.pl> */
1248 		.name           = "AVACS SmartTV",
1249 		.audio_clock    = 0x00187de7,
1250 		.tuner_type     = TUNER_PHILIPS_PAL,
1251 		.radio_type     = UNSET,
1252 		.tuner_addr	= ADDR_UNSET,
1253 		.radio_addr	= ADDR_UNSET,
1254 		.inputs         = {{
1255 			.type = SAA7134_INPUT_TV,
1256 			.vmux = 1,
1257 			.amux = TV,
1258 		},{
1259 			.type = SAA7134_INPUT_TV_MONO,
1260 			.vmux = 1,
1261 			.amux = LINE2,
1262 		},{
1263 			.type = SAA7134_INPUT_COMPOSITE1,
1264 			.vmux = 0,
1265 			.amux = LINE2,
1266 		},{
1267 			.type = SAA7134_INPUT_COMPOSITE2,
1268 			.vmux = 3,
1269 			.amux = LINE2,
1270 		},{
1271 			.type = SAA7134_INPUT_SVIDEO,
1272 			.vmux = 8,
1273 			.amux = LINE2,
1274 		}},
1275 		.radio = {
1276 			.type = SAA7134_INPUT_RADIO,
1277 			.amux = LINE2,
1278 			.gpio = 0x200000,
1279 		},
1280 	},
1281 	[SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER] = {
1282 		/* Michael Smith <msmith@cbnco.com> */
1283 		.name           = "AVerMedia DVD EZMaker",
1284 		.audio_clock    = 0x00187de7,
1285 		.tuner_type     = TUNER_ABSENT,
1286 		.radio_type     = UNSET,
1287 		.tuner_addr	= ADDR_UNSET,
1288 		.radio_addr	= ADDR_UNSET,
1289 		.inputs         = {{
1290 			.type = SAA7134_INPUT_COMPOSITE1,
1291 			.vmux = 3,
1292 		},{
1293 			.type = SAA7134_INPUT_SVIDEO,
1294 			.vmux = 8,
1295 		}},
1296 	},
1297 	[SAA7134_BOARD_AVERMEDIA_M103] = {
1298 		/* Massimo Piccioni <dafastidio@libero.it> */
1299 		.name           = "AVerMedia MiniPCI DVB-T Hybrid M103",
1300 		.audio_clock    = 0x187de7,
1301 		.tuner_type     = TUNER_XC2028,
1302 		.radio_type     = UNSET,
1303 		.tuner_addr     = ADDR_UNSET,
1304 		.radio_addr     = ADDR_UNSET,
1305 		 .mpeg           = SAA7134_MPEG_DVB,
1306 		 .inputs         = {{
1307 			 .type = SAA7134_INPUT_TV,
1308 			 .vmux = 1,
1309 			 .amux = TV,
1310 		 } },
1311 	},
1312 	[SAA7134_BOARD_NOVAC_PRIMETV7133] = {
1313 		/* toshii@netbsd.org */
1314 		.name           = "Noval Prime TV 7133",
1315 		.audio_clock    = 0x00200000,
1316 		.tuner_type     = TUNER_ALPS_TSBH1_NTSC,
1317 		.radio_type     = UNSET,
1318 		.tuner_addr	= ADDR_UNSET,
1319 		.radio_addr	= ADDR_UNSET,
1320 		.inputs         = {{
1321 			.type = SAA7134_INPUT_COMPOSITE1,
1322 			.vmux = 3,
1323 		},{
1324 			.type = SAA7134_INPUT_TV,
1325 			.vmux = 1,
1326 			.amux = TV,
1327 		},{
1328 			.type = SAA7134_INPUT_SVIDEO,
1329 			.vmux = 8,
1330 		}},
1331 	},
1332 	[SAA7134_BOARD_AVERMEDIA_STUDIO_305] = {
1333 		.name           = "AverMedia AverTV Studio 305",
1334 		.audio_clock    = 0x00187de7,
1335 		.tuner_type     = TUNER_PHILIPS_FM1256_IH3,
1336 		.radio_type     = UNSET,
1337 		.tuner_addr	= ADDR_UNSET,
1338 		.radio_addr	= ADDR_UNSET,
1339 		.tda9887_conf   = TDA9887_PRESENT,
1340 		.inputs         = {{
1341 			.type = SAA7134_INPUT_TV,
1342 			.vmux = 1,
1343 			.amux = LINE2,
1344 		},{
1345 			.type = SAA7134_INPUT_COMPOSITE1,
1346 			.vmux = 0,
1347 			.amux = LINE2,
1348 		},{
1349 			.type = SAA7134_INPUT_COMPOSITE2,
1350 			.vmux = 3,
1351 			.amux = LINE2,
1352 		},{
1353 			.type = SAA7134_INPUT_SVIDEO,
1354 			.vmux = 8,
1355 			.amux = LINE2,
1356 		}},
1357 		.radio = {
1358 			.type = SAA7134_INPUT_RADIO,
1359 			.amux = LINE2,
1360 		},
1361 		.mute = {
1362 			.type = SAA7134_INPUT_MUTE,
1363 			.amux = LINE1,
1364 		},
1365 	},
1366 	[SAA7134_BOARD_AVERMEDIA_STUDIO_505] = {
1367 		/* Vasiliy Temnikov <vaka@newmail.ru> */
1368 		.name           = "AverMedia AverTV Studio 505",
1369 		.audio_clock    = 0x00187de7,
1370 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
1371 		.radio_type     = UNSET,
1372 		.tuner_addr	= ADDR_UNSET,
1373 		.radio_addr	= ADDR_UNSET,
1374 		.tda9887_conf   = TDA9887_PRESENT,
1375 		.inputs         = { {
1376 			.type = SAA7134_INPUT_TV,
1377 			.vmux = 1,
1378 			.amux = LINE2,
1379 		}, {
1380 			.type = SAA7134_INPUT_COMPOSITE1,
1381 			.vmux = 0,
1382 			.amux = LINE2,
1383 		}, {
1384 			.type = SAA7134_INPUT_COMPOSITE2,
1385 			.vmux = 3,
1386 			.amux = LINE2,
1387 		},{
1388 			.type = SAA7134_INPUT_SVIDEO,
1389 			.vmux = 8,
1390 			.amux = LINE2,
1391 		} },
1392 		.radio = {
1393 			.type = SAA7134_INPUT_RADIO,
1394 			.amux = LINE2,
1395 		},
1396 		.mute = {
1397 			.type = SAA7134_INPUT_MUTE,
1398 			.amux = LINE1,
1399 		},
1400 	},
1401 	[SAA7134_BOARD_UPMOST_PURPLE_TV] = {
1402 		.name           = "UPMOST PURPLE TV",
1403 		.audio_clock    = 0x00187de7,
1404 		.tuner_type     = TUNER_PHILIPS_FM1236_MK3,
1405 		.radio_type     = UNSET,
1406 		.tuner_addr	= ADDR_UNSET,
1407 		.radio_addr	= ADDR_UNSET,
1408 		.tda9887_conf   = TDA9887_PRESENT,
1409 		.inputs         = {{
1410 			.type = SAA7134_INPUT_TV,
1411 			.vmux = 7,
1412 			.amux = TV,
1413 		},{
1414 			.type = SAA7134_INPUT_SVIDEO,
1415 			.vmux = 7,
1416 			.amux = LINE1,
1417 		}},
1418 	},
1419 	[SAA7134_BOARD_ITEMS_MTV005] = {
1420 		/* Norman Jonas <normanjonas@arcor.de> */
1421 		.name           = "Items MuchTV Plus / IT-005",
1422 		.audio_clock    = 0x00187de7,
1423 		.tuner_type     = TUNER_PHILIPS_PAL,
1424 		.radio_type     = UNSET,
1425 		.tuner_addr	= ADDR_UNSET,
1426 		.radio_addr	= ADDR_UNSET,
1427 		.inputs         = {{
1428 			.type = SAA7134_INPUT_TV,
1429 			.vmux = 3,
1430 			.amux = TV,
1431 		},{
1432 			.type = SAA7134_INPUT_COMPOSITE1,
1433 			.vmux   = 1,
1434 			.amux   = LINE1,
1435 		},{
1436 			.type = SAA7134_INPUT_SVIDEO,
1437 			.vmux = 8,
1438 			.amux = LINE1,
1439 		}},
1440 		.radio = {
1441 			.type = SAA7134_INPUT_RADIO,
1442 			.amux = LINE2,
1443 		},
1444 	},
1445 	[SAA7134_BOARD_CINERGY200] = {
1446 		.name           = "Terratec Cinergy 200 TV",
1447 		.audio_clock    = 0x00200000,
1448 		.tuner_type     = TUNER_PHILIPS_PAL,
1449 		.radio_type     = UNSET,
1450 		.tuner_addr	= ADDR_UNSET,
1451 		.radio_addr	= ADDR_UNSET,
1452 		.inputs         = {{
1453 			.type = SAA7134_INPUT_TV,
1454 			.vmux = 1,
1455 			.amux = LINE2,
1456 		},{
1457 			.type = SAA7134_INPUT_COMPOSITE1,
1458 			.vmux = 4,
1459 			.amux = LINE1,
1460 		},{
1461 			.type = SAA7134_INPUT_SVIDEO,
1462 			.vmux = 8,
1463 			.amux = LINE1,
1464 		},{
1465 			.type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
1466 			.vmux = 0,
1467 			.amux = LINE1,
1468 		}},
1469 		.mute = {
1470 			.type = SAA7134_INPUT_MUTE,
1471 			.amux = LINE2,
1472 		},
1473 	},
1474 	[SAA7134_BOARD_VIDEOMATE_TV_PVR] = {
1475 		/* Alain St-Denis <alain@topaze.homeip.net> */
1476 		.name           = "Compro VideoMate TV PVR/FM",
1477 		.audio_clock    = 0x00187de7,
1478 		.tuner_type     = TUNER_PHILIPS_NTSC_M,
1479 		.radio_type     = UNSET,
1480 		.tuner_addr	= ADDR_UNSET,
1481 		.radio_addr	= ADDR_UNSET,
1482 		.gpiomask	= 0x808c0080,
1483 		.inputs         = {{
1484 			.type = SAA7134_INPUT_SVIDEO,
1485 			.vmux = 8,
1486 			.amux = LINE1,
1487 			.gpio = 0x00080,
1488 		},{
1489 			.type = SAA7134_INPUT_COMPOSITE1,
1490 			.vmux = 3,
1491 			.amux = LINE1,
1492 			.gpio = 0x00080,
1493 		},{
1494 			.type = SAA7134_INPUT_TV,
1495 			.vmux = 1,
1496 			.amux = LINE2_LEFT,
1497 			.gpio = 0x00080,
1498 		}},
1499 		.radio = {
1500 			.type = SAA7134_INPUT_RADIO,
1501 			.amux = LINE2,
1502 			.gpio = 0x80000,
1503 		},
1504 		.mute = {
1505 			.type = SAA7134_INPUT_MUTE,
1506 			.amux = LINE2,
1507 			.gpio = 0x40000,
1508 		},
1509 	},
1510 	[SAA7134_BOARD_SABRENT_SBTTVFM] = {
1511 		/* Michael Rodriguez-Torrent <mrtorrent@asu.edu> */
1512 		.name           = "Sabrent SBT-TVFM (saa7130)",
1513 		.audio_clock    = 0x00187de7,
1514 		.tuner_type     = TUNER_PHILIPS_NTSC_M,
1515 		.radio_type     = UNSET,
1516 		.tuner_addr	= ADDR_UNSET,
1517 		.radio_addr	= ADDR_UNSET,
1518 		.inputs         = {{
1519 			.type = SAA7134_INPUT_COMPOSITE1,
1520 			.vmux = 1,
1521 			.amux = LINE1,
1522 		},{
1523 			.type = SAA7134_INPUT_TV,
1524 			.vmux = 3,
1525 			.amux = LINE2,
1526 		},{
1527 			.type = SAA7134_INPUT_SVIDEO,
1528 			.vmux = 8,
1529 			.amux = LINE1,
1530 		}},
1531 		.radio = {
1532 			.type = SAA7134_INPUT_RADIO,
1533 			.amux   = LINE2,
1534 		},
1535 	},
1536 	[SAA7134_BOARD_ZOLID_XPERT_TV7134] = {
1537 		/* Helge Jensen <helge.jensen@slog.dk> */
1538 		.name           = ":Zolid Xpert TV7134",
1539 		.audio_clock    = 0x00187de7,
1540 		.tuner_type     = TUNER_PHILIPS_NTSC,
1541 		.radio_type     = UNSET,
1542 		.tuner_addr	= ADDR_UNSET,
1543 		.radio_addr	= ADDR_UNSET,
1544 		.inputs         = {{
1545 			.type = SAA7134_INPUT_SVIDEO,
1546 			.vmux = 8,
1547 			.amux = LINE1,
1548 		},{
1549 			.type = SAA7134_INPUT_COMPOSITE1,
1550 			.vmux = 3,
1551 			.amux = LINE1,
1552 		},{
1553 			.type = SAA7134_INPUT_TV,
1554 			.vmux = 1,
1555 			.amux = LINE2,
1556 		}},
1557 	},
1558 	[SAA7134_BOARD_EMPIRE_PCI_TV_RADIO_LE] = {
1559 		/* "Matteo Az" <matte.az@nospam.libero.it> ;-) */
1560 		.name           = "Empire PCI TV-Radio LE",
1561 		.audio_clock    = 0x00187de7,
1562 		.tuner_type     = TUNER_PHILIPS_PAL,
1563 		.radio_type     = UNSET,
1564 		.tuner_addr	= ADDR_UNSET,
1565 		.radio_addr	= ADDR_UNSET,
1566 		.gpiomask       = 0x4000,
1567 		.inputs         = {{
1568 			.type = SAA7134_INPUT_TV_MONO,
1569 			.vmux = 1,
1570 			.amux = LINE2,
1571 			.gpio = 0x8000,
1572 		},{
1573 			.type = SAA7134_INPUT_COMPOSITE1,
1574 			.vmux = 3,
1575 			.amux = LINE1,
1576 			.gpio = 0x8000,
1577 		},{
1578 			.type = SAA7134_INPUT_SVIDEO,
1579 			.vmux = 6,
1580 			.amux = LINE1,
1581 			.gpio = 0x8000,
1582 		}},
1583 		.radio = {
1584 			.type = SAA7134_INPUT_RADIO,
1585 			.amux = LINE1,
1586 			.gpio = 0x8000,
1587 		},
1588 		.mute = {
1589 			.type = SAA7134_INPUT_MUTE,
1590 			.amux = TV,
1591 			.gpio =0x8000,
1592 		}
1593 	},
1594 	[SAA7134_BOARD_AVERMEDIA_STUDIO_307] = {
1595 		/*
1596 		Nickolay V. Shmyrev <nshmyrev@yandex.ru>
1597 		Lots of thanks to Andrey Zolotarev <zolotarev_andrey@mail.ru>
1598 		*/
1599 		.name           = "Avermedia AVerTV Studio 307",
1600 		.audio_clock    = 0x00187de7,
1601 		.tuner_type     = TUNER_PHILIPS_FM1256_IH3,
1602 		.radio_type     = UNSET,
1603 		.tuner_addr	= ADDR_UNSET,
1604 		.radio_addr	= ADDR_UNSET,
1605 		.tda9887_conf   = TDA9887_PRESENT,
1606 		.gpiomask       = 0x03,
1607 		.inputs         = {{
1608 			.type = SAA7134_INPUT_TV,
1609 			.vmux = 1,
1610 			.amux = TV,
1611 			.gpio = 0x00,
1612 		},{
1613 			.type = SAA7134_INPUT_COMPOSITE,
1614 			.vmux = 3,
1615 			.amux = LINE1,
1616 			.gpio = 0x02,
1617 		},{
1618 			.type = SAA7134_INPUT_SVIDEO,
1619 			.vmux = 8,
1620 			.amux = LINE1,
1621 			.gpio = 0x02,
1622 		}},
1623 		.radio = {
1624 			.type = SAA7134_INPUT_RADIO,
1625 			.amux = LINE1,
1626 			.gpio = 0x01,
1627 		},
1628 		.mute  = {
1629 			.type = SAA7134_INPUT_MUTE,
1630 			.amux = LINE1,
1631 			.gpio = 0x00,
1632 		},
1633 	},
1634 	[SAA7134_BOARD_AVERMEDIA_GO_007_FM] = {
1635 		.name           = "Avermedia AVerTV GO 007 FM",
1636 		.audio_clock    = 0x00187de7,
1637 		.tuner_type     = TUNER_PHILIPS_TDA8290,
1638 		.radio_type     = UNSET,
1639 		.tuner_addr	= ADDR_UNSET,
1640 		.radio_addr	= ADDR_UNSET,
1641 		.gpiomask       = 0x00300003,
1642 		/* .gpiomask       = 0x8c240003, */
1643 		.inputs         = {{
1644 			.type = SAA7134_INPUT_TV,
1645 			.vmux = 1,
1646 			.amux = TV,
1647 			.gpio = 0x01,
1648 		},{
1649 			.type = SAA7134_INPUT_COMPOSITE1,
1650 			.vmux = 0,
1651 			.amux = LINE1,
1652 			.gpio = 0x02,
1653 		},{
1654 			.type = SAA7134_INPUT_SVIDEO,
1655 			.vmux = 6,
1656 			.amux = LINE1,
1657 			.gpio = 0x02,
1658 		}},
1659 		.radio = {
1660 			.type = SAA7134_INPUT_RADIO,
1661 			.amux = TV,
1662 			.gpio = 0x00300001,
1663 		},
1664 		.mute = {
1665 			.type = SAA7134_INPUT_MUTE,
1666 			.amux = TV,
1667 			.gpio = 0x01,
1668 		},
1669 	},
1670 	[SAA7134_BOARD_AVERMEDIA_CARDBUS] = {
1671 		/* Kees.Blom@cwi.nl */
1672 		.name           = "AVerMedia Cardbus TV/Radio (E500)",
1673 		.audio_clock    = 0x187de7,
1674 		.tuner_type     = TUNER_PHILIPS_TDA8290,
1675 		.radio_type     = UNSET,
1676 		.tuner_addr	= ADDR_UNSET,
1677 		.radio_addr	= ADDR_UNSET,
1678 		.inputs         = {{
1679 			.type = SAA7134_INPUT_TV,
1680 			.vmux = 1,
1681 			.amux = TV,
1682 		},{
1683 			.type = SAA7134_INPUT_COMPOSITE1,
1684 			.vmux = 3,
1685 			.amux = LINE2,
1686 		},{
1687 			.type = SAA7134_INPUT_SVIDEO,
1688 			.vmux = 8,
1689 			.amux = LINE1,
1690 		}},
1691 		.radio = {
1692 			.type = SAA7134_INPUT_RADIO,
1693 			.amux = LINE1,
1694 		},
1695 	},
1696 	[SAA7134_BOARD_AVERMEDIA_CARDBUS_501] = {
1697 		/* Oldrich Jedlicka <oldium.pro@seznam.cz> */
1698 		.name           = "AVerMedia Cardbus TV/Radio (E501R)",
1699 		.audio_clock    = 0x187de7,
1700 		.tuner_type     = TUNER_ALPS_TSBE5_PAL,
1701 		.radio_type     = TUNER_TEA5767,
1702 		.tuner_addr	= 0x61,
1703 		.radio_addr	= 0x60,
1704 		.tda9887_conf   = TDA9887_PRESENT,
1705 		.gpiomask       = 0x08000000,
1706 		.inputs         = { {
1707 			.type = SAA7134_INPUT_TV,
1708 			.vmux = 1,
1709 			.amux = TV,
1710 			.gpio = 0x08000000,
1711 		}, {
1712 			.type = SAA7134_INPUT_COMPOSITE1,
1713 			.vmux = 3,
1714 			.amux = LINE1,
1715 			.gpio = 0x08000000,
1716 		}, {
1717 			.type = SAA7134_INPUT_SVIDEO,
1718 			.vmux = 8,
1719 			.amux = LINE1,
1720 			.gpio = 0x08000000,
1721 		} },
1722 		.radio = {
1723 			.type = SAA7134_INPUT_RADIO,
1724 			.amux = LINE2,
1725 			.gpio = 0x00000000,
1726 		},
1727 	},
1728 	[SAA7134_BOARD_CINERGY400_CARDBUS] = {
1729 		.name           = "Terratec Cinergy 400 mobile",
1730 		.audio_clock    = 0x187de7,
1731 		.tuner_type     = TUNER_ALPS_TSBE5_PAL,
1732 		.radio_type     = UNSET,
1733 		.tuner_addr	= ADDR_UNSET,
1734 		.radio_addr	= ADDR_UNSET,
1735 		.tda9887_conf   = TDA9887_PRESENT,
1736 		.inputs         = {{
1737 			.type = SAA7134_INPUT_TV,
1738 			.vmux = 1,
1739 			.amux = TV,
1740 		},{
1741 			.type = SAA7134_INPUT_TV_MONO,
1742 			.vmux = 1,
1743 			.amux = LINE2,
1744 		},{
1745 			.type = SAA7134_INPUT_COMPOSITE1,
1746 			.vmux = 3,
1747 			.amux = LINE1,
1748 		},{
1749 			.type = SAA7134_INPUT_SVIDEO,
1750 			.vmux = 8,
1751 			.amux = LINE1,
1752 		}},
1753 	},
1754 	[SAA7134_BOARD_CINERGY600_MK3] = {
1755 		.name           = "Terratec Cinergy 600 TV MK3",
1756 		.audio_clock    = 0x00200000,
1757 		.tuner_type	= TUNER_PHILIPS_FM1216ME_MK3,
1758 		.radio_type     = UNSET,
1759 		.tuner_addr	= ADDR_UNSET,
1760 		.radio_addr	= ADDR_UNSET,
1761 		.rds_addr	= 0x10,
1762 		.tda9887_conf   = TDA9887_PRESENT,
1763 		.inputs         = {{
1764 			.type = SAA7134_INPUT_TV,
1765 			.vmux = 1,
1766 			.amux = TV,
1767 		},{
1768 			.type = SAA7134_INPUT_COMPOSITE1,
1769 			.vmux = 4,
1770 			.amux = LINE1,
1771 		},{
1772 			.type = SAA7134_INPUT_SVIDEO,
1773 			.vmux = 8,
1774 			.amux = LINE1,
1775 		},{
1776 			.type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
1777 			.vmux = 0,
1778 			.amux = LINE1,
1779 		}},
1780 		.radio = {
1781 			.type = SAA7134_INPUT_RADIO,
1782 			.amux = LINE2,
1783 		},
1784 	},
1785 	[SAA7134_BOARD_VIDEOMATE_GOLD_PLUS] = {
1786 		/* Dylan Walkden <dylan_walkden@hotmail.com> */
1787 		.name		= "Compro VideoMate Gold+ Pal",
1788 		.audio_clock	= 0x00187de7,
1789 		.tuner_type     = TUNER_PHILIPS_PAL,
1790 		.radio_type     = UNSET,
1791 		.tuner_addr	= ADDR_UNSET,
1792 		.radio_addr	= ADDR_UNSET,
1793 		.gpiomask	= 0x1ce780,
1794 		.inputs		= {{
1795 			.type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
1796 			.vmux = 0,
1797 			.amux = LINE1,
1798 			.gpio = 0x008080,
1799 		},{
1800 			.type = SAA7134_INPUT_COMPOSITE1,
1801 			.vmux = 3,
1802 			.amux = LINE1,
1803 			.gpio = 0x008080,
1804 		},{
1805 			.type = SAA7134_INPUT_TV,
1806 			.vmux = 1,
1807 			.amux = TV,
1808 			.gpio = 0x008080,
1809 		}},
1810 		.radio = {
1811 			.type = SAA7134_INPUT_RADIO,
1812 			.amux = LINE2,
1813 			.gpio = 0x80000,
1814 		},
1815 		.mute = {
1816 			.type = SAA7134_INPUT_MUTE,
1817 			.amux = LINE2,
1818 			.gpio = 0x0c8000,
1819 		},
1820 	},
1821 	[SAA7134_BOARD_PINNACLE_300I_DVBT_PAL] = {
1822 		.name           = "Pinnacle PCTV 300i DVB-T + PAL",
1823 		.audio_clock    = 0x00187de7,
1824 		.tuner_type     = TUNER_MT2032,
1825 		.radio_type     = UNSET,
1826 		.tuner_addr	= ADDR_UNSET,
1827 		.radio_addr	= ADDR_UNSET,
1828 		.tda9887_conf   = TDA9887_PRESENT | TDA9887_INTERCARRIER | TDA9887_PORT2_INACTIVE,
1829 		.mpeg           = SAA7134_MPEG_DVB,
1830 		.inputs         = {{
1831 			.type = SAA7134_INPUT_TV,
1832 			.vmux = 3,
1833 			.amux = TV,
1834 		},{
1835 			.type = SAA7134_INPUT_COMPOSITE1,
1836 			.vmux = 0,
1837 			.amux = LINE2,
1838 		},{
1839 			.type = SAA7134_INPUT_COMPOSITE2,
1840 			.vmux = 1,
1841 			.amux = LINE2,
1842 		},{
1843 			.type = SAA7134_INPUT_SVIDEO,
1844 			.vmux = 8,
1845 			.amux = LINE2,
1846 		}},
1847 	},
1848 	[SAA7134_BOARD_PROVIDEO_PV952] = {
1849 		/* andreas.kretschmer@web.de */
1850 		.name		= "ProVideo PV952",
1851 		.audio_clock	= 0x00187de7,
1852 		.tuner_type	= TUNER_PHILIPS_FM1216ME_MK3,
1853 		.radio_type     = UNSET,
1854 		.tuner_addr	= ADDR_UNSET,
1855 		.radio_addr	= ADDR_UNSET,
1856 		.tda9887_conf   = TDA9887_PRESENT,
1857 		.inputs         = {{
1858 			.type = SAA7134_INPUT_COMPOSITE1,
1859 			.vmux = 0,
1860 			.amux = LINE1,
1861 		},{
1862 			.type = SAA7134_INPUT_TV,
1863 			.vmux = 1,
1864 			.amux = TV,
1865 		},{
1866 			.type = SAA7134_INPUT_TV_MONO,
1867 			.vmux = 1,
1868 			.amux = LINE2,
1869 		}},
1870 		.radio = {
1871 			.type = SAA7134_INPUT_RADIO,
1872 			.amux = LINE2,
1873 		},
1874 	},
1875 	[SAA7134_BOARD_AVERMEDIA_305] = {
1876 		/* much like the "studio" version but without radio
1877 		* and another tuner (sirspiritus@yandex.ru) */
1878 		.name           = "AverMedia AverTV/305",
1879 		.audio_clock    = 0x00187de7,
1880 		.tuner_type     = TUNER_PHILIPS_FQ1216ME,
1881 		.radio_type     = UNSET,
1882 		.tuner_addr	= ADDR_UNSET,
1883 		.radio_addr	= ADDR_UNSET,
1884 		.tda9887_conf   = TDA9887_PRESENT,
1885 		.inputs         = {{
1886 			.type = SAA7134_INPUT_TV,
1887 			.vmux = 1,
1888 			.amux = LINE2,
1889 		},{
1890 			.type = SAA7134_INPUT_COMPOSITE1,
1891 			.vmux = 0,
1892 			.amux = LINE2,
1893 		},{
1894 			.type = SAA7134_INPUT_COMPOSITE2,
1895 			.vmux = 3,
1896 			.amux = LINE2,
1897 		},{
1898 			.type = SAA7134_INPUT_SVIDEO,
1899 			.vmux = 8,
1900 			.amux = LINE2,
1901 		}},
1902 		.mute = {
1903 			.type = SAA7134_INPUT_MUTE,
1904 			.amux = LINE1,
1905 		},
1906 	},
1907 	[SAA7134_BOARD_FLYDVBTDUO] = {
1908 		/* LifeView FlyDVB-T DUO */
1909 		/* "Nico Sabbi <nsabbi@tiscali.it>  Hartmut Hackmann hartmut.hackmann@t-online.de*/
1910 		.name           = "LifeView FlyDVB-T DUO / MSI TV@nywhere Duo",
1911 		.audio_clock    = 0x00200000,
1912 		.tuner_type     = TUNER_PHILIPS_TDA8290,
1913 		.radio_type     = UNSET,
1914 		.tuner_addr	= ADDR_UNSET,
1915 		.radio_addr	= ADDR_UNSET,
1916 		.gpiomask	= 0x00200000,
1917 		.mpeg           = SAA7134_MPEG_DVB,
1918 		.inputs         = {{
1919 			.type = SAA7134_INPUT_TV,
1920 			.vmux = 1,
1921 			.amux = TV,
1922 			.gpio = 0x200000,	/* GPIO21=High for TV input */
1923 		},{
1924 			.type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
1925 			.vmux = 0,
1926 			.amux = LINE2,
1927 		},{
1928 			.type = SAA7134_INPUT_COMPOSITE,
1929 			.vmux = 3,
1930 			.amux = LINE2,
1931 		},{
1932 			.type = SAA7134_INPUT_SVIDEO,
1933 			.vmux = 8,
1934 			.amux = LINE2,
1935 		}},
1936 		.radio = {
1937 			.type = SAA7134_INPUT_RADIO,
1938 			.amux = TV,
1939 			.gpio = 0x000000,	/* GPIO21=Low for FM radio antenna */
1940 		},
1941 	},
1942 	[SAA7134_BOARD_PHILIPS_TOUGH] = {
1943 		.name           = "Philips TOUGH DVB-T reference design",
1944 		.tuner_type	= TUNER_ABSENT,
1945 		.audio_clock    = 0x00187de7,
1946 		.radio_type     = UNSET,
1947 		.tuner_addr	= ADDR_UNSET,
1948 		.radio_addr	= ADDR_UNSET,
1949 		.mpeg           = SAA7134_MPEG_DVB,
1950 		.inputs = {{
1951 			.type = SAA7134_INPUT_COMPOSITE1,
1952 			.vmux   = 0,
1953 			.amux   = LINE1,
1954 		},{
1955 			.type = SAA7134_INPUT_SVIDEO,
1956 			.vmux   = 8,
1957 			.amux   = LINE1,
1958 		}},
1959 	},
1960 	[SAA7134_BOARD_AVERMEDIA_307] = {
1961 		/*
1962 		Davydov Vladimir <vladimir@iqmedia.com>
1963 		*/
1964 		.name           = "Avermedia AVerTV 307",
1965 		.audio_clock    = 0x00187de7,
1966 		.tuner_type     = TUNER_PHILIPS_FQ1216ME,
1967 		.radio_type     = UNSET,
1968 		.tuner_addr	= ADDR_UNSET,
1969 		.radio_addr	= ADDR_UNSET,
1970 		.tda9887_conf   = TDA9887_PRESENT,
1971 		.inputs         = {{
1972 			.type = SAA7134_INPUT_TV,
1973 			.vmux = 1,
1974 			.amux = TV,
1975 		},{
1976 			.type = SAA7134_INPUT_COMPOSITE1,
1977 			.vmux = 0,
1978 			.amux = LINE1,
1979 		},{
1980 			.type = SAA7134_INPUT_COMPOSITE2,
1981 			.vmux = 3,
1982 			.amux = LINE1,
1983 		},{
1984 			.type = SAA7134_INPUT_SVIDEO,
1985 			.vmux = 8,
1986 			.amux = LINE1,
1987 		}},
1988 	},
1989 	[SAA7134_BOARD_ADS_INSTANT_TV] = {
1990 		.name           = "ADS Tech Instant TV (saa7135)",
1991 		.audio_clock    = 0x00187de7,
1992 		.tuner_type     = TUNER_PHILIPS_TDA8290,
1993 		.radio_type     = UNSET,
1994 		.tuner_addr	= ADDR_UNSET,
1995 		.radio_addr	= ADDR_UNSET,
1996 		.inputs         = {{
1997 			.type = SAA7134_INPUT_TV,
1998 			.vmux = 1,
1999 			.amux = TV,
2000 		},{
2001 			.type = SAA7134_INPUT_COMPOSITE1,
2002 			.vmux = 3,
2003 			.amux = LINE2,
2004 		},{
2005 			.type = SAA7134_INPUT_SVIDEO,
2006 			.vmux = 8,
2007 			.amux = LINE2,
2008 		}},
2009 	},
2010 	[SAA7134_BOARD_KWORLD_VSTREAM_XPERT] = {
2011 		.name           = "Kworld/Tevion V-Stream Xpert TV PVR7134",
2012 		.audio_clock    = 0x00187de7,
2013 		.tuner_type     = TUNER_PHILIPS_PAL_I,
2014 		.radio_type     = UNSET,
2015 		.tuner_addr	= ADDR_UNSET,
2016 		.radio_addr	= ADDR_UNSET,
2017 		.gpiomask	= 0x0700,
2018 		.inputs = {{
2019 			.type = SAA7134_INPUT_TV,
2020 			.vmux   = 1,
2021 			.amux   = TV,
2022 			.gpio   = 0x000,
2023 		},{
2024 			.type = SAA7134_INPUT_COMPOSITE1,
2025 			.vmux   = 3,
2026 			.amux   = LINE1,
2027 			.gpio   = 0x200,		/* gpio by DScaler */
2028 		},{
2029 			.type = SAA7134_INPUT_SVIDEO,
2030 			.vmux   = 0,
2031 			.amux   = LINE1,
2032 			.gpio   = 0x200,
2033 		}},
2034 		.radio = {
2035 			.type = SAA7134_INPUT_RADIO,
2036 			.amux   = LINE1,
2037 			.gpio   = 0x100,
2038 		},
2039 		.mute  = {
2040 			.type = SAA7134_INPUT_MUTE,
2041 			.amux = TV,
2042 			.gpio = 0x000,
2043 		},
2044 	},
2045 	[SAA7134_BOARD_FLYDVBT_DUO_CARDBUS] = {
2046 		.name		= "LifeView/Typhoon/Genius FlyDVB-T Duo Cardbus",
2047 		.audio_clock    = 0x00200000,
2048 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2049 		.radio_type     = UNSET,
2050 		.tuner_addr	= ADDR_UNSET,
2051 		.radio_addr	= ADDR_UNSET,
2052 		.mpeg           = SAA7134_MPEG_DVB,
2053 		.gpiomask	= 0x00200000,
2054 		.inputs         = {{
2055 			.type = SAA7134_INPUT_TV,
2056 			.vmux = 1,
2057 			.amux = TV,
2058 			.gpio = 0x200000,	/* GPIO21=High for TV input */
2059 		},{
2060 			.type = SAA7134_INPUT_SVIDEO,
2061 			.vmux = 8,
2062 			.amux = LINE2,
2063 		},{
2064 			.type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
2065 			.vmux = 0,
2066 			.amux = LINE2,
2067 		},{
2068 			.type = SAA7134_INPUT_COMPOSITE2,
2069 			.vmux = 3,
2070 			.amux = LINE2,
2071 		}},
2072 		.radio = {
2073 			.type = SAA7134_INPUT_RADIO,
2074 			.amux = TV,
2075 			.gpio = 0x000000,	/* GPIO21=Low for FM radio antenna */
2076 		},
2077 	},
2078 	[SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII] = {
2079 		.name           = "Compro VideoMate TV Gold+II",
2080 		.audio_clock    = 0x002187de7,
2081 		.tuner_type     = TUNER_LG_PAL_NEW_TAPC,
2082 		.radio_type     = TUNER_TEA5767,
2083 		.tuner_addr     = 0x63,
2084 		.radio_addr     = 0x60,
2085 		.gpiomask       = 0x8c1880,
2086 		.inputs         = {{
2087 			.type = SAA7134_INPUT_SVIDEO,
2088 			.vmux = 0,
2089 			.amux = LINE1,
2090 			.gpio = 0x800800,
2091 		},{
2092 			.type = SAA7134_INPUT_COMPOSITE1,
2093 			.vmux = 3,
2094 			.amux = LINE1,
2095 			.gpio = 0x801000,
2096 		},{
2097 			.type = SAA7134_INPUT_TV,
2098 			.vmux = 1,
2099 			.amux = TV,
2100 			.gpio = 0x800000,
2101 		}},
2102 		.radio = {
2103 			.type = SAA7134_INPUT_RADIO,
2104 			.amux = TV,
2105 			.gpio = 0x880000,
2106 		},
2107 		.mute = {
2108 			.type = SAA7134_INPUT_MUTE,
2109 			.amux = LINE2,
2110 			.gpio = 0x840000,
2111 		},
2112 	},
2113 	[SAA7134_BOARD_KWORLD_XPERT] = {
2114 		/*
2115 		FIXME:
2116 		- Remote control doesn't initialize properly.
2117 		- Audio volume starts muted,
2118 		then gradually increases after channel change.
2119 		- Composite S-Video untested.
2120 		From: Konrad Rzepecki <hannibal@megapolis.pl>
2121 		*/
2122 		.name           = "Kworld Xpert TV PVR7134",
2123 		.audio_clock    = 0x00187de7,
2124 		.tuner_type     = TUNER_TENA_9533_DI,
2125 		.radio_type     = TUNER_TEA5767,
2126 		.tuner_addr	= 0x61,
2127 		.radio_addr	= 0x60,
2128 		.gpiomask	= 0x0700,
2129 		.inputs = {{
2130 			.type = SAA7134_INPUT_TV,
2131 			.vmux   = 1,
2132 			.amux   = TV,
2133 			.gpio   = 0x000,
2134 		},{
2135 			.type = SAA7134_INPUT_COMPOSITE1,
2136 			.vmux   = 3,
2137 			.amux   = LINE1,
2138 			.gpio   = 0x200,		/* gpio by DScaler */
2139 		},{
2140 			.type = SAA7134_INPUT_SVIDEO,
2141 			.vmux   = 0,
2142 			.amux   = LINE1,
2143 			.gpio   = 0x200,
2144 		}},
2145 		.radio = {
2146 			.type = SAA7134_INPUT_RADIO,
2147 			.amux   = LINE1,
2148 			.gpio   = 0x100,
2149 		},
2150 		.mute = {
2151 			.type = SAA7134_INPUT_MUTE,
2152 			.amux = TV,
2153 			.gpio = 0x000,
2154 		},
2155 	},
2156 	[SAA7134_BOARD_FLYTV_DIGIMATRIX] = {
2157 		.name		= "FlyTV mini Asus Digimatrix",
2158 		.audio_clock	= 0x00200000,
2159 		.tuner_type	= TUNER_LG_TALN,
2160 		.radio_type     = UNSET,
2161 		.tuner_addr	= ADDR_UNSET,
2162 		.radio_addr	= ADDR_UNSET,
2163 		.inputs         = {{
2164 			.type = SAA7134_INPUT_TV,
2165 			.vmux = 1,
2166 			.amux = TV,
2167 		},{
2168 			.type = SAA7134_INPUT_TV_MONO,
2169 			.vmux = 1,
2170 			.amux = LINE2,
2171 		},{
2172 			.type = SAA7134_INPUT_COMPOSITE1,
2173 			.vmux = 0,
2174 			.amux = LINE2,
2175 		},{
2176 			.type = SAA7134_INPUT_COMPOSITE2,
2177 			.vmux = 3,
2178 			.amux = LINE2,
2179 		},{
2180 			.type = SAA7134_INPUT_SVIDEO,
2181 			.vmux = 8,
2182 			.amux = LINE2,
2183 		}},
2184 		.radio = {
2185 			.type = SAA7134_INPUT_RADIO,		/* radio unconfirmed */
2186 			.amux = LINE2,
2187 		},
2188 	},
2189 	[SAA7134_BOARD_KWORLD_TERMINATOR] = {
2190 		/* Kworld V-Stream Studio TV Terminator */
2191 		/* "James Webb <jrwebb@qwest.net> */
2192 		.name           = "V-Stream Studio TV Terminator",
2193 		.audio_clock    = 0x00187de7,
2194 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2195 		.radio_type     = UNSET,
2196 		.tuner_addr     = ADDR_UNSET,
2197 		.radio_addr     = ADDR_UNSET,
2198 		.gpiomask       = 1 << 21,
2199 		.inputs         = {{
2200 			.type = SAA7134_INPUT_TV,
2201 			.vmux = 1,
2202 			.amux = TV,
2203 			.gpio = 0x0000000,
2204 		},{
2205 			.type = SAA7134_INPUT_COMPOSITE1,
2206 			.vmux = 3,
2207 			.amux = LINE2,
2208 			.gpio = 0x0000000,
2209 		},{
2210 			.type = SAA7134_INPUT_SVIDEO,
2211 			.vmux = 8,
2212 			.amux = LINE2,
2213 			.gpio = 0x0000000,
2214 		}},
2215 		.radio = {
2216 			.type = SAA7134_INPUT_RADIO,
2217 			.amux = TV,
2218 			.gpio = 0x0200000,
2219 		},
2220 	},
2221 	[SAA7134_BOARD_YUAN_TUN900] = {
2222 		/* FIXME:
2223 		 * S-Video and composite sources untested.
2224 		 * Radio not working.
2225 		 * Remote control not yet implemented.
2226 		 * From : codemaster@webgeeks.be */
2227 		.name           = "Yuan TUN-900 (saa7135)",
2228 		.audio_clock    = 0x00187de7,
2229 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2230 		.radio_type     = UNSET,
2231 		.tuner_addr= ADDR_UNSET,
2232 		.radio_addr= ADDR_UNSET,
2233 		.gpiomask       = 0x00010003,
2234 		.inputs         = {{
2235 			.type = SAA7134_INPUT_TV,
2236 			.vmux = 1,
2237 			.amux = TV,
2238 			.gpio = 0x01,
2239 		},{
2240 			.type = SAA7134_INPUT_COMPOSITE1,
2241 			.vmux = 0,
2242 			.amux = LINE2,
2243 			.gpio = 0x02,
2244 		},{
2245 			.type = SAA7134_INPUT_SVIDEO,
2246 			.vmux = 6,
2247 			.amux = LINE2,
2248 			.gpio = 0x02,
2249 		}},
2250 		.radio = {
2251 			.type = SAA7134_INPUT_RADIO,
2252 			.amux = LINE1,
2253 			.gpio = 0x00010003,
2254 		},
2255 		.mute = {
2256 			.type = SAA7134_INPUT_MUTE,
2257 			.amux = TV,
2258 			.gpio = 0x01,
2259 		},
2260 	},
2261 	[SAA7134_BOARD_BEHOLD_409FM] = {
2262 		/* <http://tuner.beholder.ru>, Sergey <skiv@orel.ru> */
2263 		/*       Beholder Intl. Ltd. 2008      */
2264 		/*Dmitry Belimov <d.belimov@gmail.com> */
2265 		.name           = "Beholder BeholdTV 409 FM",
2266 		.audio_clock    = 0x00187de7,
2267 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
2268 		.radio_type     = UNSET,
2269 		.tuner_addr     = ADDR_UNSET,
2270 		.radio_addr     = ADDR_UNSET,
2271 		.tda9887_conf   = TDA9887_PRESENT,
2272 		.gpiomask       = 0x00008000,
2273 		.inputs         = {{
2274 			  .type = SAA7134_INPUT_TV,
2275 			  .vmux = 3,
2276 			  .amux = TV,
2277 		},{
2278 			  .type = SAA7134_INPUT_COMPOSITE1,
2279 			  .vmux = 1,
2280 			  .amux = LINE1,
2281 		},{
2282 			  .type = SAA7134_INPUT_SVIDEO,
2283 			  .vmux = 8,
2284 			  .amux = LINE1,
2285 		}},
2286 		.radio = {
2287 			  .type = SAA7134_INPUT_RADIO,
2288 			  .amux = LINE2,
2289 		},
2290 	},
2291 	[SAA7134_BOARD_GOTVIEW_7135] = {
2292 		/* Mike Baikov <mike@baikov.com> */
2293 		/* Andrey Cvetcov <ays14@yandex.ru> */
2294 		.name            = "GoTView 7135 PCI",
2295 		.audio_clock     = 0x00187de7,
2296 		.tuner_type      = TUNER_PHILIPS_FM1216ME_MK3,
2297 		.radio_type      = UNSET,
2298 		.tuner_addr      = ADDR_UNSET,
2299 		.radio_addr      = ADDR_UNSET,
2300 		.tda9887_conf    = TDA9887_PRESENT,
2301 		.gpiomask        = 0x00200003,
2302 		.inputs          = {{
2303 			.type = SAA7134_INPUT_TV,
2304 			.vmux = 1,
2305 			.amux = TV,
2306 			.gpio = 0x00200003,
2307 		},{
2308 			.type = SAA7134_INPUT_TV_MONO,
2309 			.vmux = 1,
2310 			.amux = LINE2,
2311 			.gpio = 0x00200003,
2312 		},{
2313 			.type = SAA7134_INPUT_COMPOSITE1,
2314 			.vmux = 3,
2315 			.amux = LINE1,
2316 			.gpio = 0x00200003,
2317 		},{
2318 			.type = SAA7134_INPUT_SVIDEO,
2319 			.vmux = 8,
2320 			.amux = LINE1,
2321 			.gpio = 0x00200003,
2322 		}},
2323 		.radio = {
2324 			.type = SAA7134_INPUT_RADIO,
2325 			.amux = LINE2,
2326 			.gpio = 0x00200003,
2327 		},
2328 		.mute = {
2329 			.type = SAA7134_INPUT_MUTE,
2330 			.amux = TV,
2331 			.gpio = 0x00200003,
2332 		},
2333 	},
2334 	[SAA7134_BOARD_PHILIPS_EUROPA] = {
2335 		.name           = "Philips EUROPA V3 reference design",
2336 		.audio_clock    = 0x00187de7,
2337 		.tuner_type     = TUNER_PHILIPS_TD1316,
2338 		.radio_type     = UNSET,
2339 		.tuner_addr	= 0x61,
2340 		.radio_addr	= ADDR_UNSET,
2341 		.tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
2342 		.mpeg           = SAA7134_MPEG_DVB,
2343 		.inputs = {{
2344 			.type = SAA7134_INPUT_TV,
2345 			.vmux   = 3,
2346 			.amux   = TV,
2347 		},{
2348 			.type = SAA7134_INPUT_COMPOSITE1,
2349 			.vmux   = 0,
2350 			.amux   = LINE2,
2351 		},{
2352 			.type = SAA7134_INPUT_SVIDEO,
2353 			.vmux   = 8,
2354 			.amux   = LINE2,
2355 		}},
2356 	},
2357 	[SAA7134_BOARD_VIDEOMATE_DVBT_300] = {
2358 		.name           = "Compro Videomate DVB-T300",
2359 		.audio_clock    = 0x00187de7,
2360 		.tuner_type     = TUNER_PHILIPS_TD1316,
2361 		.radio_type     = UNSET,
2362 		.tuner_addr	= 0x61,
2363 		.radio_addr	= ADDR_UNSET,
2364 		.tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
2365 		.mpeg           = SAA7134_MPEG_DVB,
2366 		.inputs = {{
2367 			.type = SAA7134_INPUT_TV,
2368 			.vmux   = 3,
2369 			.amux   = TV,
2370 		},{
2371 			.type = SAA7134_INPUT_COMPOSITE1,
2372 			.vmux   = 1,
2373 			.amux   = LINE2,
2374 		},{
2375 			.type = SAA7134_INPUT_SVIDEO,
2376 			.vmux   = 8,
2377 			.amux   = LINE2,
2378 		}},
2379 	},
2380 	[SAA7134_BOARD_VIDEOMATE_DVBT_200] = {
2381 		.name           = "Compro Videomate DVB-T200",
2382 		.tuner_type	= TUNER_ABSENT,
2383 		.audio_clock    = 0x00187de7,
2384 		.radio_type     = UNSET,
2385 		.tuner_addr	= ADDR_UNSET,
2386 		.radio_addr	= ADDR_UNSET,
2387 		.mpeg           = SAA7134_MPEG_DVB,
2388 		.inputs = {{
2389 			.type = SAA7134_INPUT_COMPOSITE1,
2390 			.vmux   = 0,
2391 			.amux   = LINE1,
2392 		},{
2393 			.type = SAA7134_INPUT_SVIDEO,
2394 			.vmux   = 8,
2395 			.amux   = LINE1,
2396 		}},
2397 	},
2398 	[SAA7134_BOARD_RTD_VFG7350] = {
2399 		.name		= "RTD Embedded Technologies VFG7350",
2400 		.audio_clock	= 0x00200000,
2401 		.tuner_type	= TUNER_ABSENT,
2402 		.radio_type	= UNSET,
2403 		.tuner_addr	= ADDR_UNSET,
2404 		.radio_addr	= ADDR_UNSET,
2405 		.empress_addr	= 0x21,
2406 		.inputs		= {{
2407 			.type = SAA7134_INPUT_COMPOSITE0,
2408 			.vmux   = 0,
2409 			.amux   = LINE1,
2410 		},{
2411 			.type = SAA7134_INPUT_COMPOSITE1,
2412 			.vmux   = 1,
2413 			.amux   = LINE2,
2414 		},{
2415 			.type = SAA7134_INPUT_COMPOSITE2,
2416 			.vmux   = 2,
2417 			.amux   = LINE1,
2418 		},{
2419 			.type = SAA7134_INPUT_COMPOSITE3,
2420 			.vmux   = 3,
2421 			.amux   = LINE2,
2422 		},{
2423 			.type = SAA7134_INPUT_SVIDEO0,
2424 
2425 			.vmux   = 8,
2426 			.amux   = LINE1,
2427 		},{
2428 			.type = SAA7134_INPUT_SVIDEO1,
2429 			.vmux   = 9,
2430 			.amux   = LINE2,
2431 		}},
2432 		.mpeg           = SAA7134_MPEG_EMPRESS,
2433 		.video_out      = CCIR656,
2434 		.vid_port_opts  = ( SET_T_CODE_POLARITY_NON_INVERTED |
2435 				    SET_CLOCK_NOT_DELAYED |
2436 				    SET_CLOCK_INVERTED |
2437 				    SET_VSYNC_OFF ),
2438 	},
2439 	[SAA7134_BOARD_RTD_VFG7330] = {
2440 		.name		= "RTD Embedded Technologies VFG7330",
2441 		.audio_clock	= 0x00200000,
2442 		.tuner_type	= TUNER_ABSENT,
2443 		.radio_type	= UNSET,
2444 		.tuner_addr	= ADDR_UNSET,
2445 		.radio_addr	= ADDR_UNSET,
2446 		.inputs		= {{
2447 			.type = SAA7134_INPUT_COMPOSITE0,
2448 			.vmux   = 0,
2449 			.amux   = LINE1,
2450 		},{
2451 			.type = SAA7134_INPUT_COMPOSITE1,
2452 			.vmux   = 1,
2453 			.amux   = LINE2,
2454 		},{
2455 			.type = SAA7134_INPUT_COMPOSITE2,
2456 			.vmux   = 2,
2457 			.amux   = LINE1,
2458 		},{
2459 			.type = SAA7134_INPUT_COMPOSITE3,
2460 			.vmux   = 3,
2461 			.amux   = LINE2,
2462 		},{
2463 			.type = SAA7134_INPUT_SVIDEO0,
2464 			.vmux   = 8,
2465 			.amux   = LINE1,
2466 		},{
2467 			.type = SAA7134_INPUT_SVIDEO1,
2468 			.vmux   = 9,
2469 			.amux   = LINE2,
2470 		}},
2471 	},
2472 	[SAA7134_BOARD_FLYTVPLATINUM_MINI2] = {
2473 		.name           = "LifeView FlyTV Platinum Mini2",
2474 		.audio_clock    = 0x00200000,
2475 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2476 		.radio_type     = UNSET,
2477 		.tuner_addr	= ADDR_UNSET,
2478 		.radio_addr	= ADDR_UNSET,
2479 
2480 		.inputs         = {{
2481 			.type = SAA7134_INPUT_TV,
2482 			.vmux = 1,
2483 			.amux = TV,
2484 		},{
2485 			.type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
2486 			.vmux = 0,
2487 			.amux = LINE2,
2488 		},{
2489 			.type = SAA7134_INPUT_COMPOSITE,
2490 			.vmux = 3,
2491 			.amux = LINE2,
2492 		},{
2493 			.type = SAA7134_INPUT_SVIDEO,
2494 			.vmux = 8,
2495 			.amux = LINE2,
2496 		}},
2497 	},
2498 	[SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180] = {
2499 		/* Michael Krufky <mkrufky@linuxtv.org>
2500 		 * Uses Alps Electric TDHU2, containing NXT2004 ATSC Decoder
2501 		 * AFAIK, there is no analog demod, thus,
2502 		 * no support for analog television.
2503 		 */
2504 		.name           = "AVerMedia AVerTVHD MCE A180",
2505 		.audio_clock    = 0x00187de7,
2506 		.tuner_type     = TUNER_ABSENT,
2507 		.radio_type     = UNSET,
2508 		.tuner_addr     = ADDR_UNSET,
2509 		.radio_addr     = ADDR_UNSET,
2510 		.mpeg           = SAA7134_MPEG_DVB,
2511 		.inputs         = {{
2512 			.type = SAA7134_INPUT_COMPOSITE1,
2513 			.vmux = 3,
2514 			.amux = LINE2,
2515 		},{
2516 			.type = SAA7134_INPUT_SVIDEO,
2517 			.vmux = 8,
2518 			.amux = LINE2,
2519 		}},
2520 	},
2521 	[SAA7134_BOARD_MONSTERTV_MOBILE] = {
2522 		.name           = "SKNet MonsterTV Mobile",
2523 		.audio_clock    = 0x00187de7,
2524 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2525 		.radio_type     = UNSET,
2526 		.tuner_addr	= ADDR_UNSET,
2527 		.radio_addr	= ADDR_UNSET,
2528 
2529 		.inputs         = {{
2530 			  .type = SAA7134_INPUT_TV,
2531 			  .vmux = 1,
2532 			  .amux = TV,
2533 		},{
2534 			  .type = SAA7134_INPUT_COMPOSITE1,
2535 			  .vmux = 3,
2536 			  .amux = LINE1,
2537 		},{
2538 			  .type = SAA7134_INPUT_SVIDEO,
2539 			  .vmux = 6,
2540 			  .amux = LINE1,
2541 		}},
2542 	},
2543 	[SAA7134_BOARD_PINNACLE_PCTV_110i] = {
2544 	       .name           = "Pinnacle PCTV 40i/50i/110i (saa7133)",
2545 		.audio_clock    = 0x00187de7,
2546 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2547 		.radio_type     = UNSET,
2548 		.tuner_addr     = ADDR_UNSET,
2549 		.radio_addr     = ADDR_UNSET,
2550 		.gpiomask       = 0x080200000,
2551 		.inputs         = { {
2552 			.type = SAA7134_INPUT_TV,
2553 			.vmux = 4,
2554 			.amux = TV,
2555 		}, {
2556 			.type = SAA7134_INPUT_COMPOSITE1,
2557 			.vmux = 1,
2558 			.amux = LINE2,
2559 		}, {
2560 			.type = SAA7134_INPUT_COMPOSITE2,
2561 			.vmux = 0,
2562 			.amux = LINE2,
2563 		}, {
2564 			.type = SAA7134_INPUT_SVIDEO,
2565 			.vmux = 8,
2566 			.amux = LINE2,
2567 		} },
2568 		.radio = {
2569 			.type = SAA7134_INPUT_RADIO,
2570 			.amux = TV,
2571 			.gpio = 0x0200000,
2572 		},
2573 	},
2574 	[SAA7134_BOARD_ASUSTeK_P7131_DUAL] = {
2575 		.name           = "ASUSTeK P7131 Dual",
2576 		.audio_clock    = 0x00187de7,
2577 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2578 		.radio_type     = UNSET,
2579 		.tuner_addr	= ADDR_UNSET,
2580 		.radio_addr	= ADDR_UNSET,
2581 		.gpiomask	= 1 << 21,
2582 		.mpeg           = SAA7134_MPEG_DVB,
2583 		.inputs         = {{
2584 			.type = SAA7134_INPUT_TV,
2585 			.vmux = 1,
2586 			.amux = TV,
2587 			.gpio = 0x0000000,
2588 		},{
2589 			.type = SAA7134_INPUT_COMPOSITE1,
2590 			.vmux = 3,
2591 			.amux = LINE2,
2592 			.gpio = 0x0200000,
2593 		},{
2594 			.type = SAA7134_INPUT_COMPOSITE2,
2595 			.vmux = 0,
2596 			.amux = LINE2,
2597 			.gpio = 0x0200000,
2598 		},{
2599 			.type = SAA7134_INPUT_SVIDEO,
2600 			.vmux = 8,
2601 			.amux = LINE2,
2602 			.gpio = 0x0200000,
2603 		}},
2604 		.radio = {
2605 			.type = SAA7134_INPUT_RADIO,
2606 			.amux = TV,
2607 			.gpio = 0x0200000,
2608 		},
2609 	},
2610 	[SAA7134_BOARD_SEDNA_PC_TV_CARDBUS] = {
2611 		/* Paul Tom Zalac <pzalac@gmail.com> */
2612 		/* Pavel Mihaylov <bin@bash.info> */
2613 		.name           = "Sedna/MuchTV PC TV Cardbus TV/Radio (ITO25 Rev:2B)",
2614 				/* Sedna/MuchTV (OEM) Cardbus TV Tuner */
2615 		.audio_clock    = 0x00187de7,
2616 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2617 		.radio_type     = UNSET,
2618 		.tuner_addr     = ADDR_UNSET,
2619 		.radio_addr     = ADDR_UNSET,
2620 		.gpiomask       = 0xe880c0,
2621 		.inputs         = {{
2622 			.type = SAA7134_INPUT_TV,
2623 			.vmux = 3,
2624 			.amux = TV,
2625 		},{
2626 			.type = SAA7134_INPUT_COMPOSITE1,
2627 			.vmux = 1,
2628 			.amux = LINE1,
2629 		},{
2630 			.type = SAA7134_INPUT_SVIDEO,
2631 			.vmux = 6,
2632 			.amux = LINE1,
2633 		}},
2634 		.radio = {
2635 			.type = SAA7134_INPUT_RADIO,
2636 			.amux = LINE2,
2637 		},
2638 	},
2639 	[SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV] = {
2640 		/* "Cyril Lacoux (Yack)" <clacoux@ifeelgood.org> */
2641 		.name           = "ASUS Digimatrix TV",
2642 		.audio_clock    = 0x00200000,
2643 		.tuner_type     = TUNER_PHILIPS_FQ1216ME,
2644 		.tda9887_conf   = TDA9887_PRESENT,
2645 		.radio_type     = UNSET,
2646 		.tuner_addr     = ADDR_UNSET,
2647 		.radio_addr     = ADDR_UNSET,
2648 		.inputs         = {{
2649 			.type = SAA7134_INPUT_TV,
2650 			.vmux = 1,
2651 			.amux = TV,
2652 		},{
2653 			.type = SAA7134_INPUT_COMPOSITE1,
2654 			.vmux = 3,
2655 			.amux = LINE1,
2656 		},{
2657 			.type = SAA7134_INPUT_SVIDEO,
2658 			.vmux = 8,
2659 			.amux = LINE1,
2660 		}},
2661 	},
2662 	[SAA7134_BOARD_PHILIPS_TIGER] = {
2663 		.name           = "Philips Tiger reference design",
2664 		.audio_clock    = 0x00187de7,
2665 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2666 		.radio_type     = UNSET,
2667 		.tuner_addr	= ADDR_UNSET,
2668 		.radio_addr	= ADDR_UNSET,
2669 		.tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF },
2670 		.mpeg           = SAA7134_MPEG_DVB,
2671 		.gpiomask       = 0x0200000,
2672 		.inputs = {{
2673 			.type = SAA7134_INPUT_TV,
2674 			.vmux   = 1,
2675 			.amux   = TV,
2676 		},{
2677 			.type = SAA7134_INPUT_COMPOSITE1,
2678 			.vmux   = 3,
2679 			.amux   = LINE1,
2680 		},{
2681 			.type = SAA7134_INPUT_SVIDEO,
2682 			.vmux   = 8,
2683 			.amux   = LINE1,
2684 		}},
2685 		.radio = {
2686 			.type = SAA7134_INPUT_RADIO,
2687 			.amux   = TV,
2688 			.gpio   = 0x0200000,
2689 		},
2690 	},
2691 	[SAA7134_BOARD_MSI_TVATANYWHERE_PLUS] = {
2692 		.name           = "MSI TV@Anywhere plus",
2693 		.audio_clock    = 0x00187de7,
2694 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2695 		.radio_type     = UNSET,
2696 		.tuner_addr	= ADDR_UNSET,
2697 		.radio_addr	= ADDR_UNSET,
2698 		.gpiomask       = 1 << 21,
2699 		.inputs = {{
2700 			.type = SAA7134_INPUT_TV,
2701 			.vmux   = 1,
2702 			.amux   = TV,
2703 		},{
2704 			.type = SAA7134_INPUT_COMPOSITE,
2705 			.vmux   = 3,
2706 			.amux   = LINE2,	/* unconfirmed, taken from Philips driver */
2707 		},{
2708 			.type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
2709 			.vmux   = 0,		/* untested */
2710 			.amux   = LINE2,
2711 		},{
2712 			.type = SAA7134_INPUT_SVIDEO,
2713 			.vmux   = 8,
2714 			.amux   = LINE2,
2715 		}},
2716 		.radio = {
2717 			.type = SAA7134_INPUT_RADIO,
2718 			.amux   = TV,
2719 			.gpio   = 0x0200000,
2720 		},
2721 	},
2722 	[SAA7134_BOARD_CINERGY250PCI] = {
2723 		/* remote-control does not work. The signal about a
2724 		   key press comes in via gpio, but the key code
2725 		   doesn't. Neither does it have an i2c remote control
2726 		   interface. */
2727 		.name           = "Terratec Cinergy 250 PCI TV",
2728 		.audio_clock    = 0x00187de7,
2729 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2730 		.radio_type     = UNSET,
2731 		.tuner_addr	= ADDR_UNSET,
2732 		.radio_addr	= ADDR_UNSET,
2733 		.gpiomask       = 0x80200000,
2734 		.inputs         = {{
2735 			.type = SAA7134_INPUT_TV,
2736 			.vmux = 1,
2737 			.amux = TV,
2738 		},{
2739 			.type = SAA7134_INPUT_SVIDEO,  /* NOT tested */
2740 			.vmux = 8,
2741 			.amux = LINE1,
2742 		}},
2743 		.radio = {
2744 			.type = SAA7134_INPUT_RADIO,
2745 			.amux   = TV,
2746 			.gpio   = 0x0200000,
2747 		},
2748 	},
2749 	[SAA7134_BOARD_FLYDVB_TRIO] = {
2750 		/* LifeView LR319 FlyDVB Trio */
2751 		/* Peter Missel <peter.missel@onlinehome.de> */
2752 		.name           = "LifeView FlyDVB Trio",
2753 		.audio_clock    = 0x00200000,
2754 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2755 		.radio_type     = UNSET,
2756 		.tuner_addr	= ADDR_UNSET,
2757 		.radio_addr	= ADDR_UNSET,
2758 		.gpiomask	= 0x00200000,
2759 		.mpeg           = SAA7134_MPEG_DVB,
2760 		.inputs         = {{
2761 			.type = SAA7134_INPUT_TV,	/* Analog broadcast/cable TV */
2762 			.vmux = 1,
2763 			.amux = TV,
2764 			.gpio = 0x200000,	/* GPIO21=High for TV input */
2765 		},{
2766 			.type = SAA7134_INPUT_SVIDEO,
2767 			.vmux = 8,
2768 			.amux = LINE2,
2769 		},{
2770 			.type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
2771 			.vmux = 0,
2772 			.amux = LINE2,
2773 		},{
2774 			.type = SAA7134_INPUT_COMPOSITE2,
2775 			.vmux = 3,
2776 			.amux = LINE2,
2777 		}},
2778 		.radio = {
2779 			.type = SAA7134_INPUT_RADIO,
2780 			.amux = TV,
2781 			.gpio = 0x000000,	/* GPIO21=Low for FM radio antenna */
2782 		},
2783 	},
2784 	[SAA7134_BOARD_AVERMEDIA_777] = {
2785 		.name           = "AverTV DVB-T 777",
2786 		.audio_clock    = 0x00187de7,
2787 		.tuner_type     = TUNER_ABSENT,
2788 		.radio_type     = UNSET,
2789 		.tuner_addr	= ADDR_UNSET,
2790 		.radio_addr	= ADDR_UNSET,
2791 		.mpeg           = SAA7134_MPEG_DVB,
2792 		.inputs = {{
2793 			.type = SAA7134_INPUT_COMPOSITE1,
2794 			.vmux   = 1,
2795 			.amux   = LINE1,
2796 		},{
2797 			.type = SAA7134_INPUT_SVIDEO,
2798 			.vmux   = 8,
2799 			.amux   = LINE1,
2800 		}},
2801 	},
2802 	[SAA7134_BOARD_FLYDVBT_LR301] = {
2803 		/* LifeView FlyDVB-T */
2804 		/* Giampiero Giancipoli <gianci@libero.it> */
2805 		.name           = "LifeView FlyDVB-T / Genius VideoWonder DVB-T",
2806 		.audio_clock    = 0x00200000,
2807 		.tuner_type     = TUNER_ABSENT,
2808 		.radio_type     = UNSET,
2809 		.tuner_addr	= ADDR_UNSET,
2810 		.radio_addr	= ADDR_UNSET,
2811 		.mpeg           = SAA7134_MPEG_DVB,
2812 		.inputs         = {{
2813 			.type = SAA7134_INPUT_COMPOSITE1,
2814 			.vmux = 3,
2815 			.amux = LINE2,
2816 		},{
2817 			.type = SAA7134_INPUT_SVIDEO,
2818 			.vmux = 8,
2819 			.amux = LINE2,
2820 		}},
2821 	},
2822 	[SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331] = {
2823 		.name           = "ADS Instant TV Duo Cardbus PTV331",
2824 		.audio_clock    = 0x00200000,
2825 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2826 		.radio_type     = UNSET,
2827 		.tuner_addr	= ADDR_UNSET,
2828 		.radio_addr	= ADDR_UNSET,
2829 		.mpeg           = SAA7134_MPEG_DVB,
2830 		.gpiomask       = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
2831 		.inputs = {{
2832 			.type = SAA7134_INPUT_TV,
2833 			.vmux   = 1,
2834 			.amux   = TV,
2835 			.gpio   = 0x00200000,
2836 		}},
2837 	},
2838 	[SAA7134_BOARD_TEVION_DVBT_220RF] = {
2839 		.name           = "Tevion/KWorld DVB-T 220RF",
2840 		.audio_clock    = 0x00187de7,
2841 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2842 		.radio_type     = UNSET,
2843 		.tuner_addr     = ADDR_UNSET,
2844 		.radio_addr     = ADDR_UNSET,
2845 		.mpeg           = SAA7134_MPEG_DVB,
2846 		.gpiomask       = 1 << 21,
2847 		.inputs = {{
2848 			.type = SAA7134_INPUT_TV,
2849 			.vmux   = 1,
2850 			.amux   = TV,
2851 		},{
2852 			.type = SAA7134_INPUT_COMPOSITE1,
2853 			.vmux   = 3,
2854 			.amux   = LINE1,
2855 		},{
2856 			.type = SAA7134_INPUT_COMPOSITE2,
2857 			.vmux   = 0,
2858 			.amux   = LINE1,
2859 		},{
2860 			.type = SAA7134_INPUT_SVIDEO,
2861 			.vmux   = 8,
2862 			.amux   = LINE1,
2863 		}},
2864 		.radio = {
2865 			.type = SAA7134_INPUT_RADIO,
2866 			.amux   = TV,
2867 			.gpio   = 0x0200000,
2868 		},
2869 	},
2870 	[SAA7134_BOARD_KWORLD_DVBT_210] = {
2871 		.name           = "KWorld DVB-T 210",
2872 		.audio_clock    = 0x00187de7,
2873 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2874 		.radio_type     = UNSET,
2875 		.tuner_addr	= ADDR_UNSET,
2876 		.radio_addr	= ADDR_UNSET,
2877 		.mpeg           = SAA7134_MPEG_DVB,
2878 		.gpiomask       = 1 << 21,
2879 		.inputs = {{
2880 			.type = SAA7134_INPUT_TV,
2881 			.vmux   = 1,
2882 			.amux   = TV,
2883 		},{
2884 			.type = SAA7134_INPUT_COMPOSITE1,
2885 			.vmux   = 3,
2886 			.amux   = LINE1,
2887 		},{
2888 			.type = SAA7134_INPUT_SVIDEO,
2889 			.vmux   = 8,
2890 			.amux   = LINE1,
2891 		}},
2892 		.radio = {
2893 			.type = SAA7134_INPUT_RADIO,
2894 			.amux   = TV,
2895 			.gpio   = 0x0200000,
2896 		},
2897 	},
2898 	[SAA7134_BOARD_KWORLD_ATSC110] = {
2899 		.name           = "Kworld ATSC110/115",
2900 		.audio_clock    = 0x00187de7,
2901 		.tuner_type     = TUNER_PHILIPS_TUV1236D,
2902 		.radio_type     = UNSET,
2903 		.tuner_addr     = ADDR_UNSET,
2904 		.radio_addr     = ADDR_UNSET,
2905 		.tda9887_conf   = TDA9887_PRESENT,
2906 		.mpeg           = SAA7134_MPEG_DVB,
2907 		.inputs         = {{
2908 			.type = SAA7134_INPUT_TV,
2909 			.vmux = 1,
2910 			.amux = TV,
2911 		},{
2912 			.type = SAA7134_INPUT_COMPOSITE1,
2913 			.vmux = 3,
2914 			.amux = LINE2,
2915 		},{
2916 			.type = SAA7134_INPUT_SVIDEO,
2917 			.vmux = 8,
2918 			.amux = LINE2,
2919 		}},
2920 	},
2921 	[SAA7134_BOARD_AVERMEDIA_A169_B] = {
2922 		/* AVerMedia A169  */
2923 		/* Rickard Osser <ricky@osser.se>  */
2924 		/* This card has two saa7134 chips on it,
2925 		   but only one of them is currently working. */
2926 		.name		= "AVerMedia A169 B",
2927 		.audio_clock    = 0x02187de7,
2928 		.tuner_type	= TUNER_LG_TALN,
2929 		.radio_type     = UNSET,
2930 		.tuner_addr	= ADDR_UNSET,
2931 		.radio_addr	= ADDR_UNSET,
2932 		.tda9887_conf   = TDA9887_PRESENT,
2933 		.gpiomask       = 0x0a60000,
2934 	},
2935 	[SAA7134_BOARD_AVERMEDIA_A169_B1] = {
2936 		/* AVerMedia A169 */
2937 		/* Rickard Osser <ricky@osser.se> */
2938 		.name		= "AVerMedia A169 B1",
2939 		.audio_clock    = 0x02187de7,
2940 		.tuner_type	= TUNER_LG_TALN,
2941 		.radio_type     = UNSET,
2942 		.tuner_addr	= ADDR_UNSET,
2943 		.radio_addr	= ADDR_UNSET,
2944 		.tda9887_conf   = TDA9887_PRESENT,
2945 		.gpiomask       = 0xca60000,
2946 		.inputs         = {{
2947 			.type = SAA7134_INPUT_TV,
2948 			.vmux = 4,
2949 			.amux = TV,
2950 			.gpio = 0x04a61000,
2951 		},{
2952 			.type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
2953 			.vmux = 1,
2954 			.amux = LINE2,
2955 		},{
2956 			.type = SAA7134_INPUT_SVIDEO,
2957 			.vmux = 9,           /* 9 is correct as S-VIDEO1 according to a169.inf! */
2958 			.amux = LINE1,
2959 		}},
2960 	},
2961 	[SAA7134_BOARD_MD7134_BRIDGE_2] = {
2962 		/* The second saa7134 on this card only serves as DVB-S host bridge */
2963 		.name           = "Medion 7134 Bridge #2",
2964 		.audio_clock    = 0x00187de7,
2965 		.radio_type     = UNSET,
2966 		.tuner_addr	= ADDR_UNSET,
2967 		.radio_addr	= ADDR_UNSET,
2968 		.mpeg           = SAA7134_MPEG_DVB,
2969 	},
2970 	[SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS] = {
2971 		.name		= "LifeView FlyDVB-T Hybrid Cardbus/MSI TV @nywhere A/D NB",
2972 		.audio_clock    = 0x00200000,
2973 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2974 		.radio_type     = UNSET,
2975 		.tuner_addr	= ADDR_UNSET,
2976 		.radio_addr	= ADDR_UNSET,
2977 		.mpeg           = SAA7134_MPEG_DVB,
2978 		.gpiomask       = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
2979 		.inputs         = {{
2980 			.type = SAA7134_INPUT_TV,
2981 			.vmux = 1,
2982 			.amux = TV,
2983 			.gpio = 0x200000,	/* GPIO21=High for TV input */
2984 		},{
2985 			.type = SAA7134_INPUT_SVIDEO,
2986 			.vmux = 8,
2987 			.amux = LINE2,
2988 		},{
2989 			.type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
2990 			.vmux = 0,
2991 			.amux = LINE2,
2992 		},{
2993 			.type = SAA7134_INPUT_COMPOSITE,
2994 			.vmux = 3,
2995 			.amux = LINE2,
2996 		}},
2997 		.radio = {
2998 			.type = SAA7134_INPUT_RADIO,
2999 			.amux = TV,
3000 			.gpio = 0x000000,	/* GPIO21=Low for FM radio antenna */
3001 		},
3002 	},
3003 	[SAA7134_BOARD_FLYVIDEO3000_NTSC] = {
3004 		/* "Zac Bowling" <zac@zacbowling.com> */
3005 		.name           = "LifeView FlyVIDEO3000 (NTSC)",
3006 		.audio_clock    = 0x00200000,
3007 		.tuner_type     = TUNER_PHILIPS_NTSC,
3008 		.radio_type     = UNSET,
3009 		.tuner_addr     = ADDR_UNSET,
3010 		.radio_addr     = ADDR_UNSET,
3011 
3012 		.gpiomask       = 0xe000,
3013 		.inputs         = {{
3014 			.type = SAA7134_INPUT_TV,
3015 			.vmux = 1,
3016 			.amux = TV,
3017 			.gpio = 0x8000,
3018 		},{
3019 			.type = SAA7134_INPUT_TV_MONO,
3020 			.vmux = 1,
3021 			.amux = LINE2,
3022 			.gpio = 0x0000,
3023 		},{
3024 			.type = SAA7134_INPUT_COMPOSITE1,
3025 			.vmux = 0,
3026 			.amux = LINE2,
3027 			.gpio = 0x4000,
3028 		},{
3029 			.type = SAA7134_INPUT_COMPOSITE2,
3030 			.vmux = 3,
3031 			.amux = LINE2,
3032 			.gpio = 0x4000,
3033 		},{
3034 			.type = SAA7134_INPUT_SVIDEO,
3035 			.vmux = 8,
3036 			.amux = LINE2,
3037 			.gpio = 0x4000,
3038 		}},
3039 		.radio = {
3040 			.type = SAA7134_INPUT_RADIO,
3041 			.amux = LINE2,
3042 			.gpio = 0x2000,
3043 		},
3044 			.mute = {
3045 			.type = SAA7134_INPUT_MUTE,
3046 			.amux = TV,
3047 			.gpio = 0x8000,
3048 		},
3049 	},
3050 	[SAA7134_BOARD_MEDION_MD8800_QUADRO] = {
3051 		.name           = "Medion Md8800 Quadro",
3052 		.audio_clock    = 0x00187de7,
3053 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3054 		.radio_type     = UNSET,
3055 		.tuner_addr     = ADDR_UNSET,
3056 		.radio_addr     = ADDR_UNSET,
3057 		.mpeg           = SAA7134_MPEG_DVB,
3058 		.inputs = {{
3059 			.type = SAA7134_INPUT_TV,
3060 			.vmux   = 1,
3061 			.amux   = TV,
3062 		},{
3063 			.type = SAA7134_INPUT_COMPOSITE1,
3064 			.vmux   = 0,
3065 			.amux   = LINE1,
3066 		},{
3067 			.type = SAA7134_INPUT_SVIDEO,
3068 			.vmux   = 8,
3069 			.amux   = LINE1,
3070 		}},
3071 	},
3072 	[SAA7134_BOARD_FLYDVBS_LR300] = {
3073 		/* LifeView FlyDVB-s */
3074 		/* Igor M. Liplianin <liplianin@tut.by> */
3075 		.name           = "LifeView FlyDVB-S /Acorp TV134DS",
3076 		.audio_clock    = 0x00200000,
3077 		.tuner_type     = TUNER_ABSENT,
3078 		.radio_type     = UNSET,
3079 		.tuner_addr	= ADDR_UNSET,
3080 		.radio_addr	= ADDR_UNSET,
3081 		.mpeg           = SAA7134_MPEG_DVB,
3082 		.inputs         = {{
3083 			.type = SAA7134_INPUT_COMPOSITE1,
3084 			.vmux = 3,
3085 			.amux = LINE1,
3086 		},{
3087 			.type = SAA7134_INPUT_SVIDEO,
3088 			.vmux = 8,
3089 			.amux = LINE1,
3090 		}},
3091 	},
3092 	[SAA7134_BOARD_PROTEUS_2309] = {
3093 		.name           = "Proteus Pro 2309",
3094 		.audio_clock    = 0x00187de7,
3095 		.tuner_type	= TUNER_PHILIPS_FM1216ME_MK3,
3096 		.radio_type     = UNSET,
3097 		.tuner_addr	= ADDR_UNSET,
3098 		.radio_addr	= ADDR_UNSET,
3099 		.tda9887_conf   = TDA9887_PRESENT,
3100 		.inputs         = {{
3101 			.type = SAA7134_INPUT_TV,
3102 			.vmux = 1,
3103 			.amux = LINE2,
3104 		},{
3105 			.type = SAA7134_INPUT_COMPOSITE1,
3106 			.vmux = 0,
3107 			.amux = LINE2,
3108 		},{
3109 			.type = SAA7134_INPUT_COMPOSITE2,
3110 			.vmux = 3,
3111 			.amux = LINE2,
3112 		},{
3113 			.type = SAA7134_INPUT_SVIDEO,
3114 			.vmux = 8,
3115 			.amux = LINE2,
3116 		}},
3117 		.mute = {
3118 			.type = SAA7134_INPUT_MUTE,
3119 			.amux = LINE1,
3120 		},
3121 	},
3122 	[SAA7134_BOARD_AVERMEDIA_A16AR] = {
3123 		/* Petr Baudis <pasky@ucw.cz> */
3124 		.name           = "AVerMedia TV Hybrid A16AR",
3125 		.audio_clock    = 0x187de7,
3126 		.tuner_type     = TUNER_PHILIPS_TD1316, /* untested */
3127 		.radio_type     = TUNER_TEA5767, /* untested */
3128 		.tuner_addr     = ADDR_UNSET,
3129 		.radio_addr     = 0x60,
3130 		.tda9887_conf   = TDA9887_PRESENT,
3131 		.mpeg           = SAA7134_MPEG_DVB,
3132 		.inputs         = {{
3133 			.type = SAA7134_INPUT_TV,
3134 			.vmux = 1,
3135 			.amux = TV,
3136 		},{
3137 			.type = SAA7134_INPUT_COMPOSITE1,
3138 			.vmux = 3,
3139 			.amux = LINE2,
3140 		},{
3141 			.type = SAA7134_INPUT_SVIDEO,
3142 			.vmux = 8,
3143 			.amux = LINE1,
3144 		}},
3145 		.radio = {
3146 			.type = SAA7134_INPUT_RADIO,
3147 			.amux = LINE1,
3148 		},
3149 	},
3150 	[SAA7134_BOARD_ASUS_EUROPA2_HYBRID] = {
3151 		.name           = "Asus Europa2 OEM",
3152 		.audio_clock    = 0x00187de7,
3153 		.tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
3154 		.radio_type     = UNSET,
3155 		.tuner_addr	= ADDR_UNSET,
3156 		.radio_addr	= ADDR_UNSET,
3157 		.tda9887_conf   = TDA9887_PRESENT| TDA9887_PORT1_ACTIVE | TDA9887_PORT2_ACTIVE,
3158 		.mpeg           = SAA7134_MPEG_DVB,
3159 		.inputs = {{
3160 			.type = SAA7134_INPUT_TV,
3161 			.vmux   = 3,
3162 			.amux   = TV,
3163 		},{
3164 			.type = SAA7134_INPUT_COMPOSITE1,
3165 			.vmux   = 4,
3166 			.amux   = LINE2,
3167 		},{
3168 			.type = SAA7134_INPUT_SVIDEO,
3169 			.vmux   = 8,
3170 			.amux   = LINE2,
3171 		}},
3172 		.radio = {
3173 			.type = SAA7134_INPUT_RADIO,
3174 			.amux   = LINE1,
3175 		},
3176 	},
3177 	[SAA7134_BOARD_PINNACLE_PCTV_310i] = {
3178 		.name           = "Pinnacle PCTV 310i",
3179 		.audio_clock    = 0x00187de7,
3180 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3181 		.radio_type     = UNSET,
3182 		.tuner_addr     = ADDR_UNSET,
3183 		.radio_addr     = ADDR_UNSET,
3184 		.tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_ON },
3185 		.mpeg           = SAA7134_MPEG_DVB,
3186 		.gpiomask       = 0x000200000,
3187 		.inputs         = {{
3188 			.type = SAA7134_INPUT_TV,
3189 			.vmux = 4,
3190 			.amux = TV,
3191 		},{
3192 			.type = SAA7134_INPUT_COMPOSITE1,
3193 			.vmux = 1,
3194 			.amux = LINE2,
3195 		},{
3196 			.type = SAA7134_INPUT_COMPOSITE2,
3197 			.vmux = 0,
3198 			.amux = LINE2,
3199 		},{
3200 			.type = SAA7134_INPUT_SVIDEO,
3201 			.vmux = 8,
3202 			.amux = LINE2,
3203 		}},
3204 		.radio = {
3205 			.type = SAA7134_INPUT_RADIO,
3206 			.amux   = TV,
3207 			.gpio   = 0x0200000,
3208 		},
3209 	},
3210 	[SAA7134_BOARD_AVERMEDIA_STUDIO_507] = {
3211 		/* Mikhail Fedotov <mo_fedotov@mail.ru> */
3212 		.name           = "Avermedia AVerTV Studio 507",
3213 		.audio_clock    = 0x00187de7,
3214 		.tuner_type     = TUNER_PHILIPS_FM1256_IH3,
3215 		.radio_type     = UNSET,
3216 		.tuner_addr	= ADDR_UNSET,
3217 		.radio_addr	= ADDR_UNSET,
3218 		.tda9887_conf   = TDA9887_PRESENT,
3219 		.gpiomask       = 0x03,
3220 		.inputs         = {{
3221 			.type = SAA7134_INPUT_TV,
3222 			.vmux = 1,
3223 			.amux = TV,
3224 			.gpio = 0x00,
3225 		},{
3226 			.type = SAA7134_INPUT_COMPOSITE1,
3227 			.vmux = 0,
3228 			.amux = LINE2,
3229 			.gpio = 0x00,
3230 		},{
3231 			.type = SAA7134_INPUT_COMPOSITE2,
3232 			.vmux = 3,
3233 			.amux = LINE2,
3234 			.gpio = 0x00,
3235 		},{
3236 			.type = SAA7134_INPUT_SVIDEO,
3237 			.vmux = 8,
3238 			.amux = LINE2,
3239 			.gpio = 0x00,
3240 		}},
3241 		.radio = {
3242 			.type = SAA7134_INPUT_RADIO,
3243 			.amux = LINE2,
3244 			.gpio = 0x01,
3245 		},
3246 		.mute  = {
3247 			.type = SAA7134_INPUT_MUTE,
3248 			.amux = LINE1,
3249 			.gpio = 0x00,
3250 		},
3251 	},
3252 	[SAA7134_BOARD_VIDEOMATE_DVBT_200A] = {
3253 		/* Francis Barber <fedora@barber-family.id.au> */
3254 		.name           = "Compro Videomate DVB-T200A",
3255 		.audio_clock    = 0x00187de7,
3256 		.tuner_type     = TUNER_ABSENT,
3257 		.radio_type     = UNSET,
3258 		.tuner_addr	= ADDR_UNSET,
3259 		.radio_addr	= ADDR_UNSET,
3260 		.tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
3261 		.mpeg           = SAA7134_MPEG_DVB,
3262 		.inputs = {{
3263 			.type = SAA7134_INPUT_TV,
3264 			.vmux   = 3,
3265 			.amux   = TV,
3266 		},{
3267 			.type = SAA7134_INPUT_COMPOSITE1,
3268 			.vmux   = 1,
3269 			.amux   = LINE2,
3270 		},{
3271 			.type = SAA7134_INPUT_SVIDEO,
3272 			.vmux   = 8,
3273 			.amux   = LINE2,
3274 		}},
3275 	},
3276 	[SAA7134_BOARD_HAUPPAUGE_HVR1110] = {
3277 		/* Thomas Genty <tomlohave@gmail.com> */
3278 		/* David Bentham <db260179@hotmail.com> */
3279 		.name           = "Hauppauge WinTV-HVR1110 DVB-T/Hybrid",
3280 		.audio_clock    = 0x00187de7,
3281 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3282 		.radio_type     = UNSET,
3283 		.tuner_addr     = ADDR_UNSET,
3284 		.radio_addr     = ADDR_UNSET,
3285 		.tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_ON },
3286 		.mpeg           = SAA7134_MPEG_DVB,
3287 		.gpiomask       = 0x0200100,
3288 		.inputs         = {{
3289 			.type = SAA7134_INPUT_TV,
3290 			.vmux = 1,
3291 			.amux = TV,
3292 			.gpio = 0x0000100,
3293 		}, {
3294 			.type = SAA7134_INPUT_COMPOSITE1,
3295 			.vmux = 3,
3296 			.amux = LINE1,
3297 		}, {
3298 			.type = SAA7134_INPUT_SVIDEO,
3299 			.vmux = 8,
3300 			.amux = LINE1,
3301 		} },
3302 		.radio = {
3303 			.type = SAA7134_INPUT_RADIO,
3304 			.amux = TV,
3305 			.gpio = 0x0200100,
3306 		},
3307 	},
3308 	[SAA7134_BOARD_HAUPPAUGE_HVR1150] = {
3309 		.name           = "Hauppauge WinTV-HVR1150 ATSC/QAM-Hybrid",
3310 		.audio_clock    = 0x00187de7,
3311 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3312 		.radio_type     = UNSET,
3313 		.tuner_addr     = ADDR_UNSET,
3314 		.radio_addr     = ADDR_UNSET,
3315 		.tda829x_conf   = { .lna_cfg = TDA8290_LNA_ON_BRIDGE },
3316 		.mpeg           = SAA7134_MPEG_DVB,
3317 		.ts_type	= SAA7134_MPEG_TS_SERIAL,
3318 		.ts_force_val   = 1,
3319 		.gpiomask       = 0x0800100, /* GPIO 21 is an INPUT */
3320 		.inputs         = {{
3321 			.type = SAA7134_INPUT_TV,
3322 			.vmux = 1,
3323 			.amux = TV,
3324 			.gpio = 0x0000100,
3325 		}, {
3326 			.type = SAA7134_INPUT_COMPOSITE1,
3327 			.vmux = 3,
3328 			.amux = LINE1,
3329 		}, {
3330 			.type = SAA7134_INPUT_SVIDEO,
3331 			.vmux = 8,
3332 			.amux = LINE1,
3333 		} },
3334 		.radio = {
3335 			.type = SAA7134_INPUT_RADIO,
3336 			.amux = TV,
3337 			.gpio = 0x0800100, /* GPIO 23 HI for FM */
3338 		},
3339 	},
3340 	[SAA7134_BOARD_HAUPPAUGE_HVR1120] = {
3341 		.name           = "Hauppauge WinTV-HVR1120 DVB-T/Hybrid",
3342 		.audio_clock    = 0x00187de7,
3343 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3344 		.radio_type     = UNSET,
3345 		.tuner_addr     = ADDR_UNSET,
3346 		.radio_addr     = ADDR_UNSET,
3347 		.tda829x_conf   = { .lna_cfg = TDA8290_LNA_ON_BRIDGE },
3348 		.mpeg           = SAA7134_MPEG_DVB,
3349 		.ts_type	= SAA7134_MPEG_TS_SERIAL,
3350 		.gpiomask       = 0x0800100, /* GPIO 21 is an INPUT */
3351 		.inputs         = {{
3352 			.type = SAA7134_INPUT_TV,
3353 			.vmux = 1,
3354 			.amux = TV,
3355 			.gpio = 0x0000100,
3356 		}, {
3357 			.type = SAA7134_INPUT_COMPOSITE1,
3358 			.vmux = 3,
3359 			.amux = LINE1,
3360 		}, {
3361 			.type = SAA7134_INPUT_SVIDEO,
3362 			.vmux = 8,
3363 			.amux = LINE1,
3364 		} },
3365 		.radio = {
3366 			.type = SAA7134_INPUT_RADIO,
3367 			.amux = TV,
3368 			.gpio = 0x0800100, /* GPIO 23 HI for FM */
3369 		},
3370 	},
3371 	[SAA7134_BOARD_CINERGY_HT_PCMCIA] = {
3372 		.name           = "Terratec Cinergy HT PCMCIA",
3373 		.audio_clock    = 0x00187de7,
3374 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3375 		.radio_type     = UNSET,
3376 		.tuner_addr	= ADDR_UNSET,
3377 		.radio_addr	= ADDR_UNSET,
3378 		.mpeg           = SAA7134_MPEG_DVB,
3379 		.inputs = {{
3380 			.type = SAA7134_INPUT_TV,
3381 			.vmux   = 1,
3382 			.amux   = TV,
3383 		},{
3384 			.type = SAA7134_INPUT_COMPOSITE1,
3385 			.vmux   = 0,
3386 			.amux   = LINE1,
3387 		},{
3388 			.type = SAA7134_INPUT_SVIDEO,
3389 			.vmux   = 6,
3390 			.amux   = LINE1,
3391 		}},
3392 	},
3393 	[SAA7134_BOARD_ENCORE_ENLTV] = {
3394 	/* Steven Walter <stevenrwalter@gmail.com>
3395 	   Juan Pablo Sormani <sorman@gmail.com> */
3396 		.name           = "Encore ENLTV",
3397 		.audio_clock    = 0x00200000,
3398 		.tuner_type     = TUNER_TNF_5335MF,
3399 		.radio_type     = UNSET,
3400 		.tuner_addr	= ADDR_UNSET,
3401 		.radio_addr	= ADDR_UNSET,
3402 		.inputs         = {{
3403 			.type = SAA7134_INPUT_TV,
3404 			.vmux = 1,
3405 			.amux = 3,
3406 		},{
3407 			.type = SAA7134_INPUT_TV_MONO,
3408 			.vmux = 7,
3409 			.amux = 4,
3410 		},{
3411 			.type = SAA7134_INPUT_COMPOSITE1,
3412 			.vmux = 3,
3413 			.amux = 2,
3414 		},{
3415 			.type = SAA7134_INPUT_SVIDEO,
3416 			.vmux = 0,
3417 			.amux = 2,
3418 		}},
3419 		.radio = {
3420 			.type = SAA7134_INPUT_RADIO,
3421 			.amux = LINE2,
3422 /*			.gpio = 0x00300001,*/
3423 			.gpio = 0x20000,
3424 
3425 		},
3426 		.mute = {
3427 			.type = SAA7134_INPUT_MUTE,
3428 			.amux = 0,
3429 		},
3430 	},
3431 	[SAA7134_BOARD_ENCORE_ENLTV_FM] = {
3432   /*	Juan Pablo Sormani <sorman@gmail.com> */
3433 		.name           = "Encore ENLTV-FM",
3434 		.audio_clock    = 0x00200000,
3435 		.tuner_type     = TUNER_PHILIPS_FCV1236D,
3436 		.radio_type     = UNSET,
3437 		.tuner_addr	= ADDR_UNSET,
3438 		.radio_addr	= ADDR_UNSET,
3439 		.inputs         = {{
3440 			.type = SAA7134_INPUT_TV,
3441 			.vmux = 1,
3442 			.amux = 3,
3443 		},{
3444 			.type = SAA7134_INPUT_TV_MONO,
3445 			.vmux = 7,
3446 			.amux = 4,
3447 		},{
3448 			.type = SAA7134_INPUT_COMPOSITE1,
3449 			.vmux = 3,
3450 			.amux = 2,
3451 		},{
3452 			.type = SAA7134_INPUT_SVIDEO,
3453 			.vmux = 0,
3454 			.amux = 2,
3455 		}},
3456 		.radio = {
3457 			.type = SAA7134_INPUT_RADIO,
3458 			.amux = LINE2,
3459 			.gpio = 0x20000,
3460 
3461 		},
3462 		.mute = {
3463 			.type = SAA7134_INPUT_MUTE,
3464 			.amux = 0,
3465 		},
3466 	},
3467 	[SAA7134_BOARD_ENCORE_ENLTV_FM53] = {
3468 		.name           = "Encore ENLTV-FM v5.3",
3469 		.audio_clock    = 0x00200000,
3470 		.tuner_type     = TUNER_TNF_5335MF,
3471 		.radio_type     = UNSET,
3472 		.tuner_addr	= ADDR_UNSET,
3473 		.radio_addr	= ADDR_UNSET,
3474 		.gpiomask	= 0x7000,
3475 		.inputs         = { {
3476 			.type = SAA7134_INPUT_TV,
3477 			.vmux = 1,
3478 			.amux = 1,
3479 			.gpio = 0x50000,
3480 		}, {
3481 			.type = SAA7134_INPUT_COMPOSITE1,
3482 			.vmux = 3,
3483 			.amux = 2,
3484 			.gpio = 0x2000,
3485 		}, {
3486 			.type = SAA7134_INPUT_SVIDEO,
3487 			.vmux = 8,
3488 			.amux = 2,
3489 			.gpio = 0x2000,
3490 		} },
3491 		.radio = {
3492 			.type = SAA7134_INPUT_RADIO,
3493 			.vmux = 1,
3494 			.amux = 1,
3495 		},
3496 		.mute = {
3497 			.type = SAA7134_INPUT_MUTE,
3498 			.gpio = 0xf000,
3499 			.amux = 0,
3500 		},
3501 	},
3502 	[SAA7134_BOARD_ENCORE_ENLTV_FM3] = {
3503 		.name           = "Encore ENLTV-FM 3",
3504 		.audio_clock    = 0x02187de7,
3505 		.tuner_type     = TUNER_TENA_TNF_5337,
3506 		.radio_type     = TUNER_TEA5767,
3507 		.tuner_addr	= 0x61,
3508 		.radio_addr	= 0x60,
3509 		.inputs         = { {
3510 			.type = SAA7134_INPUT_TV,
3511 			.vmux = 1,
3512 			.amux = LINE2,
3513 		}, {
3514 			.type = SAA7134_INPUT_COMPOSITE1,
3515 			.vmux = 3,
3516 			.amux = LINE1,
3517 		}, {
3518 			.type = SAA7134_INPUT_SVIDEO,
3519 			.vmux = 8,
3520 			.amux = LINE1,
3521 		} },
3522 		.radio = {
3523 			.type = SAA7134_INPUT_RADIO,
3524 			.vmux = 1,
3525 			.amux = LINE1,
3526 		},
3527 		.mute = {
3528 			.type = SAA7134_INPUT_MUTE,
3529 			.amux = LINE1,
3530 			.gpio = 0x43000,
3531 		},
3532 	},
3533 	[SAA7134_BOARD_CINERGY_HT_PCI] = {
3534 		.name           = "Terratec Cinergy HT PCI",
3535 		.audio_clock    = 0x00187de7,
3536 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3537 		.radio_type     = UNSET,
3538 		.tuner_addr	= ADDR_UNSET,
3539 		.radio_addr	= ADDR_UNSET,
3540 		.mpeg           = SAA7134_MPEG_DVB,
3541 		.inputs = {{
3542 			.type = SAA7134_INPUT_TV,
3543 			.vmux   = 1,
3544 			.amux   = TV,
3545 		},{
3546 			.type = SAA7134_INPUT_COMPOSITE1,
3547 			.vmux   = 0,
3548 			.amux   = LINE1,
3549 		},{
3550 			.type = SAA7134_INPUT_SVIDEO,
3551 			.vmux   = 6,
3552 			.amux   = LINE1,
3553 		}},
3554 	},
3555 	[SAA7134_BOARD_PHILIPS_TIGER_S] = {
3556 		.name           = "Philips Tiger - S Reference design",
3557 		.audio_clock    = 0x00187de7,
3558 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3559 		.radio_type     = UNSET,
3560 		.tuner_addr	= ADDR_UNSET,
3561 		.radio_addr	= ADDR_UNSET,
3562 		.tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
3563 		.mpeg           = SAA7134_MPEG_DVB,
3564 		.gpiomask       = 0x0200000,
3565 		.inputs = {{
3566 			.type = SAA7134_INPUT_TV,
3567 			.vmux   = 1,
3568 			.amux   = TV,
3569 		},{
3570 			.type = SAA7134_INPUT_COMPOSITE1,
3571 			.vmux   = 3,
3572 			.amux   = LINE1,
3573 		},{
3574 			.type = SAA7134_INPUT_SVIDEO,
3575 			.vmux   = 8,
3576 			.amux   = LINE1,
3577 		}},
3578 		.radio = {
3579 			.type = SAA7134_INPUT_RADIO,
3580 			.amux   = TV,
3581 			.gpio   = 0x0200000,
3582 		},
3583 	},
3584 	[SAA7134_BOARD_AVERMEDIA_M102] = {
3585 		.name           = "Avermedia M102",
3586 		.audio_clock    = 0x00187de7,
3587 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3588 		.radio_type     = UNSET,
3589 		.tuner_addr	= ADDR_UNSET,
3590 		.radio_addr	= ADDR_UNSET,
3591 		.gpiomask       = 1<<21,
3592 		.inputs         = {{
3593 			.type = SAA7134_INPUT_TV,
3594 			.vmux = 1,
3595 			.amux = TV,
3596 		},{
3597 			.type = SAA7134_INPUT_COMPOSITE1,
3598 			.vmux = 0,
3599 			.amux = LINE2,
3600 		},{
3601 			.type = SAA7134_INPUT_SVIDEO,
3602 			.vmux = 6,
3603 			.amux = LINE2,
3604 		}},
3605 	},
3606 	[SAA7134_BOARD_ASUS_P7131_4871] = {
3607 		.name           = "ASUS P7131 4871",
3608 		.audio_clock    = 0x00187de7,
3609 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3610 		.radio_type     = UNSET,
3611 		.tuner_addr	= ADDR_UNSET,
3612 		.radio_addr	= ADDR_UNSET,
3613 		.tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
3614 		.mpeg           = SAA7134_MPEG_DVB,
3615 		.gpiomask       = 0x0200000,
3616 		.inputs = {{
3617 			.type = SAA7134_INPUT_TV,
3618 			.vmux   = 1,
3619 			.amux   = TV,
3620 			.gpio   = 0x0200000,
3621 		},{
3622 			.type = SAA7134_INPUT_COMPOSITE1,
3623 			.vmux = 3,
3624 			.amux = LINE2,
3625 			.gpio = 0x0200000,
3626 		},{
3627 			.type = SAA7134_INPUT_COMPOSITE2,
3628 			.vmux = 0,
3629 			.amux = LINE2,
3630 			.gpio = 0x0200000,
3631 		},{
3632 			.type = SAA7134_INPUT_SVIDEO,
3633 			.vmux = 8,
3634 			.amux = LINE2,
3635 			.gpio = 0x0200000,
3636 		}},
3637 	},
3638 	[SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA] = {
3639 		.name           = "ASUSTeK P7131 Hybrid",
3640 		.audio_clock    = 0x00187de7,
3641 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3642 		.radio_type     = UNSET,
3643 		.tuner_addr	= ADDR_UNSET,
3644 		.radio_addr	= ADDR_UNSET,
3645 		.tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
3646 		.gpiomask	= 1 << 21,
3647 		.mpeg           = SAA7134_MPEG_DVB,
3648 		.inputs         = {{
3649 			.type = SAA7134_INPUT_TV,
3650 			.vmux = 1,
3651 			.amux = TV,
3652 			.gpio = 0x0000000,
3653 		},{
3654 			.type = SAA7134_INPUT_COMPOSITE1,
3655 			.vmux = 3,
3656 			.amux = LINE2,
3657 			.gpio = 0x0200000,
3658 		},{
3659 			.type = SAA7134_INPUT_COMPOSITE2,
3660 			.vmux = 0,
3661 			.amux = LINE2,
3662 			.gpio = 0x0200000,
3663 		},{
3664 			.type = SAA7134_INPUT_SVIDEO,
3665 			.vmux = 8,
3666 			.amux = LINE2,
3667 			.gpio = 0x0200000,
3668 		}},
3669 		.radio = {
3670 			.type = SAA7134_INPUT_RADIO,
3671 			.amux = TV,
3672 			.gpio = 0x0200000,
3673 		},
3674 	},
3675 	[SAA7134_BOARD_ASUSTeK_P7131_ANALOG] = {
3676 	       .name           = "ASUSTeK P7131 Analog",
3677 	       .audio_clock    = 0x00187de7,
3678 	       .tuner_type     = TUNER_PHILIPS_TDA8290,
3679 	       .radio_type     = UNSET,
3680 	       .tuner_addr     = ADDR_UNSET,
3681 	       .radio_addr     = ADDR_UNSET,
3682 	       .gpiomask       = 1 << 21,
3683 	       .inputs         = {{
3684 		       .type = SAA7134_INPUT_TV,
3685 		       .vmux = 1,
3686 		       .amux = TV,
3687 		       .gpio = 0x0000000,
3688 	       }, {
3689 		       .type = SAA7134_INPUT_COMPOSITE1,
3690 		       .vmux = 3,
3691 		       .amux = LINE2,
3692 	       }, {
3693 		       .type = SAA7134_INPUT_COMPOSITE2,
3694 		       .vmux = 0,
3695 		       .amux = LINE2,
3696 	       }, {
3697 		       .type = SAA7134_INPUT_SVIDEO,
3698 		       .vmux = 8,
3699 		       .amux = LINE2,
3700 	       } },
3701 	       .radio = {
3702 		       .type = SAA7134_INPUT_RADIO,
3703 		       .amux = TV,
3704 		       .gpio = 0x0200000,
3705 	       },
3706 	},
3707 	[SAA7134_BOARD_SABRENT_TV_PCB05] = {
3708 		.name           = "Sabrent PCMCIA TV-PCB05",
3709 		.audio_clock    = 0x00187de7,
3710 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3711 		.radio_type     = UNSET,
3712 		.tuner_addr     = ADDR_UNSET,
3713 		.radio_addr     = ADDR_UNSET,
3714 		.inputs         = {{
3715 			.type = SAA7134_INPUT_TV,
3716 			.vmux = 1,
3717 			.amux = TV,
3718 		},{
3719 			.type = SAA7134_INPUT_COMPOSITE1,
3720 			.vmux = 3,
3721 			.amux = LINE1,
3722 		},{
3723 			.type = SAA7134_INPUT_COMPOSITE2,
3724 			.vmux = 0,
3725 			.amux = LINE1,
3726 		},{
3727 			.type = SAA7134_INPUT_SVIDEO,
3728 			.vmux = 8,
3729 			.amux = LINE1,
3730 		}},
3731 		.mute = {
3732 			.type = SAA7134_INPUT_MUTE,
3733 			.amux = TV,
3734 		},
3735 	},
3736 	[SAA7134_BOARD_10MOONSTVMASTER3] = {
3737 		/* Tony Wan <aloha_cn@hotmail.com> */
3738 		.name           = "10MOONS TM300 TV Card",
3739 		.audio_clock    = 0x00200000,
3740 		.tuner_type     = TUNER_LG_PAL_NEW_TAPC,
3741 		.radio_type     = UNSET,
3742 		.tuner_addr     = ADDR_UNSET,
3743 		.radio_addr     = ADDR_UNSET,
3744 		.gpiomask       = 0x7000,
3745 		.inputs         = {{
3746 			.type = SAA7134_INPUT_TV,
3747 			.vmux = 1,
3748 			.amux = LINE2,
3749 			.gpio = 0x0000,
3750 		},{
3751 			.type = SAA7134_INPUT_COMPOSITE1,
3752 			.vmux = 3,
3753 			.amux = LINE1,
3754 			.gpio = 0x2000,
3755 		},{
3756 			.type = SAA7134_INPUT_SVIDEO,
3757 			.vmux = 8,
3758 			.amux = LINE1,
3759 			.gpio = 0x2000,
3760 		}},
3761 		.mute = {
3762 			.type = SAA7134_INPUT_MUTE,
3763 			.amux = LINE2,
3764 			.gpio = 0x3000,
3765 		},
3766 	},
3767 	[SAA7134_BOARD_AVERMEDIA_SUPER_007] = {
3768 		.name           = "Avermedia Super 007",
3769 		.audio_clock    = 0x00187de7,
3770 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3771 		.radio_type     = UNSET,
3772 		.tuner_addr     = ADDR_UNSET,
3773 		.radio_addr     = ADDR_UNSET,
3774 		.tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF },
3775 		.mpeg           = SAA7134_MPEG_DVB,
3776 		.inputs = {{
3777 			.type = SAA7134_INPUT_TV, /* FIXME: analog tv untested */
3778 			.vmux   = 1,
3779 			.amux   = TV,
3780 		}},
3781 	},
3782 	[SAA7134_BOARD_AVERMEDIA_M135A] = {
3783 		.name           = "Avermedia PCI pure analog (M135A)",
3784 		.audio_clock    = 0x00187de7,
3785 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3786 		.radio_type     = UNSET,
3787 		.tuner_addr     = ADDR_UNSET,
3788 		.radio_addr     = ADDR_UNSET,
3789 		.tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
3790 		.gpiomask       = 0x020200000,
3791 		.inputs         = {{
3792 			.type = SAA7134_INPUT_TV,
3793 			.vmux = 1,
3794 			.amux = TV,
3795 		}, {
3796 			.type = SAA7134_INPUT_COMPOSITE1,
3797 			.vmux = 3,
3798 			.amux = LINE1,
3799 		}, {
3800 			.type = SAA7134_INPUT_SVIDEO,
3801 			.vmux = 8,
3802 			.amux = LINE1,
3803 		} },
3804 		.radio = {
3805 			.type = SAA7134_INPUT_RADIO,
3806 			.amux = TV,
3807 			.gpio = 0x00200000,
3808 		},
3809 		.mute = {
3810 			.type = SAA7134_INPUT_MUTE,
3811 			.amux = TV,
3812 			.gpio = 0x01,
3813 		},
3814 	},
3815 	[SAA7134_BOARD_AVERMEDIA_M733A] = {
3816 		.name		= "Avermedia PCI M733A",
3817 		.audio_clock	= 0x00187de7,
3818 		.tuner_type	= TUNER_PHILIPS_TDA8290,
3819 		.radio_type	= UNSET,
3820 		.tuner_addr	= ADDR_UNSET,
3821 		.radio_addr	= ADDR_UNSET,
3822 		.tda829x_conf	= { .lna_cfg = TDA8290_LNA_OFF },
3823 		.gpiomask	= 0x020200000,
3824 		.inputs		= {{
3825 			.type = SAA7134_INPUT_TV,
3826 			.vmux = 1,
3827 			.amux = TV,
3828 		}, {
3829 			.type = SAA7134_INPUT_COMPOSITE1,
3830 			.vmux = 3,
3831 			.amux = LINE1,
3832 		}, {
3833 			.type = SAA7134_INPUT_SVIDEO,
3834 			.vmux = 8,
3835 			.amux = LINE1,
3836 		} },
3837 		.radio = {
3838 			.type = SAA7134_INPUT_RADIO,
3839 			.amux = TV,
3840 			.gpio = 0x00200000,
3841 		},
3842 		.mute = {
3843 			.type = SAA7134_INPUT_MUTE,
3844 			.amux = TV,
3845 			.gpio = 0x01,
3846 		},
3847 	},
3848 	[SAA7134_BOARD_BEHOLD_401] = {
3849 		/*       Beholder Intl. Ltd. 2008      */
3850 		/*Dmitry Belimov <d.belimov@gmail.com> */
3851 		.name           = "Beholder BeholdTV 401",
3852 		.audio_clock    = 0x00187de7,
3853 		.tuner_type     = TUNER_PHILIPS_FQ1216ME,
3854 		.radio_type     = UNSET,
3855 		.tuner_addr	= ADDR_UNSET,
3856 		.radio_addr	= ADDR_UNSET,
3857 		.gpiomask       = 0x00008000,
3858 		.inputs         = {{
3859 			.type = SAA7134_INPUT_SVIDEO,
3860 			.vmux = 8,
3861 			.amux = LINE1,
3862 		},{
3863 			.type = SAA7134_INPUT_COMPOSITE1,
3864 			.vmux = 1,
3865 			.amux = LINE1,
3866 		},{
3867 			.type = SAA7134_INPUT_TV,
3868 			.vmux = 3,
3869 			.amux = LINE2,
3870 		}},
3871 		.mute = {
3872 			.type = SAA7134_INPUT_MUTE,
3873 			.amux = LINE1,
3874 		},
3875 	},
3876 	[SAA7134_BOARD_BEHOLD_403] = {
3877 		/*       Beholder Intl. Ltd. 2008      */
3878 		/*Dmitry Belimov <d.belimov@gmail.com> */
3879 		.name           = "Beholder BeholdTV 403",
3880 		.audio_clock    = 0x00187de7,
3881 		.tuner_type     = TUNER_PHILIPS_FQ1216ME,
3882 		.radio_type     = UNSET,
3883 		.tuner_addr	= ADDR_UNSET,
3884 		.radio_addr	= ADDR_UNSET,
3885 		.gpiomask       = 0x00008000,
3886 		.inputs         = {{
3887 			.type = SAA7134_INPUT_SVIDEO,
3888 			.vmux = 8,
3889 			.amux = LINE1,
3890 		},{
3891 			.type = SAA7134_INPUT_COMPOSITE1,
3892 			.vmux   = 1,
3893 			.amux   = LINE1,
3894 		},{
3895 			.type = SAA7134_INPUT_TV,
3896 			.vmux = 3,
3897 			.amux = LINE2,
3898 		}},
3899 	},
3900 	[SAA7134_BOARD_BEHOLD_403FM] = {
3901 		/*       Beholder Intl. Ltd. 2008      */
3902 		/*Dmitry Belimov <d.belimov@gmail.com> */
3903 		.name           = "Beholder BeholdTV 403 FM",
3904 		.audio_clock    = 0x00187de7,
3905 		.tuner_type     = TUNER_PHILIPS_FQ1216ME,
3906 		.radio_type     = UNSET,
3907 		.tuner_addr	= ADDR_UNSET,
3908 		.radio_addr	= ADDR_UNSET,
3909 		.gpiomask       = 0x00008000,
3910 		.inputs         = {{
3911 			.type = SAA7134_INPUT_SVIDEO,
3912 			.vmux = 8,
3913 			.amux = LINE1,
3914 		},{
3915 			.type = SAA7134_INPUT_COMPOSITE1,
3916 			.vmux   = 1,
3917 			.amux   = LINE1,
3918 		},{
3919 			.type = SAA7134_INPUT_TV,
3920 			.vmux = 3,
3921 			.amux = LINE2,
3922 		}},
3923 		.radio = {
3924 			.type = SAA7134_INPUT_RADIO,
3925 			.amux = LINE2,
3926 		},
3927 	},
3928 	[SAA7134_BOARD_BEHOLD_405] = {
3929 		/*       Beholder Intl. Ltd. 2008      */
3930 		/*Dmitry Belimov <d.belimov@gmail.com> */
3931 		.name           = "Beholder BeholdTV 405",
3932 		.audio_clock    = 0x00187de7,
3933 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3934 		.radio_type     = UNSET,
3935 		.tuner_addr     = ADDR_UNSET,
3936 		.radio_addr     = ADDR_UNSET,
3937 		.tda9887_conf   = TDA9887_PRESENT,
3938 		.gpiomask       = 0x00008000,
3939 		.inputs         = {{
3940 			.type = SAA7134_INPUT_SVIDEO,
3941 			.vmux = 8,
3942 			.amux = LINE1,
3943 		},{
3944 			.type = SAA7134_INPUT_COMPOSITE1,
3945 			.vmux = 3,
3946 			.amux = LINE1,
3947 		},{
3948 			.type = SAA7134_INPUT_TV,
3949 			.vmux = 3,
3950 			.amux = LINE2,
3951 		}},
3952 	},
3953 	[SAA7134_BOARD_BEHOLD_405FM] = {
3954 		/* Sergey <skiv@orel.ru> */
3955 		/*       Beholder Intl. Ltd. 2008      */
3956 		/*Dmitry Belimov <d.belimov@gmail.com> */
3957 		.name           = "Beholder BeholdTV 405 FM",
3958 		.audio_clock    = 0x00187de7,
3959 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3960 		.radio_type     = UNSET,
3961 		.tuner_addr     = ADDR_UNSET,
3962 		.radio_addr     = ADDR_UNSET,
3963 		.tda9887_conf   = TDA9887_PRESENT,
3964 		.gpiomask       = 0x00008000,
3965 		.inputs         = {{
3966 			.type = SAA7134_INPUT_SVIDEO,
3967 			.vmux = 8,
3968 			.amux = LINE1,
3969 		},{
3970 			.type = SAA7134_INPUT_COMPOSITE1,
3971 			.vmux = 3,
3972 			.amux = LINE1,
3973 		},{
3974 			.type = SAA7134_INPUT_TV,
3975 			.vmux = 3,
3976 			.amux = LINE2,
3977 		}},
3978 		.radio = {
3979 			.type = SAA7134_INPUT_RADIO,
3980 			.amux = LINE2,
3981 		},
3982 	},
3983 	[SAA7134_BOARD_BEHOLD_407] = {
3984 		/*       Beholder Intl. Ltd. 2008      */
3985 		/*Dmitry Belimov <d.belimov@gmail.com> */
3986 		.name		= "Beholder BeholdTV 407",
3987 		.audio_clock	= 0x00187de7,
3988 		.tuner_type	= TUNER_PHILIPS_FM1216ME_MK3,
3989 		.radio_type	= UNSET,
3990 		.tuner_addr	= ADDR_UNSET,
3991 		.radio_addr	= ADDR_UNSET,
3992 		.tda9887_conf	= TDA9887_PRESENT,
3993 		.gpiomask       = 0x00008000,
3994 		.inputs = {{
3995 			.type = SAA7134_INPUT_SVIDEO,
3996 			.vmux = 8,
3997 			.amux = LINE1,
3998 			.gpio = 0xc0c000,
3999 		},{
4000 			.type = SAA7134_INPUT_COMPOSITE1,
4001 			.vmux = 1,
4002 			.amux = LINE1,
4003 			.gpio = 0xc0c000,
4004 		},{
4005 			.type = SAA7134_INPUT_TV,
4006 			.vmux = 3,
4007 			.amux = TV,
4008 			.gpio = 0xc0c000,
4009 		}},
4010 	},
4011 	[SAA7134_BOARD_BEHOLD_407FM] = {
4012 		/*       Beholder Intl. Ltd. 2008      */
4013 		/*Dmitry Belimov <d.belimov@gmail.com> */
4014 		.name		= "Beholder BeholdTV 407 FM",
4015 		.audio_clock	= 0x00187de7,
4016 		.tuner_type	= TUNER_PHILIPS_FM1216ME_MK3,
4017 		.radio_type	= UNSET,
4018 		.tuner_addr	= ADDR_UNSET,
4019 		.radio_addr	= ADDR_UNSET,
4020 		.tda9887_conf	= TDA9887_PRESENT,
4021 		.gpiomask       = 0x00008000,
4022 		.inputs = {{
4023 			.type = SAA7134_INPUT_SVIDEO,
4024 			.vmux = 8,
4025 			.amux = LINE1,
4026 			.gpio = 0xc0c000,
4027 		},{
4028 			.type = SAA7134_INPUT_COMPOSITE1,
4029 			.vmux = 1,
4030 			.amux = LINE1,
4031 			.gpio = 0xc0c000,
4032 		},{
4033 			.type = SAA7134_INPUT_TV,
4034 			.vmux = 3,
4035 			.amux = TV,
4036 			.gpio = 0xc0c000,
4037 		}},
4038 		.radio = {
4039 			.type = SAA7134_INPUT_RADIO,
4040 			.amux = LINE2,
4041 			.gpio = 0xc0c000,
4042 		},
4043 	},
4044 	[SAA7134_BOARD_BEHOLD_409] = {
4045 		/*       Beholder Intl. Ltd. 2008      */
4046 		/*Dmitry Belimov <d.belimov@gmail.com> */
4047 		.name           = "Beholder BeholdTV 409",
4048 		.audio_clock    = 0x00187de7,
4049 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4050 		.radio_type     = UNSET,
4051 		.tuner_addr     = ADDR_UNSET,
4052 		.radio_addr     = ADDR_UNSET,
4053 		.tda9887_conf   = TDA9887_PRESENT,
4054 		.gpiomask       = 0x00008000,
4055 		.inputs         = {{
4056 			.type = SAA7134_INPUT_TV,
4057 			.vmux = 3,
4058 			.amux = TV,
4059 		},{
4060 			.type = SAA7134_INPUT_COMPOSITE1,
4061 			.vmux = 1,
4062 			.amux = LINE1,
4063 		},{
4064 			.type = SAA7134_INPUT_SVIDEO,
4065 			.vmux = 8,
4066 			.amux = LINE1,
4067 		}},
4068 	},
4069 	[SAA7134_BOARD_BEHOLD_505FM] = {
4070 		/*       Beholder Intl. Ltd. 2008      */
4071 		/*Dmitry Belimov <d.belimov@gmail.com> */
4072 		.name           = "Beholder BeholdTV 505 FM",
4073 		.audio_clock    = 0x00200000,
4074 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4075 		.radio_type     = UNSET,
4076 		.tuner_addr     = ADDR_UNSET,
4077 		.radio_addr     = ADDR_UNSET,
4078 		.tda9887_conf   = TDA9887_PRESENT,
4079 		.gpiomask       = 0x00008000,
4080 		.inputs         = {{
4081 			.type = SAA7134_INPUT_TV,
4082 			.vmux = 3,
4083 			.amux = LINE2,
4084 		}, {
4085 			.type = SAA7134_INPUT_COMPOSITE1,
4086 			.vmux = 1,
4087 			.amux = LINE1,
4088 		}, {
4089 			.type = SAA7134_INPUT_SVIDEO,
4090 			.vmux = 8,
4091 			.amux = LINE1,
4092 		} },
4093 		.mute = {
4094 			.type = SAA7134_INPUT_MUTE,
4095 			.amux = LINE1,
4096 		},
4097 		.radio = {
4098 			.type = SAA7134_INPUT_RADIO,
4099 			.amux = LINE2,
4100 		},
4101 	},
4102 	[SAA7134_BOARD_BEHOLD_505RDS_MK5] = {
4103 		/*       Beholder Intl. Ltd. 2008      */
4104 		/*Dmitry Belimov <d.belimov@gmail.com> */
4105 		.name           = "Beholder BeholdTV 505 RDS",
4106 		.audio_clock    = 0x00200000,
4107 		.tuner_type     = TUNER_PHILIPS_FM1216MK5,
4108 		.radio_type     = UNSET,
4109 		.tuner_addr     = ADDR_UNSET,
4110 		.radio_addr     = ADDR_UNSET,
4111 		.rds_addr	= 0x10,
4112 		.tda9887_conf   = TDA9887_PRESENT,
4113 		.gpiomask       = 0x00008000,
4114 		.inputs         = {{
4115 			.type = SAA7134_INPUT_TV,
4116 			.vmux = 3,
4117 			.amux = LINE2,
4118 		},{
4119 			.type = SAA7134_INPUT_COMPOSITE1,
4120 			.vmux = 1,
4121 			.amux = LINE1,
4122 		},{
4123 			.type = SAA7134_INPUT_SVIDEO,
4124 			.vmux = 8,
4125 			.amux = LINE1,
4126 		}},
4127 		.mute = {
4128 			.type = SAA7134_INPUT_MUTE,
4129 			.amux = LINE1,
4130 		},
4131 		.radio = {
4132 			.type = SAA7134_INPUT_RADIO,
4133 			.amux = LINE2,
4134 		},
4135 	},
4136 	[SAA7134_BOARD_BEHOLD_507_9FM] = {
4137 		/*       Beholder Intl. Ltd. 2008      */
4138 		/*Dmitry Belimov <d.belimov@gmail.com> */
4139 		.name           = "Beholder BeholdTV 507 FM / BeholdTV 509 FM",
4140 		.audio_clock    = 0x00187de7,
4141 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4142 		.radio_type     = UNSET,
4143 		.tuner_addr     = ADDR_UNSET,
4144 		.radio_addr     = ADDR_UNSET,
4145 		.tda9887_conf   = TDA9887_PRESENT,
4146 		.gpiomask       = 0x00008000,
4147 		.inputs         = {{
4148 			.type = SAA7134_INPUT_TV,
4149 			.vmux = 3,
4150 			.amux = TV,
4151 		},{
4152 			.type = SAA7134_INPUT_COMPOSITE1,
4153 			.vmux = 1,
4154 			.amux = LINE1,
4155 		},{
4156 			.type = SAA7134_INPUT_SVIDEO,
4157 			.vmux = 8,
4158 			.amux = LINE1,
4159 		}},
4160 			.radio = {
4161 			.type = SAA7134_INPUT_RADIO,
4162 			.amux = LINE2,
4163 		},
4164 	},
4165 	[SAA7134_BOARD_BEHOLD_507RDS_MK5] = {
4166 		/*       Beholder Intl. Ltd. 2008      */
4167 		/*Dmitry Belimov <d.belimov@gmail.com> */
4168 		.name           = "Beholder BeholdTV 507 RDS",
4169 		.audio_clock    = 0x00187de7,
4170 		.tuner_type     = TUNER_PHILIPS_FM1216MK5,
4171 		.radio_type     = UNSET,
4172 		.tuner_addr     = ADDR_UNSET,
4173 		.radio_addr     = ADDR_UNSET,
4174 		.rds_addr	= 0x10,
4175 		.tda9887_conf   = TDA9887_PRESENT,
4176 		.gpiomask       = 0x00008000,
4177 		.inputs         = {{
4178 			.type = SAA7134_INPUT_TV,
4179 			.vmux = 3,
4180 			.amux = TV,
4181 		}, {
4182 			.type = SAA7134_INPUT_COMPOSITE1,
4183 			.vmux = 1,
4184 			.amux = LINE1,
4185 		}, {
4186 			.type = SAA7134_INPUT_SVIDEO,
4187 			.vmux = 8,
4188 			.amux = LINE1,
4189 		} },
4190 			.radio = {
4191 			.type = SAA7134_INPUT_RADIO,
4192 			.amux = LINE2,
4193 		},
4194 	},
4195 	[SAA7134_BOARD_BEHOLD_507RDS_MK3] = {
4196 		/*       Beholder Intl. Ltd. 2008      */
4197 		/*Dmitry Belimov <d.belimov@gmail.com> */
4198 		.name           = "Beholder BeholdTV 507 RDS",
4199 		.audio_clock    = 0x00187de7,
4200 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4201 		.radio_type     = UNSET,
4202 		.tuner_addr     = ADDR_UNSET,
4203 		.radio_addr     = ADDR_UNSET,
4204 		.rds_addr	= 0x10,
4205 		.tda9887_conf   = TDA9887_PRESENT,
4206 		.gpiomask       = 0x00008000,
4207 		.inputs         = {{
4208 			.type = SAA7134_INPUT_TV,
4209 			.vmux = 3,
4210 			.amux = TV,
4211 		}, {
4212 			.type = SAA7134_INPUT_COMPOSITE1,
4213 			.vmux = 1,
4214 			.amux = LINE1,
4215 		}, {
4216 			.type = SAA7134_INPUT_SVIDEO,
4217 			.vmux = 8,
4218 			.amux = LINE1,
4219 		} },
4220 			.radio = {
4221 			.type = SAA7134_INPUT_RADIO,
4222 			.amux = LINE2,
4223 		},
4224 	},
4225 	[SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM] = {
4226 		/*       Beholder Intl. Ltd. 2008      */
4227 		/* Dmitry Belimov <d.belimov@gmail.com> */
4228 		.name           = "Beholder BeholdTV Columbus TV/FM",
4229 		.audio_clock    = 0x00187de7,
4230 		.tuner_type     = TUNER_ALPS_TSBE5_PAL,
4231 		.radio_type     = TUNER_TEA5767,
4232 		.tuner_addr     = 0xc2 >> 1,
4233 		.radio_addr     = 0xc0 >> 1,
4234 		.tda9887_conf   = TDA9887_PRESENT,
4235 		.gpiomask       = 0x000A8004,
4236 		.inputs         = {{
4237 			.type = SAA7134_INPUT_TV,
4238 			.vmux = 3,
4239 			.amux = TV,
4240 			.gpio = 0x000A8004,
4241 		}, {
4242 			.type = SAA7134_INPUT_COMPOSITE1,
4243 			.vmux = 1,
4244 			.amux = LINE1,
4245 			.gpio = 0x000A8000,
4246 		}, {
4247 			.type = SAA7134_INPUT_SVIDEO,
4248 			.vmux = 8,
4249 			.amux = LINE1,
4250 			.gpio = 0x000A8000,
4251 		} },
4252 		.radio = {
4253 			.type = SAA7134_INPUT_RADIO,
4254 			.amux = LINE2,
4255 			.gpio = 0x000A8000,
4256 		},
4257 	},
4258 	[SAA7134_BOARD_BEHOLD_607FM_MK3] = {
4259 		/* Andrey Melnikoff <temnota@kmv.ru> */
4260 		.name           = "Beholder BeholdTV 607 FM",
4261 		.audio_clock    = 0x00187de7,
4262 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4263 		.radio_type     = UNSET,
4264 		.tuner_addr     = ADDR_UNSET,
4265 		.radio_addr     = ADDR_UNSET,
4266 		.tda9887_conf   = TDA9887_PRESENT,
4267 		.inputs         = {{
4268 			.type = SAA7134_INPUT_TV,
4269 			.vmux = 3,
4270 			.amux = TV,
4271 		}, {
4272 			.type = SAA7134_INPUT_COMPOSITE1,
4273 			.vmux = 1,
4274 			.amux = LINE1,
4275 		}, {
4276 			.type = SAA7134_INPUT_SVIDEO,
4277 			.vmux = 8,
4278 			.amux = LINE1,
4279 		} },
4280 		.radio = {
4281 			.type = SAA7134_INPUT_RADIO,
4282 			.amux = LINE2,
4283 		},
4284 	},
4285 	[SAA7134_BOARD_BEHOLD_609FM_MK3] = {
4286 		/* Andrey Melnikoff <temnota@kmv.ru> */
4287 		.name           = "Beholder BeholdTV 609 FM",
4288 		.audio_clock    = 0x00187de7,
4289 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4290 		.radio_type     = UNSET,
4291 		.tuner_addr     = ADDR_UNSET,
4292 		.radio_addr     = ADDR_UNSET,
4293 		.tda9887_conf   = TDA9887_PRESENT,
4294 		.inputs         = {{
4295 			.type = SAA7134_INPUT_TV,
4296 			.vmux = 3,
4297 			.amux = TV,
4298 		}, {
4299 			.type = SAA7134_INPUT_COMPOSITE1,
4300 			.vmux = 1,
4301 			.amux = LINE1,
4302 		}, {
4303 			.type = SAA7134_INPUT_SVIDEO,
4304 			.vmux = 8,
4305 			.amux = LINE1,
4306 		} },
4307 		.radio = {
4308 			.type = SAA7134_INPUT_RADIO,
4309 			.amux = LINE2,
4310 		},
4311 	},
4312 	[SAA7134_BOARD_BEHOLD_607FM_MK5] = {
4313 		/* Andrey Melnikoff <temnota@kmv.ru> */
4314 		.name           = "Beholder BeholdTV 607 FM",
4315 		.audio_clock    = 0x00187de7,
4316 		.tuner_type     = TUNER_PHILIPS_FM1216MK5,
4317 		.radio_type     = UNSET,
4318 		.tuner_addr     = ADDR_UNSET,
4319 		.radio_addr     = ADDR_UNSET,
4320 		.tda9887_conf   = TDA9887_PRESENT,
4321 		.inputs         = {{
4322 			.type = SAA7134_INPUT_TV,
4323 			.vmux = 3,
4324 			.amux = TV,
4325 		}, {
4326 			.type = SAA7134_INPUT_COMPOSITE1,
4327 			.vmux = 1,
4328 			.amux = LINE1,
4329 		}, {
4330 			.type = SAA7134_INPUT_SVIDEO,
4331 			.vmux = 8,
4332 			.amux = LINE1,
4333 		} },
4334 		.radio = {
4335 			.type = SAA7134_INPUT_RADIO,
4336 			.amux = LINE2,
4337 		},
4338 	},
4339 	[SAA7134_BOARD_BEHOLD_609FM_MK5] = {
4340 		/* Andrey Melnikoff <temnota@kmv.ru> */
4341 		.name           = "Beholder BeholdTV 609 FM",
4342 		.audio_clock    = 0x00187de7,
4343 		.tuner_type     = TUNER_PHILIPS_FM1216MK5,
4344 		.radio_type     = UNSET,
4345 		.tuner_addr     = ADDR_UNSET,
4346 		.radio_addr     = ADDR_UNSET,
4347 		.tda9887_conf   = TDA9887_PRESENT,
4348 		.inputs         = {{
4349 			.type = SAA7134_INPUT_TV,
4350 			.vmux = 3,
4351 			.amux = TV,
4352 		}, {
4353 			.type = SAA7134_INPUT_COMPOSITE1,
4354 			.vmux = 1,
4355 			.amux = LINE1,
4356 		}, {
4357 			.type = SAA7134_INPUT_SVIDEO,
4358 			.vmux = 8,
4359 			.amux = LINE1,
4360 		} },
4361 		.radio = {
4362 			.type = SAA7134_INPUT_RADIO,
4363 			.amux = LINE2,
4364 		},
4365 	},
4366 	[SAA7134_BOARD_BEHOLD_607RDS_MK3] = {
4367 		/* Andrey Melnikoff <temnota@kmv.ru> */
4368 		.name           = "Beholder BeholdTV 607 RDS",
4369 		.audio_clock    = 0x00187de7,
4370 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4371 		.radio_type     = UNSET,
4372 		.tuner_addr     = ADDR_UNSET,
4373 		.radio_addr     = ADDR_UNSET,
4374 		.rds_addr	= 0x10,
4375 		.tda9887_conf   = TDA9887_PRESENT,
4376 		.inputs         = {{
4377 			.type = SAA7134_INPUT_TV,
4378 			.vmux = 3,
4379 			.amux = TV,
4380 		}, {
4381 			.type = SAA7134_INPUT_COMPOSITE1,
4382 			.vmux = 1,
4383 			.amux = LINE1,
4384 		}, {
4385 			.type = SAA7134_INPUT_SVIDEO,
4386 			.vmux = 8,
4387 			.amux = LINE1,
4388 		} },
4389 		.radio = {
4390 			.type = SAA7134_INPUT_RADIO,
4391 			.amux = LINE2,
4392 		},
4393 	},
4394 	[SAA7134_BOARD_BEHOLD_609RDS_MK3] = {
4395 		/* Andrey Melnikoff <temnota@kmv.ru> */
4396 		.name           = "Beholder BeholdTV 609 RDS",
4397 		.audio_clock    = 0x00187de7,
4398 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4399 		.radio_type     = UNSET,
4400 		.tuner_addr     = ADDR_UNSET,
4401 		.radio_addr     = ADDR_UNSET,
4402 		.rds_addr	= 0x10,
4403 		.tda9887_conf   = TDA9887_PRESENT,
4404 		.inputs         = {{
4405 			.type = SAA7134_INPUT_TV,
4406 			.vmux = 3,
4407 			.amux = TV,
4408 		}, {
4409 			.type = SAA7134_INPUT_COMPOSITE1,
4410 			.vmux = 1,
4411 			.amux = LINE1,
4412 		}, {
4413 			.type = SAA7134_INPUT_SVIDEO,
4414 			.vmux = 8,
4415 			.amux = LINE1,
4416 		} },
4417 		.radio = {
4418 			.type = SAA7134_INPUT_RADIO,
4419 			.amux = LINE2,
4420 		},
4421 	},
4422 	[SAA7134_BOARD_BEHOLD_607RDS_MK5] = {
4423 		/* Andrey Melnikoff <temnota@kmv.ru> */
4424 		.name           = "Beholder BeholdTV 607 RDS",
4425 		.audio_clock    = 0x00187de7,
4426 		.tuner_type     = TUNER_PHILIPS_FM1216MK5,
4427 		.radio_type     = UNSET,
4428 		.tuner_addr     = ADDR_UNSET,
4429 		.radio_addr     = ADDR_UNSET,
4430 		.rds_addr	= 0x10,
4431 		.tda9887_conf   = TDA9887_PRESENT,
4432 		.inputs         = {{
4433 			.type = SAA7134_INPUT_TV,
4434 			.vmux = 3,
4435 			.amux = TV,
4436 		}, {
4437 			.type = SAA7134_INPUT_COMPOSITE1,
4438 			.vmux = 1,
4439 			.amux = LINE1,
4440 		}, {
4441 			.type = SAA7134_INPUT_SVIDEO,
4442 			.vmux = 8,
4443 			.amux = LINE1,
4444 		} },
4445 		.radio = {
4446 			.type = SAA7134_INPUT_RADIO,
4447 			.amux = LINE2,
4448 		},
4449 	},
4450 	[SAA7134_BOARD_BEHOLD_609RDS_MK5] = {
4451 		/* Andrey Melnikoff <temnota@kmv.ru> */
4452 		.name           = "Beholder BeholdTV 609 RDS",
4453 		.audio_clock    = 0x00187de7,
4454 		.tuner_type     = TUNER_PHILIPS_FM1216MK5,
4455 		.radio_type     = UNSET,
4456 		.tuner_addr     = ADDR_UNSET,
4457 		.radio_addr     = ADDR_UNSET,
4458 		.rds_addr	= 0x10,
4459 		.tda9887_conf   = TDA9887_PRESENT,
4460 		.inputs         = {{
4461 			.type = SAA7134_INPUT_TV,
4462 			.vmux = 3,
4463 			.amux = TV,
4464 		},{
4465 			.type = SAA7134_INPUT_COMPOSITE1,
4466 			.vmux = 1,
4467 			.amux = LINE1,
4468 		},{
4469 			.type = SAA7134_INPUT_SVIDEO,
4470 			.vmux = 8,
4471 			.amux = LINE1,
4472 		}},
4473 		.radio = {
4474 			.type = SAA7134_INPUT_RADIO,
4475 			.amux = LINE2,
4476 		},
4477 	},
4478 	[SAA7134_BOARD_BEHOLD_M6] = {
4479 		/* Igor Kuznetsov <igk@igk.ru> */
4480 		/* Andrey Melnikoff <temnota@kmv.ru> */
4481 		/* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4482 		/* Alexey Osipov <lion-simba@pridelands.ru> */
4483 		.name           = "Beholder BeholdTV M6",
4484 		.audio_clock    = 0x00187de7,
4485 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4486 		.radio_type     = UNSET,
4487 		.tuner_addr     = ADDR_UNSET,
4488 		.radio_addr     = ADDR_UNSET,
4489 		.empress_addr	= 0x20,
4490 		.tda9887_conf   = TDA9887_PRESENT,
4491 		.inputs         = { {
4492 			.type = SAA7134_INPUT_TV,
4493 			.vmux = 3,
4494 			.amux = TV,
4495 		}, {
4496 			.type = SAA7134_INPUT_COMPOSITE1,
4497 			.vmux = 1,
4498 			.amux = LINE1,
4499 		}, {
4500 			.type = SAA7134_INPUT_SVIDEO,
4501 			.vmux = 8,
4502 			.amux = LINE1,
4503 		} },
4504 		.radio = {
4505 			.type = SAA7134_INPUT_RADIO,
4506 			.amux = LINE2,
4507 		},
4508 		.mpeg  = SAA7134_MPEG_EMPRESS,
4509 		.video_out = CCIR656,
4510 		.vid_port_opts  = (SET_T_CODE_POLARITY_NON_INVERTED |
4511 					SET_CLOCK_NOT_DELAYED |
4512 					SET_CLOCK_INVERTED |
4513 					SET_VSYNC_OFF),
4514 	},
4515 	[SAA7134_BOARD_BEHOLD_M63] = {
4516 		/* Igor Kuznetsov <igk@igk.ru> */
4517 		/* Andrey Melnikoff <temnota@kmv.ru> */
4518 		/* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4519 		.name           = "Beholder BeholdTV M63",
4520 		.audio_clock    = 0x00187de7,
4521 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4522 		.radio_type     = UNSET,
4523 		.tuner_addr     = ADDR_UNSET,
4524 		.radio_addr     = ADDR_UNSET,
4525 		.empress_addr	= 0x20,
4526 		.tda9887_conf   = TDA9887_PRESENT,
4527 		.inputs         = { {
4528 			.type = SAA7134_INPUT_TV,
4529 			.vmux = 3,
4530 			.amux = TV,
4531 		}, {
4532 			.type = SAA7134_INPUT_COMPOSITE1,
4533 			.vmux = 1,
4534 			.amux = LINE1,
4535 		}, {
4536 			.type = SAA7134_INPUT_SVIDEO,
4537 			.vmux = 8,
4538 			.amux = LINE1,
4539 		} },
4540 		.radio = {
4541 			.type = SAA7134_INPUT_RADIO,
4542 			.amux = LINE2,
4543 		},
4544 		.mpeg  = SAA7134_MPEG_EMPRESS,
4545 		.video_out = CCIR656,
4546 		.vid_port_opts  = (SET_T_CODE_POLARITY_NON_INVERTED |
4547 					SET_CLOCK_NOT_DELAYED |
4548 					SET_CLOCK_INVERTED |
4549 					SET_VSYNC_OFF),
4550 	},
4551 	[SAA7134_BOARD_BEHOLD_M6_EXTRA] = {
4552 		/* Igor Kuznetsov <igk@igk.ru> */
4553 		/* Andrey Melnikoff <temnota@kmv.ru> */
4554 		/* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4555 		/* Alexey Osipov <lion-simba@pridelands.ru> */
4556 		.name           = "Beholder BeholdTV M6 Extra",
4557 		.audio_clock    = 0x00187de7,
4558 		.tuner_type     = TUNER_PHILIPS_FM1216MK5,
4559 		.radio_type     = UNSET,
4560 		.tuner_addr     = ADDR_UNSET,
4561 		.radio_addr     = ADDR_UNSET,
4562 		.rds_addr	= 0x10,
4563 		.empress_addr	= 0x20,
4564 		.tda9887_conf   = TDA9887_PRESENT,
4565 		.inputs         = { {
4566 			.type = SAA7134_INPUT_TV,
4567 			.vmux = 3,
4568 			.amux = TV,
4569 		}, {
4570 			.type = SAA7134_INPUT_COMPOSITE1,
4571 			.vmux = 1,
4572 			.amux = LINE1,
4573 		}, {
4574 			.type = SAA7134_INPUT_SVIDEO,
4575 			.vmux = 8,
4576 			.amux = LINE1,
4577 		} },
4578 		.radio = {
4579 			.type = SAA7134_INPUT_RADIO,
4580 			.amux = LINE2,
4581 		},
4582 		.mpeg  = SAA7134_MPEG_EMPRESS,
4583 		.video_out = CCIR656,
4584 		.vid_port_opts  = (SET_T_CODE_POLARITY_NON_INVERTED |
4585 					SET_CLOCK_NOT_DELAYED |
4586 					SET_CLOCK_INVERTED |
4587 					SET_VSYNC_OFF),
4588 	},
4589 	[SAA7134_BOARD_TWINHAN_DTV_DVB_3056] = {
4590 		.name           = "Twinhan Hybrid DTV-DVB 3056 PCI",
4591 		.audio_clock    = 0x00187de7,
4592 		.tuner_type     = TUNER_PHILIPS_TDA8290,
4593 		.radio_type     = UNSET,
4594 		.tuner_addr	= ADDR_UNSET,
4595 		.radio_addr	= ADDR_UNSET,
4596 		.tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
4597 		.mpeg           = SAA7134_MPEG_DVB,
4598 		.gpiomask       = 0x0200000,
4599 		.inputs = {{
4600 			.type = SAA7134_INPUT_TV,
4601 			.vmux   = 1,
4602 			.amux   = TV,
4603 		}, {
4604 			.type = SAA7134_INPUT_COMPOSITE1,
4605 			.vmux   = 3,
4606 			.amux   = LINE1,
4607 		}, {
4608 			.type = SAA7134_INPUT_SVIDEO,
4609 			.vmux   = 8,		/* untested */
4610 			.amux   = LINE1,
4611 		} },
4612 		.radio = {
4613 			.type = SAA7134_INPUT_RADIO,
4614 			.amux   = TV,
4615 			.gpio   = 0x0200000,
4616 		},
4617 	},
4618 	[SAA7134_BOARD_GENIUS_TVGO_A11MCE] = {
4619 		/* Adrian Pardini <pardo.bsso@gmail.com> */
4620 		.name		= "Genius TVGO AM11MCE",
4621 		.audio_clock	= 0x00200000,
4622 		.tuner_type	= TUNER_TNF_5335MF,
4623 		.radio_type     = UNSET,
4624 		.tuner_addr	= ADDR_UNSET,
4625 		.radio_addr	= ADDR_UNSET,
4626 		.gpiomask       = 0xf000,
4627 		.inputs         = {{
4628 			.type = SAA7134_INPUT_TV_MONO,
4629 			.vmux = 1,
4630 			.amux = LINE2,
4631 			.gpio = 0x0000,
4632 		}, {
4633 			.type = SAA7134_INPUT_COMPOSITE1,
4634 			.vmux = 3,
4635 			.amux = LINE1,
4636 			.gpio = 0x2000,
4637 		}, {
4638 			.type = SAA7134_INPUT_SVIDEO,
4639 			.vmux = 8,
4640 			.amux = LINE1,
4641 			.gpio = 0x2000,
4642 	} },
4643 		.radio = {
4644 			.type = SAA7134_INPUT_RADIO,
4645 			.amux = LINE2,
4646 			.gpio = 0x1000,
4647 		},
4648 		.mute = {
4649 			.type = SAA7134_INPUT_MUTE,
4650 			.amux = LINE2,
4651 			.gpio = 0x6000,
4652 		},
4653 	},
4654 	[SAA7134_BOARD_PHILIPS_SNAKE] = {
4655 		.name           = "NXP Snake DVB-S reference design",
4656 		.audio_clock    = 0x00200000,
4657 		.tuner_type     = TUNER_ABSENT,
4658 		.radio_type     = UNSET,
4659 		.tuner_addr     = ADDR_UNSET,
4660 		.radio_addr     = ADDR_UNSET,
4661 		.mpeg           = SAA7134_MPEG_DVB,
4662 		.inputs = {{
4663 			.type = SAA7134_INPUT_COMPOSITE1,
4664 			.vmux   = 3,
4665 			.amux   = LINE1,
4666 		}, {
4667 			.type = SAA7134_INPUT_SVIDEO,
4668 			.vmux   = 8,
4669 			.amux   = LINE1,
4670 		} },
4671 	},
4672 	[SAA7134_BOARD_CREATIX_CTX953] = {
4673 		.name         = "Medion/Creatix CTX953 Hybrid",
4674 		.audio_clock  = 0x00187de7,
4675 		.tuner_type   = TUNER_PHILIPS_TDA8290,
4676 		.radio_type   = UNSET,
4677 		.tuner_addr   = ADDR_UNSET,
4678 		.radio_addr   = ADDR_UNSET,
4679 		.tda829x_conf = { .lna_cfg = TDA8290_LNA_OFF },
4680 		.mpeg         = SAA7134_MPEG_DVB,
4681 		.inputs       = {{
4682 			.type = SAA7134_INPUT_TV,
4683 			.vmux = 1,
4684 			.amux = TV,
4685 		}, {
4686 			.type = SAA7134_INPUT_COMPOSITE1,
4687 			.vmux = 0,
4688 			.amux = LINE1,
4689 		}, {
4690 			.type = SAA7134_INPUT_SVIDEO,
4691 			.vmux = 8,
4692 			.amux = LINE1,
4693 		} },
4694 	},
4695 	[SAA7134_BOARD_MSI_TVANYWHERE_AD11] = {
4696 		.name           = "MSI TV@nywhere A/D v1.1",
4697 		.audio_clock    = 0x00187de7,
4698 		.tuner_type     = TUNER_PHILIPS_TDA8290,
4699 		.radio_type     = UNSET,
4700 		.tuner_addr	= ADDR_UNSET,
4701 		.radio_addr	= ADDR_UNSET,
4702 		.tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
4703 		.mpeg           = SAA7134_MPEG_DVB,
4704 		.gpiomask       = 0x0200000,
4705 		.inputs = { {
4706 			.type = SAA7134_INPUT_TV,
4707 			.vmux   = 1,
4708 			.amux   = TV,
4709 		}, {
4710 			.type = SAA7134_INPUT_COMPOSITE1,
4711 			.vmux   = 3,
4712 			.amux   = LINE1,
4713 		}, {
4714 			.type = SAA7134_INPUT_SVIDEO,
4715 			.vmux   = 8,
4716 			.amux   = LINE1,
4717 		} },
4718 		.radio = {
4719 			.type = SAA7134_INPUT_RADIO,
4720 			.amux   = TV,
4721 			.gpio   = 0x0200000,
4722 		},
4723 	},
4724 	[SAA7134_BOARD_AVERMEDIA_CARDBUS_506] = {
4725 		.name           = "AVerMedia Cardbus TV/Radio (E506R)",
4726 		.audio_clock    = 0x187de7,
4727 		.tuner_type     = TUNER_XC2028,
4728 		.radio_type     = UNSET,
4729 		.tuner_addr	= ADDR_UNSET,
4730 		.radio_addr	= ADDR_UNSET,
4731 		 .mpeg           = SAA7134_MPEG_DVB,
4732 		 .inputs         = {{
4733 			 .type = SAA7134_INPUT_TV,
4734 			 .vmux = 1,
4735 			 .amux = TV,
4736 		 }, {
4737 			 .type = SAA7134_INPUT_COMPOSITE1,
4738 			 .vmux = 3,
4739 			 .amux = LINE1,
4740 		 }, {
4741 			 .type = SAA7134_INPUT_SVIDEO,
4742 			 .vmux = 8,
4743 			 .amux = LINE2,
4744 		 } },
4745 		 .radio = {
4746 			 .type = SAA7134_INPUT_RADIO,
4747 			 .amux = TV,
4748 		 },
4749 	},
4750 	[SAA7134_BOARD_AVERMEDIA_A16D] = {
4751 		.name           = "AVerMedia Hybrid TV/Radio (A16D)",
4752 		.audio_clock    = 0x187de7,
4753 		.tuner_type     = TUNER_XC2028,
4754 		.radio_type     = UNSET,
4755 		.tuner_addr	= ADDR_UNSET,
4756 		.radio_addr	= ADDR_UNSET,
4757 		.mpeg           = SAA7134_MPEG_DVB,
4758 		.inputs         = {{
4759 			.type = SAA7134_INPUT_TV,
4760 			.vmux = 1,
4761 			.amux = TV,
4762 		}, {
4763 			.type = SAA7134_INPUT_SVIDEO,
4764 			.vmux = 8,
4765 			.amux = LINE1,
4766 		}, {
4767 			.type = SAA7134_INPUT_COMPOSITE,
4768 			.vmux = 0,
4769 			.amux = LINE1,
4770 		} },
4771 		.radio = {
4772 			.type = SAA7134_INPUT_RADIO,
4773 			.amux = TV,
4774 		},
4775 	},
4776 	[SAA7134_BOARD_AVERMEDIA_M115] = {
4777 		.name           = "Avermedia M115",
4778 		.audio_clock    = 0x187de7,
4779 		.tuner_type     = TUNER_XC2028,
4780 		.radio_type     = UNSET,
4781 		.tuner_addr	= ADDR_UNSET,
4782 		.radio_addr	= ADDR_UNSET,
4783 		.inputs         = {{
4784 			.type = SAA7134_INPUT_TV,
4785 			.vmux = 1,
4786 			.amux = TV,
4787 		}, {
4788 			.type = SAA7134_INPUT_COMPOSITE1,
4789 			.vmux = 3,
4790 			.amux = LINE1,
4791 		}, {
4792 			.type = SAA7134_INPUT_SVIDEO,
4793 			.vmux = 8,
4794 			.amux = LINE2,
4795 		} },
4796 	},
4797 	[SAA7134_BOARD_VIDEOMATE_T750] = {
4798 		/* John Newbigin <jn@it.swin.edu.au> */
4799 		.name           = "Compro VideoMate T750",
4800 		.audio_clock    = 0x00187de7,
4801 		.tuner_type     = TUNER_XC2028,
4802 		.radio_type     = UNSET,
4803 		.tuner_addr	= 0x61,
4804 		.radio_addr	= ADDR_UNSET,
4805 		.mpeg           = SAA7134_MPEG_DVB,
4806 		.inputs = {{
4807 			.type = SAA7134_INPUT_TV,
4808 			.vmux   = 3,
4809 			.amux   = TV,
4810 		}, {
4811 			.type = SAA7134_INPUT_COMPOSITE1,
4812 			.vmux   = 1,
4813 			.amux   = LINE2,
4814 		}, {
4815 			.type = SAA7134_INPUT_SVIDEO,
4816 			.vmux   = 8,
4817 			.amux   = LINE2,
4818 		} },
4819 		.radio = {
4820 			.type = SAA7134_INPUT_RADIO,
4821 			.amux = TV,
4822 		}
4823 	},
4824 	[SAA7134_BOARD_AVERMEDIA_A700_PRO] = {
4825 		/* Matthias Schwarzott <zzam@gentoo.org> */
4826 		.name           = "Avermedia DVB-S Pro A700",
4827 		.audio_clock    = 0x00187de7,
4828 		.tuner_type     = TUNER_ABSENT,
4829 		.radio_type     = UNSET,
4830 		.tuner_addr     = ADDR_UNSET,
4831 		.radio_addr     = ADDR_UNSET,
4832 		.mpeg           = SAA7134_MPEG_DVB,
4833 		.inputs         = { {
4834 			.type = SAA7134_INPUT_COMPOSITE,
4835 			.vmux = 1,
4836 			.amux = LINE1,
4837 		}, {
4838 			.type = SAA7134_INPUT_SVIDEO,
4839 			.vmux = 6,
4840 			.amux = LINE1,
4841 		} },
4842 	},
4843 	[SAA7134_BOARD_AVERMEDIA_A700_HYBRID] = {
4844 		/* Matthias Schwarzott <zzam@gentoo.org> */
4845 		.name           = "Avermedia DVB-S Hybrid+FM A700",
4846 		.audio_clock    = 0x00187de7,
4847 		.tuner_type     = TUNER_XC2028,
4848 		.radio_type     = UNSET,
4849 		.tuner_addr     = ADDR_UNSET,
4850 		.radio_addr     = ADDR_UNSET,
4851 		.mpeg           = SAA7134_MPEG_DVB,
4852 		.inputs         = { {
4853 			.type = SAA7134_INPUT_TV,
4854 			.vmux   = 4,
4855 			.amux   = TV,
4856 		}, {
4857 			.type = SAA7134_INPUT_COMPOSITE,
4858 			.vmux = 1,
4859 			.amux = LINE1,
4860 		}, {
4861 			.type = SAA7134_INPUT_SVIDEO,
4862 			.vmux = 6,
4863 			.amux = LINE1,
4864 		} },
4865 		.radio = {
4866 			.type = SAA7134_INPUT_RADIO,
4867 			.amux = TV,
4868 		},
4869 	},
4870 	[SAA7134_BOARD_BEHOLD_H6] = {
4871 		/* Igor Kuznetsov <igk@igk.ru> */
4872 		.name           = "Beholder BeholdTV H6",
4873 		.audio_clock    = 0x00187de7,
4874 		.tuner_type     = TUNER_PHILIPS_FMD1216MEX_MK3,
4875 		.radio_type     = UNSET,
4876 		.tuner_addr     = ADDR_UNSET,
4877 		.radio_addr     = ADDR_UNSET,
4878 		.tda9887_conf   = TDA9887_PRESENT,
4879 		.mpeg           = SAA7134_MPEG_DVB,
4880 		.inputs         = {{
4881 			.type = SAA7134_INPUT_TV,
4882 			.vmux = 3,
4883 			.amux = TV,
4884 		}, {
4885 			.type = SAA7134_INPUT_COMPOSITE1,
4886 			.vmux = 1,
4887 			.amux = LINE1,
4888 		}, {
4889 			.type = SAA7134_INPUT_SVIDEO,
4890 			.vmux = 8,
4891 			.amux = LINE1,
4892 		} },
4893 		.radio = {
4894 			.type = SAA7134_INPUT_RADIO,
4895 			.amux = LINE2,
4896 		},
4897 	},
4898 	[SAA7134_BOARD_ASUSTeK_TIGER_3IN1] = {
4899 		.name           = "Asus Tiger 3in1",
4900 		.audio_clock    = 0x00187de7,
4901 		.tuner_type     = TUNER_PHILIPS_TDA8290,
4902 		.radio_type     = UNSET,
4903 		.tuner_addr     = ADDR_UNSET,
4904 		.radio_addr     = ADDR_UNSET,
4905 		.tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
4906 		.gpiomask       = 1 << 21,
4907 		.mpeg           = SAA7134_MPEG_DVB,
4908 		.inputs         = {{
4909 			.type = SAA7134_INPUT_TV,
4910 			.vmux = 1,
4911 			.amux = TV,
4912 		}, {
4913 			.type = SAA7134_INPUT_COMPOSITE,
4914 			.vmux = 0,
4915 			.amux = LINE2,
4916 		}, {
4917 			.type = SAA7134_INPUT_SVIDEO,
4918 			.vmux = 8,
4919 			.amux = LINE2,
4920 		} },
4921 		.radio = {
4922 			.type = SAA7134_INPUT_RADIO,
4923 			.amux = TV,
4924 			.gpio = 0x0200000,
4925 		},
4926 	},
4927 	[SAA7134_BOARD_ASUSTeK_PS3_100] = {
4928 		.name           = "Asus My Cinema PS3-100",
4929 		.audio_clock    = 0x00187de7,
4930 		.tuner_type     = TUNER_PHILIPS_TDA8290,
4931 		.radio_type     = UNSET,
4932 		.tuner_addr     = ADDR_UNSET,
4933 		.radio_addr     = ADDR_UNSET,
4934 		.tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
4935 		.gpiomask       = 1 << 21,
4936 		.mpeg           = SAA7134_MPEG_DVB,
4937 		.inputs         = {{
4938 			.type = SAA7134_INPUT_TV,
4939 			.vmux = 1,
4940 			.amux = TV,
4941 		}, {
4942 			.type = SAA7134_INPUT_COMPOSITE,
4943 			.vmux = 0,
4944 			.amux = LINE2,
4945 		}, {
4946 			.type = SAA7134_INPUT_SVIDEO,
4947 			.vmux = 8,
4948 			.amux = LINE2,
4949 		} },
4950 		.radio = {
4951 			.type = SAA7134_INPUT_RADIO,
4952 			.amux = TV,
4953 			.gpio = 0x0200000,
4954 		},
4955 	},
4956 	[SAA7134_BOARD_REAL_ANGEL_220] = {
4957 		.name           = "Zogis Real Angel 220",
4958 		.audio_clock    = 0x00187de7,
4959 		.tuner_type     = TUNER_TNF_5335MF,
4960 		.radio_type     = UNSET,
4961 		.tuner_addr     = ADDR_UNSET,
4962 		.radio_addr     = ADDR_UNSET,
4963 		.gpiomask       = 0x801a8087,
4964 		.inputs = { {
4965 			.type = SAA7134_INPUT_TV,
4966 			.vmux   = 3,
4967 			.amux   = LINE2,
4968 			.gpio   = 0x624000,
4969 		}, {
4970 			.type = SAA7134_INPUT_COMPOSITE1,
4971 			.vmux   = 1,
4972 			.amux   = LINE1,
4973 			.gpio   = 0x624000,
4974 		}, {
4975 			.type = SAA7134_INPUT_SVIDEO,
4976 			.vmux   = 1,
4977 			.amux   = LINE1,
4978 			.gpio   = 0x624000,
4979 		} },
4980 		.radio = {
4981 			.type = SAA7134_INPUT_RADIO,
4982 			.amux   = LINE2,
4983 			.gpio   = 0x624001,
4984 		},
4985 		.mute = {
4986 			.type = SAA7134_INPUT_MUTE,
4987 			.amux = TV,
4988 		},
4989 	},
4990 	[SAA7134_BOARD_ADS_INSTANT_HDTV_PCI] = {
4991 		.name           = "ADS Tech Instant HDTV",
4992 		.audio_clock    = 0x00187de7,
4993 		.tuner_type     = TUNER_PHILIPS_TUV1236D,
4994 		.radio_type     = UNSET,
4995 		.tuner_addr     = ADDR_UNSET,
4996 		.radio_addr     = ADDR_UNSET,
4997 		.tda9887_conf   = TDA9887_PRESENT,
4998 		.mpeg           = SAA7134_MPEG_DVB,
4999 		.inputs         = { {
5000 			.type = SAA7134_INPUT_TV,
5001 			.vmux = 1,
5002 			.amux = TV,
5003 		}, {
5004 			.type = SAA7134_INPUT_COMPOSITE,
5005 			.vmux = 4,
5006 			.amux = LINE1,
5007 		}, {
5008 			.type = SAA7134_INPUT_SVIDEO,
5009 			.vmux = 8,
5010 			.amux = LINE1,
5011 		} },
5012 	},
5013 	[SAA7134_BOARD_ASUSTeK_TIGER] = {
5014 		.name           = "Asus Tiger Rev:1.00",
5015 		.audio_clock    = 0x00187de7,
5016 		.tuner_type     = TUNER_PHILIPS_TDA8290,
5017 		.radio_type     = UNSET,
5018 		.tuner_addr	= ADDR_UNSET,
5019 		.radio_addr	= ADDR_UNSET,
5020 		.tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF },
5021 		.mpeg           = SAA7134_MPEG_DVB,
5022 		.gpiomask       = 0x0200000,
5023 		.inputs = { {
5024 			.type = SAA7134_INPUT_TV,
5025 			.vmux   = 1,
5026 			.amux   = TV,
5027 		}, {
5028 			.type = SAA7134_INPUT_COMPOSITE1,
5029 			.vmux   = 3,
5030 			.amux   = LINE2,
5031 		}, {
5032 			.type = SAA7134_INPUT_COMPOSITE2,
5033 			.vmux   = 0,
5034 			.amux   = LINE2,
5035 		}, {
5036 			.type = SAA7134_INPUT_SVIDEO,
5037 			.vmux   = 8,
5038 			.amux   = LINE2,
5039 		} },
5040 		.radio = {
5041 			.type = SAA7134_INPUT_RADIO,
5042 			.amux   = TV,
5043 			.gpio   = 0x0200000,
5044 		},
5045 	},
5046 	[SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG] = {
5047 		.name           = "Kworld Plus TV Analog Lite PCI",
5048 		.audio_clock    = 0x00187de7,
5049 		.tuner_type     = TUNER_YMEC_TVF_5533MF,
5050 		.radio_type     = TUNER_TEA5767,
5051 		.tuner_addr     = ADDR_UNSET,
5052 		.radio_addr     = 0x60,
5053 		.gpiomask       = 0x80000700,
5054 		.inputs = { {
5055 			.type = SAA7134_INPUT_TV,
5056 			.vmux   = 1,
5057 			.amux   = LINE2,
5058 			.gpio   = 0x100,
5059 		}, {
5060 			.type = SAA7134_INPUT_COMPOSITE1,
5061 			.vmux   = 3,
5062 			.amux   = LINE1,
5063 			.gpio   = 0x200,
5064 		}, {
5065 			.type = SAA7134_INPUT_SVIDEO,
5066 			.vmux   = 8,
5067 			.amux   = LINE1,
5068 			.gpio   = 0x200,
5069 		} },
5070 		.radio = {
5071 			.type = SAA7134_INPUT_RADIO,
5072 			.vmux   = 1,
5073 			.amux   = LINE1,
5074 			.gpio   = 0x100,
5075 		},
5076 		.mute = {
5077 			.type = SAA7134_INPUT_MUTE,
5078 			.vmux = 8,
5079 			.amux = 2,
5080 		},
5081 	},
5082 	[SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG] = {
5083 		.name           = "Kworld PCI SBTVD/ISDB-T Full-Seg Hybrid",
5084 		.audio_clock    = 0x00187de7,
5085 		.tuner_type     = TUNER_PHILIPS_TDA8290,
5086 		.tuner_addr     = ADDR_UNSET,
5087 		.radio_type     = UNSET,
5088 		.radio_addr	= ADDR_UNSET,
5089 		.gpiomask       = 0x8e054000,
5090 		.mpeg           = SAA7134_MPEG_DVB,
5091 		.ts_type	= SAA7134_MPEG_TS_PARALLEL,
5092 		.inputs = { {
5093 			.type = SAA7134_INPUT_TV,
5094 			.vmux   = 1,
5095 			.amux   = TV,
5096 #if 0	/* FIXME */
5097 		}, {
5098 			.type = SAA7134_INPUT_COMPOSITE1,
5099 			.vmux   = 3,
5100 			.amux   = LINE1,
5101 			.gpio   = 0x200,
5102 		}, {
5103 			.type = SAA7134_INPUT_SVIDEO,
5104 			.vmux   = 8,
5105 			.amux   = LINE1,
5106 			.gpio   = 0x200,
5107 #endif
5108 		} },
5109 #if 0
5110 		.radio = {
5111 			.type = SAA7134_INPUT_RADIO,
5112 			.vmux   = 1,
5113 			.amux   = LINE1,
5114 			.gpio   = 0x100,
5115 		},
5116 #endif
5117 		.mute = {
5118 			.type = SAA7134_INPUT_MUTE,
5119 			.vmux = 0,
5120 			.amux = TV,
5121 		},
5122 	},
5123 	[SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS] = {
5124 		.name           = "Avermedia AVerTV GO 007 FM Plus",
5125 		.audio_clock    = 0x00187de7,
5126 		.tuner_type     = TUNER_PHILIPS_TDA8290,
5127 		.radio_type     = UNSET,
5128 		.tuner_addr	= ADDR_UNSET,
5129 		.radio_addr	= ADDR_UNSET,
5130 		.gpiomask       = 0x00300003,
5131 		/* .gpiomask       = 0x8c240003, */
5132 		.inputs         = { {
5133 			.type = SAA7134_INPUT_TV,
5134 			.vmux = 1,
5135 			.amux = TV,
5136 			.gpio = 0x01,
5137 		}, {
5138 			.type = SAA7134_INPUT_SVIDEO,
5139 			.vmux = 6,
5140 			.amux = LINE1,
5141 			.gpio = 0x02,
5142 		} },
5143 		.radio = {
5144 			.type = SAA7134_INPUT_RADIO,
5145 			.amux = TV,
5146 			.gpio = 0x00300001,
5147 		},
5148 		.mute = {
5149 			.type = SAA7134_INPUT_MUTE,
5150 			.amux = TV,
5151 			.gpio = 0x01,
5152 		},
5153 	},
5154 	[SAA7134_BOARD_AVERMEDIA_STUDIO_507UA] = {
5155 		/* Andy Shevchenko <andy@smile.org.ua> */
5156 		.name           = "Avermedia AVerTV Studio 507UA",
5157 		.audio_clock    = 0x00187de7,
5158 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3, /* Should be MK5 */
5159 		.radio_type     = UNSET,
5160 		.tuner_addr     = ADDR_UNSET,
5161 		.radio_addr     = ADDR_UNSET,
5162 		.tda9887_conf   = TDA9887_PRESENT,
5163 		.gpiomask       = 0x03,
5164 		.inputs         = { {
5165 			.type = SAA7134_INPUT_TV,
5166 			.vmux = 1,
5167 			.amux = TV,
5168 			.gpio = 0x00,
5169 		}, {
5170 			.type = SAA7134_INPUT_COMPOSITE1,
5171 			.vmux = 3,
5172 			.amux = LINE1,
5173 			.gpio = 0x00,
5174 		}, {
5175 			.type = SAA7134_INPUT_SVIDEO,
5176 			.vmux = 8,
5177 			.amux = LINE1,
5178 			.gpio = 0x00,
5179 		} },
5180 		.radio = {
5181 			.type = SAA7134_INPUT_RADIO,
5182 			.amux = LINE2,
5183 			.gpio = 0x01,
5184 		},
5185 		.mute  = {
5186 			.type = SAA7134_INPUT_MUTE,
5187 			.amux = LINE1,
5188 			.gpio = 0x00,
5189 		},
5190 	},
5191 	[SAA7134_BOARD_VIDEOMATE_S350] = {
5192 		/* Jan D. Louw <jd.louw@mweb.co.za */
5193 		.name		= "Compro VideoMate S350/S300",
5194 		.audio_clock	= 0x00187de7,
5195 		.tuner_type	= TUNER_ABSENT,
5196 		.radio_type	= UNSET,
5197 		.tuner_addr	= ADDR_UNSET,
5198 		.radio_addr	= ADDR_UNSET,
5199 		.mpeg		= SAA7134_MPEG_DVB,
5200 		.inputs = { {
5201 			.type = SAA7134_INPUT_COMPOSITE1,
5202 			.vmux	= 0,
5203 			.amux	= LINE1,
5204 		}, {
5205 			.type = SAA7134_INPUT_SVIDEO,
5206 			.vmux	= 8, /* Not tested */
5207 			.amux	= LINE1
5208 		} },
5209 	},
5210 	[SAA7134_BOARD_BEHOLD_X7] = {
5211 		/* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
5212 		.name           = "Beholder BeholdTV X7",
5213 		.audio_clock    = 0x00187de7,
5214 		.tuner_type     = TUNER_XC5000,
5215 		.radio_type     = UNSET,
5216 		.tuner_addr     = ADDR_UNSET,
5217 		.radio_addr     = ADDR_UNSET,
5218 		.mpeg           = SAA7134_MPEG_DVB,
5219 		.inputs         = { {
5220 			.type = SAA7134_INPUT_TV,
5221 			.vmux = 2,
5222 			.amux = TV,
5223 		}, {
5224 			.type = SAA7134_INPUT_COMPOSITE1,
5225 			.vmux = 0,
5226 			.amux = LINE1,
5227 		}, {
5228 			.type = SAA7134_INPUT_SVIDEO,
5229 			.vmux = 9,
5230 			.amux = LINE1,
5231 		} },
5232 		.radio = {
5233 			.type = SAA7134_INPUT_RADIO,
5234 			.amux = TV,
5235 		},
5236 	},
5237 	[SAA7134_BOARD_ZOLID_HYBRID_PCI] = {
5238 		.name           = "Zolid Hybrid TV Tuner PCI",
5239 		.audio_clock    = 0x00187de7,
5240 		.tuner_type     = TUNER_PHILIPS_TDA8290,
5241 		.radio_type     = UNSET,
5242 		.tuner_addr     = ADDR_UNSET,
5243 		.radio_addr     = ADDR_UNSET,
5244 		.tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF },
5245 		.mpeg           = SAA7134_MPEG_DVB,
5246 		.ts_type	= SAA7134_MPEG_TS_PARALLEL,
5247 		.inputs         = {{
5248 			.type = SAA7134_INPUT_TV,
5249 			.vmux = 1,
5250 			.amux = TV,
5251 		} },
5252 		.radio = {	/* untested */
5253 			.type = SAA7134_INPUT_RADIO,
5254 			.amux = TV,
5255 		},
5256 	},
5257 	[SAA7134_BOARD_ASUS_EUROPA_HYBRID] = {
5258 		.name           = "Asus Europa Hybrid OEM",
5259 		.audio_clock    = 0x00187de7,
5260 		.tuner_type     = TUNER_PHILIPS_TD1316,
5261 		.radio_type     = UNSET,
5262 		.tuner_addr	= 0x61,
5263 		.radio_addr	= ADDR_UNSET,
5264 		.tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
5265 		.mpeg           = SAA7134_MPEG_DVB,
5266 		.inputs = { {
5267 			.type = SAA7134_INPUT_TV,
5268 			.vmux   = 3,
5269 			.amux   = TV,
5270 		}, {
5271 			.type = SAA7134_INPUT_COMPOSITE1,
5272 			.vmux   = 4,
5273 			.amux   = LINE2,
5274 		}, {
5275 			.type = SAA7134_INPUT_SVIDEO,
5276 			.vmux   = 8,
5277 			.amux   = LINE2,
5278 		} },
5279 	},
5280 	[SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S] = {
5281 		.name           = "Leadtek Winfast DTV1000S",
5282 		.audio_clock    = 0x00187de7,
5283 		.tuner_type     = TUNER_PHILIPS_TDA8290,
5284 		.radio_type     = UNSET,
5285 		.tuner_addr     = ADDR_UNSET,
5286 		.radio_addr     = ADDR_UNSET,
5287 		.mpeg           = SAA7134_MPEG_DVB,
5288 		.inputs         = { {
5289 			.type = SAA7134_INPUT_COMPOSITE1,
5290 			.vmux = 3,
5291 		}, {
5292 			.type = SAA7134_INPUT_SVIDEO,
5293 			.vmux = 8,
5294 		} },
5295 	},
5296 	[SAA7134_BOARD_BEHOLD_505RDS_MK3] = {
5297 		/*       Beholder Intl. Ltd. 2008      */
5298 		/*Dmitry Belimov <d.belimov@gmail.com> */
5299 		.name           = "Beholder BeholdTV 505 RDS",
5300 		.audio_clock    = 0x00200000,
5301 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
5302 		.radio_type     = UNSET,
5303 		.tuner_addr     = ADDR_UNSET,
5304 		.radio_addr     = ADDR_UNSET,
5305 		.rds_addr	= 0x10,
5306 		.tda9887_conf   = TDA9887_PRESENT,
5307 		.gpiomask       = 0x00008000,
5308 		.inputs         = {{
5309 			.type = SAA7134_INPUT_TV,
5310 			.vmux = 3,
5311 			.amux = LINE2,
5312 		}, {
5313 			.type = SAA7134_INPUT_COMPOSITE1,
5314 			.vmux = 1,
5315 			.amux = LINE1,
5316 		}, {
5317 			.type = SAA7134_INPUT_SVIDEO,
5318 			.vmux = 8,
5319 			.amux = LINE1,
5320 		} },
5321 		.mute = {
5322 			.type = SAA7134_INPUT_MUTE,
5323 			.amux = LINE1,
5324 		},
5325 		.radio = {
5326 			.type = SAA7134_INPUT_RADIO,
5327 			.amux = LINE2,
5328 		},
5329 	},
5330 	[SAA7134_BOARD_HAWELL_HW_404M7] = {
5331 		/* Hawell HW-404M7 & Hawell HW-808M7  */
5332 		/* Bogoslovskiy Viktor <bogovic@bk.ru> */
5333 		.name         = "Hawell HW-404M7",
5334 		.audio_clock   = 0x00200000,
5335 		.tuner_type    = UNSET,
5336 		.radio_type    = UNSET,
5337 		.tuner_addr   = ADDR_UNSET,
5338 		.radio_addr   = ADDR_UNSET,
5339 		.gpiomask      = 0x389c00,
5340 		.inputs       = {{
5341 			.type = SAA7134_INPUT_COMPOSITE1,
5342 			.vmux = 3,
5343 			.amux = LINE1,
5344 			.gpio = 0x01fc00,
5345 		} },
5346 	},
5347 	[SAA7134_BOARD_BEHOLD_H7] = {
5348 		/* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
5349 		.name           = "Beholder BeholdTV H7",
5350 		.audio_clock    = 0x00187de7,
5351 		.tuner_type     = TUNER_XC5000,
5352 		.radio_type     = UNSET,
5353 		.tuner_addr     = ADDR_UNSET,
5354 		.radio_addr     = ADDR_UNSET,
5355 		.mpeg           = SAA7134_MPEG_DVB,
5356 		.ts_type	= SAA7134_MPEG_TS_PARALLEL,
5357 		.inputs         = { {
5358 			.type = SAA7134_INPUT_TV,
5359 			.vmux = 2,
5360 			.amux = TV,
5361 		}, {
5362 			.type = SAA7134_INPUT_COMPOSITE1,
5363 			.vmux = 0,
5364 			.amux = LINE1,
5365 		}, {
5366 			.type = SAA7134_INPUT_SVIDEO,
5367 			.vmux = 9,
5368 			.amux = LINE1,
5369 		} },
5370 		.radio = {
5371 			.type = SAA7134_INPUT_RADIO,
5372 			.amux = TV,
5373 		},
5374 	},
5375 	[SAA7134_BOARD_BEHOLD_A7] = {
5376 		/* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
5377 		.name           = "Beholder BeholdTV A7",
5378 		.audio_clock    = 0x00187de7,
5379 		.tuner_type     = TUNER_XC5000,
5380 		.radio_type     = UNSET,
5381 		.tuner_addr     = ADDR_UNSET,
5382 		.radio_addr     = ADDR_UNSET,
5383 		.inputs         = { {
5384 			.type = SAA7134_INPUT_TV,
5385 			.vmux = 2,
5386 			.amux = TV,
5387 		}, {
5388 			.type = SAA7134_INPUT_COMPOSITE1,
5389 			.vmux = 0,
5390 			.amux = LINE1,
5391 		}, {
5392 			.type = SAA7134_INPUT_SVIDEO,
5393 			.vmux = 9,
5394 			.amux = LINE1,
5395 		} },
5396 		.radio = {
5397 			.type = SAA7134_INPUT_RADIO,
5398 			.amux = TV,
5399 		},
5400 	},
5401 	[SAA7134_BOARD_TECHNOTREND_BUDGET_T3000] = {
5402 		.name           = "TechoTrend TT-budget T-3000",
5403 		.tuner_type     = TUNER_PHILIPS_TD1316,
5404 		.audio_clock    = 0x00187de7,
5405 		.radio_type     = UNSET,
5406 		.tuner_addr     = 0x63,
5407 		.radio_addr     = ADDR_UNSET,
5408 		.tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
5409 		.mpeg           = SAA7134_MPEG_DVB,
5410 		.inputs = {{
5411 			.type = SAA7134_INPUT_TV,
5412 			.vmux   = 3,
5413 			.amux   = TV,
5414 		}, {
5415 			.type = SAA7134_INPUT_COMPOSITE1,
5416 			.vmux   = 0,
5417 			.amux   = LINE2,
5418 		}, {
5419 			.type = SAA7134_INPUT_SVIDEO,
5420 			.vmux   = 8,
5421 			.amux   = LINE2,
5422 		} },
5423 	},
5424 	[SAA7134_BOARD_VIDEOMATE_M1F] = {
5425 		/* Pavel Osnova <pvosnova@gmail.com> */
5426 		.name           = "Compro VideoMate Vista M1F",
5427 		.audio_clock    = 0x00187de7,
5428 		.tuner_type     = TUNER_LG_PAL_NEW_TAPC,
5429 		.radio_type     = TUNER_TEA5767,
5430 		.tuner_addr     = ADDR_UNSET,
5431 		.radio_addr     = 0x60,
5432 		.inputs         = { {
5433 			.type = SAA7134_INPUT_TV,
5434 			.vmux = 1,
5435 			.amux = TV,
5436 		}, {
5437 			.type = SAA7134_INPUT_COMPOSITE1,
5438 			.vmux = 3,
5439 			.amux = LINE2,
5440 		}, {
5441 			.type = SAA7134_INPUT_SVIDEO,
5442 			.vmux = 8,
5443 			.amux = LINE2,
5444 		} },
5445 		.radio = {
5446 			.type = SAA7134_INPUT_RADIO,
5447 			.amux = LINE1,
5448 		},
5449 		.mute = {
5450 			.type = SAA7134_INPUT_MUTE,
5451 			.amux = TV,
5452 		},
5453 	},
5454 	[SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2] = {
5455 		/* Timothy Lee <timothy.lee@siriushk.com> */
5456 		.name		= "MagicPro ProHDTV Pro2 DMB-TH/Hybrid",
5457 		.audio_clock	= 0x00187de7,
5458 		.tuner_type	= TUNER_PHILIPS_TDA8290,
5459 		.radio_type	= UNSET,
5460 		.tda829x_conf	= { .lna_cfg = TDA8290_LNA_ON_BRIDGE },
5461 		.tuner_addr	= ADDR_UNSET,
5462 		.radio_addr	= ADDR_UNSET,
5463 		.gpiomask	= 0x02050000,
5464 		.mpeg		= SAA7134_MPEG_DVB,
5465 		.ts_type	= SAA7134_MPEG_TS_PARALLEL,
5466 		.inputs		= { {
5467 			.type = SAA7134_INPUT_TV,
5468 			.vmux   = 1,
5469 			.amux   = TV,
5470 			.gpio   = 0x00050000,
5471 		}, {
5472 			.type = SAA7134_INPUT_COMPOSITE1,
5473 			.vmux   = 3,
5474 			.amux   = LINE1,
5475 			.gpio   = 0x00050000,
5476 		}, {
5477 			.type = SAA7134_INPUT_SVIDEO,
5478 			.vmux   = 8,
5479 			.amux   = LINE1,
5480 			.gpio   = 0x00050000,
5481 		} },
5482 		.radio = {
5483 			.type = SAA7134_INPUT_RADIO,
5484 			.amux   = TV,
5485 			.gpio   = 0x00050000,
5486 		},
5487 		.mute = {
5488 			.type = SAA7134_INPUT_MUTE,
5489 			.vmux   = 0,
5490 			.amux   = TV,
5491 			.gpio   = 0x00050000,
5492 		},
5493 	},
5494 	[SAA7134_BOARD_BEHOLD_501] = {
5495 		/*       Beholder Intl. Ltd. 2010       */
5496 		/* Dmitry Belimov <d.belimov@gmail.com> */
5497 		.name           = "Beholder BeholdTV 501",
5498 		.audio_clock    = 0x00200000,
5499 		.tuner_type     = TUNER_ABSENT,
5500 		.radio_type     = UNSET,
5501 		.tuner_addr     = ADDR_UNSET,
5502 		.radio_addr     = ADDR_UNSET,
5503 		.gpiomask       = 0x00008000,
5504 		.inputs         = { {
5505 			.type = SAA7134_INPUT_TV,
5506 			.vmux = 3,
5507 			.amux = LINE2,
5508 		}, {
5509 			.type = SAA7134_INPUT_COMPOSITE1,
5510 			.vmux = 1,
5511 			.amux = LINE1,
5512 		}, {
5513 			.type = SAA7134_INPUT_SVIDEO,
5514 			.vmux = 8,
5515 			.amux = LINE1,
5516 		} },
5517 		.mute = {
5518 			.type = SAA7134_INPUT_MUTE,
5519 			.amux = LINE1,
5520 		},
5521 	},
5522 	[SAA7134_BOARD_BEHOLD_503FM] = {
5523 		/*       Beholder Intl. Ltd. 2010       */
5524 		/* Dmitry Belimov <d.belimov@gmail.com> */
5525 		.name           = "Beholder BeholdTV 503 FM",
5526 		.audio_clock    = 0x00200000,
5527 		.tuner_type     = TUNER_ABSENT,
5528 		.radio_type     = UNSET,
5529 		.tuner_addr     = ADDR_UNSET,
5530 		.radio_addr     = ADDR_UNSET,
5531 		.gpiomask       = 0x00008000,
5532 		.inputs         = { {
5533 			.type = SAA7134_INPUT_TV,
5534 			.vmux = 3,
5535 			.amux = LINE2,
5536 		}, {
5537 			.type = SAA7134_INPUT_COMPOSITE1,
5538 			.vmux = 1,
5539 			.amux = LINE1,
5540 		}, {
5541 			.type = SAA7134_INPUT_SVIDEO,
5542 			.vmux = 8,
5543 			.amux = LINE1,
5544 		} },
5545 		.mute = {
5546 			.type = SAA7134_INPUT_MUTE,
5547 			.amux = LINE1,
5548 		},
5549 	},
5550 	[SAA7134_BOARD_SENSORAY811_911] = {
5551 		.name		= "Sensoray 811/911",
5552 		.audio_clock	= 0x00200000,
5553 		.tuner_type	= TUNER_ABSENT,
5554 		.radio_type	= UNSET,
5555 		.tuner_addr	= ADDR_UNSET,
5556 		.radio_addr	= ADDR_UNSET,
5557 		.inputs		= {{
5558 			.type = SAA7134_INPUT_COMPOSITE1,
5559 			.vmux   = 0,
5560 			.amux   = LINE1,
5561 		}, {
5562 			.type = SAA7134_INPUT_COMPOSITE3,
5563 			.vmux   = 2,
5564 			.amux   = LINE1,
5565 		}, {
5566 			.type = SAA7134_INPUT_SVIDEO,
5567 			.vmux   = 8,
5568 			.amux   = LINE1,
5569 		} },
5570 	},
5571 	[SAA7134_BOARD_KWORLD_PC150U] = {
5572 		.name           = "Kworld PC150-U",
5573 		.audio_clock    = 0x00187de7,
5574 		.tuner_type     = TUNER_PHILIPS_TDA8290,
5575 		.radio_type     = UNSET,
5576 		.tuner_addr	= ADDR_UNSET,
5577 		.radio_addr	= ADDR_UNSET,
5578 		.mpeg           = SAA7134_MPEG_DVB,
5579 		.gpiomask       = 1 << 21,
5580 		.ts_type	= SAA7134_MPEG_TS_PARALLEL,
5581 		.inputs = { {
5582 			.type = SAA7134_INPUT_TV,
5583 			.vmux   = 1,
5584 			.amux   = TV,
5585 		}, {
5586 			.type = SAA7134_INPUT_COMPOSITE,
5587 			.vmux   = 3,
5588 			.amux   = LINE1,
5589 		}, {
5590 			.type = SAA7134_INPUT_SVIDEO,
5591 			.vmux   = 8,
5592 			.amux   = LINE2,
5593 		} },
5594 		.radio = {
5595 			.type = SAA7134_INPUT_RADIO,
5596 			.amux   = TV,
5597 			.gpio	= 0x0000000,
5598 		},
5599 	},
5600 	[SAA7134_BOARD_HAWELL_HW_9004V1] = {
5601 		/* Hawell HW-9004V1 */
5602 		/* Vadim Frolov <fralik@gmail.com> */
5603 		.name         = "Hawell HW-9004V1",
5604 		.audio_clock   = 0x00200000,
5605 		.tuner_type    = UNSET,
5606 		.radio_type    = UNSET,
5607 		.tuner_addr   = ADDR_UNSET,
5608 		.radio_addr   = ADDR_UNSET,
5609 		.gpiomask      = 0x618E700,
5610 		.inputs       = {{
5611 			.type = SAA7134_INPUT_COMPOSITE1,
5612 			.vmux = 3,
5613 			.amux = LINE1,
5614 			.gpio = 0x6010000,
5615 		} },
5616 	},
5617 	[SAA7134_BOARD_AVERMEDIA_A706] = {
5618 		.name           = "AverMedia AverTV Satellite Hybrid+FM A706",
5619 		.audio_clock    = 0x00187de7,
5620 		.tuner_type     = TUNER_PHILIPS_TDA8290,
5621 		.radio_type     = UNSET,
5622 		.tuner_addr     = ADDR_UNSET,
5623 		.radio_addr     = ADDR_UNSET,
5624 		.tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF,
5625 				    .no_i2c_gate = 1,
5626 				    .tda18271_std_map = &aver_a706_std_map },
5627 		.gpiomask       = 1 << 11,
5628 		.mpeg           = SAA7134_MPEG_DVB,
5629 		.inputs         = {{
5630 			.type = SAA7134_INPUT_TV,
5631 			.vmux = 1,
5632 			.amux = TV,
5633 		}, {
5634 			.type = SAA7134_INPUT_COMPOSITE,
5635 			.vmux = 4,
5636 			.amux = LINE1,
5637 		}, {
5638 			.type = SAA7134_INPUT_SVIDEO,
5639 			.vmux = 8,
5640 			.amux = LINE1,
5641 		} },
5642 		.radio = {
5643 			.type = SAA7134_INPUT_RADIO,
5644 			.amux = TV,
5645 			.gpio = 0x0000800,
5646 		},
5647 	},
5648 	[SAA7134_BOARD_WIS_VOYAGER] = {
5649 		.name           = "WIS Voyager or compatible",
5650 		.audio_clock    = 0x00200000,
5651 		.tuner_type	= TUNER_PHILIPS_TDA8290,
5652 		.radio_type     = UNSET,
5653 		.tuner_addr     = ADDR_UNSET,
5654 		.radio_addr     = ADDR_UNSET,
5655 		.mpeg		= SAA7134_MPEG_GO7007,
5656 		.inputs		= { {
5657 			.type = SAA7134_INPUT_COMPOSITE1,
5658 			.vmux = 0,
5659 			.amux = LINE2,
5660 		}, {
5661 			.type = SAA7134_INPUT_TV,
5662 			.vmux = 3,
5663 			.amux = TV,
5664 		}, {
5665 			.type = SAA7134_INPUT_SVIDEO,
5666 			.vmux = 6,
5667 		.amux = LINE1,
5668 		} },
5669 	},
5670 	[SAA7134_BOARD_AVERMEDIA_505] = {
5671 		/* much like the "studio" version but without radio
5672 		* and another tuner (dbaryshkov@gmail.com) */
5673 		.name           = "AverMedia AverTV/505",
5674 		.audio_clock    = 0x00187de7,
5675 		.tuner_type     = TUNER_PHILIPS_FQ1216ME,
5676 		.radio_type     = UNSET,
5677 		.tuner_addr	= ADDR_UNSET,
5678 		.radio_addr	= ADDR_UNSET,
5679 		.tda9887_conf   = TDA9887_PRESENT,
5680 		.inputs         = {{
5681 			.type = SAA7134_INPUT_TV,
5682 			.vmux = 1,
5683 			.amux = LINE2,
5684 		}, {
5685 			.type = SAA7134_INPUT_COMPOSITE1,
5686 			.vmux = 0,
5687 			.amux = LINE2,
5688 		}, {
5689 			.type = SAA7134_INPUT_COMPOSITE2,
5690 			.vmux = 3,
5691 			.amux = LINE2,
5692 		}, {
5693 			.type = SAA7134_INPUT_SVIDEO,
5694 			.vmux = 8,
5695 			.amux = LINE2,
5696 		} },
5697 		.mute = {
5698 			.type = SAA7134_INPUT_MUTE,
5699 			.amux = LINE1,
5700 		},
5701 	},
5702 	[SAA7134_BOARD_LEADTEK_WINFAST_TV2100_FM] = {
5703 		.name           = "Leadtek Winfast TV2100 FM",
5704 		.audio_clock    = 0x00187de7,
5705 		.tuner_type     = TUNER_TNF_5335MF,
5706 		.radio_type     = UNSET,
5707 		.tuner_addr	= ADDR_UNSET,
5708 		.radio_addr	= ADDR_UNSET,
5709 		.gpiomask       = 0x0d,
5710 		.inputs         = {{
5711 			.type = SAA7134_INPUT_TV_MONO,
5712 			.vmux = 1,
5713 			.amux = LINE1,
5714 			.gpio = 0x00,
5715 		}, {
5716 			.type = SAA7134_INPUT_COMPOSITE1,
5717 			.vmux = 3,
5718 			.amux = LINE2,
5719 			.gpio = 0x08,
5720 		}, {
5721 			.type = SAA7134_INPUT_SVIDEO,
5722 			.vmux = 8,
5723 			.amux = LINE2,
5724 			.gpio = 0x08,
5725 		} },
5726 		.radio = {
5727 			.type = SAA7134_INPUT_RADIO,
5728 			.amux = LINE1,
5729 			.gpio = 0x04,
5730 		},
5731 		.mute = {
5732 			.type = SAA7134_INPUT_MUTE,
5733 			.amux = LINE1,
5734 			.gpio = 0x08,
5735 		},
5736 	},
5737 	[SAA7134_BOARD_SNAZIO_TVPVR_PRO] = {
5738 		.name           = "SnaZio* TVPVR PRO",
5739 		.audio_clock    = 0x00187de7,
5740 		.tuner_type     = TUNER_PHILIPS_TDA8290,
5741 		.radio_type     = UNSET,
5742 		.tuner_addr     = ADDR_UNSET,
5743 		.radio_addr     = ADDR_UNSET,
5744 		.gpiomask       = 1 << 21,
5745 		.inputs         = { {
5746 			.type = SAA7134_INPUT_TV,
5747 			.vmux = 1,
5748 			.amux = TV,
5749 			.gpio = 0x0000000,
5750 		}, {
5751 			.type = SAA7134_INPUT_COMPOSITE1,
5752 			.vmux = 3,
5753 			.amux = LINE2,
5754 			.gpio = 0x0000000,
5755 		}, {
5756 			.type = SAA7134_INPUT_SVIDEO,
5757 			.vmux = 8,
5758 			.amux = LINE2,
5759 			.gpio = 0x0000000,
5760 		} },
5761 		.radio = {
5762 			.type = SAA7134_INPUT_RADIO,
5763 			.amux = TV,
5764 			.gpio = 0x0200000,
5765 		},
5766 	},
5767 	[SAA7134_BOARD_LEADTEK_WINFAST_HDTV200_H] = {
5768 		.name           = "Leadtek Winfast HDTV200 H",
5769 		.audio_clock    = 0x00187de7,
5770 		.tuner_type     = TUNER_PHILIPS_TDA8290,
5771 		.radio_type     = UNSET,
5772 		.tuner_addr     = ADDR_UNSET,
5773 		.radio_addr     = ADDR_UNSET,
5774 		.mpeg           = SAA7134_MPEG_DVB,
5775 		.ts_type        = SAA7134_MPEG_TS_PARALLEL,
5776 		.gpiomask       = 0x00200700,
5777 		.inputs         = { {
5778 			.type = SAA7134_INPUT_TV,
5779 			.vmux = 1,
5780 			.amux = TV,
5781 			.gpio = 0x00000300,
5782 		}, {
5783 			.type = SAA7134_INPUT_COMPOSITE,
5784 			.vmux = 3,
5785 			.amux = LINE1,
5786 			.gpio = 0x00200300,
5787 		}, {
5788 			.type = SAA7134_INPUT_SVIDEO,
5789 			.vmux = 8,
5790 			.amux = LINE1,
5791 			.gpio = 0x00200300,
5792 		} },
5793 	},
5794 };
5795 
5796 const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
5797 
5798 /* ------------------------------------------------------------------ */
5799 /* PCI ids + subsystem IDs                                            */
5800 
5801 struct pci_device_id saa7134_pci_tbl[] = {
5802 	{
5803 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5804 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5805 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
5806 		.subdevice    = 0x2001,
5807 		.driver_data  = SAA7134_BOARD_PROTEUS_PRO,
5808 	},{
5809 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5810 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5811 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
5812 		.subdevice    = 0x2001,
5813 		.driver_data  = SAA7134_BOARD_PROTEUS_PRO,
5814 	},{
5815 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5816 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5817 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
5818 		.subdevice    = 0x6752,
5819 		.driver_data  = SAA7134_BOARD_EMPRESS,
5820 	},{
5821 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5822 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5823 		.subvendor    = 0x1131,
5824 		.subdevice    = 0x4e85,
5825 		.driver_data  = SAA7134_BOARD_MONSTERTV,
5826 	},{
5827 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5828 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5829 		.subvendor    = 0x153b,
5830 		.subdevice    = 0x1142,
5831 		.driver_data  = SAA7134_BOARD_CINERGY400,
5832 	},{
5833 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5834 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5835 		.subvendor    = 0x153b,
5836 		.subdevice    = 0x1143,
5837 		.driver_data  = SAA7134_BOARD_CINERGY600,
5838 	},{
5839 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5840 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5841 		.subvendor    = 0x153b,
5842 		.subdevice    = 0x1158,
5843 		.driver_data  = SAA7134_BOARD_CINERGY600_MK3,
5844 	},{
5845 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5846 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5847 		.subvendor    = 0x153b,
5848 		.subdevice    = 0x1162,
5849 		.driver_data  = SAA7134_BOARD_CINERGY400_CARDBUS,
5850 	},{
5851 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5852 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5853 		.subvendor    = 0x5169,
5854 		.subdevice    = 0x0138,
5855 		.driver_data  = SAA7134_BOARD_FLYVIDEO3000_NTSC,
5856 	},{
5857 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5858 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5859 		.subvendor    = 0x5168,
5860 		.subdevice    = 0x0138,
5861 		.driver_data  = SAA7134_BOARD_FLYVIDEO3000,
5862 	},{
5863 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5864 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5865 		.subvendor    = 0x4e42,				/* "Typhoon PCI Capture TV Card" Art.No. 50673 */
5866 		.subdevice    = 0x0138,
5867 		.driver_data  = SAA7134_BOARD_FLYVIDEO3000,
5868 	},{
5869 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5870 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5871 		.subvendor    = 0x5168,
5872 		.subdevice    = 0x0138,
5873 		.driver_data  = SAA7134_BOARD_FLYVIDEO2000,
5874 	},{
5875 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5876 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5877 		.subvendor    = 0x4e42,		/* Typhoon */
5878 		.subdevice    = 0x0138,		/* LifeView FlyTV Prime30 OEM */
5879 		.driver_data  = SAA7134_BOARD_FLYVIDEO2000,
5880 	},{
5881 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5882 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5883 		.subvendor    = 0x5168,
5884 		.subdevice    = 0x0212, /* minipci, LR212 */
5885 		.driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
5886 	},{
5887 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5888 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5889 		.subvendor    = 0x14c0,
5890 		.subdevice    = 0x1212, /* minipci, LR1212 */
5891 		.driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI2,
5892 	},{
5893 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5894 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5895 		.subvendor    = 0x4e42,
5896 		.subdevice    = 0x0212, /* OEM minipci, LR212 */
5897 		.driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
5898 	},{
5899 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5900 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5901 		.subvendor    = 0x5168,	/* Animation Technologies (LifeView) */
5902 		.subdevice    = 0x0214, /* Standard PCI, LR214 Rev E and earlier (SAA7135) */
5903 		.driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM,
5904 	},{
5905 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5906 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5907 		.subvendor    = 0x5168,	/* Animation Technologies (LifeView) */
5908 		.subdevice    = 0x5214, /* Standard PCI, LR214 Rev F onwards (SAA7131) */
5909 		.driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM,
5910 	},{
5911 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5912 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5913 		.subvendor    = 0x1489, /* KYE */
5914 		.subdevice    = 0x0214, /* Genius VideoWonder ProTV */
5915 		.driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM, /* is an LR214WF actually */
5916 	},{
5917 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5918 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5919 		.subvendor    = 0x16be,
5920 		.subdevice    = 0x0003,
5921 		.driver_data  = SAA7134_BOARD_MD7134,
5922 	},{
5923 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5924 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5925 		.subvendor    = 0x16be, /* CTX946 analog TV, HW mpeg, DVB-T */
5926 		.subdevice    = 0x5000, /* only analog TV and DVB-T for now */
5927 		.driver_data  = SAA7134_BOARD_MD7134,
5928 	}, {
5929 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5930 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5931 		.subvendor    = 0x1048,
5932 		.subdevice    = 0x226b,
5933 		.driver_data  = SAA7134_BOARD_ELSA,
5934 	},{
5935 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5936 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5937 		.subvendor    = 0x1048,
5938 		.subdevice    = 0x226a,
5939 		.driver_data  = SAA7134_BOARD_ELSA_500TV,
5940 	},{
5941 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5942 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5943 		.subvendor    = 0x1048,
5944 		.subdevice    = 0x226c,
5945 		.driver_data  = SAA7134_BOARD_ELSA_700TV,
5946 	},{
5947 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5948 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5949 		.subvendor    = PCI_VENDOR_ID_ASUSTEK,
5950 		.subdevice    = 0x4842,
5951 		.driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
5952 	},{
5953 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5954 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5955 		.subvendor    = PCI_VENDOR_ID_ASUSTEK,
5956 		.subdevice    = 0x4845,
5957 		.driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7135,
5958 	},{
5959 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5960 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5961 		.subvendor    = PCI_VENDOR_ID_ASUSTEK,
5962 		.subdevice    = 0x4830,
5963 		.driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
5964 	},{
5965 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5966 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5967 		.subvendor    = PCI_VENDOR_ID_ASUSTEK,
5968 		.subdevice    = 0x4843,
5969 		.driver_data  = SAA7134_BOARD_ASUSTEK_TVFM7133,
5970 	},{
5971 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5972 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5973 		.subvendor    = PCI_VENDOR_ID_ASUSTEK,
5974 		.subdevice    = 0x4840,
5975 		.driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
5976 	},{
5977 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5978 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5979 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
5980 		.subdevice    = 0xfe01,
5981 		.driver_data  = SAA7134_BOARD_TVSTATION_RDS,
5982 	},{
5983 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5984 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5985 		.subvendor    = 0x1894,
5986 		.subdevice    = 0xfe01,
5987 		.driver_data  = SAA7134_BOARD_TVSTATION_RDS,
5988 	},{
5989 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5990 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5991 		.subvendor    = 0x1894,
5992 		.subdevice    = 0xa006,
5993 		.driver_data  = SAA7134_BOARD_TVSTATION_DVR,
5994 	},{
5995 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5996 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5997 		.subvendor    = 0x1131,
5998 		.subdevice    = 0x7133,
5999 		.driver_data  = SAA7134_BOARD_VA1000POWER,
6000 	},{
6001 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6002 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6003 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
6004 		.subdevice    = 0x2001,
6005 		.driver_data  = SAA7134_BOARD_10MOONSTVMASTER,
6006 	},{
6007 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6008 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6009 		.subvendor    = 0x185b,
6010 		.subdevice    = 0xc100,
6011 		.driver_data  = SAA7134_BOARD_VIDEOMATE_TV,
6012 	},{
6013 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6014 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6015 		.subvendor    = 0x185b,
6016 		.subdevice    = 0xc100,
6017 		.driver_data  = SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS,
6018 	},{
6019 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6020 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6021 		.subvendor    = PCI_VENDOR_ID_MATROX,
6022 		.subdevice    = 0x48d0,
6023 		.driver_data  = SAA7134_BOARD_CRONOS_PLUS,
6024 	},{
6025 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6026 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6027 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6028 		.subdevice    = 0xa70b,
6029 		.driver_data  = SAA7134_BOARD_MD2819,
6030 	},{
6031 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6032 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6033 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6034 		.subdevice    = 0xa7a1,
6035 		.driver_data  = SAA7134_BOARD_AVERMEDIA_A700_PRO,
6036 	}, {
6037 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6038 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6039 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6040 		.subdevice    = 0xa7a2,
6041 		.driver_data  = SAA7134_BOARD_AVERMEDIA_A700_HYBRID,
6042 	}, {
6043 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6044 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6045 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6046 		.subdevice    = 0x2115,
6047 		.driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_305,
6048 	},{
6049 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6050 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6051 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6052 		.subdevice    = 0xa115,
6053 		.driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_505,
6054 	}, {
6055 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6056 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6057 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6058 		.subdevice    = 0x2108,
6059 		.driver_data  = SAA7134_BOARD_AVERMEDIA_305,
6060 	},{
6061 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6062 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6063 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6064 		.subdevice    = 0x10ff,
6065 		.driver_data  = SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER,
6066 	},{
6067 		/* AVerMedia CardBus */
6068 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6069 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6070 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6071 		.subdevice    = 0xd6ee,
6072 		.driver_data  = SAA7134_BOARD_AVERMEDIA_CARDBUS,
6073 	},{
6074 		/* AVerMedia CardBus */
6075 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6076 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6077 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6078 		.subdevice    = 0xb7e9,
6079 		.driver_data  = SAA7134_BOARD_AVERMEDIA_CARDBUS_501,
6080 	}, {
6081 		/* TransGear 3000TV */
6082 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6083 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6084 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6085 		.subdevice    = 0x050c,
6086 		.driver_data  = SAA7134_BOARD_TG3000TV,
6087 	},{
6088 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6089 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6090 		.subvendor    = 0x11bd,
6091 		.subdevice    = 0x002b,
6092 		.driver_data  = SAA7134_BOARD_PINNACLE_PCTV_STEREO,
6093 	},{
6094 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6095 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6096 		.subvendor    = 0x11bd,
6097 		.subdevice    = 0x002d,
6098 		.driver_data  = SAA7134_BOARD_PINNACLE_300I_DVBT_PAL,
6099 	},{
6100 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6101 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6102 		.subvendor    = 0x1019,
6103 		.subdevice    = 0x4cb4,
6104 		.driver_data  = SAA7134_BOARD_ECS_TVP3XP,
6105 	},{
6106 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6107 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6108 		.subvendor    = 0x1019,
6109 		.subdevice    = 0x4cb5,
6110 		.driver_data  = SAA7134_BOARD_ECS_TVP3XP_4CB5,
6111 	},{
6112 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6113 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6114 		.subvendor    = 0x1019,
6115 		.subdevice    = 0x4cb6,
6116 		.driver_data  = SAA7134_BOARD_ECS_TVP3XP_4CB6,
6117 	},{
6118 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6119 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6120 		.subvendor    = 0x12ab,
6121 		.subdevice    = 0x0800,
6122 		.driver_data  = SAA7134_BOARD_UPMOST_PURPLE_TV,
6123 	},{
6124 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6125 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6126 		.subvendor    = 0x153b,
6127 		.subdevice    = 0x1152,
6128 		.driver_data  = SAA7134_BOARD_CINERGY200,
6129 	},{
6130 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6131 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6132 		.subvendor    = 0x185b,
6133 		.subdevice    = 0xc100,
6134 		.driver_data  = SAA7134_BOARD_VIDEOMATE_TV_PVR,
6135 	},{
6136 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6137 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6138 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6139 		.subdevice    = 0x9715,
6140 		.driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_307,
6141 	},{
6142 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6143 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6144 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6145 		.subdevice    = 0xa70a,
6146 		.driver_data  = SAA7134_BOARD_AVERMEDIA_307,
6147 	},{
6148 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6149 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6150 		.subvendor    = 0x185b,
6151 		.subdevice    = 0xc200,
6152 		.driver_data  = SAA7134_BOARD_VIDEOMATE_GOLD_PLUS,
6153 	},{
6154 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6155 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6156 		.subvendor    = 0x1540,
6157 		.subdevice    = 0x9524,
6158 		.driver_data  = SAA7134_BOARD_PROVIDEO_PV952,
6159 
6160 	},{
6161 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6162 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6163 		.subvendor    = 0x5168,
6164 		.subdevice    = 0x0502,                /* Cardbus version */
6165 		.driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
6166 	},{
6167 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6168 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6169 		.subvendor    = 0x5168,
6170 		.subdevice    = 0x0306,                /* PCI version */
6171 		.driver_data  = SAA7134_BOARD_FLYDVBTDUO,
6172 	},{
6173 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6174 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6175 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6176 		.subdevice    = 0xf31f,
6177 		.driver_data  = SAA7134_BOARD_AVERMEDIA_GO_007_FM,
6178 
6179 	},{
6180 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6181 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6182 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6183 		.subdevice    = 0xf11d,
6184 		.driver_data  = SAA7134_BOARD_AVERMEDIA_M135A,
6185 	}, {
6186 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6187 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6188 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6189 		.subdevice    = 0x4155,
6190 		.driver_data  = SAA7134_BOARD_AVERMEDIA_M733A,
6191 	}, {
6192 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6193 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6194 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6195 		.subdevice    = 0x4255,
6196 		.driver_data  = SAA7134_BOARD_AVERMEDIA_M733A,
6197 	}, {
6198 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6199 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6200 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
6201 		.subdevice    = 0x2004,
6202 		.driver_data  = SAA7134_BOARD_PHILIPS_TOUGH,
6203 	},{
6204 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6205 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6206 		.subvendor    = 0x1421,
6207 		.subdevice    = 0x0350,		/* PCI version */
6208 		.driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
6209 	},{
6210 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6211 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6212 		.subvendor    = 0x1421,
6213 		.subdevice    = 0x0351,		/* PCI version, new revision */
6214 		.driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
6215 	},{
6216 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6217 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6218 		.subvendor    = 0x1421,
6219 		.subdevice    = 0x0370,		/* cardbus version */
6220 		.driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
6221 	},{
6222 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6223 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6224 		.subvendor    = 0x1421,
6225 		.subdevice    = 0x1370,        /* cardbus version */
6226 		.driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
6227 
6228 	},{
6229 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6230 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6231 		.subvendor    = 0x4e42,		/* Typhoon */
6232 		.subdevice    = 0x0502,		/* LifeView LR502 OEM */
6233 		.driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
6234 	},{
6235 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6236 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6237 		.subvendor    = 0x1043,
6238 		.subdevice    = 0x0210,		/* mini pci NTSC version */
6239 		.driver_data  = SAA7134_BOARD_FLYTV_DIGIMATRIX,
6240 	},{
6241 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6242 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6243 		.subvendor    = 0x1043,
6244 		.subdevice    = 0x0210,		/* mini pci PAL/SECAM version */
6245 		.driver_data  = SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV,
6246 
6247 	},{
6248 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6249 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6250 		.subvendor    = 0x0000, /* It shouldn't break anything, since subdevice id seems unique */
6251 		.subdevice    = 0x4091,
6252 		.driver_data  = SAA7134_BOARD_BEHOLD_409FM,
6253 	},{
6254 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6255 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6256 		.subvendor    = 0x5456, /* GoTView */
6257 		.subdevice    = 0x7135,
6258 		.driver_data  = SAA7134_BOARD_GOTVIEW_7135,
6259 	},{
6260 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6261 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6262 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
6263 		.subdevice    = 0x2004,
6264 		.driver_data  = SAA7134_BOARD_PHILIPS_EUROPA,
6265 	},{
6266 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6267 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6268 		.subvendor    = 0x185b,
6269 		.subdevice    = 0xc900,
6270 		.driver_data  = SAA7134_BOARD_VIDEOMATE_DVBT_300,
6271 	},{
6272 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6273 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6274 		.subvendor    = 0x185b,
6275 		.subdevice    = 0xc901,
6276 		.driver_data  = SAA7134_BOARD_VIDEOMATE_DVBT_200,
6277 	},{
6278 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6279 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6280 		.subvendor    = 0x1435,
6281 		.subdevice    = 0x7350,
6282 		.driver_data  = SAA7134_BOARD_RTD_VFG7350,
6283 	},{
6284 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6285 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6286 		.subvendor    = 0x1435,
6287 		.subdevice    = 0x7330,
6288 		.driver_data  = SAA7134_BOARD_RTD_VFG7330,
6289 	},{
6290 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6291 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6292 		.subvendor    = 0x1461,
6293 		.subdevice    = 0x1044,
6294 		.driver_data  = SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180,
6295 	},{
6296 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6297 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6298 		.subvendor    = 0x1131,
6299 		.subdevice    = 0x4ee9,
6300 		.driver_data  = SAA7134_BOARD_MONSTERTV_MOBILE,
6301 	},{
6302 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6303 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6304 		.subvendor    = 0x11bd,
6305 		.subdevice    = 0x002e,
6306 		.driver_data  = SAA7134_BOARD_PINNACLE_PCTV_110i,
6307 	},{
6308 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6309 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6310 		.subvendor    = 0x1043,
6311 		.subdevice    = 0x4862,
6312 		.driver_data  = SAA7134_BOARD_ASUSTeK_P7131_DUAL,
6313 	},{
6314 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6315 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6316 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
6317 		.subdevice    = 0x2018,
6318 		.driver_data  = SAA7134_BOARD_PHILIPS_TIGER,
6319 	},{
6320 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6321 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6322 		.subvendor    = 0x1462,
6323 		.subdevice    = 0x6231, /* tda8275a, ks003 IR */
6324 		.driver_data  = SAA7134_BOARD_MSI_TVATANYWHERE_PLUS,
6325 	},{
6326 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6327 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6328 		.subvendor    = 0x1462,
6329 		.subdevice    = 0x8624, /* tda8275, ks003 IR */
6330 		.driver_data  = SAA7134_BOARD_MSI_TVATANYWHERE_PLUS,
6331 	},{
6332 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6333 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6334 		.subvendor    = 0x153b,
6335 		.subdevice    = 0x1160,
6336 		.driver_data  = SAA7134_BOARD_CINERGY250PCI,
6337 	},{
6338 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6339 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,	/* SAA 7131E */
6340 		.subvendor    = 0x5168,
6341 		.subdevice    = 0x0319,
6342 		.driver_data  = SAA7134_BOARD_FLYDVB_TRIO,
6343 	},{
6344 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6345 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6346 		.subvendor    = 0x1461,
6347 		.subdevice    = 0x2c05,
6348 		.driver_data  = SAA7134_BOARD_AVERMEDIA_777,
6349 	},{
6350 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6351 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6352 		.subvendor    = 0x5168,
6353 		.subdevice    = 0x0301,
6354 		.driver_data  = SAA7134_BOARD_FLYDVBT_LR301,
6355 	},{
6356 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6357 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6358 		.subvendor    = 0x0331,
6359 		.subdevice    = 0x1421,
6360 		.driver_data  = SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331,
6361 	},{
6362 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6363 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6364 		.subvendor    = 0x17de,
6365 		.subdevice    = 0x7201,
6366 		.driver_data  = SAA7134_BOARD_TEVION_DVBT_220RF,
6367 	},{
6368 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6369 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6370 		.subvendor    = 0x17de,
6371 		.subdevice    = 0x7250,
6372 		.driver_data  = SAA7134_BOARD_KWORLD_DVBT_210,
6373 	},{
6374 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6375 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
6376 		.subvendor    = 0x17de,
6377 		.subdevice    = 0x7350,
6378 		.driver_data  = SAA7134_BOARD_KWORLD_ATSC110,
6379 	},{
6380 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6381 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
6382 		.subvendor    = 0x17de,
6383 		.subdevice    = 0x7352,
6384 		.driver_data  = SAA7134_BOARD_KWORLD_ATSC110, /* ATSC 115 */
6385 	},{
6386 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6387 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
6388 		.subvendor    = 0x17de,
6389 		.subdevice    = 0xa134,
6390 		.driver_data  = SAA7134_BOARD_KWORLD_PC150U,
6391 	}, {
6392 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6393 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6394 		.subvendor    = 0x1461,
6395 		.subdevice    = 0x7360,
6396 		.driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B,
6397 	},{
6398 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6399 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6400 		.subvendor    = 0x1461,
6401 		.subdevice    = 0x6360,
6402 		.driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B1,
6403 	},{
6404 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6405 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6406 		.subvendor    = 0x16be,
6407 		.subdevice    = 0x0005,
6408 		.driver_data  = SAA7134_BOARD_MD7134_BRIDGE_2,
6409 	},{
6410 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6411 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6412 		.subvendor    = 0x5168,
6413 		.subdevice    = 0x0300,
6414 		.driver_data  = SAA7134_BOARD_FLYDVBS_LR300,
6415 	},{
6416 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6417 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6418 		.subvendor    = 0x4e42,
6419 		.subdevice    = 0x0300,/* LR300 */
6420 		.driver_data  = SAA7134_BOARD_FLYDVBS_LR300,
6421 	},{
6422 		.vendor = PCI_VENDOR_ID_PHILIPS,
6423 		.device = PCI_DEVICE_ID_PHILIPS_SAA7134,
6424 		.subvendor = 0x1489,
6425 		.subdevice = 0x0301,
6426 		.driver_data = SAA7134_BOARD_FLYDVBT_LR301,
6427 	},{
6428 		.vendor = PCI_VENDOR_ID_PHILIPS,
6429 		.device = PCI_DEVICE_ID_PHILIPS_SAA7133,
6430 		.subvendor = 0x5168, /* Animation Technologies (LifeView) */
6431 		.subdevice = 0x0304,
6432 		.driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM,
6433 	},{
6434 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6435 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6436 		.subvendor    = 0x5168,
6437 		.subdevice    = 0x3306,
6438 		.driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
6439 	},{
6440 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6441 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6442 		.subvendor    = 0x5168,
6443 		.subdevice    = 0x3502,  /* what's the difference to 0x3306 ?*/
6444 		.driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
6445 	},{
6446 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6447 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6448 		.subvendor    = 0x5168,
6449 		.subdevice    = 0x3307, /* FlyDVB-T Hybrid Mini PCI */
6450 		.driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
6451 	}, {
6452 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6453 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6454 		.subvendor    = 0x16be,
6455 		.subdevice    = 0x0007,
6456 		.driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
6457 	},{
6458 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6459 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6460 		.subvendor    = 0x16be,
6461 		.subdevice    = 0x0008,
6462 		.driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
6463 	},{
6464 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6465 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6466 		.subvendor    = 0x16be,
6467 		.subdevice    = 0x000d, /* triple CTX948_V1.1.1 */
6468 		.driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
6469 	}, {
6470 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6471 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6472 		.subvendor    = 0x1461,
6473 		.subdevice    = 0x2c05,
6474 		.driver_data  = SAA7134_BOARD_AVERMEDIA_777,
6475 	},{
6476 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6477 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6478 		.subvendor    = 0x1489,
6479 		.subdevice    = 0x0502,                /* Cardbus version */
6480 		.driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
6481 	},{
6482 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6483 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6484 		.subvendor    = 0x0919, /* Philips Proteus PRO 2309 */
6485 		.subdevice    = 0x2003,
6486 		.driver_data  = SAA7134_BOARD_PROTEUS_2309,
6487 	},{
6488 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6489 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6490 		.subvendor    = 0x1461,
6491 		.subdevice    = 0x2c00,
6492 		.driver_data  = SAA7134_BOARD_AVERMEDIA_A16AR,
6493 	},{
6494 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6495 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6496 		.subvendor    = 0x1043,
6497 		.subdevice    = 0x4860,
6498 		.driver_data  = SAA7134_BOARD_ASUS_EUROPA2_HYBRID,
6499 	},{
6500 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6501 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6502 		.subvendor    = 0x11bd,
6503 		.subdevice    = 0x002f,
6504 		.driver_data  = SAA7134_BOARD_PINNACLE_PCTV_310i,
6505 	},{
6506 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6507 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6508 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6509 		.subdevice    = 0x9715,
6510 		.driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_507,
6511 	},{
6512 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6513 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6514 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6515 		.subdevice    = 0xa11b,
6516 		.driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_507UA,
6517 	}, {
6518 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6519 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6520 		.subvendor    = 0x1043,
6521 		.subdevice    = 0x4876,
6522 		.driver_data  = SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA,
6523 	},{
6524 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6525 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6526 		.subvendor    = 0x0070,
6527 		.subdevice    = 0x6700,
6528 		.driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6529 	},{
6530 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6531 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6532 		.subvendor    = 0x0070,
6533 		.subdevice    = 0x6701,
6534 		.driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6535 	},{
6536 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6537 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6538 		.subvendor    = 0x0070,
6539 		.subdevice    = 0x6702,
6540 		.driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6541 	},{
6542 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6543 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6544 		.subvendor    = 0x0070,
6545 		.subdevice    = 0x6703,
6546 		.driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6547 	},{
6548 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6549 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6550 		.subvendor    = 0x0070,
6551 		.subdevice    = 0x6704,
6552 		.driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6553 	},{
6554 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6555 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6556 		.subvendor    = 0x0070,
6557 		.subdevice    = 0x6705,
6558 		.driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6559 	},{
6560 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6561 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6562 		.subvendor    = 0x0070,
6563 		.subdevice    = 0x6706,
6564 		.driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1150,
6565 	},{
6566 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6567 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6568 		.subvendor    = 0x0070,
6569 		.subdevice    = 0x6707,
6570 		.driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1120,
6571 	},{
6572 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6573 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6574 		.subvendor    = 0x0070,
6575 		.subdevice    = 0x6708,
6576 		.driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1150,
6577 	},{
6578 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6579 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6580 		.subvendor    = 0x0070,
6581 		.subdevice    = 0x6709,
6582 		.driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1120,
6583 	},{
6584 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6585 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6586 		.subvendor    = 0x0070,
6587 		.subdevice    = 0x670a,
6588 		.driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1120,
6589 	},{
6590 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6591 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6592 		.subvendor    = 0x153b,
6593 		.subdevice    = 0x1172,
6594 		.driver_data  = SAA7134_BOARD_CINERGY_HT_PCMCIA,
6595 	},{
6596 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6597 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6598 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
6599 		.subdevice    = 0x2342,
6600 		.driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
6601 	},{
6602 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6603 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6604 		.subvendor    = 0x1131,
6605 		.subdevice    = 0x2341,
6606 		.driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
6607 	},{
6608 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6609 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6610 		.subvendor    = 0x3016,
6611 		.subdevice    = 0x2344,
6612 		.driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
6613 	},{
6614 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6615 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6616 		.subvendor    = 0x1131,
6617 		.subdevice    = 0x230f,
6618 		.driver_data  = SAA7134_BOARD_ENCORE_ENLTV_FM,
6619 	},{
6620 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6621 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6622 		.subvendor    = 0x1a7f,
6623 		.subdevice    = 0x2008,
6624 		.driver_data  = SAA7134_BOARD_ENCORE_ENLTV_FM53,
6625 	}, {
6626 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6627 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6628 		.subvendor    = 0x1a7f,
6629 		.subdevice    = 0x2108,
6630 		.driver_data  = SAA7134_BOARD_ENCORE_ENLTV_FM3,
6631 	}, {
6632 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6633 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6634 		.subvendor    = 0x153b,
6635 		.subdevice    = 0x1175,
6636 		.driver_data  = SAA7134_BOARD_CINERGY_HT_PCI,
6637 	},{
6638 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6639 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6640 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6641 		.subdevice    = 0xf31e,
6642 		.driver_data  = SAA7134_BOARD_AVERMEDIA_M102,
6643 	},{
6644 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6645 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6646 		.subvendor    = 0x4E42,         /* MSI */
6647 		.subdevice    = 0x0306,         /* TV@nywhere DUO */
6648 		.driver_data  = SAA7134_BOARD_FLYDVBTDUO,
6649 	},{
6650 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6651 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6652 		.subvendor    = 0x1043,
6653 		.subdevice    = 0x4871,
6654 		.driver_data  = SAA7134_BOARD_ASUS_P7131_4871,
6655 	},{
6656 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6657 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6658 		.subvendor    = 0x1043,
6659 		.subdevice    = 0x4857,		/* REV:1.00 */
6660 		.driver_data  = SAA7134_BOARD_ASUSTeK_TIGER,
6661 	},{
6662 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6663 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6664 		.subvendor    = 0x0919, /* SinoVideo PCI 2309 Proteus (7134) */
6665 		.subdevice    = 0x2003, /* OEM cardbus */
6666 		.driver_data  = SAA7134_BOARD_SABRENT_TV_PCB05,
6667 	},{
6668 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6669 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6670 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
6671 		.subdevice    = 0x2304,
6672 		.driver_data  = SAA7134_BOARD_10MOONSTVMASTER3,
6673 	},{
6674 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6675 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6676 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6677 		.subdevice    = 0xf01d, /* AVerTV DVB-T Super 007 */
6678 		.driver_data  = SAA7134_BOARD_AVERMEDIA_SUPER_007,
6679 	},{
6680 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6681 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6682 		.subvendor    = 0x0000,
6683 		.subdevice    = 0x4016,
6684 		.driver_data  = SAA7134_BOARD_BEHOLD_401,
6685 	},{
6686 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6687 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6688 		.subvendor    = 0x0000,
6689 		.subdevice    = 0x4036,
6690 		.driver_data  = SAA7134_BOARD_BEHOLD_403,
6691 	},{
6692 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6693 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6694 		.subvendor    = 0x0000,
6695 		.subdevice    = 0x4037,
6696 		.driver_data  = SAA7134_BOARD_BEHOLD_403FM,
6697 	},{
6698 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6699 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6700 		.subvendor    = 0x0000,
6701 		.subdevice    = 0x4050,
6702 		.driver_data  = SAA7134_BOARD_BEHOLD_405,
6703 	},{
6704 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6705 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6706 		.subvendor    = 0x0000,
6707 		.subdevice    = 0x4051,
6708 		.driver_data  = SAA7134_BOARD_BEHOLD_405FM,
6709 	},{
6710 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6711 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6712 		.subvendor    = 0x0000,
6713 		.subdevice    = 0x4070,
6714 		.driver_data  = SAA7134_BOARD_BEHOLD_407,
6715 	},{
6716 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6717 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6718 		.subvendor    = 0x0000,
6719 		.subdevice    = 0x4071,
6720 		.driver_data  = SAA7134_BOARD_BEHOLD_407FM,
6721 	},{
6722 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6723 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6724 		.subvendor    = 0x0000,
6725 		.subdevice    = 0x4090,
6726 		.driver_data  = SAA7134_BOARD_BEHOLD_409,
6727 	},{
6728 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6729 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6730 		.subvendor    = 0x0000,
6731 		.subdevice    = 0x505B,
6732 		.driver_data  = SAA7134_BOARD_BEHOLD_505RDS_MK5,
6733 	}, {
6734 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6735 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6736 		.subvendor    = 0x0000,
6737 		.subdevice    = 0x5051,
6738 		.driver_data  = SAA7134_BOARD_BEHOLD_505RDS_MK3,
6739 	},{
6740 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6741 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6742 		.subvendor    = 0x5ace,
6743 		.subdevice    = 0x5050,
6744 		.driver_data  = SAA7134_BOARD_BEHOLD_505FM,
6745 	},{
6746 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6747 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6748 		.subvendor    = 0x0000,
6749 		.subdevice    = 0x5071,
6750 		.driver_data  = SAA7134_BOARD_BEHOLD_507RDS_MK3,
6751 	},{
6752 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6753 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6754 		.subvendor    = 0x0000,
6755 		.subdevice    = 0x507B,
6756 		.driver_data  = SAA7134_BOARD_BEHOLD_507RDS_MK5,
6757 	},{
6758 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6759 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6760 		.subvendor    = 0x5ace,
6761 		.subdevice    = 0x5070,
6762 		.driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
6763 	},{
6764 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6765 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6766 		.subvendor    = 0x5ace,
6767 		.subdevice    = 0x5090,
6768 		.driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
6769 	},{
6770 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6771 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6772 		.subvendor    = 0x0000,
6773 		.subdevice    = 0x5201,
6774 		.driver_data  = SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM,
6775 	},{
6776 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6777 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6778 		.subvendor    = 0x5ace,
6779 		.subdevice    = 0x6070,
6780 		.driver_data  = SAA7134_BOARD_BEHOLD_607FM_MK3,
6781 	},{
6782 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6783 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6784 		.subvendor    = 0x5ace,
6785 		.subdevice    = 0x6071,
6786 		.driver_data  = SAA7134_BOARD_BEHOLD_607FM_MK5,
6787 	},{
6788 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6789 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6790 		.subvendor    = 0x5ace,
6791 		.subdevice    = 0x6072,
6792 		.driver_data  = SAA7134_BOARD_BEHOLD_607RDS_MK3,
6793 	},{
6794 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6795 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6796 		.subvendor    = 0x5ace,
6797 		.subdevice    = 0x6073,
6798 		.driver_data  = SAA7134_BOARD_BEHOLD_607RDS_MK5,
6799 	},{
6800 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6801 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6802 		.subvendor    = 0x5ace,
6803 		.subdevice    = 0x6090,
6804 		.driver_data  = SAA7134_BOARD_BEHOLD_609FM_MK3,
6805 	},{
6806 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6807 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6808 		.subvendor    = 0x5ace,
6809 		.subdevice    = 0x6091,
6810 		.driver_data  = SAA7134_BOARD_BEHOLD_609FM_MK5,
6811 	},{
6812 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6813 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6814 		.subvendor    = 0x5ace,
6815 		.subdevice    = 0x6092,
6816 		.driver_data  = SAA7134_BOARD_BEHOLD_609RDS_MK3,
6817 	},{
6818 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6819 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6820 		.subvendor    = 0x5ace,
6821 		.subdevice    = 0x6093,
6822 		.driver_data  = SAA7134_BOARD_BEHOLD_609RDS_MK5,
6823 	},{
6824 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6825 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6826 		.subvendor    = 0x5ace,
6827 		.subdevice    = 0x6190,
6828 		.driver_data  = SAA7134_BOARD_BEHOLD_M6,
6829 	},{
6830 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6831 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6832 		.subvendor    = 0x5ace,
6833 		.subdevice    = 0x6193,
6834 		.driver_data  = SAA7134_BOARD_BEHOLD_M6_EXTRA,
6835 	}, {
6836 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6837 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6838 		.subvendor    = 0x5ace,
6839 		.subdevice    = 0x6191,
6840 		.driver_data  = SAA7134_BOARD_BEHOLD_M63,
6841 	},{
6842 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6843 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6844 		.subvendor    = 0x4e42,
6845 		.subdevice    = 0x3502,
6846 		.driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
6847 	}, {
6848 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6849 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6850 		.subvendor    = 0x1822, /*Twinhan Technology Co. Ltd*/
6851 		.subdevice    = 0x0022,
6852 		.driver_data  = SAA7134_BOARD_TWINHAN_DTV_DVB_3056,
6853 	}, {
6854 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6855 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6856 		.subvendor    = 0x16be,
6857 		.subdevice    = 0x0010, /* Medion version CTX953_V.1.4.3 */
6858 		.driver_data  = SAA7134_BOARD_CREATIX_CTX953,
6859 	}, {
6860 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6861 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6862 		.subvendor    = 0x1462, /* MSI */
6863 		.subdevice    = 0x8625, /* TV@nywhere A/D v1.1 */
6864 		.driver_data  = SAA7134_BOARD_MSI_TVANYWHERE_AD11,
6865 	},{
6866 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6867 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6868 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6869 		.subdevice    = 0xf436,
6870 		.driver_data  = SAA7134_BOARD_AVERMEDIA_CARDBUS_506,
6871 	}, {
6872 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6873 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6874 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6875 		.subdevice    = 0xf936,
6876 		.driver_data  = SAA7134_BOARD_AVERMEDIA_A16D,
6877 	}, {
6878 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6879 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6880 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6881 		.subdevice    = 0xa836,
6882 		.driver_data  = SAA7134_BOARD_AVERMEDIA_M115,
6883 	}, {
6884 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6885 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6886 		.subvendor    = 0x185b,
6887 		.subdevice    = 0xc900,
6888 		.driver_data  = SAA7134_BOARD_VIDEOMATE_T750,
6889 	}, {
6890 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6891 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
6892 		.subvendor    = 0x1421,
6893 		.subdevice    = 0x0380,
6894 		.driver_data  = SAA7134_BOARD_ADS_INSTANT_HDTV_PCI,
6895 	}, {
6896 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6897 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6898 		.subvendor    = 0x5169,
6899 		.subdevice    = 0x1502,
6900 		.driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
6901 	}, {
6902 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6903 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6904 		.subvendor    = 0x5ace,
6905 		.subdevice    = 0x6290,
6906 		.driver_data  = SAA7134_BOARD_BEHOLD_H6,
6907 	}, {
6908 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6909 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6910 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6911 		.subdevice    = 0xf636,
6912 		.driver_data  = SAA7134_BOARD_AVERMEDIA_M103,
6913 	}, {
6914 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6915 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6916 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6917 		.subdevice    = 0xf736,
6918 		.driver_data  = SAA7134_BOARD_AVERMEDIA_M103,
6919 	}, {
6920 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6921 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6922 		.subvendor    = 0x1043,
6923 		.subdevice    = 0x4878, /* REV:1.02G */
6924 		.driver_data  = SAA7134_BOARD_ASUSTeK_TIGER_3IN1,
6925 	}, {
6926 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6927 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6928 		.subvendor    = 0x1043,
6929 		.subdevice    = 0x48cd,
6930 		.driver_data  = SAA7134_BOARD_ASUSTeK_PS3_100,
6931 	}, {
6932 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6933 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6934 		.subvendor    = 0x17de,
6935 		.subdevice    = 0x7128,
6936 		.driver_data  = SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG,
6937 	}, {
6938 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6939 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6940 		.subvendor    = 0x17de,
6941 		.subdevice    = 0xb136,
6942 		.driver_data  = SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG,
6943 	}, {
6944 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6945 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6946 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
6947 		.subdevice    = 0xf31d,
6948 		.driver_data  = SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS,
6949 	}, {
6950 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6951 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6952 		.subvendor    = 0x185b,
6953 		.subdevice    = 0xc900,
6954 		.driver_data  = SAA7134_BOARD_VIDEOMATE_S350,
6955 	}, {
6956 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6957 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6958 		.subvendor    = 0x5ace, /* Beholder Intl. Ltd. */
6959 		.subdevice    = 0x7595,
6960 		.driver_data  = SAA7134_BOARD_BEHOLD_X7,
6961 	}, {
6962 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6963 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6964 		.subvendor    = 0x19d1, /* RoverMedia */
6965 		.subdevice    = 0x0138, /* LifeView FlyTV Prime30 OEM */
6966 		.driver_data  = SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM,
6967 	}, {
6968 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6969 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6970 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
6971 		.subdevice    = 0x2004,
6972 		.driver_data  = SAA7134_BOARD_ZOLID_HYBRID_PCI,
6973 	}, {
6974 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6975 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6976 		.subvendor    = 0x1043,
6977 		.subdevice    = 0x4847,
6978 		.driver_data  = SAA7134_BOARD_ASUS_EUROPA_HYBRID,
6979 	}, {
6980 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6981 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6982 		.subvendor    = 0x107d,
6983 		.subdevice    = 0x6655,
6984 		.driver_data  = SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S,
6985 	}, {
6986 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6987 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6988 		.subvendor    = 0x13c2,
6989 		.subdevice    = 0x2804,
6990 		.driver_data  = SAA7134_BOARD_TECHNOTREND_BUDGET_T3000,
6991 	}, {
6992 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6993 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6994 		.subvendor    = 0x5ace, /* Beholder Intl. Ltd. */
6995 		.subdevice    = 0x7190,
6996 		.driver_data  = SAA7134_BOARD_BEHOLD_H7,
6997 	}, {
6998 		.vendor       = PCI_VENDOR_ID_PHILIPS,
6999 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7000 		.subvendor    = 0x5ace, /* Beholder Intl. Ltd. */
7001 		.subdevice    = 0x7090,
7002 		.driver_data  = SAA7134_BOARD_BEHOLD_A7,
7003 	}, {
7004 		.vendor       = PCI_VENDOR_ID_PHILIPS,
7005 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7135,
7006 		.subvendor    = 0x185b,
7007 		.subdevice    = 0xc900,
7008 		.driver_data  = SAA7134_BOARD_VIDEOMATE_M1F,
7009 	}, {
7010 		.vendor       = PCI_VENDOR_ID_PHILIPS,
7011 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7012 		.subvendor    = 0x5ace,
7013 		.subdevice    = 0x5030,
7014 		.driver_data  = SAA7134_BOARD_BEHOLD_503FM,
7015 	}, {
7016 		.vendor       = PCI_VENDOR_ID_PHILIPS,
7017 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7018 		.subvendor    = 0x5ace,
7019 		.subdevice    = 0x5010,
7020 		.driver_data  = SAA7134_BOARD_BEHOLD_501,
7021 	}, {
7022 		.vendor       = PCI_VENDOR_ID_PHILIPS,
7023 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
7024 		.subvendor    = 0x17de,
7025 		.subdevice    = 0xd136,
7026 		.driver_data  = SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2,
7027 	}, {
7028 		.vendor       = PCI_VENDOR_ID_PHILIPS,
7029 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7030 		.subvendor    = 0x6000,
7031 		.subdevice    = 0x0811,
7032 		.driver_data  = SAA7134_BOARD_SENSORAY811_911,
7033 	}, {
7034 		.vendor       = PCI_VENDOR_ID_PHILIPS,
7035 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7036 		.subvendor    = 0x6000,
7037 		.subdevice    = 0x0911,
7038 		.driver_data  = SAA7134_BOARD_SENSORAY811_911,
7039 	}, {
7040 		.vendor       = PCI_VENDOR_ID_PHILIPS,
7041 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7042 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
7043 		.subdevice    = 0x2055, /* AverTV Satellite Hybrid+FM A706 */
7044 		.driver_data  = SAA7134_BOARD_AVERMEDIA_A706,
7045 	}, {
7046 		.vendor       = PCI_VENDOR_ID_PHILIPS,
7047 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7048 		.subvendor    = 0x1905, /* WIS */
7049 		.subdevice    = 0x7007,
7050 		.driver_data  = SAA7134_BOARD_WIS_VOYAGER,
7051 	}, {
7052 		.vendor       = PCI_VENDOR_ID_PHILIPS,
7053 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7054 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
7055 		.subdevice    = 0xa10a,
7056 		.driver_data  = SAA7134_BOARD_AVERMEDIA_505,
7057 	}, {
7058 		.vendor       = PCI_VENDOR_ID_PHILIPS,
7059 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7060 		.subvendor    = 0x107d,
7061 		.subdevice    = 0x6f3a,
7062 		.driver_data  = SAA7134_BOARD_LEADTEK_WINFAST_TV2100_FM,
7063 	}, {
7064 		.vendor       = PCI_VENDOR_ID_PHILIPS,
7065 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7066 		.subvendor    = 0x1779, /* V One Multimedia PTE Ltd */
7067 		.subdevice    = 0x13cf,
7068 		.driver_data  = SAA7134_BOARD_SNAZIO_TVPVR_PRO,
7069 	}, {
7070 		.vendor       = PCI_VENDOR_ID_PHILIPS,
7071 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7072 		.subvendor    = 0x107d,
7073 		.subdevice    = 0x6f2e,
7074 		.driver_data  = SAA7134_BOARD_LEADTEK_WINFAST_HDTV200_H,
7075 	}, {
7076 		/* --- boards without eeprom + subsystem ID --- */
7077 		.vendor       = PCI_VENDOR_ID_PHILIPS,
7078 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
7079 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
7080 		.subdevice    = 0,
7081 		.driver_data  = SAA7134_BOARD_NOAUTO,
7082 	},{
7083 		.vendor       = PCI_VENDOR_ID_PHILIPS,
7084 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7085 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
7086 		.subdevice    = 0,
7087 		.driver_data  = SAA7134_BOARD_NOAUTO,
7088 	},{
7089 		/* --- default catch --- */
7090 		.vendor       = PCI_VENDOR_ID_PHILIPS,
7091 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7092 		.subvendor    = PCI_ANY_ID,
7093 		.subdevice    = PCI_ANY_ID,
7094 		.driver_data  = SAA7134_BOARD_UNKNOWN,
7095 	},{
7096 		.vendor       = PCI_VENDOR_ID_PHILIPS,
7097 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7098 		.subvendor    = PCI_ANY_ID,
7099 		.subdevice    = PCI_ANY_ID,
7100 		.driver_data  = SAA7134_BOARD_UNKNOWN,
7101 	},{
7102 		.vendor       = PCI_VENDOR_ID_PHILIPS,
7103 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
7104 		.subvendor    = PCI_ANY_ID,
7105 		.subdevice    = PCI_ANY_ID,
7106 		.driver_data  = SAA7134_BOARD_UNKNOWN,
7107 	},{
7108 		.vendor       = PCI_VENDOR_ID_PHILIPS,
7109 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7135,
7110 		.subvendor    = PCI_ANY_ID,
7111 		.subdevice    = PCI_ANY_ID,
7112 		.driver_data  = SAA7134_BOARD_UNKNOWN,
7113 	},{
7114 		/* --- end of list --- */
7115 	}
7116 };
7117 MODULE_DEVICE_TABLE(pci, saa7134_pci_tbl);
7118 
7119 /* ----------------------------------------------------------- */
7120 /* flyvideo tweaks                                             */
7121 
7122 
board_flyvideo(struct saa7134_dev * dev)7123 static void board_flyvideo(struct saa7134_dev *dev)
7124 {
7125 	pr_warn("%s: there are different flyvideo cards with different tuners\n"
7126 		"%s: out there, you might have to use the tuner=<nr> insmod\n"
7127 		"%s: option to override the default value.\n",
7128 		dev->name, dev->name, dev->name);
7129 }
7130 
saa7134_xc2028_callback(struct saa7134_dev * dev,int command,int arg)7131 static int saa7134_xc2028_callback(struct saa7134_dev *dev,
7132 				   int command, int arg)
7133 {
7134 	switch (command) {
7135 	case XC2028_TUNER_RESET:
7136 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00000000);
7137 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00008000);
7138 		switch (dev->board) {
7139 		case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
7140 		case SAA7134_BOARD_AVERMEDIA_M103:
7141 			saa7134_set_gpio(dev, 23, 0);
7142 			msleep(10);
7143 			saa7134_set_gpio(dev, 23, 1);
7144 		break;
7145 		case SAA7134_BOARD_AVERMEDIA_A16D:
7146 			saa7134_set_gpio(dev, 21, 0);
7147 			msleep(10);
7148 			saa7134_set_gpio(dev, 21, 1);
7149 		break;
7150 		case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
7151 			saa7134_set_gpio(dev, 18, 0);
7152 			msleep(10);
7153 			saa7134_set_gpio(dev, 18, 1);
7154 		break;
7155 		case SAA7134_BOARD_VIDEOMATE_T750:
7156 			saa7134_set_gpio(dev, 20, 0);
7157 			msleep(10);
7158 			saa7134_set_gpio(dev, 20, 1);
7159 		break;
7160 		}
7161 		return 0;
7162 	}
7163 	return -EINVAL;
7164 }
7165 
saa7134_xc5000_callback(struct saa7134_dev * dev,int command,int arg)7166 static int saa7134_xc5000_callback(struct saa7134_dev *dev,
7167 				   int command, int arg)
7168 {
7169 	switch (dev->board) {
7170 	case SAA7134_BOARD_BEHOLD_X7:
7171 	case SAA7134_BOARD_BEHOLD_H7:
7172 	case SAA7134_BOARD_BEHOLD_A7:
7173 		if (command == XC5000_TUNER_RESET) {
7174 		/* Down and UP pheripherial RESET pin for reset all chips */
7175 			saa_writeb(SAA7134_SPECIAL_MODE, 0x00);
7176 			msleep(10);
7177 			saa_writeb(SAA7134_SPECIAL_MODE, 0x01);
7178 			msleep(10);
7179 		}
7180 		break;
7181 	default:
7182 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x06e20000, 0x06e20000);
7183 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x06a20000, 0x06a20000);
7184 		saa_andorl(SAA7133_ANALOG_IO_SELECT >> 2, 0x02, 0x02);
7185 		saa_andorl(SAA7134_ANALOG_IN_CTRL1 >> 2, 0x81, 0x81);
7186 		saa_andorl(SAA7134_AUDIO_CLOCK0 >> 2, 0x03187de7, 0x03187de7);
7187 		saa_andorl(SAA7134_AUDIO_PLL_CTRL >> 2, 0x03, 0x03);
7188 		saa_andorl(SAA7134_AUDIO_CLOCKS_PER_FIELD0 >> 2,
7189 			   0x0001e000, 0x0001e000);
7190 		break;
7191 	}
7192 	return 0;
7193 }
7194 
saa7134_tda8290_827x_callback(struct saa7134_dev * dev,int command,int arg)7195 static int saa7134_tda8290_827x_callback(struct saa7134_dev *dev,
7196 					 int command, int arg)
7197 {
7198 	u8 sync_control;
7199 
7200 	switch (command) {
7201 	case 0: /* switch LNA gain through GPIO 22*/
7202 		saa7134_set_gpio(dev, 22, arg) ;
7203 		break;
7204 	case 1: /* vsync output at GPIO22. 50 / 60Hz */
7205 		saa_andorb(SAA7134_VIDEO_PORT_CTRL3, 0x80, 0x80);
7206 		saa_andorb(SAA7134_VIDEO_PORT_CTRL6, 0x0f, 0x03);
7207 		if (arg == 1)
7208 			sync_control = 11;
7209 		else
7210 			sync_control = 17;
7211 		saa_writeb(SAA7134_VGATE_START, sync_control);
7212 		saa_writeb(SAA7134_VGATE_STOP, sync_control + 1);
7213 		saa_andorb(SAA7134_MISC_VGATE_MSB, 0x03, 0x00);
7214 		break;
7215 	default:
7216 		return -EINVAL;
7217 	}
7218 
7219 	return 0;
7220 }
7221 
saa7134_tda18271_hvr11x0_toggle_agc(struct saa7134_dev * dev,enum tda18271_mode mode)7222 static inline int saa7134_tda18271_hvr11x0_toggle_agc(struct saa7134_dev *dev,
7223 						      enum tda18271_mode mode)
7224 {
7225 	/* toggle AGC switch through GPIO 26 */
7226 	switch (mode) {
7227 	case TDA18271_ANALOG:
7228 		saa7134_set_gpio(dev, 26, 0);
7229 		break;
7230 	case TDA18271_DIGITAL:
7231 		saa7134_set_gpio(dev, 26, 1);
7232 		break;
7233 	default:
7234 		return -EINVAL;
7235 	}
7236 	return 0;
7237 }
7238 
saa7134_kworld_sbtvd_toggle_agc(struct saa7134_dev * dev,enum tda18271_mode mode)7239 static inline int saa7134_kworld_sbtvd_toggle_agc(struct saa7134_dev *dev,
7240 						  enum tda18271_mode mode)
7241 {
7242 	/* toggle AGC switch through GPIO 27 */
7243 	switch (mode) {
7244 	case TDA18271_ANALOG:
7245 		saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0x4000);
7246 		saa_writel(SAA7134_GPIO_GPSTATUS0 >> 2, 0x4000);
7247 		msleep(20);
7248 		break;
7249 	case TDA18271_DIGITAL:
7250 		saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0x14000);
7251 		saa_writel(SAA7134_GPIO_GPSTATUS0 >> 2, 0x14000);
7252 		msleep(20);
7253 		saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0x54000);
7254 		saa_writel(SAA7134_GPIO_GPSTATUS0 >> 2, 0x54000);
7255 		msleep(30);
7256 		break;
7257 	default:
7258 		return -EINVAL;
7259 	}
7260 	return 0;
7261 }
7262 
saa7134_kworld_pc150u_toggle_agc(struct saa7134_dev * dev,enum tda18271_mode mode)7263 static int saa7134_kworld_pc150u_toggle_agc(struct saa7134_dev *dev,
7264 					    enum tda18271_mode mode)
7265 {
7266 	switch (mode) {
7267 	case TDA18271_ANALOG:
7268 		saa7134_set_gpio(dev, 18, 0);
7269 		break;
7270 	case TDA18271_DIGITAL:
7271 		saa7134_set_gpio(dev, 18, 1);
7272 		msleep(30);
7273 		break;
7274 	default:
7275 		return -EINVAL;
7276 	}
7277 	return 0;
7278 }
7279 
saa7134_leadtek_hdtv200h_toggle_agc(struct saa7134_dev * dev,enum tda18271_mode mode)7280 static int saa7134_leadtek_hdtv200h_toggle_agc(struct saa7134_dev *dev,
7281 					       enum tda18271_mode mode)
7282 {
7283 	switch (mode) {
7284 	case TDA18271_ANALOG:
7285 		saa7134_set_gpio(dev, 10, 0);
7286 		break;
7287 	case TDA18271_DIGITAL:
7288 		saa7134_set_gpio(dev, 10, 1);
7289 		break;
7290 	default:
7291 		return -EINVAL;
7292 	}
7293 	return 0;
7294 }
7295 
saa7134_tda8290_18271_callback(struct saa7134_dev * dev,int command,int arg)7296 static int saa7134_tda8290_18271_callback(struct saa7134_dev *dev,
7297 					  int command, int arg)
7298 {
7299 	int ret = 0;
7300 
7301 	switch (command) {
7302 	case TDA18271_CALLBACK_CMD_AGC_ENABLE: /* 0 */
7303 		switch (dev->board) {
7304 		case SAA7134_BOARD_HAUPPAUGE_HVR1150:
7305 		case SAA7134_BOARD_HAUPPAUGE_HVR1120:
7306 		case SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2:
7307 			ret = saa7134_tda18271_hvr11x0_toggle_agc(dev, arg);
7308 			break;
7309 		case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG:
7310 			ret = saa7134_kworld_sbtvd_toggle_agc(dev, arg);
7311 			break;
7312 		case SAA7134_BOARD_KWORLD_PC150U:
7313 			ret = saa7134_kworld_pc150u_toggle_agc(dev, arg);
7314 			break;
7315 		case SAA7134_BOARD_LEADTEK_WINFAST_HDTV200_H:
7316 			ret = saa7134_leadtek_hdtv200h_toggle_agc(dev, arg);
7317 			break;
7318 		default:
7319 			break;
7320 		}
7321 		break;
7322 	default:
7323 		ret = -EINVAL;
7324 		break;
7325 	}
7326 	return ret;
7327 }
7328 
saa7134_tda8290_callback(struct saa7134_dev * dev,int command,int arg)7329 static int saa7134_tda8290_callback(struct saa7134_dev *dev,
7330 				    int command, int arg)
7331 {
7332 	int ret;
7333 
7334 	switch (dev->board) {
7335 	case SAA7134_BOARD_HAUPPAUGE_HVR1150:
7336 	case SAA7134_BOARD_HAUPPAUGE_HVR1120:
7337 	case SAA7134_BOARD_AVERMEDIA_M733A:
7338 	case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG:
7339 	case SAA7134_BOARD_KWORLD_PC150U:
7340 	case SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2:
7341 	case SAA7134_BOARD_LEADTEK_WINFAST_HDTV200_H:
7342 		/* tda8290 + tda18271 */
7343 		ret = saa7134_tda8290_18271_callback(dev, command, arg);
7344 		break;
7345 	default:
7346 		/* tda8290 + tda827x */
7347 		ret = saa7134_tda8290_827x_callback(dev, command, arg);
7348 		break;
7349 	}
7350 	return ret;
7351 }
7352 
saa7134_tuner_callback(void * priv,int component,int command,int arg)7353 int saa7134_tuner_callback(void *priv, int component, int command, int arg)
7354 {
7355 	struct saa7134_dev *dev = priv;
7356 
7357 	if (dev != NULL) {
7358 		switch (dev->tuner_type) {
7359 		case TUNER_PHILIPS_TDA8290:
7360 			return saa7134_tda8290_callback(dev, command, arg);
7361 		case TUNER_XC2028:
7362 			return saa7134_xc2028_callback(dev, command, arg);
7363 		case TUNER_XC5000:
7364 			return saa7134_xc5000_callback(dev, command, arg);
7365 		}
7366 	} else {
7367 		pr_err("saa7134: Error - device struct undefined.\n");
7368 		return -EINVAL;
7369 	}
7370 	return -EINVAL;
7371 }
7372 EXPORT_SYMBOL(saa7134_tuner_callback);
7373 
7374 /* ----------------------------------------------------------- */
7375 
hauppauge_eeprom(struct saa7134_dev * dev,u8 * eeprom_data)7376 static void hauppauge_eeprom(struct saa7134_dev *dev, u8 *eeprom_data)
7377 {
7378 	struct tveeprom tv;
7379 
7380 	tveeprom_hauppauge_analog(&tv, eeprom_data);
7381 
7382 	/* Make sure we support the board model */
7383 	switch (tv.model) {
7384 	case 67019: /* WinTV-HVR1110 (Retail, IR Blaster, hybrid, FM, SVid/Comp, 3.5mm audio in) */
7385 	case 67109: /* WinTV-HVR1000 (Retail, IR Receive, analog, no FM, SVid/Comp, 3.5mm audio in) */
7386 	case 67201: /* WinTV-HVR1150 (Retail, IR Receive, hybrid, FM, SVid/Comp, 3.5mm audio in) */
7387 	case 67301: /* WinTV-HVR1000 (Retail, IR Receive, analog, no FM, SVid/Comp, 3.5mm audio in) */
7388 	case 67209: /* WinTV-HVR1110 (Retail, IR Receive, hybrid, FM, SVid/Comp, 3.5mm audio in) */
7389 	case 67559: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
7390 	case 67569: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM) */
7391 	case 67579: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM) */
7392 	case 67589: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
7393 	case 67599: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
7394 	case 67651: /* WinTV-HVR1150 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
7395 	case 67659: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
7396 		break;
7397 	default:
7398 		pr_warn("%s: warning: unknown hauppauge model #%d\n",
7399 			dev->name, tv.model);
7400 		break;
7401 	}
7402 
7403 	pr_info("%s: hauppauge eeprom: model=%d\n",
7404 	       dev->name, tv.model);
7405 }
7406 
7407 /* ----------------------------------------------------------- */
7408 
saa7134_board_init1(struct saa7134_dev * dev)7409 int saa7134_board_init1(struct saa7134_dev *dev)
7410 {
7411 	/* Always print gpio, often manufacturers encode tuner type and other info. */
7412 	saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0);
7413 	dev->gpio_value = saa_readl(SAA7134_GPIO_GPSTATUS0 >> 2);
7414 	pr_info("%s: board init: gpio is %x\n", dev->name, dev->gpio_value);
7415 
7416 	switch (dev->board) {
7417 	case SAA7134_BOARD_FLYVIDEO2000:
7418 	case SAA7134_BOARD_FLYVIDEO3000:
7419 	case SAA7134_BOARD_FLYVIDEO3000_NTSC:
7420 		dev->has_remote = SAA7134_REMOTE_GPIO;
7421 		board_flyvideo(dev);
7422 		break;
7423 	case SAA7134_BOARD_FLYTVPLATINUM_MINI2:
7424 	case SAA7134_BOARD_FLYTVPLATINUM_FM:
7425 	case SAA7134_BOARD_CINERGY400:
7426 	case SAA7134_BOARD_CINERGY600:
7427 	case SAA7134_BOARD_CINERGY600_MK3:
7428 	case SAA7134_BOARD_ECS_TVP3XP:
7429 	case SAA7134_BOARD_ECS_TVP3XP_4CB5:
7430 	case SAA7134_BOARD_ECS_TVP3XP_4CB6:
7431 	case SAA7134_BOARD_MD2819:
7432 	case SAA7134_BOARD_KWORLD_VSTREAM_XPERT:
7433 	case SAA7134_BOARD_KWORLD_XPERT:
7434 	case SAA7134_BOARD_AVERMEDIA_STUDIO_305:
7435 	case SAA7134_BOARD_AVERMEDIA_305:
7436 	case SAA7134_BOARD_AVERMEDIA_STUDIO_505:
7437 	case SAA7134_BOARD_AVERMEDIA_505:
7438 	case SAA7134_BOARD_AVERMEDIA_STUDIO_307:
7439 	case SAA7134_BOARD_AVERMEDIA_307:
7440 	case SAA7134_BOARD_AVERMEDIA_STUDIO_507:
7441 	case SAA7134_BOARD_AVERMEDIA_GO_007_FM:
7442 	case SAA7134_BOARD_AVERMEDIA_777:
7443 	case SAA7134_BOARD_AVERMEDIA_M135A:
7444 /*      case SAA7134_BOARD_SABRENT_SBTTVFM:  */ /* not finished yet */
7445 	case SAA7134_BOARD_VIDEOMATE_TV_PVR:
7446 	case SAA7134_BOARD_VIDEOMATE_GOLD_PLUS:
7447 	case SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII:
7448 	case SAA7134_BOARD_VIDEOMATE_M1F:
7449 	case SAA7134_BOARD_VIDEOMATE_DVBT_300:
7450 	case SAA7134_BOARD_VIDEOMATE_DVBT_200:
7451 	case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
7452 	case SAA7134_BOARD_MANLI_MTV001:
7453 	case SAA7134_BOARD_MANLI_MTV002:
7454 	case SAA7134_BOARD_BEHOLD_409FM:
7455 	case SAA7134_BOARD_AVACSSMARTTV:
7456 	case SAA7134_BOARD_GOTVIEW_7135:
7457 	case SAA7134_BOARD_KWORLD_TERMINATOR:
7458 	case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS:
7459 	case SAA7134_BOARD_FLYDVBT_LR301:
7460 	case SAA7134_BOARD_ASUSTeK_PS3_100:
7461 	case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
7462 	case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
7463 	case SAA7134_BOARD_ASUSTeK_P7131_ANALOG:
7464 	case SAA7134_BOARD_FLYDVBTDUO:
7465 	case SAA7134_BOARD_PROTEUS_2309:
7466 	case SAA7134_BOARD_AVERMEDIA_A16AR:
7467 	case SAA7134_BOARD_ENCORE_ENLTV:
7468 	case SAA7134_BOARD_ENCORE_ENLTV_FM:
7469 	case SAA7134_BOARD_ENCORE_ENLTV_FM53:
7470 	case SAA7134_BOARD_ENCORE_ENLTV_FM3:
7471 	case SAA7134_BOARD_10MOONSTVMASTER3:
7472 	case SAA7134_BOARD_BEHOLD_401:
7473 	case SAA7134_BOARD_BEHOLD_403:
7474 	case SAA7134_BOARD_BEHOLD_403FM:
7475 	case SAA7134_BOARD_BEHOLD_405:
7476 	case SAA7134_BOARD_BEHOLD_405FM:
7477 	case SAA7134_BOARD_BEHOLD_407:
7478 	case SAA7134_BOARD_BEHOLD_407FM:
7479 	case SAA7134_BOARD_BEHOLD_409:
7480 	case SAA7134_BOARD_BEHOLD_505FM:
7481 	case SAA7134_BOARD_BEHOLD_505RDS_MK5:
7482 	case SAA7134_BOARD_BEHOLD_505RDS_MK3:
7483 	case SAA7134_BOARD_BEHOLD_507_9FM:
7484 	case SAA7134_BOARD_BEHOLD_507RDS_MK3:
7485 	case SAA7134_BOARD_BEHOLD_507RDS_MK5:
7486 	case SAA7134_BOARD_GENIUS_TVGO_A11MCE:
7487 	case SAA7134_BOARD_REAL_ANGEL_220:
7488 	case SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG:
7489 	case SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS:
7490 	case SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM:
7491 	case SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S:
7492 	case SAA7134_BOARD_LEADTEK_WINFAST_TV2100_FM:
7493 		dev->has_remote = SAA7134_REMOTE_GPIO;
7494 		break;
7495 	case SAA7134_BOARD_FLYDVBS_LR300:
7496 		saa_writeb(SAA7134_GPIO_GPMODE3, 0x80);
7497 		saa_writeb(SAA7134_GPIO_GPSTATUS2, 0x40);
7498 		dev->has_remote = SAA7134_REMOTE_GPIO;
7499 		break;
7500 	case SAA7134_BOARD_MD5044:
7501 		pr_warn("%s: seems there are two different versions of the MD5044\n"
7502 			"%s: (with the same ID) out there.  If sound doesn't work for\n"
7503 			"%s: you try the audio_clock_override=0x200000 insmod option.\n",
7504 			dev->name, dev->name, dev->name);
7505 		break;
7506 	case SAA7134_BOARD_CINERGY400_CARDBUS:
7507 		/* power-up tuner chip */
7508 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00040000, 0x00040000);
7509 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000000);
7510 		break;
7511 	case SAA7134_BOARD_PINNACLE_300I_DVBT_PAL:
7512 		/* this turns the remote control chip off to work around a bug in it */
7513 		saa_writeb(SAA7134_GPIO_GPMODE1, 0x80);
7514 		saa_writeb(SAA7134_GPIO_GPSTATUS1, 0x80);
7515 		break;
7516 	case SAA7134_BOARD_MONSTERTV_MOBILE:
7517 		/* power-up tuner chip */
7518 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00040000, 0x00040000);
7519 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000004);
7520 		break;
7521 	case SAA7134_BOARD_FLYDVBT_DUO_CARDBUS:
7522 		/* turn the fan on */
7523 		saa_writeb(SAA7134_GPIO_GPMODE3, 0x08);
7524 		saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06);
7525 		break;
7526 	case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
7527 	case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
7528 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x08000000, 0x08000000);
7529 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08000000, 0x00000000);
7530 		break;
7531 	case SAA7134_BOARD_AVERMEDIA_CARDBUS:
7532 	case SAA7134_BOARD_AVERMEDIA_M115:
7533 		/* power-down tuner chip */
7534 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0xffffffff, 0);
7535 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0);
7536 		msleep(10);
7537 		/* power-up tuner chip */
7538 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0xffffffff, 0xffffffff);
7539 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff);
7540 		msleep(10);
7541 		break;
7542 	case SAA7134_BOARD_AVERMEDIA_CARDBUS_501:
7543 		/* power-down tuner chip */
7544 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x08400000, 0x08400000);
7545 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08400000, 0);
7546 		msleep(10);
7547 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x08400000, 0x08400000);
7548 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08400000, 0x08400000);
7549 		msleep(10);
7550 		dev->has_remote = SAA7134_REMOTE_I2C;
7551 		break;
7552 	case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
7553 		saa7134_set_gpio(dev, 23, 0);
7554 		msleep(10);
7555 		saa7134_set_gpio(dev, 23, 1);
7556 		dev->has_remote = SAA7134_REMOTE_I2C;
7557 		break;
7558 	case SAA7134_BOARD_AVERMEDIA_M103:
7559 		saa7134_set_gpio(dev, 23, 0);
7560 		msleep(10);
7561 		saa7134_set_gpio(dev, 23, 1);
7562 		break;
7563 	case SAA7134_BOARD_AVERMEDIA_A16D:
7564 		saa7134_set_gpio(dev, 21, 0);
7565 		msleep(10);
7566 		saa7134_set_gpio(dev, 21, 1);
7567 		msleep(1);
7568 		dev->has_remote = SAA7134_REMOTE_GPIO;
7569 		break;
7570 	case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
7571 		/* power-down tuner chip */
7572 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x000A8004, 0x000A8004);
7573 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x000A8004, 0);
7574 		msleep(10);
7575 		/* power-up tuner chip */
7576 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x000A8004, 0x000A8004);
7577 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x000A8004, 0x000A8004);
7578 		msleep(10);
7579 		/* remote via GPIO */
7580 		dev->has_remote = SAA7134_REMOTE_GPIO;
7581 		break;
7582 	case SAA7134_BOARD_RTD_VFG7350:
7583 
7584 		/*
7585 		 * Make sure Production Test Register at offset 0x1D1 is cleared
7586 		 * to take chip out of test mode.  Clearing bit 4 (TST_EN_AOUT)
7587 		 * prevents pin 105 from remaining low; keeping pin 105 low
7588 		 * continually resets the SAA6752 chip.
7589 		 */
7590 
7591 		saa_writeb (SAA7134_PRODUCTION_TEST_MODE, 0x00);
7592 		break;
7593 	case SAA7134_BOARD_HAUPPAUGE_HVR1150:
7594 	case SAA7134_BOARD_HAUPPAUGE_HVR1120:
7595 		dev->has_remote = SAA7134_REMOTE_GPIO;
7596 		/* GPIO 26 high for digital, low for analog */
7597 		saa7134_set_gpio(dev, 26, 0);
7598 		msleep(1);
7599 
7600 		saa7134_set_gpio(dev, 22, 0);
7601 		msleep(10);
7602 		saa7134_set_gpio(dev, 22, 1);
7603 		break;
7604 	/* i2c remotes */
7605 	case SAA7134_BOARD_PINNACLE_PCTV_110i:
7606 	case SAA7134_BOARD_PINNACLE_PCTV_310i:
7607 	case SAA7134_BOARD_UPMOST_PURPLE_TV:
7608 	case SAA7134_BOARD_MSI_TVATANYWHERE_PLUS:
7609 	case SAA7134_BOARD_HAUPPAUGE_HVR1110:
7610 	case SAA7134_BOARD_BEHOLD_607FM_MK3:
7611 	case SAA7134_BOARD_BEHOLD_607FM_MK5:
7612 	case SAA7134_BOARD_BEHOLD_609FM_MK3:
7613 	case SAA7134_BOARD_BEHOLD_609FM_MK5:
7614 	case SAA7134_BOARD_BEHOLD_607RDS_MK3:
7615 	case SAA7134_BOARD_BEHOLD_607RDS_MK5:
7616 	case SAA7134_BOARD_BEHOLD_609RDS_MK3:
7617 	case SAA7134_BOARD_BEHOLD_609RDS_MK5:
7618 	case SAA7134_BOARD_BEHOLD_M6:
7619 	case SAA7134_BOARD_BEHOLD_M63:
7620 	case SAA7134_BOARD_BEHOLD_M6_EXTRA:
7621 	case SAA7134_BOARD_BEHOLD_H6:
7622 	case SAA7134_BOARD_BEHOLD_X7:
7623 	case SAA7134_BOARD_BEHOLD_H7:
7624 	case SAA7134_BOARD_BEHOLD_A7:
7625 	case SAA7134_BOARD_KWORLD_PC150U:
7626 	case SAA7134_BOARD_SNAZIO_TVPVR_PRO:
7627 		dev->has_remote = SAA7134_REMOTE_I2C;
7628 		break;
7629 	case SAA7134_BOARD_AVERMEDIA_A169_B:
7630 		pr_warn("%s: %s: dual saa713x broadcast decoders\n"
7631 			"%s: Sorry, none of the inputs to this chip are supported yet.\n"
7632 			"%s: Dual decoder functionality is disabled for now, use the other chip.\n",
7633 			dev->name, card(dev).name, dev->name, dev->name);
7634 		break;
7635 	case SAA7134_BOARD_AVERMEDIA_M102:
7636 		/* enable tuner */
7637 	       dev->has_remote = SAA7134_REMOTE_GPIO;
7638 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x8c040007, 0x8c040007);
7639 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0c0007cd, 0x0c0007cd);
7640 		break;
7641 	case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
7642 	case SAA7134_BOARD_AVERMEDIA_A700_PRO:
7643 		/* write windows gpio values */
7644 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x80040100, 0x80040100);
7645 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x80040100, 0x00040100);
7646 		break;
7647 	case SAA7134_BOARD_AVERMEDIA_A706:
7648 		/* radio antenna select: tristate both as in Windows driver */
7649 		saa7134_set_gpio(dev, 12, 3);	/* TV antenna */
7650 		saa7134_set_gpio(dev, 13, 3);	/* FM antenna */
7651 		dev->has_remote = SAA7134_REMOTE_I2C;
7652 		/*
7653 		 * Disable CE5039 DVB-S tuner now (SLEEP pin high) to prevent
7654 		 * it from interfering with analog tuner detection
7655 		 */
7656 		saa7134_set_gpio(dev, 23, 1);
7657 		break;
7658 	case SAA7134_BOARD_VIDEOMATE_S350:
7659 		dev->has_remote = SAA7134_REMOTE_GPIO;
7660 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x0000C000, 0x0000C000);
7661 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0000C000, 0x0000C000);
7662 		break;
7663 	case SAA7134_BOARD_AVERMEDIA_M733A:
7664 		saa7134_set_gpio(dev, 1, 1);
7665 		msleep(10);
7666 		saa7134_set_gpio(dev, 1, 0);
7667 		msleep(10);
7668 		saa7134_set_gpio(dev, 1, 1);
7669 		dev->has_remote = SAA7134_REMOTE_GPIO;
7670 		break;
7671 	case SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2:
7672 		/* enable LGS-8G75 */
7673 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x0e050000, 0x0c050000);
7674 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0e050000, 0x0c050000);
7675 		break;
7676 	case SAA7134_BOARD_VIDEOMATE_T750:
7677 		/* enable the analog tuner */
7678 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00008000, 0x00008000);
7679 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00008000);
7680 		break;
7681 	}
7682 	return 0;
7683 }
7684 
saa7134_tuner_setup(struct saa7134_dev * dev)7685 static void saa7134_tuner_setup(struct saa7134_dev *dev)
7686 {
7687 	struct tuner_setup tun_setup;
7688 	unsigned int mode_mask = T_RADIO | T_ANALOG_TV;
7689 
7690 	memset(&tun_setup, 0, sizeof(tun_setup));
7691 	tun_setup.tuner_callback = saa7134_tuner_callback;
7692 
7693 	if (saa7134_boards[dev->board].radio_type != UNSET) {
7694 		tun_setup.type = saa7134_boards[dev->board].radio_type;
7695 		tun_setup.addr = saa7134_boards[dev->board].radio_addr;
7696 
7697 		tun_setup.mode_mask = T_RADIO;
7698 
7699 		saa_call_all(dev, tuner, s_type_addr, &tun_setup);
7700 		mode_mask &= ~T_RADIO;
7701 	}
7702 
7703 	if ((dev->tuner_type != TUNER_ABSENT) && (dev->tuner_type != UNSET)) {
7704 		tun_setup.type = dev->tuner_type;
7705 		tun_setup.addr = dev->tuner_addr;
7706 		tun_setup.config = &saa7134_boards[dev->board].tda829x_conf;
7707 		tun_setup.tuner_callback = saa7134_tuner_callback;
7708 
7709 		tun_setup.mode_mask = mode_mask;
7710 
7711 		saa_call_all(dev, tuner, s_type_addr, &tun_setup);
7712 	}
7713 
7714 	if (dev->tda9887_conf) {
7715 		struct v4l2_priv_tun_config tda9887_cfg;
7716 
7717 		tda9887_cfg.tuner = TUNER_TDA9887;
7718 		tda9887_cfg.priv = &dev->tda9887_conf;
7719 
7720 		saa_call_all(dev, tuner, s_config, &tda9887_cfg);
7721 	}
7722 
7723 	if (dev->tuner_type == TUNER_XC2028) {
7724 		struct v4l2_priv_tun_config  xc2028_cfg;
7725 		struct xc2028_ctrl           ctl;
7726 
7727 		memset(&xc2028_cfg, 0, sizeof(xc2028_cfg));
7728 		memset(&ctl, 0, sizeof(ctl));
7729 
7730 		ctl.fname   = XC2028_DEFAULT_FIRMWARE;
7731 		ctl.max_len = 64;
7732 
7733 		switch (dev->board) {
7734 		case SAA7134_BOARD_AVERMEDIA_A16D:
7735 		case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
7736 		case SAA7134_BOARD_AVERMEDIA_M103:
7737 		case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
7738 			ctl.demod = XC3028_FE_ZARLINK456;
7739 			break;
7740 		default:
7741 			ctl.demod = XC3028_FE_OREN538;
7742 			ctl.mts = 1;
7743 		}
7744 
7745 		xc2028_cfg.tuner = TUNER_XC2028;
7746 		xc2028_cfg.priv  = &ctl;
7747 
7748 		saa_call_all(dev, tuner, s_config, &xc2028_cfg);
7749 	}
7750 }
7751 
7752 /* stuff which needs working i2c */
saa7134_board_init2(struct saa7134_dev * dev)7753 int saa7134_board_init2(struct saa7134_dev *dev)
7754 {
7755 	unsigned char buf;
7756 	int board;
7757 
7758 	/* Put here the code that enables the chips that are needed
7759 	   for analog mode and doesn't depend on the tuner attachment.
7760 	   It is also a good idea to get tuner type from eeprom, etc before
7761 	   initializing tuner, since we can avoid loading tuner driver
7762 	   on devices that has TUNER_ABSENT
7763 	 */
7764 	switch (dev->board) {
7765 	case SAA7134_BOARD_BMK_MPEX_NOTUNER:
7766 	case SAA7134_BOARD_BMK_MPEX_TUNER:
7767 		/* Checks if the device has a tuner at 0x60 addr
7768 		   If the device doesn't have a tuner, TUNER_ABSENT
7769 		   will be used at tuner_type, avoiding loading tuner
7770 		   without needing it
7771 		 */
7772 		dev->i2c_client.addr = 0x60;
7773 		board = (i2c_master_recv(&dev->i2c_client, &buf, 0) < 0)
7774 			? SAA7134_BOARD_BMK_MPEX_NOTUNER
7775 			: SAA7134_BOARD_BMK_MPEX_TUNER;
7776 		if (board == dev->board)
7777 			break;
7778 		dev->board = board;
7779 		pr_warn("%s: board type fixup: %s\n", dev->name,
7780 		saa7134_boards[dev->board].name);
7781 		dev->tuner_type = saa7134_boards[dev->board].tuner_type;
7782 
7783 		break;
7784 	case SAA7134_BOARD_MD7134:
7785 	{
7786 		u8 subaddr;
7787 		u8 data[3], data1[] = { 0x09, 0x9f, 0x86, 0x11};
7788 		int ret, tuner_t;
7789 		struct i2c_msg msg[] = {{.addr = 0x50, .flags = 0, .buf = &subaddr, .len = 1},
7790 					{.addr = 0x50, .flags = I2C_M_RD, .buf = data, .len = 3}},
7791 				msg1 = {.addr = 0x61, .flags = 0, .buf = data1, .len = sizeof(data1)};
7792 
7793 		subaddr= 0x14;
7794 		tuner_t = 0;
7795 
7796 		/* Retrieve device data from eeprom, checking for the
7797 		   proper tuner_type.
7798 		 */
7799 		ret = i2c_transfer(&dev->i2c_adap, msg, 2);
7800 		if (ret != 2) {
7801 			pr_err("EEPROM read failure\n");
7802 		} else if ((data[0] != 0) && (data[0] != 0xff)) {
7803 			/* old config structure */
7804 			subaddr = data[0] + 2;
7805 			msg[1].len = 2;
7806 			i2c_transfer(&dev->i2c_adap, msg, 2);
7807 			tuner_t = (data[0] << 8) + data[1];
7808 			switch (tuner_t){
7809 			case 0x0103:
7810 				dev->tuner_type = TUNER_PHILIPS_PAL;
7811 				break;
7812 			case 0x010C:
7813 				dev->tuner_type = TUNER_PHILIPS_FM1216ME_MK3;
7814 				break;
7815 			default:
7816 				pr_err("%s Can't determine tuner type %x from EEPROM\n",
7817 				       dev->name, tuner_t);
7818 			}
7819 		} else if ((data[1] != 0) && (data[1] != 0xff)) {
7820 			/* new config structure */
7821 			subaddr = data[1] + 1;
7822 			msg[1].len = 1;
7823 			i2c_transfer(&dev->i2c_adap, msg, 2);
7824 			subaddr = data[0] + 1;
7825 			msg[1].len = 2;
7826 			i2c_transfer(&dev->i2c_adap, msg, 2);
7827 			tuner_t = (data[1] << 8) + data[0];
7828 			switch (tuner_t) {
7829 			case 0x0005:
7830 				dev->tuner_type = TUNER_PHILIPS_FM1216ME_MK3;
7831 				break;
7832 			case 0x001d:
7833 				dev->tuner_type = TUNER_PHILIPS_FMD1216ME_MK3;
7834 				pr_info("%s Board has DVB-T\n",
7835 				       dev->name);
7836 				break;
7837 			default:
7838 				pr_err("%s Can't determine tuner type %x from EEPROM\n",
7839 				       dev->name, tuner_t);
7840 			}
7841 		} else {
7842 			pr_err("%s unexpected config structure\n", dev->name);
7843 		}
7844 
7845 		pr_info("%s Tuner type is %d\n", dev->name, dev->tuner_type);
7846 
7847 		/* The tuner TUNER_PHILIPS_FMD1216ME_MK3 after hardware    */
7848 		/* start has disabled IF and enabled DVB-T. When saa7134   */
7849 		/* scan I2C devices it will not detect IF tda9887 and can`t*/
7850 		/* watch TV without software reboot. To solve this problem */
7851 		/* switch the tuner to analog TV mode manually.            */
7852 		if (dev->tuner_type == TUNER_PHILIPS_FMD1216ME_MK3) {
7853 			if (i2c_transfer(&dev->i2c_adap, &msg1, 1) != 1)
7854 				printk(KERN_WARNING "%s: Unable to enable IF of the tuner.\n", dev->name);
7855 		}
7856 		break;
7857 	}
7858 	case SAA7134_BOARD_PHILIPS_EUROPA:
7859 		if (dev->autodetected && (dev->eedata[0x41] == 0x1c)) {
7860 			/* Reconfigure board as Snake reference design */
7861 			dev->board = SAA7134_BOARD_PHILIPS_SNAKE;
7862 			dev->tuner_type = saa7134_boards[dev->board].tuner_type;
7863 			pr_info("%s: Reconfigured board as %s\n",
7864 				dev->name, saa7134_boards[dev->board].name);
7865 			break;
7866 		}
7867 		fallthrough;
7868 	case SAA7134_BOARD_VIDEOMATE_DVBT_300:
7869 	case SAA7134_BOARD_ASUS_EUROPA2_HYBRID:
7870 	case SAA7134_BOARD_ASUS_EUROPA_HYBRID:
7871 	case SAA7134_BOARD_TECHNOTREND_BUDGET_T3000:
7872 	{
7873 
7874 		/* The Philips EUROPA based hybrid boards have the tuner
7875 		   connected through the channel decoder. We have to make it
7876 		   transparent to find it
7877 		 */
7878 		u8 data[] = { 0x07, 0x02};
7879 		struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
7880 		i2c_transfer(&dev->i2c_adap, &msg, 1);
7881 
7882 		break;
7883 	}
7884 	case SAA7134_BOARD_PHILIPS_TIGER:
7885 	case SAA7134_BOARD_PHILIPS_TIGER_S:
7886 	{
7887 		u8 data[] = { 0x3c, 0x33, 0x60};
7888 		struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
7889 		if (dev->autodetected && (dev->eedata[0x49] == 0x50)) {
7890 			dev->board = SAA7134_BOARD_PHILIPS_TIGER_S;
7891 			pr_info("%s: Reconfigured board as %s\n",
7892 				dev->name, saa7134_boards[dev->board].name);
7893 		}
7894 		if (dev->board == SAA7134_BOARD_PHILIPS_TIGER_S) {
7895 			dev->tuner_type = TUNER_PHILIPS_TDA8290;
7896 
7897 			data[2] = 0x68;
7898 			i2c_transfer(&dev->i2c_adap, &msg, 1);
7899 			break;
7900 		}
7901 		i2c_transfer(&dev->i2c_adap, &msg, 1);
7902 		break;
7903 	}
7904 	case SAA7134_BOARD_ASUSTeK_TVFM7135:
7905 	/* The card below is detected as card=53, but is different */
7906 	       if (dev->autodetected && (dev->eedata[0x27] == 0x03)) {
7907 			dev->board = SAA7134_BOARD_ASUSTeK_P7131_ANALOG;
7908 			pr_info("%s: P7131 analog only, using entry of %s\n",
7909 				dev->name, saa7134_boards[dev->board].name);
7910 
7911 			/*
7912 			 * IR init has already happened for other cards, so
7913 			 * we have to catch up.
7914 			 */
7915 			dev->has_remote = SAA7134_REMOTE_GPIO;
7916 			saa7134_input_init1(dev);
7917 	       }
7918 	       break;
7919 	case SAA7134_BOARD_HAUPPAUGE_HVR1150:
7920 	case SAA7134_BOARD_HAUPPAUGE_HVR1120:
7921 		hauppauge_eeprom(dev, dev->eedata+0x80);
7922 		break;
7923 	case SAA7134_BOARD_HAUPPAUGE_HVR1110:
7924 		hauppauge_eeprom(dev, dev->eedata+0x80);
7925 		fallthrough;
7926 	case SAA7134_BOARD_PINNACLE_PCTV_310i:
7927 	case SAA7134_BOARD_KWORLD_DVBT_210:
7928 	case SAA7134_BOARD_TEVION_DVBT_220RF:
7929 	case SAA7134_BOARD_ASUSTeK_TIGER:
7930 	case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
7931 	case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
7932 	case SAA7134_BOARD_MEDION_MD8800_QUADRO:
7933 	case SAA7134_BOARD_AVERMEDIA_SUPER_007:
7934 	case SAA7134_BOARD_TWINHAN_DTV_DVB_3056:
7935 	case SAA7134_BOARD_CREATIX_CTX953:
7936 	{
7937 		/* this is a hybrid board, initialize to analog mode
7938 		 * and configure firmware eeprom address
7939 		 */
7940 		u8 data[] = { 0x3c, 0x33, 0x60};
7941 		struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
7942 		i2c_transfer(&dev->i2c_adap, &msg, 1);
7943 		break;
7944 	}
7945 	case SAA7134_BOARD_ASUSTeK_TIGER_3IN1:
7946 	{
7947 		u8 data[] = { 0x3c, 0x33, 0x60};
7948 		struct i2c_msg msg = {.addr = 0x0b, .flags = 0, .buf = data,
7949 							.len = sizeof(data)};
7950 		i2c_transfer(&dev->i2c_adap, &msg, 1);
7951 		break;
7952 	}
7953 	case SAA7134_BOARD_ASUSTeK_PS3_100:
7954 	{
7955 		u8 data[] = { 0x3c, 0x33, 0x60};
7956 		struct i2c_msg msg = {.addr = 0x0b, .flags = 0, .buf = data,
7957 						       .len = sizeof(data)};
7958 		i2c_transfer(&dev->i2c_adap, &msg, 1);
7959 		break;
7960 	}
7961 	case SAA7134_BOARD_FLYDVB_TRIO:
7962 	{
7963 		u8 temp = 0;
7964 		int rc;
7965 		u8 data[] = { 0x3c, 0x33, 0x62};
7966 		struct i2c_msg msg = {.addr=0x09, .flags=0, .buf=data, .len = sizeof(data)};
7967 		i2c_transfer(&dev->i2c_adap, &msg, 1);
7968 
7969 		/*
7970 		 * send weak up message to pic16C505 chip
7971 		 * @ LifeView FlyDVB Trio
7972 		 */
7973 		msg.buf = &temp;
7974 		msg.addr = 0x0b;
7975 		msg.len = 1;
7976 		if (1 != i2c_transfer(&dev->i2c_adap, &msg, 1)) {
7977 			pr_warn("%s: send wake up byte to pic16C505(IR chip) failed\n",
7978 				dev->name);
7979 		} else {
7980 			msg.flags = I2C_M_RD;
7981 			rc = i2c_transfer(&dev->i2c_adap, &msg, 1);
7982 			pr_info("%s: probe IR chip @ i2c 0x%02x: %s\n",
7983 				   dev->name, msg.addr,
7984 				   (1 == rc) ? "yes" : "no");
7985 			if (rc == 1)
7986 				dev->has_remote = SAA7134_REMOTE_I2C;
7987 		}
7988 		break;
7989 	}
7990 	case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
7991 	case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
7992 	{
7993 		/* initialize analog mode  */
7994 		u8 data[] = { 0x3c, 0x33, 0x6a};
7995 		struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
7996 		i2c_transfer(&dev->i2c_adap, &msg, 1);
7997 		break;
7998 	}
7999 	case SAA7134_BOARD_CINERGY_HT_PCMCIA:
8000 	case SAA7134_BOARD_CINERGY_HT_PCI:
8001 	{
8002 		/* initialize analog mode */
8003 		u8 data[] = { 0x3c, 0x33, 0x68};
8004 		struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
8005 		i2c_transfer(&dev->i2c_adap, &msg, 1);
8006 		break;
8007 	}
8008 	case SAA7134_BOARD_VIDEOMATE_DVBT_200:
8009 	case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
8010 		/* The T200 and the T200A share the same pci id.  Consequently,
8011 		 * we are going to query eeprom to try to find out which one we
8012 		 * are actually looking at. */
8013 
8014 		/* Don't do this if the board was specifically selected with an
8015 		 * insmod option or if we have the default configuration T200*/
8016 		if (!dev->autodetected || (dev->eedata[0x41] == 0xd0))
8017 			break;
8018 		if (dev->eedata[0x41] == 0x02) {
8019 			/* Reconfigure board  as T200A */
8020 			dev->board = SAA7134_BOARD_VIDEOMATE_DVBT_200A;
8021 			dev->tuner_type   = saa7134_boards[dev->board].tuner_type;
8022 			dev->tda9887_conf = saa7134_boards[dev->board].tda9887_conf;
8023 			pr_info("%s: Reconfigured board as %s\n",
8024 				dev->name, saa7134_boards[dev->board].name);
8025 		} else {
8026 			pr_warn("%s: Unexpected tuner type info: %x in eeprom\n",
8027 				dev->name, dev->eedata[0x41]);
8028 			break;
8029 		}
8030 		break;
8031 	case SAA7134_BOARD_ADS_INSTANT_HDTV_PCI:
8032 	case SAA7134_BOARD_KWORLD_ATSC110:
8033 	{
8034 		struct i2c_msg msg = { .addr = 0x0a, .flags = 0 };
8035 		int i;
8036 		static u8 buffer[][2] = {
8037 			{ 0x10, 0x12 },
8038 			{ 0x13, 0x04 },
8039 			{ 0x16, 0x00 },
8040 			{ 0x14, 0x04 },
8041 			{ 0x17, 0x00 },
8042 		};
8043 
8044 		for (i = 0; i < ARRAY_SIZE(buffer); i++) {
8045 			msg.buf = &buffer[i][0];
8046 			msg.len = ARRAY_SIZE(buffer[0]);
8047 			if (i2c_transfer(&dev->i2c_adap, &msg, 1) != 1)
8048 				pr_warn("%s: Unable to enable tuner(%i).\n",
8049 					dev->name, i);
8050 		}
8051 		break;
8052 	}
8053 	case SAA7134_BOARD_BEHOLD_H6:
8054 	{
8055 		u8 data[] = { 0x09, 0x9f, 0x86, 0x11};
8056 		struct i2c_msg msg = {.addr = 0x61, .flags = 0, .buf = data,
8057 							.len = sizeof(data)};
8058 
8059 		/* The tuner TUNER_PHILIPS_FMD1216MEX_MK3 after hardware    */
8060 		/* start has disabled IF and enabled DVB-T. When saa7134    */
8061 		/* scan I2C devices it not detect IF tda9887 and can`t      */
8062 		/* watch TV without software reboot. For solve this problem */
8063 		/* switch the tuner to analog TV mode manually.             */
8064 		if (i2c_transfer(&dev->i2c_adap, &msg, 1) != 1)
8065 			pr_warn("%s: Unable to enable IF of the tuner.\n",
8066 				dev->name);
8067 		break;
8068 	}
8069 	case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG:
8070 		saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0x4000);
8071 		saa_writel(SAA7134_GPIO_GPSTATUS0 >> 2, 0x4000);
8072 
8073 		saa7134_set_gpio(dev, 27, 0);
8074 		break;
8075 	} /* switch() */
8076 
8077 	/* initialize tuner (don't do this when resuming) */
8078 	if (!dev->insuspend && TUNER_ABSENT != dev->tuner_type) {
8079 		int has_demod = (dev->tda9887_conf & TDA9887_PRESENT);
8080 
8081 		/* Note: radio tuner address is always filled in,
8082 		   so we do not need to probe for a radio tuner device. */
8083 		if (dev->radio_type != UNSET)
8084 			v4l2_i2c_new_subdev(&dev->v4l2_dev,
8085 				&dev->i2c_adap, "tuner",
8086 				dev->radio_addr, NULL);
8087 		if (has_demod)
8088 			v4l2_i2c_new_subdev(&dev->v4l2_dev,
8089 				&dev->i2c_adap, "tuner",
8090 				0, v4l2_i2c_tuner_addrs(ADDRS_DEMOD));
8091 		if (dev->tuner_addr == ADDR_UNSET) {
8092 			enum v4l2_i2c_tuner_type type =
8093 				has_demod ? ADDRS_TV_WITH_DEMOD : ADDRS_TV;
8094 
8095 			v4l2_i2c_new_subdev(&dev->v4l2_dev,
8096 				&dev->i2c_adap, "tuner",
8097 				0, v4l2_i2c_tuner_addrs(type));
8098 		} else {
8099 			v4l2_i2c_new_subdev(&dev->v4l2_dev,
8100 				&dev->i2c_adap, "tuner",
8101 				dev->tuner_addr, NULL);
8102 		}
8103 	}
8104 
8105 	saa7134_tuner_setup(dev);
8106 
8107 	switch (dev->board) {
8108 	case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
8109 	case SAA7134_BOARD_AVERMEDIA_CARDBUS_501:
8110 	{
8111 		struct v4l2_priv_tun_config tea5767_cfg;
8112 		struct tea5767_ctrl ctl;
8113 
8114 		dev->i2c_client.addr = 0xC0;
8115 		/* set TEA5767(analog FM) defines */
8116 		memset(&ctl, 0, sizeof(ctl));
8117 		ctl.xtal_freq = TEA5767_HIGH_LO_13MHz;
8118 		tea5767_cfg.tuner = TUNER_TEA5767;
8119 		tea5767_cfg.priv  = &ctl;
8120 		saa_call_all(dev, tuner, s_config, &tea5767_cfg);
8121 		break;
8122 	}
8123 	} /* switch() */
8124 
8125 	return 0;
8126 }
8127