• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *
3  * device driver for philips saa7134 based TV cards
4  * card-specific stuff.
5  *
6  * (c) 2001-04 Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]
7  *
8  *  This program is free software; you can redistribute it and/or modify
9  *  it under the terms of the GNU General Public License as published by
10  *  the Free Software Foundation; either version 2 of the License, or
11  *  (at your option) any later version.
12  *
13  *  This program is distributed in the hope that it will be useful,
14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  *  GNU General Public License for more details.
17  *
18  *  You should have received a copy of the GNU General Public License
19  *  along with this program; if not, write to the Free Software
20  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21  */
22 
23 #include <linux/init.h>
24 #include <linux/module.h>
25 #include <linux/i2c.h>
26 #include <linux/i2c-algo-bit.h>
27 
28 #include "saa7134-reg.h"
29 #include "saa7134.h"
30 #include "tuner-xc2028.h"
31 #include <media/v4l2-common.h>
32 #include <media/tveeprom.h>
33 #include "tea5767.h"
34 
35 /* commly used strings */
36 static char name_mute[]    = "mute";
37 static char name_radio[]   = "Radio";
38 static char name_tv[]      = "Television";
39 static char name_tv_mono[] = "TV (mono only)";
40 static char name_comp[]    = "Composite";
41 static char name_comp1[]   = "Composite1";
42 static char name_comp2[]   = "Composite2";
43 static char name_comp3[]   = "Composite3";
44 static char name_comp4[]   = "Composite4";
45 static char name_svideo[]  = "S-Video";
46 
47 /* ------------------------------------------------------------------ */
48 /* board config info                                                  */
49 
50 /* If radio_type !=UNSET, radio_addr should be specified
51  */
52 
53 struct saa7134_board saa7134_boards[] = {
54 	[SAA7134_BOARD_UNKNOWN] = {
55 		.name		= "UNKNOWN/GENERIC",
56 		.audio_clock	= 0x00187de7,
57 		.tuner_type	= TUNER_ABSENT,
58 		.radio_type     = UNSET,
59 		.tuner_addr	= ADDR_UNSET,
60 		.radio_addr	= ADDR_UNSET,
61 
62 		.inputs         = {{
63 			.name = "default",
64 			.vmux = 0,
65 			.amux = LINE1,
66 		}},
67 	},
68 	[SAA7134_BOARD_PROTEUS_PRO] = {
69 		/* /me */
70 		.name		= "Proteus Pro [philips reference design]",
71 		.audio_clock	= 0x00187de7,
72 		.tuner_type	= TUNER_PHILIPS_PAL,
73 		.radio_type     = UNSET,
74 		.tuner_addr	= ADDR_UNSET,
75 		.radio_addr	= ADDR_UNSET,
76 
77 		.inputs         = {{
78 			.name = name_comp1,
79 			.vmux = 0,
80 			.amux = LINE1,
81 		},{
82 			.name = name_tv,
83 			.vmux = 1,
84 			.amux = TV,
85 			.tv   = 1,
86 		},{
87 			.name = name_tv_mono,
88 			.vmux = 1,
89 			.amux = LINE2,
90 			.tv   = 1,
91 		}},
92 		.radio = {
93 			.name = name_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 			.name = name_tv,
109 			.vmux = 1,
110 			.amux = TV,
111 			.gpio = 0x8000,
112 			.tv   = 1,
113 		},{
114 			.name = name_tv_mono,
115 			.vmux = 1,
116 			.amux = LINE2,
117 			.gpio = 0x0000,
118 			.tv   = 1,
119 		},{
120 			.name = name_comp1,
121 			.vmux = 0,
122 			.amux = LINE2,
123 			.gpio = 0x4000,
124 		},{
125 			.name = name_comp2,
126 			.vmux = 3,
127 			.amux = LINE2,
128 			.gpio = 0x4000,
129 		},{
130 			.name = name_svideo,
131 			.vmux = 8,
132 			.amux = LINE2,
133 			.gpio = 0x4000,
134 		}},
135 		.radio = {
136 			.name = name_radio,
137 			.amux = LINE2,
138 			.gpio = 0x2000,
139 		},
140 		.mute = {
141 			.name = name_mute,
142 			.amux = TV,
143 			.gpio = 0x8000,
144 		},
145 	},
146 	[SAA7134_BOARD_FLYVIDEO2000] = {
147 		/* "TC Wan" <tcwan@cs.usm.my> */
148 		.name           = "LifeView/Typhoon FlyVIDEO2000",
149 		.audio_clock    = 0x00200000,
150 		.tuner_type     = TUNER_LG_PAL_NEW_TAPC,
151 		.radio_type     = UNSET,
152 		.tuner_addr	= ADDR_UNSET,
153 		.radio_addr	= ADDR_UNSET,
154 
155 		.gpiomask       = 0xe000,
156 		.inputs         = {{
157 			.name = name_tv,
158 			.vmux = 1,
159 			.amux = LINE2,
160 			.gpio = 0x0000,
161 			.tv   = 1,
162 		},{
163 			.name = name_comp1,
164 			.vmux = 0,
165 			.amux = LINE2,
166 			.gpio = 0x4000,
167 		},{
168 			.name = name_comp2,
169 			.vmux = 3,
170 			.amux = LINE2,
171 			.gpio = 0x4000,
172 		},{
173 			.name = name_svideo,
174 			.vmux = 8,
175 			.amux = LINE2,
176 			.gpio = 0x4000,
177 		}},
178 		.radio = {
179 			.name = name_radio,
180 			.amux = LINE2,
181 			.gpio = 0x2000,
182 		},
183 		.mute = {
184 			.name = name_mute,
185 			.amux = LINE2,
186 			.gpio = 0x8000,
187 		},
188 	},
189 	[SAA7134_BOARD_FLYTVPLATINUM_MINI] = {
190 		/* "Arnaud Quette" <aquette@free.fr> */
191 		.name           = "LifeView FlyTV Platinum Mini",
192 		.audio_clock    = 0x00200000,
193 		.tuner_type     = TUNER_PHILIPS_TDA8290,
194 		.radio_type     = UNSET,
195 		.tuner_addr	= ADDR_UNSET,
196 		.radio_addr	= ADDR_UNSET,
197 
198 		.inputs         = {{
199 			.name = name_tv,
200 			.vmux = 1,
201 			.amux = TV,
202 			.tv   = 1,
203 		},{
204 			.name = name_comp1,     /* Composite signal on S-Video input */
205 			.vmux = 0,
206 			.amux = LINE2,
207 		},{
208 			.name = name_comp2,	/* Composite input */
209 			.vmux = 3,
210 			.amux = LINE2,
211 		},{
212 			.name = name_svideo,
213 			.vmux = 8,
214 			.amux = LINE2,
215 		}},
216 	},
217 	[SAA7134_BOARD_FLYTVPLATINUM_FM] = {
218 		/* LifeView FlyTV Platinum FM (LR214WF) */
219 		/* "Peter Missel <peter.missel@onlinehome.de> */
220 		.name           = "LifeView FlyTV Platinum FM / Gold",
221 		.audio_clock    = 0x00200000,
222 		.tuner_type     = TUNER_PHILIPS_TDA8290,
223 		.radio_type     = UNSET,
224 		.tuner_addr	= ADDR_UNSET,
225 		.radio_addr	= ADDR_UNSET,
226 
227 		.gpiomask       = 0x1E000,	/* Set GP16 and unused 15,14,13 to Output */
228 		.inputs         = {{
229 			.name = name_tv,
230 			.vmux = 1,
231 			.amux = TV,
232 			.gpio = 0x10000,	/* GP16=1 selects TV input */
233 			.tv   = 1,
234 		},{
235 /*			.name = name_tv_mono,
236 			.vmux = 1,
237 			.amux = LINE2,
238 			.gpio = 0x0000,
239 			.tv   = 1,
240 		},{
241 */			.name = name_comp1,	/* Composite signal on S-Video input */
242 			.vmux = 0,
243 			.amux = LINE2,
244 /*			.gpio = 0x4000,         */
245 		},{
246 			.name = name_comp2,	/* Composite input */
247 			.vmux = 3,
248 			.amux = LINE2,
249 /*			.gpio = 0x4000,         */
250 		},{
251 			.name = name_svideo,	/* S-Video signal on S-Video input */
252 			.vmux = 8,
253 			.amux = LINE2,
254 /*			.gpio = 0x4000,         */
255 		}},
256 		.radio = {
257 			.name = name_radio,
258 			.amux = TV,
259 			.gpio = 0x00000,	/* GP16=0 selects FM radio antenna */
260 		},
261 		.mute = {
262 			.name = name_mute,
263 			.amux = TV,
264 			.gpio = 0x10000,
265 		},
266 	},
267 	[SAA7134_BOARD_EMPRESS] = {
268 		/* "Gert Vervoort" <gert.vervoort@philips.com> */
269 		.name		= "EMPRESS",
270 		.audio_clock	= 0x00187de7,
271 		.tuner_type	= TUNER_PHILIPS_PAL,
272 		.radio_type     = UNSET,
273 		.tuner_addr	= ADDR_UNSET,
274 		.radio_addr	= ADDR_UNSET,
275 
276 		.inputs         = {{
277 			.name = name_comp1,
278 			.vmux = 0,
279 			.amux = LINE1,
280 		},{
281 			.name = name_svideo,
282 			.vmux = 8,
283 			.amux = LINE1,
284 		},{
285 			.name = name_tv,
286 			.vmux = 1,
287 			.amux = LINE2,
288 			.tv   = 1,
289 		}},
290 		.radio = {
291 			.name = name_radio,
292 			.amux = LINE2,
293 		},
294 		.mpeg      = SAA7134_MPEG_EMPRESS,
295 		.video_out = CCIR656,
296 	},
297 	[SAA7134_BOARD_MONSTERTV] = {
298 		/* "K.Ohta" <alpha292@bremen.or.jp> */
299 		.name           = "SKNet Monster TV",
300 		.audio_clock    = 0x00187de7,
301 		.tuner_type     = TUNER_PHILIPS_NTSC_M,
302 		.radio_type     = UNSET,
303 		.tuner_addr	= ADDR_UNSET,
304 		.radio_addr	= ADDR_UNSET,
305 
306 		.inputs         = {{
307 			.name = name_tv,
308 			.vmux = 1,
309 			.amux = TV,
310 			.tv   = 1,
311 		},{
312 			.name = name_comp1,
313 			.vmux = 0,
314 			.amux = LINE1,
315 		},{
316 			.name = name_svideo,
317 			.vmux = 8,
318 			.amux = LINE1,
319 		}},
320 		.radio = {
321 			.name = name_radio,
322 			.amux = LINE2,
323 		},
324 	},
325 	[SAA7134_BOARD_MD9717] = {
326 		.name		= "Tevion MD 9717",
327 		.audio_clock	= 0x00200000,
328 		.tuner_type	= TUNER_PHILIPS_PAL,
329 		.radio_type     = UNSET,
330 		.tuner_addr	= ADDR_UNSET,
331 		.radio_addr	= ADDR_UNSET,
332 		.inputs         = {{
333 			.name = name_tv,
334 			.vmux = 1,
335 			.amux = TV,
336 			.tv   = 1,
337 		},{
338 			/* workaround for problems with normal TV sound */
339 			.name = name_tv_mono,
340 			.vmux = 1,
341 			.amux = LINE2,
342 			.tv   = 1,
343 		},{
344 			.name = name_comp1,
345 			.vmux = 0,
346 			.amux = LINE1,
347 		},{
348 			.name = name_comp2,
349 			.vmux = 3,
350 			.amux = LINE1,
351 		},{
352 			.name = name_svideo,
353 			.vmux = 8,
354 			.amux = LINE1,
355 		}},
356 		.radio = {
357 			.name = name_radio,
358 			.amux = LINE2,
359 		},
360 	       .mute = {
361 		       .name = name_mute,
362 		       .amux = TV,
363 	       },
364 	},
365 	[SAA7134_BOARD_TVSTATION_RDS] = {
366 		/* Typhoon TV Tuner RDS: Art.Nr. 50694 */
367 		.name		= "KNC One TV-Station RDS / Typhoon TV Tuner RDS",
368 		.audio_clock	= 0x00200000,
369 		.tuner_type	= TUNER_PHILIPS_FM1216ME_MK3,
370 		.radio_type     = UNSET,
371 		.tuner_addr	= ADDR_UNSET,
372 		.radio_addr	= ADDR_UNSET,
373 		.tda9887_conf   = TDA9887_PRESENT,
374 		.inputs         = {{
375 			.name = name_tv,
376 			.vmux = 1,
377 			.amux = TV,
378 			.tv   = 1,
379 		},{
380 			.name = name_tv_mono,
381 			.vmux = 1,
382 			.amux   = LINE2,
383 			.tv   = 1,
384 		},{
385 
386 			.name = name_svideo,
387 			.vmux = 8,
388 			.amux = LINE1,
389 		},{
390 			.name = name_comp1,
391 			.vmux = 3,
392 			.amux = LINE1,
393 		},{
394 
395 			.name = "CVid over SVid",
396 			.vmux = 0,
397 			.amux = LINE1,
398 		}},
399 		.radio = {
400 			.name = name_radio,
401 			.amux = LINE2,
402 		},
403 	},
404 	[SAA7134_BOARD_TVSTATION_DVR] = {
405 		.name		= "KNC One TV-Station DVR",
406 		.audio_clock	= 0x00200000,
407 		.tuner_type	= TUNER_PHILIPS_FM1216ME_MK3,
408 		.radio_type     = UNSET,
409 		.tuner_addr	= ADDR_UNSET,
410 		.radio_addr	= ADDR_UNSET,
411 		.tda9887_conf	= TDA9887_PRESENT,
412 		.gpiomask	= 0x820000,
413 		.inputs		= {{
414 			.name = name_tv,
415 			.vmux = 1,
416 			.amux = TV,
417 			.tv   = 1,
418 			.gpio = 0x20000,
419 		},{
420 			.name = name_svideo,
421 			.vmux = 8,
422 			.amux = LINE1,
423 			.gpio = 0x20000,
424 		},{
425 			.name = name_comp1,
426 			.vmux = 3,
427 			.amux = LINE1,
428 			.gpio = 0x20000,
429 		}},
430 		.radio		= {
431 			.name = name_radio,
432 			.amux = LINE2,
433 			.gpio = 0x20000,
434 		},
435 		.mpeg           = SAA7134_MPEG_EMPRESS,
436 		.video_out	= CCIR656,
437 	},
438 	[SAA7134_BOARD_CINERGY400] = {
439 		.name           = "Terratec Cinergy 400 TV",
440 		.audio_clock    = 0x00200000,
441 		.tuner_type     = TUNER_PHILIPS_PAL,
442 		.radio_type     = UNSET,
443 		.tuner_addr	= ADDR_UNSET,
444 		.radio_addr	= ADDR_UNSET,
445 		.inputs         = {{
446 			.name = name_tv,
447 			.vmux = 1,
448 			.amux = TV,
449 			.tv   = 1,
450 		},{
451 			.name = name_comp1,
452 			.vmux = 4,
453 			.amux = LINE1,
454 		},{
455 			.name = name_svideo,
456 			.vmux = 8,
457 			.amux = LINE1,
458 		},{
459 			.name = name_comp2, /* CVideo over SVideo Connector */
460 			.vmux = 0,
461 			.amux = LINE1,
462 		}}
463 	},
464 	[SAA7134_BOARD_MD5044] = {
465 		.name           = "Medion 5044",
466 		.audio_clock    = 0x00187de7, /* was: 0x00200000, */
467 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
468 		.radio_type     = UNSET,
469 		.tuner_addr	= ADDR_UNSET,
470 		.radio_addr	= ADDR_UNSET,
471 		.tda9887_conf   = TDA9887_PRESENT,
472 		.inputs         = {{
473 			.name = name_tv,
474 			.vmux = 1,
475 			.amux = TV,
476 			.tv   = 1,
477 		},{
478 			/* workaround for problems with normal TV sound */
479 			.name = name_tv_mono,
480 			.vmux = 1,
481 			.amux = LINE2,
482 			.tv   = 1,
483 		},{
484 			.name = name_comp1,
485 			.vmux = 0,
486 			.amux = LINE2,
487 		},{
488 			.name = name_comp2,
489 			.vmux = 3,
490 			.amux = LINE2,
491 		},{
492 			.name = name_svideo,
493 			.vmux = 8,
494 			.amux = LINE2,
495 		}},
496 		.radio = {
497 			.name = name_radio,
498 			.amux = LINE2,
499 		},
500 	},
501 	[SAA7134_BOARD_KWORLD] = {
502 		.name           = "Kworld/KuroutoShikou SAA7130-TVPCI",
503 		.audio_clock    = 0x00187de7,
504 		.tuner_type     = TUNER_PHILIPS_NTSC_M,
505 		.radio_type     = UNSET,
506 		.tuner_addr	= ADDR_UNSET,
507 		.radio_addr	= ADDR_UNSET,
508 		.inputs         = {{
509 			.name = name_svideo,
510 			.vmux = 8,
511 			.amux = LINE1,
512 		},{
513 			.name = name_comp1,
514 			.vmux = 3,
515 			.amux = LINE1,
516 		},{
517 			.name = name_tv,
518 			.vmux = 1,
519 			.amux = LINE2,
520 			.tv   = 1,
521 		}},
522 	},
523 	[SAA7134_BOARD_CINERGY600] = {
524 		.name           = "Terratec Cinergy 600 TV",
525 		.audio_clock    = 0x00200000,
526 		.tuner_type     = TUNER_PHILIPS_PAL,
527 		.radio_type     = UNSET,
528 		.tuner_addr	= ADDR_UNSET,
529 		.radio_addr	= ADDR_UNSET,
530 		.tda9887_conf   = TDA9887_PRESENT,
531 		.inputs         = {{
532 			.name = name_tv,
533 			.vmux = 1,
534 			.amux = TV,
535 			.tv   = 1,
536 		},{
537 			.name = name_comp1,
538 			.vmux = 4,
539 			.amux = LINE1,
540 		},{
541 			.name = name_svideo,
542 			.vmux = 8,
543 			.amux = LINE1,
544 		},{
545 			.name = name_comp2, /* CVideo over SVideo Connector */
546 			.vmux = 0,
547 			.amux = LINE1,
548 		}},
549 		.radio = {
550 			.name = name_radio,
551 			.amux = LINE2,
552 		},
553 	},
554 	[SAA7134_BOARD_MD7134] = {
555 		.name           = "Medion 7134",
556 		.audio_clock    = 0x00187de7,
557 		.tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
558 		.radio_type     = UNSET,
559 		.tuner_addr	= ADDR_UNSET,
560 		.radio_addr	= ADDR_UNSET,
561 		.tda9887_conf   = TDA9887_PRESENT,
562 		.mpeg           = SAA7134_MPEG_DVB,
563 		.inputs = {{
564 			.name   = name_tv,
565 			.vmux   = 1,
566 			.amux   = TV,
567 			.tv     = 1,
568 		},{
569 			.name   = name_comp1,
570 			.vmux   = 0,
571 			.amux   = LINE1,
572 		},{
573 			.name   = name_svideo,
574 			.vmux   = 8,
575 			.amux   = LINE1,
576 		}},
577 		.radio = {
578 			.name   = name_radio,
579 			.amux   = LINE2,
580 	       },
581 	       .mute = {
582 		       .name = name_mute,
583 		       .amux = TV,
584 		},
585 	},
586 	[SAA7134_BOARD_TYPHOON_90031] = {
587 		/* aka Typhoon "TV+Radio", Art.Nr 90031 */
588 		/* Tom Zoerner <tomzo at users sourceforge net> */
589 		.name           = "Typhoon TV+Radio 90031",
590 		.audio_clock    = 0x00200000,
591 		.tuner_type     = TUNER_PHILIPS_PAL,
592 		.radio_type     = UNSET,
593 		.tuner_addr	= ADDR_UNSET,
594 		.radio_addr	= ADDR_UNSET,
595 		.tda9887_conf   = TDA9887_PRESENT,
596 		.inputs         = {{
597 			.name   = name_tv,
598 			.vmux   = 1,
599 			.amux   = TV,
600 			.tv     = 1,
601 		},{
602 			.name   = name_comp1,
603 			.vmux   = 3,
604 			.amux   = LINE1,
605 		},{
606 			.name   = name_svideo,
607 			.vmux   = 8,
608 			.amux   = LINE1,
609 		}},
610 		.radio = {
611 			.name   = name_radio,
612 			.amux   = LINE2,
613 		},
614 	},
615 	[SAA7134_BOARD_ELSA] = {
616 		.name           = "ELSA EX-VISION 300TV",
617 		.audio_clock    = 0x00187de7,
618 		.tuner_type     = TUNER_HITACHI_NTSC,
619 		.radio_type     = UNSET,
620 		.tuner_addr	= ADDR_UNSET,
621 		.radio_addr	= ADDR_UNSET,
622 		.inputs         = {{
623 			.name = name_svideo,
624 			.vmux = 8,
625 			.amux = LINE1,
626 		},{
627 			.name   = name_comp1,
628 			.vmux   = 0,
629 			.amux   = LINE1,
630 		},{
631 			.name = name_tv,
632 			.vmux = 4,
633 			.amux = LINE2,
634 			.tv   = 1,
635 		}},
636 	},
637 	[SAA7134_BOARD_ELSA_500TV] = {
638 		.name           = "ELSA EX-VISION 500TV",
639 		.audio_clock    = 0x00187de7,
640 		.tuner_type     = TUNER_HITACHI_NTSC,
641 		.radio_type     = UNSET,
642 		.tuner_addr	= ADDR_UNSET,
643 		.radio_addr	= ADDR_UNSET,
644 		.inputs         = {{
645 			.name = name_svideo,
646 			.vmux = 7,
647 			.amux = LINE1,
648 		},{
649 			.name = name_tv,
650 			.vmux = 8,
651 			.amux = TV,
652 			.tv   = 1,
653 		},{
654 			.name = name_tv_mono,
655 			.vmux = 8,
656 			.amux = LINE2,
657 			.tv   = 1,
658 		}},
659 	},
660 	[SAA7134_BOARD_ELSA_700TV] = {
661 		.name           = "ELSA EX-VISION 700TV",
662 		.audio_clock    = 0x00187de7,
663 		.tuner_type     = TUNER_HITACHI_NTSC,
664 		.radio_type     = UNSET,
665 		.tuner_addr	= ADDR_UNSET,
666 		.radio_addr	= ADDR_UNSET,
667 		.inputs         = {{
668 			.name = name_tv,
669 			.vmux = 4,
670 			.amux = LINE2,
671 			.tv   = 1,
672 		},{
673 			.name = name_comp1,
674 			.vmux = 6,
675 			.amux = LINE1,
676 		},{
677 			.name = name_svideo,
678 			.vmux = 7,
679 			.amux = LINE1,
680 		}},
681 		.mute           = {
682 			.name = name_mute,
683 			.amux = TV,
684 		},
685 	},
686 	[SAA7134_BOARD_ASUSTeK_TVFM7134] = {
687 		.name           = "ASUS TV-FM 7134",
688 		.audio_clock    = 0x00187de7,
689 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
690 		.radio_type     = UNSET,
691 		.tuner_addr	= ADDR_UNSET,
692 		.radio_addr	= ADDR_UNSET,
693 		.tda9887_conf   = TDA9887_PRESENT,
694 		.inputs         = {{
695 			.name = name_tv,
696 			.vmux = 1,
697 			.amux = TV,
698 			.tv   = 1,
699 		},{
700 			.name = name_comp1,
701 			.vmux = 4,
702 			.amux = LINE2,
703 		},{
704 			.name = name_svideo,
705 			.vmux = 6,
706 			.amux = LINE2,
707 		}},
708 		.radio = {
709 			.name = name_radio,
710 			.amux = LINE1,
711 		},
712 	},
713 	[SAA7134_BOARD_ASUSTeK_TVFM7135] = {
714 		.name           = "ASUS TV-FM 7135",
715 		.audio_clock    = 0x00187de7,
716 		.tuner_type     = TUNER_PHILIPS_TDA8290,
717 		.radio_type     = UNSET,
718 		.tuner_addr	= ADDR_UNSET,
719 		.radio_addr	= ADDR_UNSET,
720 		.gpiomask       = 0x200000,
721 		.inputs         = {{
722 			.name = name_tv,
723 			.vmux = 1,
724 			.amux = TV,
725 			.gpio = 0x0000,
726 			.tv   = 1,
727 		},{
728 			.name = name_comp1,
729 			.vmux = 4,
730 			.amux = LINE2,
731 			.gpio = 0x0000,
732 		},{
733 			.name = name_svideo,
734 			.vmux = 6,
735 			.amux = LINE2,
736 			.gpio = 0x0000,
737 		}},
738 		.radio = {
739 			.name = name_radio,
740 			.amux = TV,
741 			.gpio = 0x200000,
742 		},
743 		.mute  = {
744 			.name = name_mute,
745 			.gpio = 0x0000,
746 		},
747 
748 	},
749 	[SAA7134_BOARD_VA1000POWER] = {
750 		.name           = "AOPEN VA1000 POWER",
751 		.audio_clock    = 0x00187de7,
752 		.tuner_type     = TUNER_PHILIPS_NTSC,
753 		.radio_type     = UNSET,
754 		.tuner_addr	= ADDR_UNSET,
755 		.radio_addr	= ADDR_UNSET,
756 		.inputs         = {{
757 			.name = name_svideo,
758 			.vmux = 8,
759 			.amux = LINE1,
760 		},{
761 			.name = name_comp1,
762 			.vmux = 3,
763 			.amux = LINE1,
764 		},{
765 			.name = name_tv,
766 			.vmux = 1,
767 			.amux = LINE2,
768 			.tv   = 1,
769 		}},
770 	},
771 	[SAA7134_BOARD_10MOONSTVMASTER] = {
772 		/* "lilicheng" <llc@linuxfans.org> */
773 		.name           = "10MOONS PCI TV CAPTURE CARD",
774 		.audio_clock    = 0x00200000,
775 		.tuner_type     = TUNER_LG_PAL_NEW_TAPC,
776 		.radio_type     = UNSET,
777 		.tuner_addr	= ADDR_UNSET,
778 		.radio_addr	= ADDR_UNSET,
779 		.gpiomask       = 0xe000,
780 		.inputs         = {{
781 			.name = name_tv,
782 			.vmux = 1,
783 			.amux = LINE2,
784 			.gpio = 0x0000,
785 			.tv   = 1,
786 		},{
787 			.name = name_comp1,
788 			.vmux = 0,
789 			.amux = LINE2,
790 			.gpio = 0x4000,
791 		},{
792 			.name = name_comp2,
793 			.vmux = 3,
794 			.amux = LINE2,
795 			.gpio = 0x4000,
796 		},{
797 			.name = name_svideo,
798 			.vmux = 8,
799 			.amux = LINE2,
800 			.gpio = 0x4000,
801 		}},
802 		.radio = {
803 			.name = name_radio,
804 			.amux = LINE2,
805 			.gpio = 0x2000,
806 		},
807 		.mute = {
808 			.name = name_mute,
809 			.amux = LINE2,
810 			.gpio = 0x8000,
811 		},
812 	},
813 	[SAA7134_BOARD_BMK_MPEX_NOTUNER] = {
814 		/* "Andrew de Quincey" <adq@lidskialf.net> */
815 		.name		= "BMK MPEX No Tuner",
816 		.audio_clock	= 0x200000,
817 		.tuner_type	= TUNER_ABSENT,
818 		.radio_type     = UNSET,
819 		.tuner_addr	= ADDR_UNSET,
820 		.radio_addr	= ADDR_UNSET,
821 		.inputs         = {{
822 			.name = name_comp1,
823 			.vmux = 4,
824 			.amux = LINE1,
825 		},{
826 			.name = name_comp2,
827 			.vmux = 3,
828 			.amux = LINE1,
829 		},{
830 			.name = name_comp3,
831 			.vmux = 0,
832 			.amux = LINE1,
833 		},{
834 			.name = name_comp4,
835 			.vmux = 1,
836 			.amux = LINE1,
837 		},{
838 			.name = name_svideo,
839 			.vmux = 8,
840 			.amux = LINE1,
841 		}},
842 		.mpeg      = SAA7134_MPEG_EMPRESS,
843 		.video_out = CCIR656,
844 	},
845 	[SAA7134_BOARD_VIDEOMATE_TV] = {
846 		.name           = "Compro VideoMate TV",
847 		.audio_clock    = 0x00187de7,
848 		.tuner_type     = TUNER_PHILIPS_NTSC_M,
849 		.radio_type     = UNSET,
850 		.tuner_addr	= ADDR_UNSET,
851 		.radio_addr	= ADDR_UNSET,
852 		.inputs         = {{
853 			.name = name_svideo,
854 			.vmux = 8,
855 			.amux = LINE1,
856 		},{
857 			.name = name_comp1,
858 			.vmux = 3,
859 			.amux = LINE1,
860 		},{
861 			.name = name_tv,
862 			.vmux = 1,
863 			.amux = LINE2,
864 			.tv   = 1,
865 		}},
866 	},
867 	[SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS] = {
868 		.name           = "Compro VideoMate TV Gold+",
869 		.audio_clock    = 0x00187de7,
870 		.tuner_type     = TUNER_PHILIPS_NTSC_M,
871 		.gpiomask       = 0x800c0000,
872 		.radio_type     = UNSET,
873 		.tuner_addr	= ADDR_UNSET,
874 		.radio_addr	= ADDR_UNSET,
875 		.inputs         = {{
876 			.name = name_svideo,
877 			.vmux = 8,
878 			.amux = LINE1,
879 			.gpio = 0x06c00012,
880 		},{
881 			.name = name_comp1,
882 			.vmux = 3,
883 			.amux = LINE1,
884 			.gpio = 0x0ac20012,
885 		},{
886 			.name = name_tv,
887 			.vmux = 1,
888 			.amux = LINE2,
889 			.gpio = 0x08c20012,
890 			.tv   = 1,
891 		}},				/* radio and probably mute is missing */
892 	},
893 	[SAA7134_BOARD_CRONOS_PLUS] = {
894 		/*
895 		gpio pins:
896 			0  .. 3   BASE_ID
897 			4  .. 7   PROTECT_ID
898 			8  .. 11  USER_OUT
899 			12 .. 13  USER_IN
900 			14 .. 15  VIDIN_SEL
901 		*/
902 		.name           = "Matrox CronosPlus",
903 		.tuner_type     = TUNER_ABSENT,
904 		.radio_type     = UNSET,
905 		.tuner_addr	= ADDR_UNSET,
906 		.radio_addr	= ADDR_UNSET,
907 		.gpiomask       = 0xcf00,
908 		.inputs         = {{
909 			.name = name_comp1,
910 			.vmux = 0,
911 			.gpio = 2 << 14,
912 		},{
913 			.name = name_comp2,
914 			.vmux = 0,
915 			.gpio = 1 << 14,
916 		},{
917 			.name = name_comp3,
918 			.vmux = 0,
919 			.gpio = 0 << 14,
920 		},{
921 			.name = name_comp4,
922 			.vmux = 0,
923 			.gpio = 3 << 14,
924 		},{
925 			.name = name_svideo,
926 			.vmux = 8,
927 			.gpio = 2 << 14,
928 		}},
929 	},
930 	[SAA7134_BOARD_MD2819] = {
931 		.name           = "AverMedia M156 / Medion 2819",
932 		.audio_clock    = 0x00187de7,
933 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
934 		.radio_type     = UNSET,
935 		.tuner_addr	= ADDR_UNSET,
936 		.radio_addr	= ADDR_UNSET,
937 		.tda9887_conf   = TDA9887_PRESENT,
938 		.gpiomask	= 0x03,
939 		.inputs         = {{
940 			.name = name_tv,
941 			.vmux = 1,
942 			.amux = TV,
943 			.tv   = 1,
944 			.gpio = 0x00,
945 		}, {
946 			.name = name_comp1,
947 			.vmux = 3,
948 			.amux = LINE1,
949 			.gpio = 0x02,
950 		}, {
951 			.name = name_comp2,
952 			.vmux = 0,
953 			.amux = LINE1,
954 			.gpio = 0x02,
955 		}, {
956 			.name = name_svideo,
957 			.vmux = 8,
958 			.amux = LINE1,
959 			.gpio = 0x02,
960 		} },
961 		.radio = {
962 			.name = name_radio,
963 			.amux = LINE1,
964 			.gpio = 0x01,
965 		},
966 		.mute  = {
967 			.name = name_mute,
968 			.amux = TV,
969 			.gpio = 0x00,
970 		},
971 	},
972 	[SAA7134_BOARD_BMK_MPEX_TUNER] = {
973 		/* "Greg Wickham <greg.wickham@grangenet.net> */
974 		.name           = "BMK MPEX Tuner",
975 		.audio_clock    = 0x200000,
976 		.tuner_type     = TUNER_PHILIPS_PAL,
977 		.radio_type     = UNSET,
978 		.tuner_addr	= ADDR_UNSET,
979 		.radio_addr	= ADDR_UNSET,
980 		.inputs         = {{
981 			.name = name_comp1,
982 			.vmux = 1,
983 			.amux = LINE1,
984 		},{
985 			.name = name_svideo,
986 			.vmux = 8,
987 			.amux = LINE1,
988 		},{
989 			.name = name_tv,
990 			.vmux = 3,
991 			.amux = TV,
992 			.tv   = 1,
993 		}},
994 		.mpeg      = SAA7134_MPEG_EMPRESS,
995 		.video_out = CCIR656,
996 	},
997 	[SAA7134_BOARD_ASUSTEK_TVFM7133] = {
998 		.name           = "ASUS TV-FM 7133",
999 		.audio_clock    = 0x00187de7,
1000 		/* probably wrong, the 7133 one is the NTSC version ...
1001 		* .tuner_type  = TUNER_PHILIPS_FM1236_MK3 */
1002 		.tuner_type     = TUNER_LG_NTSC_NEW_TAPC,
1003 		.radio_type     = UNSET,
1004 		.tuner_addr	= ADDR_UNSET,
1005 		.radio_addr	= ADDR_UNSET,
1006 		.tda9887_conf   = TDA9887_PRESENT,
1007 		.inputs         = {{
1008 			.name = name_tv,
1009 			.vmux = 1,
1010 			.amux = TV,
1011 			.tv   = 1,
1012 
1013 		},{
1014 			.name = name_comp1,
1015 			.vmux = 4,
1016 			.amux = LINE2,
1017 		},{
1018 			.name = name_svideo,
1019 			.vmux = 6,
1020 			.amux = LINE2,
1021 		}},
1022 		.radio = {
1023 			.name = name_radio,
1024 			.amux = LINE1,
1025 		},
1026 	},
1027 	[SAA7134_BOARD_PINNACLE_PCTV_STEREO] = {
1028 		.name           = "Pinnacle PCTV Stereo (saa7134)",
1029 		.audio_clock    = 0x00187de7,
1030 		.tuner_type     = TUNER_MT2032,
1031 		.radio_type     = UNSET,
1032 		.tuner_addr	= ADDR_UNSET,
1033 		.radio_addr	= ADDR_UNSET,
1034 		.tda9887_conf   = TDA9887_PRESENT | TDA9887_INTERCARRIER | TDA9887_PORT2_INACTIVE,
1035 		.inputs         = {{
1036 			.name = name_tv,
1037 			.vmux = 3,
1038 			.amux = TV,
1039 			.tv   = 1,
1040 		},{
1041 			.name = name_comp1,
1042 			.vmux = 0,
1043 			.amux = LINE2,
1044 		},{
1045 			.name = name_comp2,
1046 			.vmux = 1,
1047 			.amux = LINE2,
1048 		},{
1049 			.name = name_svideo,
1050 			.vmux = 8,
1051 			.amux = LINE2,
1052 		}},
1053 	},
1054 	[SAA7134_BOARD_MANLI_MTV002] = {
1055 		/* Ognjen Nastic <ognjen@logosoft.ba> */
1056 		.name           = "Manli MuchTV M-TV002",
1057 		.audio_clock    = 0x00200000,
1058 		.tuner_type     = TUNER_PHILIPS_PAL,
1059 		.radio_type     = UNSET,
1060 		.tuner_addr	= ADDR_UNSET,
1061 		.radio_addr	= ADDR_UNSET,
1062 		.inputs         = {{
1063 			.name = name_svideo,
1064 			.vmux = 8,
1065 			.amux = LINE1,
1066 		},{
1067 			.name   = name_comp1,
1068 			.vmux   = 1,
1069 			.amux   = LINE1,
1070 		},{
1071 			.name = name_tv,
1072 			.vmux = 3,
1073 			.amux = LINE2,
1074 			.tv   = 1,
1075 		}},
1076 		.radio = {
1077 			.name = name_radio,
1078 			.amux = LINE2,
1079 		},
1080 	},
1081 	[SAA7134_BOARD_MANLI_MTV001] = {
1082 		/* Ognjen Nastic <ognjen@logosoft.ba> UNTESTED */
1083 		.name           = "Manli MuchTV M-TV001",
1084 		.audio_clock    = 0x00200000,
1085 		.tuner_type     = TUNER_PHILIPS_PAL,
1086 		.radio_type     = UNSET,
1087 		.tuner_addr	= ADDR_UNSET,
1088 		.radio_addr	= ADDR_UNSET,
1089 		.inputs         = {{
1090 			.name = name_svideo,
1091 			.vmux = 8,
1092 			.amux = LINE1,
1093 		},{
1094 			.name = name_comp1,
1095 			.vmux = 1,
1096 			.amux = LINE1,
1097 		},{
1098 			.name = name_tv,
1099 			.vmux = 3,
1100 			.amux = LINE2,
1101 			.tv   = 1,
1102 		}},
1103 		.mute = {
1104 			.name = name_mute,
1105 			.amux = LINE1,
1106 		},
1107 	},
1108 	[SAA7134_BOARD_TG3000TV] = {
1109 		/* TransGear 3000TV */
1110 		.name           = "Nagase Sangyo TransGear 3000TV",
1111 		.audio_clock    = 0x00187de7,
1112 		.tuner_type     = TUNER_PHILIPS_NTSC_M,
1113 		.radio_type     = UNSET,
1114 		.tuner_addr	= ADDR_UNSET,
1115 		.radio_addr	= ADDR_UNSET,
1116 		.inputs         = {{
1117 			.name = name_tv,
1118 			.vmux = 1,
1119 			.amux = LINE2,
1120 			.tv   = 1,
1121 		},{
1122 			.name = name_comp1,
1123 			.vmux = 3,
1124 			.amux = LINE2,
1125 		},{
1126 			.name = name_svideo,
1127 			.vmux = 8,
1128 			.amux = LINE2,
1129 		}},
1130 	},
1131 	[SAA7134_BOARD_ECS_TVP3XP] = {
1132 		.name           = "Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM) ",
1133 		.audio_clock    = 0x187de7,  /* xtal 32.1 MHz */
1134 		.tuner_type     = TUNER_PHILIPS_PAL,
1135 		.radio_type     = UNSET,
1136 		.tuner_addr	= ADDR_UNSET,
1137 		.radio_addr	= ADDR_UNSET,
1138 		.inputs         = {{
1139 			.name   = name_tv,
1140 			.vmux   = 1,
1141 			.amux   = TV,
1142 			.tv     = 1,
1143 		},{
1144 			.name   = name_tv_mono,
1145 			.vmux   = 1,
1146 			.amux   = LINE2,
1147 			.tv     = 1,
1148 		},{
1149 			.name   = name_comp1,
1150 			.vmux   = 3,
1151 			.amux   = LINE1,
1152 		},{
1153 			.name   = name_svideo,
1154 			.vmux   = 8,
1155 			.amux   = LINE1,
1156 		},{
1157 			.name   = "CVid over SVid",
1158 			.vmux   = 0,
1159 			.amux   = LINE1,
1160 		}},
1161 		.radio = {
1162 			.name   = name_radio,
1163 			.amux   = LINE2,
1164 		},
1165 	},
1166 	[SAA7134_BOARD_ECS_TVP3XP_4CB5] = {
1167 		.name           = "Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM)",
1168 		.audio_clock    = 0x187de7,
1169 		.tuner_type     = TUNER_PHILIPS_NTSC,
1170 		.radio_type     = UNSET,
1171 		.tuner_addr	= ADDR_UNSET,
1172 		.radio_addr	= ADDR_UNSET,
1173 		.inputs         = {{
1174 			.name   = name_tv,
1175 			.vmux   = 1,
1176 			.amux   = TV,
1177 			.tv     = 1,
1178 		},{
1179 			.name   = name_tv_mono,
1180 			.vmux   = 1,
1181 			.amux   = LINE2,
1182 			.tv     = 1,
1183 		},{
1184 			.name   = name_comp1,
1185 			.vmux   = 3,
1186 			.amux   = LINE1,
1187 		},{
1188 			.name   = name_svideo,
1189 			.vmux   = 8,
1190 			.amux   = LINE1,
1191 		},{
1192 			.name   = "CVid over SVid",
1193 			.vmux   = 0,
1194 			.amux   = LINE1,
1195 		}},
1196 		.radio = {
1197 			.name   = name_radio,
1198 			.amux   = LINE2,
1199 		},
1200 	},
1201     [SAA7134_BOARD_ECS_TVP3XP_4CB6] = {
1202 		/* Barry Scott <barry.scott@onelan.co.uk> */
1203 		.name		= "Elitegroup ECS TVP3XP FM1246 Tuner Card (PAL,FM)",
1204 		.audio_clock    = 0x187de7,
1205 		.tuner_type     = TUNER_PHILIPS_PAL_I,
1206 		.radio_type     = UNSET,
1207 		.tuner_addr	= ADDR_UNSET,
1208 		.radio_addr	= ADDR_UNSET,
1209 		.inputs         = {{
1210 			.name   = name_tv,
1211 			.vmux   = 1,
1212 			.amux   = TV,
1213 			.tv     = 1,
1214 		},{
1215 			.name   = name_tv_mono,
1216 			.vmux   = 1,
1217 			.amux   = LINE2,
1218 			.tv     = 1,
1219 		},{
1220 			.name   = name_comp1,
1221 			.vmux   = 3,
1222 			.amux   = LINE1,
1223 		},{
1224 			.name   = name_svideo,
1225 			.vmux   = 8,
1226 			.amux   = LINE1,
1227 		},{
1228 			.name   = "CVid over SVid",
1229 			.vmux   = 0,
1230 			.amux   = LINE1,
1231 		}},
1232 		.radio = {
1233 			.name   = name_radio,
1234 			.amux   = LINE2,
1235 		},
1236 	},
1237 	[SAA7134_BOARD_AVACSSMARTTV] = {
1238 		/* Roman Pszonczenko <romka@kolos.math.uni.lodz.pl> */
1239 		.name           = "AVACS SmartTV",
1240 		.audio_clock    = 0x00187de7,
1241 		.tuner_type     = TUNER_PHILIPS_PAL,
1242 		.radio_type     = UNSET,
1243 		.tuner_addr	= ADDR_UNSET,
1244 		.radio_addr	= ADDR_UNSET,
1245 		.inputs         = {{
1246 			.name = name_tv,
1247 			.vmux = 1,
1248 			.amux = TV,
1249 			.tv   = 1,
1250 		},{
1251 			.name = name_tv_mono,
1252 			.vmux = 1,
1253 			.amux = LINE2,
1254 			.tv   = 1,
1255 		},{
1256 			.name = name_comp1,
1257 			.vmux = 0,
1258 			.amux = LINE2,
1259 		},{
1260 			.name = name_comp2,
1261 			.vmux = 3,
1262 			.amux = LINE2,
1263 		},{
1264 			.name = name_svideo,
1265 			.vmux = 8,
1266 			.amux = LINE2,
1267 		}},
1268 		.radio = {
1269 			.name = name_radio,
1270 			.amux = LINE2,
1271 			.gpio = 0x200000,
1272 		},
1273 	},
1274 	[SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER] = {
1275 		/* Michael Smith <msmith@cbnco.com> */
1276 		.name           = "AVerMedia DVD EZMaker",
1277 		.audio_clock    = 0x00187de7,
1278 		.tuner_type     = TUNER_ABSENT,
1279 		.radio_type     = UNSET,
1280 		.tuner_addr	= ADDR_UNSET,
1281 		.radio_addr	= ADDR_UNSET,
1282 		.inputs         = {{
1283 			.name = name_comp1,
1284 			.vmux = 3,
1285 		},{
1286 			.name = name_svideo,
1287 			.vmux = 8,
1288 		}},
1289 	},
1290 	[SAA7134_BOARD_AVERMEDIA_M103] = {
1291 		/* Massimo Piccioni <dafastidio@libero.it> */
1292 		.name           = "AVerMedia MiniPCI DVB-T Hybrid M103",
1293 		.audio_clock    = 0x187de7,
1294 		.tuner_type     = TUNER_XC2028,
1295 		.radio_type     = UNSET,
1296 		.tuner_addr     = ADDR_UNSET,
1297 		.radio_addr     = ADDR_UNSET,
1298 		 .mpeg           = SAA7134_MPEG_DVB,
1299 		 .inputs         = {{
1300 			 .name = name_tv,
1301 			 .vmux = 1,
1302 			 .amux = TV,
1303 			 .tv   = 1,
1304 		 } },
1305 	},
1306 	[SAA7134_BOARD_NOVAC_PRIMETV7133] = {
1307 		/* toshii@netbsd.org */
1308 		.name           = "Noval Prime TV 7133",
1309 		.audio_clock    = 0x00200000,
1310 		.tuner_type     = TUNER_ALPS_TSBH1_NTSC,
1311 		.radio_type     = UNSET,
1312 		.tuner_addr	= ADDR_UNSET,
1313 		.radio_addr	= ADDR_UNSET,
1314 		.inputs         = {{
1315 			.name = name_comp1,
1316 			.vmux = 3,
1317 		},{
1318 			.name = name_tv,
1319 			.vmux = 1,
1320 			.amux = TV,
1321 			.tv   = 1,
1322 		},{
1323 			.name = name_svideo,
1324 			.vmux = 8,
1325 		}},
1326 	},
1327 	[SAA7134_BOARD_AVERMEDIA_STUDIO_305] = {
1328 		.name           = "AverMedia AverTV Studio 305",
1329 		.audio_clock    = 0x00187de7,
1330 		.tuner_type     = TUNER_PHILIPS_FM1256_IH3,
1331 		.radio_type     = UNSET,
1332 		.tuner_addr	= ADDR_UNSET,
1333 		.radio_addr	= ADDR_UNSET,
1334 		.tda9887_conf   = TDA9887_PRESENT,
1335 		.inputs         = {{
1336 			.name = name_tv,
1337 			.vmux = 1,
1338 			.amux = LINE2,
1339 			.tv   = 1,
1340 		},{
1341 			.name = name_comp1,
1342 			.vmux = 0,
1343 			.amux = LINE2,
1344 		},{
1345 			.name = name_comp2,
1346 			.vmux = 3,
1347 			.amux = LINE2,
1348 		},{
1349 			.name = name_svideo,
1350 			.vmux = 8,
1351 			.amux = LINE2,
1352 		}},
1353 		.radio = {
1354 			.name = name_radio,
1355 			.amux = LINE2,
1356 		},
1357 		.mute = {
1358 			.name = name_mute,
1359 			.amux = LINE1,
1360 		},
1361 	},
1362 	[SAA7134_BOARD_UPMOST_PURPLE_TV] = {
1363 		.name           = "UPMOST PURPLE TV",
1364 		.audio_clock    = 0x00187de7,
1365 		.tuner_type     = TUNER_PHILIPS_FM1236_MK3,
1366 		.radio_type     = UNSET,
1367 		.tuner_addr	= ADDR_UNSET,
1368 		.radio_addr	= ADDR_UNSET,
1369 		.tda9887_conf   = TDA9887_PRESENT,
1370 		.inputs         = {{
1371 			.name = name_tv,
1372 			.vmux = 7,
1373 			.amux = TV,
1374 			.tv   = 1,
1375 		},{
1376 			.name = name_svideo,
1377 			.vmux = 7,
1378 			.amux = LINE1,
1379 		}},
1380 	},
1381 	[SAA7134_BOARD_ITEMS_MTV005] = {
1382 		/* Norman Jonas <normanjonas@arcor.de> */
1383 		.name           = "Items MuchTV Plus / IT-005",
1384 		.audio_clock    = 0x00187de7,
1385 		.tuner_type     = TUNER_PHILIPS_PAL,
1386 		.radio_type     = UNSET,
1387 		.tuner_addr	= ADDR_UNSET,
1388 		.radio_addr	= ADDR_UNSET,
1389 		.inputs         = {{
1390 			.name = name_tv,
1391 			.vmux = 3,
1392 			.amux = TV,
1393 			.tv   = 1,
1394 		},{
1395 			.name   = name_comp1,
1396 			.vmux   = 1,
1397 			.amux   = LINE1,
1398 		},{
1399 			.name = name_svideo,
1400 			.vmux = 8,
1401 			.amux = LINE1,
1402 		}},
1403 		.radio = {
1404 			.name = name_radio,
1405 			.amux = LINE2,
1406 		},
1407 	},
1408 	[SAA7134_BOARD_CINERGY200] = {
1409 		.name           = "Terratec Cinergy 200 TV",
1410 		.audio_clock    = 0x00200000,
1411 		.tuner_type     = TUNER_PHILIPS_PAL,
1412 		.radio_type     = UNSET,
1413 		.tuner_addr	= ADDR_UNSET,
1414 		.radio_addr	= ADDR_UNSET,
1415 		.inputs         = {{
1416 			.name = name_tv,
1417 			.vmux = 1,
1418 			.amux = LINE2,
1419 			.tv   = 1,
1420 		},{
1421 			.name = name_comp1,
1422 			.vmux = 4,
1423 			.amux = LINE1,
1424 		},{
1425 			.name = name_svideo,
1426 			.vmux = 8,
1427 			.amux = LINE1,
1428 		},{
1429 			.name = name_comp2, /* CVideo over SVideo Connector */
1430 			.vmux = 0,
1431 			.amux = LINE1,
1432 		}},
1433 		.mute = {
1434 			.name = name_mute,
1435 			.amux = LINE2,
1436 		},
1437 	},
1438 	[SAA7134_BOARD_VIDEOMATE_TV_PVR] = {
1439 		/* Alain St-Denis <alain@topaze.homeip.net> */
1440 		.name           = "Compro VideoMate TV PVR/FM",
1441 		.audio_clock    = 0x00187de7,
1442 		.tuner_type     = TUNER_PHILIPS_NTSC_M,
1443 		.radio_type     = UNSET,
1444 		.tuner_addr	= ADDR_UNSET,
1445 		.radio_addr	= ADDR_UNSET,
1446 		.gpiomask	= 0x808c0080,
1447 		.inputs         = {{
1448 			.name = name_svideo,
1449 			.vmux = 8,
1450 			.amux = LINE1,
1451 			.gpio = 0x00080,
1452 		},{
1453 			.name = name_comp1,
1454 			.vmux = 3,
1455 			.amux = LINE1,
1456 			.gpio = 0x00080,
1457 		},{
1458 			.name = name_tv,
1459 			.vmux = 1,
1460 			.amux = LINE2_LEFT,
1461 			.tv   = 1,
1462 			.gpio = 0x00080,
1463 		}},
1464 		.radio = {
1465 			.name = name_radio,
1466 			.amux = LINE2,
1467 			.gpio = 0x80000,
1468 		},
1469 		.mute = {
1470 			.name = name_mute,
1471 			.amux = LINE2,
1472 			.gpio = 0x40000,
1473 		},
1474 	},
1475 	[SAA7134_BOARD_SABRENT_SBTTVFM] = {
1476 		/* Michael Rodriguez-Torrent <mrtorrent@asu.edu> */
1477 		.name           = "Sabrent SBT-TVFM (saa7130)",
1478 		.audio_clock    = 0x00187de7,
1479 		.tuner_type     = TUNER_PHILIPS_NTSC_M,
1480 		.radio_type     = UNSET,
1481 		.tuner_addr	= ADDR_UNSET,
1482 		.radio_addr	= ADDR_UNSET,
1483 		.inputs         = {{
1484 			.name = name_comp1,
1485 			.vmux = 1,
1486 			.amux = LINE1,
1487 		},{
1488 			.name = name_tv,
1489 			.vmux = 3,
1490 			.amux = LINE2,
1491 			.tv   = 1,
1492 		},{
1493 			.name = name_svideo,
1494 			.vmux = 8,
1495 			.amux = LINE1,
1496 		}},
1497 		.radio = {
1498 			.name   = name_radio,
1499 			.amux   = LINE2,
1500 		},
1501 	},
1502 	[SAA7134_BOARD_ZOLID_XPERT_TV7134] = {
1503 		/* Helge Jensen <helge.jensen@slog.dk> */
1504 		.name           = ":Zolid Xpert TV7134",
1505 		.audio_clock    = 0x00187de7,
1506 		.tuner_type     = TUNER_PHILIPS_NTSC,
1507 		.radio_type     = UNSET,
1508 		.tuner_addr	= ADDR_UNSET,
1509 		.radio_addr	= ADDR_UNSET,
1510 		.inputs         = {{
1511 			.name = name_svideo,
1512 			.vmux = 8,
1513 			.amux = LINE1,
1514 		},{
1515 			.name = name_comp1,
1516 			.vmux = 3,
1517 			.amux = LINE1,
1518 		},{
1519 			.name = name_tv,
1520 			.vmux = 1,
1521 			.amux = LINE2,
1522 			.tv   = 1,
1523 		}},
1524 	},
1525 	[SAA7134_BOARD_EMPIRE_PCI_TV_RADIO_LE] = {
1526 		/* "Matteo Az" <matte.az@nospam.libero.it> ;-) */
1527 		.name           = "Empire PCI TV-Radio LE",
1528 		.audio_clock    = 0x00187de7,
1529 		.tuner_type     = TUNER_PHILIPS_PAL,
1530 		.radio_type     = UNSET,
1531 		.tuner_addr	= ADDR_UNSET,
1532 		.radio_addr	= ADDR_UNSET,
1533 		.gpiomask       = 0x4000,
1534 		.inputs         = {{
1535 			.name = name_tv_mono,
1536 			.vmux = 1,
1537 			.amux = LINE2,
1538 			.gpio = 0x8000,
1539 			.tv   = 1,
1540 		},{
1541 			.name = name_comp1,
1542 			.vmux = 3,
1543 			.amux = LINE1,
1544 			.gpio = 0x8000,
1545 		},{
1546 			.name = name_svideo,
1547 			.vmux = 6,
1548 			.amux = LINE1,
1549 			.gpio = 0x8000,
1550 		}},
1551 		.radio = {
1552 			.name = name_radio,
1553 			.amux = LINE1,
1554 			.gpio = 0x8000,
1555 		},
1556 		.mute = {
1557 			.name = name_mute,
1558 			.amux = TV,
1559 			.gpio =0x8000,
1560 		}
1561 	},
1562 	[SAA7134_BOARD_AVERMEDIA_STUDIO_307] = {
1563 		/*
1564 		Nickolay V. Shmyrev <nshmyrev@yandex.ru>
1565 		Lots of thanks to Andrey Zolotarev <zolotarev_andrey@mail.ru>
1566 		*/
1567 		.name           = "Avermedia AVerTV Studio 307",
1568 		.audio_clock    = 0x00187de7,
1569 		.tuner_type     = TUNER_PHILIPS_FM1256_IH3,
1570 		.radio_type     = UNSET,
1571 		.tuner_addr	= ADDR_UNSET,
1572 		.radio_addr	= ADDR_UNSET,
1573 		.tda9887_conf   = TDA9887_PRESENT,
1574 		.gpiomask       = 0x03,
1575 		.inputs         = {{
1576 			.name = name_tv,
1577 			.vmux = 1,
1578 			.amux = TV,
1579 			.tv   = 1,
1580 			.gpio = 0x00,
1581 		},{
1582 			.name = name_comp,
1583 			.vmux = 3,
1584 			.amux = LINE1,
1585 			.gpio = 0x02,
1586 		},{
1587 			.name = name_svideo,
1588 			.vmux = 8,
1589 			.amux = LINE1,
1590 			.gpio = 0x02,
1591 		}},
1592 		.radio = {
1593 			.name = name_radio,
1594 			.amux = LINE1,
1595 			.gpio = 0x01,
1596 		},
1597 		.mute  = {
1598 			.name = name_mute,
1599 			.amux = LINE1,
1600 			.gpio = 0x00,
1601 		},
1602 	},
1603 	[SAA7134_BOARD_AVERMEDIA_GO_007_FM] = {
1604 		.name           = "Avermedia AVerTV GO 007 FM",
1605 		.audio_clock    = 0x00187de7,
1606 		.tuner_type     = TUNER_PHILIPS_TDA8290,
1607 		.radio_type     = UNSET,
1608 		.tuner_addr	= ADDR_UNSET,
1609 		.radio_addr	= ADDR_UNSET,
1610 		.gpiomask       = 0x00300003,
1611 		/* .gpiomask       = 0x8c240003, */
1612 		.inputs         = {{
1613 			.name = name_tv,
1614 			.vmux = 1,
1615 			.amux = TV,
1616 			.tv   = 1,
1617 			.gpio = 0x01,
1618 		},{
1619 			.name = name_comp1,
1620 			.vmux = 0,
1621 			.amux = LINE1,
1622 			.gpio = 0x02,
1623 		},{
1624 			.name = name_svideo,
1625 			.vmux = 6,
1626 			.amux = LINE1,
1627 			.gpio = 0x02,
1628 		}},
1629 		.radio = {
1630 			.name = name_radio,
1631 			.amux = LINE1,
1632 			.gpio = 0x00300001,
1633 		},
1634 		.mute = {
1635 			.name = name_mute,
1636 			.amux = TV,
1637 			.gpio = 0x01,
1638 		},
1639 	},
1640 	[SAA7134_BOARD_AVERMEDIA_CARDBUS] = {
1641 		/* Kees.Blom@cwi.nl */
1642 		.name           = "AVerMedia Cardbus TV/Radio (E500)",
1643 		.audio_clock    = 0x187de7,
1644 		.tuner_type     = TUNER_PHILIPS_TDA8290,
1645 		.radio_type     = UNSET,
1646 		.tuner_addr	= ADDR_UNSET,
1647 		.radio_addr	= ADDR_UNSET,
1648 		.inputs         = {{
1649 			.name = name_tv,
1650 			.vmux = 1,
1651 			.amux = TV,
1652 			.tv   = 1,
1653 		},{
1654 			.name = name_comp1,
1655 			.vmux = 3,
1656 			.amux = LINE2,
1657 		},{
1658 			.name = name_svideo,
1659 			.vmux = 8,
1660 			.amux = LINE1,
1661 		}},
1662 		.radio = {
1663 			.name = name_radio,
1664 			.amux = LINE1,
1665 		},
1666 	},
1667 	[SAA7134_BOARD_CINERGY400_CARDBUS] = {
1668 		.name           = "Terratec Cinergy 400 mobile",
1669 		.audio_clock    = 0x187de7,
1670 		.tuner_type     = TUNER_ALPS_TSBE5_PAL,
1671 		.radio_type     = UNSET,
1672 		.tuner_addr	= ADDR_UNSET,
1673 		.radio_addr	= ADDR_UNSET,
1674 		.tda9887_conf   = TDA9887_PRESENT,
1675 		.inputs         = {{
1676 			.name = name_tv,
1677 			.vmux = 1,
1678 			.amux = TV,
1679 			.tv   = 1,
1680 		},{
1681 			.name = name_tv_mono,
1682 			.vmux = 1,
1683 			.amux = LINE2,
1684 			.tv   = 1,
1685 		},{
1686 			.name = name_comp1,
1687 			.vmux = 3,
1688 			.amux = LINE1,
1689 		},{
1690 			.name = name_svideo,
1691 			.vmux = 8,
1692 			.amux = LINE1,
1693 		}},
1694 	},
1695 	[SAA7134_BOARD_CINERGY600_MK3] = {
1696 		.name           = "Terratec Cinergy 600 TV MK3",
1697 		.audio_clock    = 0x00200000,
1698 		.tuner_type	= TUNER_PHILIPS_FM1216ME_MK3,
1699 		.radio_type     = UNSET,
1700 		.tuner_addr	= ADDR_UNSET,
1701 		.radio_addr	= ADDR_UNSET,
1702 		.tda9887_conf   = TDA9887_PRESENT,
1703 		.inputs         = {{
1704 			.name = name_tv,
1705 			.vmux = 1,
1706 			.amux = TV,
1707 			.tv   = 1,
1708 		},{
1709 			.name = name_comp1,
1710 			.vmux = 4,
1711 			.amux = LINE1,
1712 		},{
1713 			.name = name_svideo,
1714 			.vmux = 8,
1715 			.amux = LINE1,
1716 		},{
1717 			.name = name_comp2, /* CVideo over SVideo Connector */
1718 			.vmux = 0,
1719 			.amux = LINE1,
1720 		}},
1721 		.radio = {
1722 			.name = name_radio,
1723 			.amux = LINE2,
1724 		},
1725 	},
1726 	[SAA7134_BOARD_VIDEOMATE_GOLD_PLUS] = {
1727 		/* Dylan Walkden <dylan_walkden@hotmail.com> */
1728 		.name		= "Compro VideoMate Gold+ Pal",
1729 		.audio_clock	= 0x00187de7,
1730 		.tuner_type     = TUNER_PHILIPS_PAL,
1731 		.radio_type     = UNSET,
1732 		.tuner_addr	= ADDR_UNSET,
1733 		.radio_addr	= ADDR_UNSET,
1734 		.gpiomask	= 0x1ce780,
1735 		.inputs		= {{
1736 			.name = name_svideo,
1737 			.vmux = 0,		/* CVideo over SVideo Connector - ok? */
1738 			.amux = LINE1,
1739 			.gpio = 0x008080,
1740 		},{
1741 			.name = name_comp1,
1742 			.vmux = 3,
1743 			.amux = LINE1,
1744 			.gpio = 0x008080,
1745 		},{
1746 			.name = name_tv,
1747 			.vmux = 1,
1748 			.amux = TV,
1749 			.tv   = 1,
1750 			.gpio = 0x008080,
1751 		}},
1752 		.radio = {
1753 			.name = name_radio,
1754 			.amux = LINE2,
1755 			.gpio = 0x80000,
1756 		},
1757 		.mute = {
1758 			.name = name_mute,
1759 			.amux = LINE2,
1760 			.gpio = 0x0c8000,
1761 		},
1762 	},
1763 	[SAA7134_BOARD_PINNACLE_300I_DVBT_PAL] = {
1764 		.name           = "Pinnacle PCTV 300i DVB-T + PAL",
1765 		.audio_clock    = 0x00187de7,
1766 		.tuner_type     = TUNER_MT2032,
1767 		.radio_type     = UNSET,
1768 		.tuner_addr	= ADDR_UNSET,
1769 		.radio_addr	= ADDR_UNSET,
1770 		.tda9887_conf   = TDA9887_PRESENT | TDA9887_INTERCARRIER | TDA9887_PORT2_INACTIVE,
1771 		.mpeg           = SAA7134_MPEG_DVB,
1772 		.inputs         = {{
1773 			.name = name_tv,
1774 			.vmux = 3,
1775 			.amux = TV,
1776 			.tv   = 1,
1777 		},{
1778 			.name = name_comp1,
1779 			.vmux = 0,
1780 			.amux = LINE2,
1781 		},{
1782 			.name = name_comp2,
1783 			.vmux = 1,
1784 			.amux = LINE2,
1785 		},{
1786 			.name = name_svideo,
1787 			.vmux = 8,
1788 			.amux = LINE2,
1789 		}},
1790 	},
1791 	[SAA7134_BOARD_PROVIDEO_PV952] = {
1792 		/* andreas.kretschmer@web.de */
1793 		.name		= "ProVideo PV952",
1794 		.audio_clock	= 0x00187de7,
1795 		.tuner_type	= TUNER_PHILIPS_FM1216ME_MK3,
1796 		.radio_type     = UNSET,
1797 		.tuner_addr	= ADDR_UNSET,
1798 		.radio_addr	= ADDR_UNSET,
1799 		.tda9887_conf   = TDA9887_PRESENT,
1800 		.inputs         = {{
1801 			.name = name_comp1,
1802 			.vmux = 0,
1803 			.amux = LINE1,
1804 		},{
1805 			.name = name_tv,
1806 			.vmux = 1,
1807 			.amux = TV,
1808 			.tv   = 1,
1809 		},{
1810 			.name = name_tv_mono,
1811 			.vmux = 1,
1812 			.amux = LINE2,
1813 			.tv   = 1,
1814 		}},
1815 		.radio = {
1816 			.name = name_radio,
1817 			.amux = LINE2,
1818 		},
1819 	},
1820 	[SAA7134_BOARD_AVERMEDIA_305] = {
1821 		/* much like the "studio" version but without radio
1822 		* and another tuner (sirspiritus@yandex.ru) */
1823 		.name           = "AverMedia AverTV/305",
1824 		.audio_clock    = 0x00187de7,
1825 		.tuner_type     = TUNER_PHILIPS_FQ1216ME,
1826 		.radio_type     = UNSET,
1827 		.tuner_addr	= ADDR_UNSET,
1828 		.radio_addr	= ADDR_UNSET,
1829 		.tda9887_conf   = TDA9887_PRESENT,
1830 		.inputs         = {{
1831 			.name = name_tv,
1832 			.vmux = 1,
1833 			.amux = LINE2,
1834 			.tv   = 1,
1835 		},{
1836 			.name = name_comp1,
1837 			.vmux = 0,
1838 			.amux = LINE2,
1839 		},{
1840 			.name = name_comp2,
1841 			.vmux = 3,
1842 			.amux = LINE2,
1843 		},{
1844 			.name = name_svideo,
1845 			.vmux = 8,
1846 			.amux = LINE2,
1847 		}},
1848 		.mute = {
1849 			.name = name_mute,
1850 			.amux = LINE1,
1851 		},
1852 	},
1853 	[SAA7134_BOARD_FLYDVBTDUO] = {
1854 		/* LifeView FlyDVB-T DUO */
1855 		/* "Nico Sabbi <nsabbi@tiscali.it>  Hartmut Hackmann hartmut.hackmann@t-online.de*/
1856 		.name           = "LifeView FlyDVB-T DUO / MSI TV@nywhere Duo",
1857 		.audio_clock    = 0x00200000,
1858 		.tuner_type     = TUNER_PHILIPS_TDA8290,
1859 		.radio_type     = UNSET,
1860 		.tuner_addr	= ADDR_UNSET,
1861 		.radio_addr	= ADDR_UNSET,
1862 		.gpiomask	= 0x00200000,
1863 		.mpeg           = SAA7134_MPEG_DVB,
1864 		.inputs         = {{
1865 			.name = name_tv,
1866 			.vmux = 1,
1867 			.amux = TV,
1868 			.gpio = 0x200000,	/* GPIO21=High for TV input */
1869 			.tv   = 1,
1870 		},{
1871 			.name = name_comp1,	/* Composite signal on S-Video input */
1872 			.vmux = 0,
1873 			.amux = LINE2,
1874 		},{
1875 			.name = name_comp2,	/* Composite input */
1876 			.vmux = 3,
1877 			.amux = LINE2,
1878 		},{
1879 			.name = name_svideo,	/* S-Video signal on S-Video input */
1880 			.vmux = 8,
1881 			.amux = LINE2,
1882 		}},
1883 		.radio = {
1884 			.name = name_radio,
1885 			.amux = TV,
1886 			.gpio = 0x000000,	/* GPIO21=Low for FM radio antenna */
1887 		},
1888 	},
1889 	[SAA7134_BOARD_PHILIPS_TOUGH] = {
1890 		.name           = "Philips TOUGH DVB-T reference design",
1891 		.tuner_type	= TUNER_ABSENT,
1892 		.audio_clock    = 0x00187de7,
1893 		.radio_type     = UNSET,
1894 		.tuner_addr	= ADDR_UNSET,
1895 		.radio_addr	= ADDR_UNSET,
1896 		.mpeg           = SAA7134_MPEG_DVB,
1897 		.inputs = {{
1898 			.name   = name_comp1,
1899 			.vmux   = 0,
1900 			.amux   = LINE1,
1901 		},{
1902 			.name   = name_svideo,
1903 			.vmux   = 8,
1904 			.amux   = LINE1,
1905 		}},
1906 	},
1907 	[SAA7134_BOARD_AVERMEDIA_307] = {
1908 		/*
1909 		Davydov Vladimir <vladimir@iqmedia.com>
1910 		*/
1911 		.name           = "Avermedia AVerTV 307",
1912 		.audio_clock    = 0x00187de7,
1913 		.tuner_type     = TUNER_PHILIPS_FQ1216ME,
1914 		.radio_type     = UNSET,
1915 		.tuner_addr	= ADDR_UNSET,
1916 		.radio_addr	= ADDR_UNSET,
1917 		.tda9887_conf   = TDA9887_PRESENT,
1918 		.inputs         = {{
1919 			.name = name_tv,
1920 			.vmux = 1,
1921 			.amux = TV,
1922 			.tv   = 1,
1923 		},{
1924 			.name = name_comp1,
1925 			.vmux = 0,
1926 			.amux = LINE1,
1927 		},{
1928 			.name = name_comp2,
1929 			.vmux = 3,
1930 			.amux = LINE1,
1931 		},{
1932 			.name = name_svideo,
1933 			.vmux = 8,
1934 			.amux = LINE1,
1935 		}},
1936 	},
1937 	[SAA7134_BOARD_ADS_INSTANT_TV] = {
1938 		.name           = "ADS Tech Instant TV (saa7135)",
1939 		.audio_clock    = 0x00187de7,
1940 		.tuner_type     = TUNER_PHILIPS_TDA8290,
1941 		.radio_type     = UNSET,
1942 		.tuner_addr	= ADDR_UNSET,
1943 		.radio_addr	= ADDR_UNSET,
1944 		.inputs         = {{
1945 			.name = name_tv,
1946 			.vmux = 1,
1947 			.amux = TV,
1948 			.tv   = 1,
1949 		},{
1950 			.name = name_comp1,
1951 			.vmux = 3,
1952 			.amux = LINE2,
1953 		},{
1954 			.name = name_svideo,
1955 			.vmux = 8,
1956 			.amux = LINE2,
1957 		}},
1958 	},
1959 	[SAA7134_BOARD_KWORLD_VSTREAM_XPERT] = {
1960 		.name           = "Kworld/Tevion V-Stream Xpert TV PVR7134",
1961 		.audio_clock    = 0x00187de7,
1962 		.tuner_type     = TUNER_PHILIPS_PAL_I,
1963 		.radio_type     = UNSET,
1964 		.tuner_addr	= ADDR_UNSET,
1965 		.radio_addr	= ADDR_UNSET,
1966 		.gpiomask	= 0x0700,
1967 		.inputs = {{
1968 			.name   = name_tv,
1969 			.vmux   = 1,
1970 			.amux   = TV,
1971 			.tv     = 1,
1972 			.gpio   = 0x000,
1973 		},{
1974 			.name   = name_comp1,
1975 			.vmux   = 3,
1976 			.amux   = LINE1,
1977 			.gpio   = 0x200,		/* gpio by DScaler */
1978 		},{
1979 			.name   = name_svideo,
1980 			.vmux   = 0,
1981 			.amux   = LINE1,
1982 			.gpio   = 0x200,
1983 		}},
1984 		.radio = {
1985 			.name   = name_radio,
1986 			.amux   = LINE1,
1987 			.gpio   = 0x100,
1988 		},
1989 		.mute  = {
1990 			.name = name_mute,
1991 			.amux = TV,
1992 			.gpio = 0x000,
1993 		},
1994 	},
1995 	[SAA7134_BOARD_FLYDVBT_DUO_CARDBUS] = {
1996 		.name		= "LifeView/Typhoon/Genius FlyDVB-T Duo Cardbus",
1997 		.audio_clock    = 0x00200000,
1998 		.tuner_type     = TUNER_PHILIPS_TDA8290,
1999 		.radio_type     = UNSET,
2000 		.tuner_addr	= ADDR_UNSET,
2001 		.radio_addr	= ADDR_UNSET,
2002 		.mpeg           = SAA7134_MPEG_DVB,
2003 		.gpiomask	= 0x00200000,
2004 		.inputs         = {{
2005 			.name = name_tv,
2006 			.vmux = 1,
2007 			.amux = TV,
2008 			.gpio = 0x200000,	/* GPIO21=High for TV input */
2009 			.tv   = 1,
2010 		},{
2011 			.name = name_svideo,	/* S-Video signal on S-Video input */
2012 			.vmux = 8,
2013 			.amux = LINE2,
2014 		},{
2015 			.name = name_comp1,	/* Composite signal on S-Video input */
2016 			.vmux = 0,
2017 			.amux = LINE2,
2018 		},{
2019 			.name = name_comp2,	/* Composite input */
2020 			.vmux = 3,
2021 			.amux = LINE2,
2022 		}},
2023 		.radio = {
2024 			.name = name_radio,
2025 			.amux = TV,
2026 			.gpio = 0x000000,	/* GPIO21=Low for FM radio antenna */
2027 		},
2028 	},
2029 	[SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII] = {
2030 		.name           = "Compro VideoMate TV Gold+II",
2031 		.audio_clock    = 0x002187de7,
2032 		.tuner_type     = TUNER_LG_PAL_NEW_TAPC,
2033 		.radio_type     = TUNER_TEA5767,
2034 		.tuner_addr     = 0x63,
2035 		.radio_addr     = 0x60,
2036 		.gpiomask       = 0x8c1880,
2037 		.inputs         = {{
2038 			.name = name_svideo,
2039 			.vmux = 0,
2040 			.amux = LINE1,
2041 			.gpio = 0x800800,
2042 		},{
2043 			.name = name_comp1,
2044 			.vmux = 3,
2045 			.amux = LINE1,
2046 			.gpio = 0x801000,
2047 		},{
2048 			.name = name_tv,
2049 			.vmux = 1,
2050 			.amux = TV,
2051 			.tv   = 1,
2052 			.gpio = 0x800000,
2053 		}},
2054 		.radio = {
2055 			.name = name_radio,
2056 			.amux = TV,
2057 			.gpio = 0x880000,
2058 		},
2059 		.mute = {
2060 			.name = name_mute,
2061 			.amux = LINE2,
2062 			.gpio = 0x840000,
2063 		},
2064 	},
2065 	[SAA7134_BOARD_KWORLD_XPERT] = {
2066 		/*
2067 		FIXME:
2068 		- Remote control doesn't initialize properly.
2069 		- Audio volume starts muted,
2070 		then gradually increases after channel change.
2071 		- Overlay scaling problems (application error?)
2072 		- Composite S-Video untested.
2073 		From: Konrad Rzepecki <hannibal@megapolis.pl>
2074 		*/
2075 		.name           = "Kworld Xpert TV PVR7134",
2076 		.audio_clock    = 0x00187de7,
2077 		.tuner_type     = TUNER_TENA_9533_DI,
2078 		.radio_type     = TUNER_TEA5767,
2079 		.tuner_addr	= 0x61,
2080 		.radio_addr	= 0x60,
2081 		.gpiomask	= 0x0700,
2082 		.inputs = {{
2083 			.name   = name_tv,
2084 			.vmux   = 1,
2085 			.amux   = TV,
2086 			.tv     = 1,
2087 			.gpio   = 0x000,
2088 		},{
2089 			.name   = name_comp1,
2090 			.vmux   = 3,
2091 			.amux   = LINE1,
2092 			.gpio   = 0x200,		/* gpio by DScaler */
2093 		},{
2094 			.name   = name_svideo,
2095 			.vmux   = 0,
2096 			.amux   = LINE1,
2097 			.gpio   = 0x200,
2098 		}},
2099 		.radio = {
2100 			.name   = name_radio,
2101 			.amux   = LINE1,
2102 			.gpio   = 0x100,
2103 		},
2104 		.mute = {
2105 			.name = name_mute,
2106 			.amux = TV,
2107 			.gpio = 0x000,
2108 		},
2109 	},
2110 	[SAA7134_BOARD_FLYTV_DIGIMATRIX] = {
2111 		.name		= "FlyTV mini Asus Digimatrix",
2112 		.audio_clock	= 0x00200000,
2113 		.tuner_type	= TUNER_LG_TALN,
2114 		.radio_type     = UNSET,
2115 		.tuner_addr	= ADDR_UNSET,
2116 		.radio_addr	= ADDR_UNSET,
2117 		.inputs         = {{
2118 			.name = name_tv,
2119 			.vmux = 1,
2120 			.amux = TV,
2121 			.tv   = 1,
2122 		},{
2123 			.name = name_tv_mono,
2124 			.vmux = 1,
2125 			.amux = LINE2,
2126 			.tv   = 1,
2127 		},{
2128 			.name = name_comp1,
2129 			.vmux = 0,
2130 			.amux = LINE2,
2131 		},{
2132 			.name = name_comp2,
2133 			.vmux = 3,
2134 			.amux = LINE2,
2135 		},{
2136 			.name = name_svideo,
2137 			.vmux = 8,
2138 			.amux = LINE2,
2139 		}},
2140 		.radio = {
2141 			.name = name_radio,		/* radio unconfirmed */
2142 			.amux = LINE2,
2143 		},
2144 	},
2145 	[SAA7134_BOARD_KWORLD_TERMINATOR] = {
2146 		/* Kworld V-Stream Studio TV Terminator */
2147 		/* "James Webb <jrwebb@qwest.net> */
2148 		.name           = "V-Stream Studio TV Terminator",
2149 		.audio_clock    = 0x00187de7,
2150 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2151 		.radio_type     = UNSET,
2152 		.tuner_addr     = ADDR_UNSET,
2153 		.radio_addr     = ADDR_UNSET,
2154 		.gpiomask       = 1 << 21,
2155 		.inputs         = {{
2156 			.name = name_tv,
2157 			.vmux = 1,
2158 			.amux = TV,
2159 			.gpio = 0x0000000,
2160 			.tv   = 1,
2161 		},{
2162 			.name = name_comp1,     /* Composite input */
2163 			.vmux = 3,
2164 			.amux = LINE2,
2165 			.gpio = 0x0000000,
2166 		},{
2167 			.name = name_svideo,    /* S-Video input */
2168 			.vmux = 8,
2169 			.amux = LINE2,
2170 			.gpio = 0x0000000,
2171 		}},
2172 		.radio = {
2173 			.name = name_radio,
2174 			.amux = TV,
2175 			.gpio = 0x0200000,
2176 		},
2177 	},
2178 	[SAA7134_BOARD_YUAN_TUN900] = {
2179 		/* FIXME:
2180 		 * S-Video and composite sources untested.
2181 		 * Radio not working.
2182 		 * Remote control not yet implemented.
2183 		 * From : codemaster@webgeeks.be */
2184 		.name           = "Yuan TUN-900 (saa7135)",
2185 		.audio_clock    = 0x00187de7,
2186 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2187 		.radio_type     = UNSET,
2188 		.tuner_addr= ADDR_UNSET,
2189 		.radio_addr= ADDR_UNSET,
2190 		.gpiomask       = 0x00010003,
2191 		.inputs         = {{
2192 			.name = name_tv,
2193 			.vmux = 1,
2194 			.amux = TV,
2195 			.tv   = 1,
2196 			.gpio = 0x01,
2197 		},{
2198 			.name = name_comp1,
2199 			.vmux = 0,
2200 			.amux = LINE2,
2201 			.gpio = 0x02,
2202 		},{
2203 			.name = name_svideo,
2204 			.vmux = 6,
2205 			.amux = LINE2,
2206 			.gpio = 0x02,
2207 		}},
2208 		.radio = {
2209 			.name = name_radio,
2210 			.amux = LINE1,
2211 			.gpio = 0x00010003,
2212 		},
2213 		.mute = {
2214 			.name = name_mute,
2215 			.amux = TV,
2216 			.gpio = 0x01,
2217 		},
2218 	},
2219 	[SAA7134_BOARD_BEHOLD_409FM] = {
2220 		/* <http://tuner.beholder.ru>, Sergey <skiv@orel.ru> */
2221 		/*       Beholder Intl. Ltd. 2008      */
2222 		/*Dmitry Belimov <d.belimov@gmail.com> */
2223 		.name           = "Beholder BeholdTV 409 FM",
2224 		.audio_clock    = 0x00187de7,
2225 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
2226 		.radio_type     = UNSET,
2227 		.tuner_addr     = ADDR_UNSET,
2228 		.radio_addr     = ADDR_UNSET,
2229 		.tda9887_conf   = TDA9887_PRESENT,
2230 		.gpiomask       = 0x00008000,
2231 		.inputs         = {{
2232 			  .name = name_tv,
2233 			  .vmux = 3,
2234 			  .amux = TV,
2235 			  .tv   = 1,
2236 		},{
2237 			  .name = name_comp1,
2238 			  .vmux = 1,
2239 			  .amux = LINE1,
2240 		},{
2241 			  .name = name_svideo,
2242 			  .vmux = 8,
2243 			  .amux = LINE1,
2244 		}},
2245 		.radio = {
2246 			  .name = name_radio,
2247 			  .amux = LINE2,
2248 		},
2249 	},
2250 	[SAA7134_BOARD_GOTVIEW_7135] = {
2251 		/* Mike Baikov <mike@baikov.com> */
2252 		/* Andrey Cvetcov <ays14@yandex.ru> */
2253 		.name            = "GoTView 7135 PCI",
2254 		.audio_clock     = 0x00187de7,
2255 		.tuner_type      = TUNER_PHILIPS_FM1216ME_MK3,
2256 		.radio_type      = UNSET,
2257 		.tuner_addr      = ADDR_UNSET,
2258 		.radio_addr      = ADDR_UNSET,
2259 		.tda9887_conf    = TDA9887_PRESENT,
2260 		.gpiomask        = 0x00200003,
2261 		.inputs          = {{
2262 			.name = name_tv,
2263 			.vmux = 1,
2264 			.amux = TV,
2265 			.tv   = 1,
2266 			.gpio = 0x00200003,
2267 		},{
2268 			.name = name_tv_mono,
2269 			.vmux = 1,
2270 			.amux = LINE2,
2271 			.gpio = 0x00200003,
2272 		},{
2273 			.name = name_comp1,
2274 			.vmux = 3,
2275 			.amux = LINE1,
2276 			.gpio = 0x00200003,
2277 		},{
2278 			.name = name_svideo,
2279 			.vmux = 8,
2280 			.amux = LINE1,
2281 			.gpio = 0x00200003,
2282 		}},
2283 		.radio = {
2284 			.name = name_radio,
2285 			.amux = LINE2,
2286 			.gpio = 0x00200003,
2287 		},
2288 		.mute = {
2289 			.name = name_mute,
2290 			.amux = TV,
2291 			.gpio = 0x00200003,
2292 		},
2293 	},
2294 	[SAA7134_BOARD_PHILIPS_EUROPA] = {
2295 		.name           = "Philips EUROPA V3 reference design",
2296 		.audio_clock    = 0x00187de7,
2297 		.tuner_type     = TUNER_PHILIPS_TD1316,
2298 		.radio_type     = UNSET,
2299 		.tuner_addr	= 0x61,
2300 		.radio_addr	= ADDR_UNSET,
2301 		.tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
2302 		.mpeg           = SAA7134_MPEG_DVB,
2303 		.inputs = {{
2304 			.name   = name_tv,
2305 			.vmux   = 3,
2306 			.amux   = TV,
2307 			.tv     = 1,
2308 		},{
2309 			.name   = name_comp1,
2310 			.vmux   = 0,
2311 			.amux   = LINE2,
2312 		},{
2313 			.name   = name_svideo,
2314 			.vmux   = 8,
2315 			.amux   = LINE2,
2316 		}},
2317 	},
2318 	[SAA7134_BOARD_VIDEOMATE_DVBT_300] = {
2319 		.name           = "Compro Videomate DVB-T300",
2320 		.audio_clock    = 0x00187de7,
2321 		.tuner_type     = TUNER_PHILIPS_TD1316,
2322 		.radio_type     = UNSET,
2323 		.tuner_addr	= 0x61,
2324 		.radio_addr	= ADDR_UNSET,
2325 		.tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
2326 		.mpeg           = SAA7134_MPEG_DVB,
2327 		.inputs = {{
2328 			.name   = name_tv,
2329 			.vmux   = 3,
2330 			.amux   = TV,
2331 			.tv     = 1,
2332 		},{
2333 			.name   = name_comp1,
2334 			.vmux   = 1,
2335 			.amux   = LINE2,
2336 		},{
2337 			.name   = name_svideo,
2338 			.vmux   = 8,
2339 			.amux   = LINE2,
2340 		}},
2341 	},
2342 	[SAA7134_BOARD_VIDEOMATE_DVBT_200] = {
2343 		.name           = "Compro Videomate DVB-T200",
2344 		.tuner_type	= TUNER_ABSENT,
2345 		.audio_clock    = 0x00187de7,
2346 		.radio_type     = UNSET,
2347 		.tuner_addr	= ADDR_UNSET,
2348 		.radio_addr	= ADDR_UNSET,
2349 		.mpeg           = SAA7134_MPEG_DVB,
2350 		.inputs = {{
2351 			.name   = name_comp1,
2352 			.vmux   = 0,
2353 			.amux   = LINE1,
2354 		},{
2355 			.name   = name_svideo,
2356 			.vmux   = 8,
2357 			.amux   = LINE1,
2358 		}},
2359 	},
2360 	[SAA7134_BOARD_RTD_VFG7350] = {
2361 		.name		= "RTD Embedded Technologies VFG7350",
2362 		.audio_clock	= 0x00200000,
2363 		.tuner_type	= TUNER_ABSENT,
2364 		.radio_type	= UNSET,
2365 		.tuner_addr	= ADDR_UNSET,
2366 		.radio_addr	= ADDR_UNSET,
2367 		.inputs		= {{
2368 			.name   = "Composite 0",
2369 			.vmux   = 0,
2370 			.amux   = LINE1,
2371 		},{
2372 			.name   = "Composite 1",
2373 			.vmux   = 1,
2374 			.amux   = LINE2,
2375 		},{
2376 			.name   = "Composite 2",
2377 			.vmux   = 2,
2378 			.amux   = LINE1,
2379 		},{
2380 			.name   = "Composite 3",
2381 			.vmux   = 3,
2382 			.amux   = LINE2,
2383 		},{
2384 			.name   = "S-Video 0",
2385 			.vmux   = 8,
2386 			.amux   = LINE1,
2387 		},{
2388 			.name   = "S-Video 1",
2389 			.vmux   = 9,
2390 			.amux   = LINE2,
2391 		}},
2392 		.mpeg           = SAA7134_MPEG_EMPRESS,
2393 		.video_out      = CCIR656,
2394 		.vid_port_opts  = ( SET_T_CODE_POLARITY_NON_INVERTED |
2395 				    SET_CLOCK_NOT_DELAYED |
2396 				    SET_CLOCK_INVERTED |
2397 				    SET_VSYNC_OFF ),
2398 	},
2399 	[SAA7134_BOARD_RTD_VFG7330] = {
2400 		.name		= "RTD Embedded Technologies VFG7330",
2401 		.audio_clock	= 0x00200000,
2402 		.tuner_type	= TUNER_ABSENT,
2403 		.radio_type	= UNSET,
2404 		.tuner_addr	= ADDR_UNSET,
2405 		.radio_addr	= ADDR_UNSET,
2406 		.inputs		= {{
2407 			.name   = "Composite 0",
2408 			.vmux   = 0,
2409 			.amux   = LINE1,
2410 		},{
2411 			.name   = "Composite 1",
2412 			.vmux   = 1,
2413 			.amux   = LINE2,
2414 		},{
2415 			.name   = "Composite 2",
2416 			.vmux   = 2,
2417 			.amux   = LINE1,
2418 		},{
2419 			.name   = "Composite 3",
2420 			.vmux   = 3,
2421 			.amux   = LINE2,
2422 		},{
2423 			.name   = "S-Video 0",
2424 			.vmux   = 8,
2425 			.amux   = LINE1,
2426 		},{
2427 			.name   = "S-Video 1",
2428 			.vmux   = 9,
2429 			.amux   = LINE2,
2430 		}},
2431 	},
2432 	[SAA7134_BOARD_FLYTVPLATINUM_MINI2] = {
2433 		.name           = "LifeView FlyTV Platinum Mini2",
2434 		.audio_clock    = 0x00200000,
2435 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2436 		.radio_type     = UNSET,
2437 		.tuner_addr	= ADDR_UNSET,
2438 		.radio_addr	= ADDR_UNSET,
2439 
2440 		.inputs         = {{
2441 			.name = name_tv,
2442 			.vmux = 1,
2443 			.amux = TV,
2444 			.tv   = 1,
2445 		},{
2446 			.name = name_comp1,     /* Composite signal on S-Video input */
2447 			.vmux = 0,
2448 			.amux = LINE2,
2449 		},{
2450 			.name = name_comp2,	/* Composite input */
2451 			.vmux = 3,
2452 			.amux = LINE2,
2453 		},{
2454 			.name = name_svideo,
2455 			.vmux = 8,
2456 			.amux = LINE2,
2457 		}},
2458 	},
2459 	[SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180] = {
2460 		/* Michael Krufky <mkrufky@m1k.net>
2461 		 * Uses Alps Electric TDHU2, containing NXT2004 ATSC Decoder
2462 		 * AFAIK, there is no analog demod, thus,
2463 		 * no support for analog television.
2464 		 */
2465 		.name           = "AVerMedia AVerTVHD MCE A180",
2466 		.audio_clock    = 0x00187de7,
2467 		.tuner_type     = TUNER_ABSENT,
2468 		.radio_type     = UNSET,
2469 		.tuner_addr     = ADDR_UNSET,
2470 		.radio_addr     = ADDR_UNSET,
2471 		.mpeg           = SAA7134_MPEG_DVB,
2472 		.inputs         = {{
2473 			.name = name_comp1,
2474 			.vmux = 3,
2475 			.amux = LINE2,
2476 		},{
2477 			.name = name_svideo,
2478 			.vmux = 8,
2479 			.amux = LINE2,
2480 		}},
2481 	},
2482 	[SAA7134_BOARD_MONSTERTV_MOBILE] = {
2483 		.name           = "SKNet MonsterTV Mobile",
2484 		.audio_clock    = 0x00187de7,
2485 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2486 		.radio_type     = UNSET,
2487 		.tuner_addr	= ADDR_UNSET,
2488 		.radio_addr	= ADDR_UNSET,
2489 
2490 		.inputs         = {{
2491 			  .name = name_tv,
2492 			  .vmux = 1,
2493 			  .amux = TV,
2494 			  .tv   = 1,
2495 		},{
2496 			  .name = name_comp1,
2497 			  .vmux = 3,
2498 			  .amux = LINE1,
2499 		},{
2500 			  .name = name_svideo,
2501 			  .vmux = 6,
2502 			  .amux = LINE1,
2503 		}},
2504 	},
2505 	[SAA7134_BOARD_PINNACLE_PCTV_110i] = {
2506 	       .name           = "Pinnacle PCTV 40i/50i/110i (saa7133)",
2507 		.audio_clock    = 0x00187de7,
2508 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2509 		.radio_type     = UNSET,
2510 		.tuner_addr     = ADDR_UNSET,
2511 		.radio_addr     = ADDR_UNSET,
2512 		.gpiomask       = 0x080200000,
2513 		.inputs         = { {
2514 			.name = name_tv,
2515 			.vmux = 4,
2516 			.amux = TV,
2517 			.tv   = 1,
2518 		}, {
2519 			.name = name_comp1,
2520 			.vmux = 1,
2521 			.amux = LINE2,
2522 		}, {
2523 			.name = name_comp2,
2524 			.vmux = 0,
2525 			.amux = LINE2,
2526 		}, {
2527 			.name = name_svideo,
2528 			.vmux = 8,
2529 			.amux = LINE2,
2530 		} },
2531 		.radio = {
2532 			.name = name_radio,
2533 			.amux = TV,
2534 			.gpio = 0x0200000,
2535 		},
2536 	},
2537 	[SAA7134_BOARD_ASUSTeK_P7131_DUAL] = {
2538 		.name           = "ASUSTeK P7131 Dual",
2539 		.audio_clock    = 0x00187de7,
2540 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2541 		.radio_type     = UNSET,
2542 		.tuner_addr	= ADDR_UNSET,
2543 		.radio_addr	= ADDR_UNSET,
2544 		.gpiomask	= 1 << 21,
2545 		.mpeg           = SAA7134_MPEG_DVB,
2546 		.inputs         = {{
2547 			.name = name_tv,
2548 			.vmux = 1,
2549 			.amux = TV,
2550 			.tv   = 1,
2551 			.gpio = 0x0000000,
2552 		},{
2553 			.name = name_comp1,
2554 			.vmux = 3,
2555 			.amux = LINE2,
2556 			.gpio = 0x0200000,
2557 		},{
2558 			.name = name_comp2,
2559 			.vmux = 0,
2560 			.amux = LINE2,
2561 			.gpio = 0x0200000,
2562 		},{
2563 			.name = name_svideo,
2564 			.vmux = 8,
2565 			.amux = LINE2,
2566 			.gpio = 0x0200000,
2567 		}},
2568 		.radio = {
2569 			.name = name_radio,
2570 			.amux = TV,
2571 			.gpio = 0x0200000,
2572 		},
2573 	},
2574 	[SAA7134_BOARD_SEDNA_PC_TV_CARDBUS] = {
2575 		/* Paul Tom Zalac <pzalac@gmail.com> */
2576 		/* Pavel Mihaylov <bin@bash.info> */
2577 		.name           = "Sedna/MuchTV PC TV Cardbus TV/Radio (ITO25 Rev:2B)",
2578 				/* Sedna/MuchTV (OEM) Cardbus TV Tuner */
2579 		.audio_clock    = 0x00187de7,
2580 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2581 		.radio_type     = UNSET,
2582 		.tuner_addr     = ADDR_UNSET,
2583 		.radio_addr     = ADDR_UNSET,
2584 		.gpiomask       = 0xe880c0,
2585 		.inputs         = {{
2586 			.name = name_tv,
2587 			.vmux = 3,
2588 			.amux = TV,
2589 			.tv   = 1,
2590 		},{
2591 			.name = name_comp1,
2592 			.vmux = 1,
2593 			.amux = LINE1,
2594 		},{
2595 			.name = name_svideo,
2596 			.vmux = 6,
2597 			.amux = LINE1,
2598 		}},
2599 		.radio = {
2600 			.name = name_radio,
2601 			.amux = LINE2,
2602 		},
2603 	},
2604 	[SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV] = {
2605 		/* "Cyril Lacoux (Yack)" <clacoux@ifeelgood.org> */
2606 		.name           = "ASUS Digimatrix TV",
2607 		.audio_clock    = 0x00200000,
2608 		.tuner_type     = TUNER_PHILIPS_FQ1216ME,
2609 		.tda9887_conf   = TDA9887_PRESENT,
2610 		.radio_type     = UNSET,
2611 		.tuner_addr     = ADDR_UNSET,
2612 		.radio_addr     = ADDR_UNSET,
2613 		.inputs         = {{
2614 			.name = name_tv,
2615 			.vmux = 1,
2616 			.amux = TV,
2617 			.tv   = 1,
2618 		},{
2619 			.name = name_comp1,
2620 			.vmux = 3,
2621 			.amux = LINE1,
2622 		},{
2623 			.name = name_svideo,
2624 			.vmux = 8,
2625 			.amux = LINE1,
2626 		}},
2627 	},
2628 	[SAA7134_BOARD_PHILIPS_TIGER] = {
2629 		.name           = "Philips Tiger reference design",
2630 		.audio_clock    = 0x00187de7,
2631 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2632 		.radio_type     = UNSET,
2633 		.tuner_addr	= ADDR_UNSET,
2634 		.radio_addr	= ADDR_UNSET,
2635 		.tuner_config   = 0,
2636 		.mpeg           = SAA7134_MPEG_DVB,
2637 		.gpiomask       = 0x0200000,
2638 		.inputs = {{
2639 			.name   = name_tv,
2640 			.vmux   = 1,
2641 			.amux   = TV,
2642 			.tv     = 1,
2643 		},{
2644 			.name   = name_comp1,
2645 			.vmux   = 3,
2646 			.amux   = LINE1,
2647 		},{
2648 			.name   = name_svideo,
2649 			.vmux   = 8,
2650 			.amux   = LINE1,
2651 		}},
2652 		.radio = {
2653 			.name   = name_radio,
2654 			.amux   = TV,
2655 			.gpio   = 0x0200000,
2656 		},
2657 	},
2658 	[SAA7134_BOARD_MSI_TVATANYWHERE_PLUS] = {
2659 		.name           = "MSI TV@Anywhere plus",
2660 		.audio_clock    = 0x00187de7,
2661 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2662 		.radio_type     = UNSET,
2663 		.tuner_addr	= ADDR_UNSET,
2664 		.radio_addr	= ADDR_UNSET,
2665 		.gpiomask       = 1 << 21,
2666 		.inputs = {{
2667 			.name   = name_tv,
2668 			.vmux   = 1,
2669 			.amux   = TV,
2670 			.tv     = 1,
2671 		},{
2672 			.name   = name_comp1,
2673 			.vmux   = 3,
2674 			.amux   = LINE2,	/* unconfirmed, taken from Philips driver */
2675 		},{
2676 			.name   = name_comp2,
2677 			.vmux   = 0,		/* untested, Composite over S-Video */
2678 			.amux   = LINE2,
2679 		},{
2680 			.name   = name_svideo,
2681 			.vmux   = 8,
2682 			.amux   = LINE2,
2683 		}},
2684 		.radio = {
2685 			.name   = name_radio,
2686 			.amux   = TV,
2687 			.gpio   = 0x0200000,
2688 		},
2689 	},
2690 	[SAA7134_BOARD_CINERGY250PCI] = {
2691 		/* remote-control does not work. The signal about a
2692 		   key press comes in via gpio, but the key code
2693 		   doesn't. Neither does it have an i2c remote control
2694 		   interface. */
2695 		.name           = "Terratec Cinergy 250 PCI TV",
2696 		.audio_clock    = 0x00187de7,
2697 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2698 		.radio_type     = UNSET,
2699 		.tuner_addr	= ADDR_UNSET,
2700 		.radio_addr	= ADDR_UNSET,
2701 		.gpiomask       = 0x80200000,
2702 		.inputs         = {{
2703 			.name = name_tv,
2704 			.vmux = 1,
2705 			.amux = TV,
2706 			.tv   = 1,
2707 		},{
2708 			.name = name_svideo,  /* NOT tested */
2709 			.vmux = 8,
2710 			.amux = LINE1,
2711 		}},
2712 		.radio = {
2713 			.name   = name_radio,
2714 			.amux   = TV,
2715 			.gpio   = 0x0200000,
2716 		},
2717 	},
2718 	[SAA7134_BOARD_FLYDVB_TRIO] = {
2719 		/* LifeView LR319 FlyDVB Trio */
2720 		/* Peter Missel <peter.missel@onlinehome.de> */
2721 		.name           = "LifeView FlyDVB Trio",
2722 		.audio_clock    = 0x00200000,
2723 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2724 		.radio_type     = UNSET,
2725 		.tuner_addr	= ADDR_UNSET,
2726 		.radio_addr	= ADDR_UNSET,
2727 		.gpiomask	= 0x00200000,
2728 		.mpeg           = SAA7134_MPEG_DVB,
2729 		.inputs         = {{
2730 			.name = name_tv,	/* Analog broadcast/cable TV */
2731 			.vmux = 1,
2732 			.amux = TV,
2733 			.gpio = 0x200000,	/* GPIO21=High for TV input */
2734 			.tv   = 1,
2735 		},{
2736 			.name = name_svideo,	/* S-Video signal on S-Video input */
2737 			.vmux = 8,
2738 			.amux = LINE2,
2739 		},{
2740 			.name = name_comp1,	/* Composite signal on S-Video input */
2741 			.vmux = 0,
2742 			.amux = LINE2,
2743 		},{
2744 			.name = name_comp2,	/* Composite input */
2745 			.vmux = 3,
2746 			.amux = LINE2,
2747 		}},
2748 		.radio = {
2749 			.name = name_radio,
2750 			.amux = TV,
2751 			.gpio = 0x000000,	/* GPIO21=Low for FM radio antenna */
2752 		},
2753 	},
2754 	[SAA7134_BOARD_AVERMEDIA_777] = {
2755 		.name           = "AverTV DVB-T 777",
2756 		.audio_clock    = 0x00187de7,
2757 		.tuner_type     = TUNER_ABSENT,
2758 		.radio_type     = UNSET,
2759 		.tuner_addr	= ADDR_UNSET,
2760 		.radio_addr	= ADDR_UNSET,
2761 		.mpeg           = SAA7134_MPEG_DVB,
2762 		.inputs = {{
2763 			.name   = name_comp1,
2764 			.vmux   = 1,
2765 			.amux   = LINE1,
2766 		},{
2767 			.name   = name_svideo,
2768 			.vmux   = 8,
2769 			.amux   = LINE1,
2770 		}},
2771 	},
2772 	[SAA7134_BOARD_FLYDVBT_LR301] = {
2773 		/* LifeView FlyDVB-T */
2774 		/* Giampiero Giancipoli <gianci@libero.it> */
2775 		.name           = "LifeView FlyDVB-T / Genius VideoWonder DVB-T",
2776 		.audio_clock    = 0x00200000,
2777 		.tuner_type     = TUNER_ABSENT,
2778 		.radio_type     = UNSET,
2779 		.tuner_addr	= ADDR_UNSET,
2780 		.radio_addr	= ADDR_UNSET,
2781 		.mpeg           = SAA7134_MPEG_DVB,
2782 		.inputs         = {{
2783 			.name = name_comp1,	/* Composite input */
2784 			.vmux = 3,
2785 			.amux = LINE2,
2786 		},{
2787 			.name = name_svideo,	/* S-Video signal on S-Video input */
2788 			.vmux = 8,
2789 			.amux = LINE2,
2790 		}},
2791 	},
2792 	[SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331] = {
2793 		.name           = "ADS Instant TV Duo Cardbus PTV331",
2794 		.audio_clock    = 0x00200000,
2795 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2796 		.radio_type     = UNSET,
2797 		.tuner_addr	= ADDR_UNSET,
2798 		.radio_addr	= ADDR_UNSET,
2799 		.mpeg           = SAA7134_MPEG_DVB,
2800 		.gpiomask       = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
2801 		.inputs = {{
2802 			.name   = name_tv,
2803 			.vmux   = 1,
2804 			.amux   = TV,
2805 			.tv     = 1,
2806 			.gpio   = 0x00200000,
2807 		}},
2808 	},
2809 	[SAA7134_BOARD_TEVION_DVBT_220RF] = {
2810 		.name           = "Tevion/KWorld DVB-T 220RF",
2811 		.audio_clock    = 0x00187de7,
2812 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2813 		.radio_type     = UNSET,
2814 		.tuner_addr     = ADDR_UNSET,
2815 		.radio_addr     = ADDR_UNSET,
2816 		.mpeg           = SAA7134_MPEG_DVB,
2817 		.gpiomask       = 1 << 21,
2818 		.inputs = {{
2819 			.name   = name_tv,
2820 			.vmux   = 1,
2821 			.amux   = TV,
2822 			.tv     = 1,
2823 		},{
2824 			.name   = name_comp1,
2825 			.vmux   = 3,
2826 			.amux   = LINE1,
2827 		},{
2828 			.name   = name_comp2,
2829 			.vmux   = 0,
2830 			.amux   = LINE1,
2831 		},{
2832 			.name   = name_svideo,
2833 			.vmux   = 8,
2834 			.amux   = LINE1,
2835 		}},
2836 		.radio = {
2837 			.name   = name_radio,
2838 			.amux   = TV,
2839 			.gpio   = 0x0200000,
2840 		},
2841 	},
2842 	[SAA7134_BOARD_KWORLD_DVBT_210] = {
2843 		.name           = "KWorld DVB-T 210",
2844 		.audio_clock    = 0x00187de7,
2845 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2846 		.radio_type     = UNSET,
2847 		.tuner_addr	= ADDR_UNSET,
2848 		.radio_addr	= ADDR_UNSET,
2849 		.mpeg           = SAA7134_MPEG_DVB,
2850 		.gpiomask       = 1 << 21,
2851 		.inputs = {{
2852 			.name   = name_tv,
2853 			.vmux   = 1,
2854 			.amux   = TV,
2855 			.tv     = 1,
2856 		},{
2857 			.name   = name_comp1,
2858 			.vmux   = 3,
2859 			.amux   = LINE1,
2860 		},{
2861 			.name   = name_svideo,
2862 			.vmux   = 8,
2863 			.amux   = LINE1,
2864 		}},
2865 		.radio = {
2866 			.name   = name_radio,
2867 			.amux   = TV,
2868 			.gpio   = 0x0200000,
2869 		},
2870 	},
2871 	[SAA7134_BOARD_KWORLD_ATSC110] = {
2872 		.name           = "Kworld ATSC110/115",
2873 		.audio_clock    = 0x00187de7,
2874 		.tuner_type     = TUNER_PHILIPS_TUV1236D,
2875 		.radio_type     = UNSET,
2876 		.tuner_addr     = ADDR_UNSET,
2877 		.radio_addr     = ADDR_UNSET,
2878 		.tda9887_conf   = TDA9887_PRESENT,
2879 		.mpeg           = SAA7134_MPEG_DVB,
2880 		.inputs         = {{
2881 			.name = name_tv,
2882 			.vmux = 1,
2883 			.amux = TV,
2884 			.tv   = 1,
2885 		},{
2886 			.name = name_comp1,
2887 			.vmux = 3,
2888 			.amux = LINE2,
2889 		},{
2890 			.name = name_svideo,
2891 			.vmux = 8,
2892 			.amux = LINE2,
2893 		}},
2894 	},
2895 	[SAA7134_BOARD_AVERMEDIA_A169_B] = {
2896 		/* AVerMedia A169  */
2897 		/* Rickard Osser <ricky@osser.se>  */
2898 		/* This card has two saa7134 chips on it,
2899 		   but only one of them is currently working. */
2900 		.name		= "AVerMedia A169 B",
2901 		.audio_clock    = 0x02187de7,
2902 		.tuner_type	= TUNER_LG_TALN,
2903 		.radio_type     = UNSET,
2904 		.tuner_addr	= ADDR_UNSET,
2905 		.radio_addr	= ADDR_UNSET,
2906 		.tda9887_conf   = TDA9887_PRESENT,
2907 		.gpiomask       = 0x0a60000,
2908 	},
2909 	[SAA7134_BOARD_AVERMEDIA_A169_B1] = {
2910 		/* AVerMedia A169 */
2911 		/* Rickard Osser <ricky@osser.se> */
2912 		.name		= "AVerMedia A169 B1",
2913 		.audio_clock    = 0x02187de7,
2914 		.tuner_type	= TUNER_LG_TALN,
2915 		.radio_type     = UNSET,
2916 		.tuner_addr	= ADDR_UNSET,
2917 		.radio_addr	= ADDR_UNSET,
2918 		.tda9887_conf   = TDA9887_PRESENT,
2919 		.gpiomask       = 0xca60000,
2920 		.inputs         = {{
2921 			.name = name_tv,
2922 			.vmux = 4,
2923 			.amux = TV,
2924 			.tv   = 1,
2925 			.gpio = 0x04a61000,
2926 		},{
2927 			.name = name_comp2,  /*  Composite SVIDEO (B/W if signal is carried with SVIDEO) */
2928 			.vmux = 1,
2929 			.amux = LINE2,
2930 		},{
2931 			.name = name_svideo,
2932 			.vmux = 9,           /* 9 is correct as S-VIDEO1 according to a169.inf! */
2933 			.amux = LINE1,
2934 		}},
2935 	},
2936 	[SAA7134_BOARD_MD7134_BRIDGE_2] = {
2937 		/* The second saa7134 on this card only serves as DVB-S host bridge */
2938 		.name           = "Medion 7134 Bridge #2",
2939 		.audio_clock    = 0x00187de7,
2940 		.radio_type     = UNSET,
2941 		.tuner_addr	= ADDR_UNSET,
2942 		.radio_addr	= ADDR_UNSET,
2943 		.mpeg           = SAA7134_MPEG_DVB,
2944 	},
2945 	[SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS] = {
2946 		.name		= "LifeView FlyDVB-T Hybrid Cardbus/MSI TV @nywhere A/D NB",
2947 		.audio_clock    = 0x00200000,
2948 		.tuner_type     = TUNER_PHILIPS_TDA8290,
2949 		.radio_type     = UNSET,
2950 		.tuner_addr	= ADDR_UNSET,
2951 		.radio_addr	= ADDR_UNSET,
2952 		.mpeg           = SAA7134_MPEG_DVB,
2953 		.gpiomask       = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
2954 		.inputs         = {{
2955 			.name = name_tv,
2956 			.vmux = 1,
2957 			.amux = TV,
2958 			.gpio = 0x200000,	/* GPIO21=High for TV input */
2959 			.tv   = 1,
2960 		},{
2961 			.name = name_svideo,	/* S-Video signal on S-Video input */
2962 			.vmux = 8,
2963 			.amux = LINE2,
2964 		},{
2965 			.name = name_comp1,	/* Composite signal on S-Video input */
2966 			.vmux = 0,
2967 			.amux = LINE2,
2968 		},{
2969 			.name = name_comp2,	/* Composite input */
2970 			.vmux = 3,
2971 			.amux = LINE2,
2972 		}},
2973 		.radio = {
2974 			.name = name_radio,
2975 			.amux = TV,
2976 			.gpio = 0x000000,	/* GPIO21=Low for FM radio antenna */
2977 		},
2978 	},
2979 	[SAA7134_BOARD_FLYVIDEO3000_NTSC] = {
2980 		/* "Zac Bowling" <zac@zacbowling.com> */
2981 		.name           = "LifeView FlyVIDEO3000 (NTSC)",
2982 		.audio_clock    = 0x00200000,
2983 		.tuner_type     = TUNER_PHILIPS_NTSC,
2984 		.radio_type     = UNSET,
2985 		.tuner_addr     = ADDR_UNSET,
2986 		.radio_addr     = ADDR_UNSET,
2987 
2988 		.gpiomask       = 0xe000,
2989 		.inputs         = {{
2990 			.name = name_tv,
2991 			.vmux = 1,
2992 			.amux = TV,
2993 			.gpio = 0x8000,
2994 			.tv   = 1,
2995 		},{
2996 			.name = name_tv_mono,
2997 			.vmux = 1,
2998 			.amux = LINE2,
2999 			.gpio = 0x0000,
3000 			.tv   = 1,
3001 		},{
3002 			.name = name_comp1,
3003 			.vmux = 0,
3004 			.amux = LINE2,
3005 			.gpio = 0x4000,
3006 		},{
3007 			.name = name_comp2,
3008 			.vmux = 3,
3009 			.amux = LINE2,
3010 			.gpio = 0x4000,
3011 		},{
3012 			.name = name_svideo,
3013 			.vmux = 8,
3014 			.amux = LINE2,
3015 			.gpio = 0x4000,
3016 		}},
3017 		.radio = {
3018 			.name = name_radio,
3019 			.amux = LINE2,
3020 			.gpio = 0x2000,
3021 		},
3022 			.mute = {
3023 			.name = name_mute,
3024 			.amux = TV,
3025 			.gpio = 0x8000,
3026 		},
3027 	},
3028 	[SAA7134_BOARD_MEDION_MD8800_QUADRO] = {
3029 		.name           = "Medion Md8800 Quadro",
3030 		.audio_clock    = 0x00187de7,
3031 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3032 		.radio_type     = UNSET,
3033 		.tuner_addr     = ADDR_UNSET,
3034 		.radio_addr     = ADDR_UNSET,
3035 		.mpeg           = SAA7134_MPEG_DVB,
3036 		.inputs = {{
3037 			.name   = name_tv,
3038 			.vmux   = 1,
3039 			.amux   = TV,
3040 			.tv     = 1,
3041 		},{
3042 			.name   = name_comp1,
3043 			.vmux   = 0,
3044 			.amux   = LINE1,
3045 		},{
3046 			.name   = name_svideo,
3047 			.vmux   = 8,
3048 			.amux   = LINE1,
3049 		}},
3050 	},
3051 	[SAA7134_BOARD_FLYDVBS_LR300] = {
3052 		/* LifeView FlyDVB-s */
3053 		/* Igor M. Liplianin <liplianin@tut.by> */
3054 		.name           = "LifeView FlyDVB-S /Acorp TV134DS",
3055 		.audio_clock    = 0x00200000,
3056 		.tuner_type     = TUNER_ABSENT,
3057 		.radio_type     = UNSET,
3058 		.tuner_addr	= ADDR_UNSET,
3059 		.radio_addr	= ADDR_UNSET,
3060 		.mpeg           = SAA7134_MPEG_DVB,
3061 		.inputs         = {{
3062 			.name = name_comp1,	/* Composite input */
3063 			.vmux = 3,
3064 			.amux = LINE1,
3065 		},{
3066 			.name = name_svideo,	/* S-Video signal on S-Video input */
3067 			.vmux = 8,
3068 			.amux = LINE1,
3069 		}},
3070 	},
3071 	[SAA7134_BOARD_PROTEUS_2309] = {
3072 		.name           = "Proteus Pro 2309",
3073 		.audio_clock    = 0x00187de7,
3074 		.tuner_type	= TUNER_PHILIPS_FM1216ME_MK3,
3075 		.radio_type     = UNSET,
3076 		.tuner_addr	= ADDR_UNSET,
3077 		.radio_addr	= ADDR_UNSET,
3078 		.tda9887_conf   = TDA9887_PRESENT,
3079 		.inputs         = {{
3080 			.name = name_tv,
3081 			.vmux = 1,
3082 			.amux = LINE2,
3083 			.tv   = 1,
3084 		},{
3085 			.name = name_comp1,
3086 			.vmux = 0,
3087 			.amux = LINE2,
3088 		},{
3089 			.name = name_comp2,
3090 			.vmux = 3,
3091 			.amux = LINE2,
3092 		},{
3093 			.name = name_svideo,
3094 			.vmux = 8,
3095 			.amux = LINE2,
3096 		}},
3097 		.mute = {
3098 			.name = name_mute,
3099 			.amux = LINE1,
3100 		},
3101 	},
3102 	[SAA7134_BOARD_AVERMEDIA_A16AR] = {
3103 		/* Petr Baudis <pasky@ucw.cz> */
3104 		.name           = "AVerMedia TV Hybrid A16AR",
3105 		.audio_clock    = 0x187de7,
3106 		.tuner_type     = TUNER_PHILIPS_TD1316, /* untested */
3107 		.radio_type     = TUNER_TEA5767, /* untested */
3108 		.tuner_addr     = ADDR_UNSET,
3109 		.radio_addr     = 0x60,
3110 		.tda9887_conf   = TDA9887_PRESENT,
3111 		.mpeg           = SAA7134_MPEG_DVB,
3112 		.inputs         = {{
3113 			.name = name_tv,
3114 			.vmux = 1,
3115 			.amux = TV,
3116 			.tv   = 1,
3117 		},{
3118 			.name = name_comp1,
3119 			.vmux = 3,
3120 			.amux = LINE2,
3121 		},{
3122 			.name = name_svideo,
3123 			.vmux = 8,
3124 			.amux = LINE1,
3125 		}},
3126 		.radio = {
3127 			.name = name_radio,
3128 			.amux = LINE1,
3129 		},
3130 	},
3131 	[SAA7134_BOARD_ASUS_EUROPA2_HYBRID] = {
3132 		.name           = "Asus Europa2 OEM",
3133 		.audio_clock    = 0x00187de7,
3134 		.tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
3135 		.radio_type     = UNSET,
3136 		.tuner_addr	= ADDR_UNSET,
3137 		.radio_addr	= ADDR_UNSET,
3138 		.tda9887_conf   = TDA9887_PRESENT| TDA9887_PORT1_ACTIVE | TDA9887_PORT2_ACTIVE,
3139 		.mpeg           = SAA7134_MPEG_DVB,
3140 		.inputs = {{
3141 			.name   = name_tv,
3142 			.vmux   = 3,
3143 			.amux   = TV,
3144 			.tv     = 1,
3145 		},{
3146 			.name   = name_comp1,
3147 			.vmux   = 4,
3148 			.amux   = LINE2,
3149 		},{
3150 			.name   = name_svideo,
3151 			.vmux   = 8,
3152 			.amux   = LINE2,
3153 		}},
3154 		.radio = {
3155 			.name   = name_radio,
3156 			.amux   = LINE1,
3157 		},
3158 	},
3159 	[SAA7134_BOARD_PINNACLE_PCTV_310i] = {
3160 		.name           = "Pinnacle PCTV 310i",
3161 		.audio_clock    = 0x00187de7,
3162 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3163 		.radio_type     = UNSET,
3164 		.tuner_addr     = ADDR_UNSET,
3165 		.radio_addr     = ADDR_UNSET,
3166 		.tuner_config   = 1,
3167 		.mpeg           = SAA7134_MPEG_DVB,
3168 		.gpiomask       = 0x000200000,
3169 		.inputs         = {{
3170 			.name = name_tv,
3171 			.vmux = 4,
3172 			.amux = TV,
3173 			.tv   = 1,
3174 		},{
3175 			.name = name_comp1,
3176 			.vmux = 1,
3177 			.amux = LINE2,
3178 		},{
3179 			.name = name_comp2,
3180 			.vmux = 0,
3181 			.amux = LINE2,
3182 		},{
3183 			.name = name_svideo,
3184 			.vmux = 8,
3185 			.amux = LINE2,
3186 		}},
3187 		.radio = {
3188 			.name = name_radio,
3189 			.amux   = TV,
3190 			.gpio   = 0x0200000,
3191 		},
3192 	},
3193 	[SAA7134_BOARD_AVERMEDIA_STUDIO_507] = {
3194 		/* Mikhail Fedotov <mo_fedotov@mail.ru> */
3195 		.name           = "Avermedia AVerTV Studio 507",
3196 		.audio_clock    = 0x00187de7,
3197 		.tuner_type     = TUNER_PHILIPS_FM1256_IH3,
3198 		.radio_type     = UNSET,
3199 		.tuner_addr	= ADDR_UNSET,
3200 		.radio_addr	= ADDR_UNSET,
3201 		.tda9887_conf   = TDA9887_PRESENT,
3202 		.gpiomask       = 0x03,
3203 		.inputs         = {{
3204 			.name = name_tv,
3205 			.vmux = 1,
3206 			.amux = TV,
3207 			.tv   = 1,
3208 			.gpio = 0x00,
3209 		},{
3210 			.name = name_comp1,
3211 			.vmux = 0,
3212 			.amux = LINE2,
3213 			.gpio = 0x00,
3214 		},{
3215 			.name = name_comp2,
3216 			.vmux = 3,
3217 			.amux = LINE2,
3218 			.gpio = 0x00,
3219 		},{
3220 			.name = name_svideo,
3221 			.vmux = 8,
3222 			.amux = LINE2,
3223 			.gpio = 0x00,
3224 		}},
3225 		.radio = {
3226 			.name = name_radio,
3227 			.amux = LINE2,
3228 			.gpio = 0x01,
3229 		},
3230 		.mute  = {
3231 			.name = name_mute,
3232 			.amux = LINE1,
3233 			.gpio = 0x00,
3234 		},
3235 	},
3236 	[SAA7134_BOARD_VIDEOMATE_DVBT_200A] = {
3237 		/* Francis Barber <fedora@barber-family.id.au> */
3238 		.name           = "Compro Videomate DVB-T200A",
3239 		.audio_clock    = 0x00187de7,
3240 		.tuner_type     = TUNER_ABSENT,
3241 		.radio_type     = UNSET,
3242 		.tuner_addr	= ADDR_UNSET,
3243 		.radio_addr	= ADDR_UNSET,
3244 		.tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
3245 		.mpeg           = SAA7134_MPEG_DVB,
3246 		.inputs = {{
3247 			.name   = name_tv,
3248 			.vmux   = 3,
3249 			.amux   = TV,
3250 			.tv     = 1,
3251 		},{
3252 			.name   = name_comp1,
3253 			.vmux   = 1,
3254 			.amux   = LINE2,
3255 		},{
3256 			.name   = name_svideo,
3257 			.vmux   = 8,
3258 			.amux   = LINE2,
3259 		}},
3260 	},
3261 	[SAA7134_BOARD_HAUPPAUGE_HVR1110] = {
3262 		/* Thomas Genty <tomlohave@gmail.com> */
3263 		/* David Bentham <db260179@hotmail.com> */
3264 		.name           = "Hauppauge WinTV-HVR1110 DVB-T/Hybrid",
3265 		.audio_clock    = 0x00187de7,
3266 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3267 		.radio_type     = UNSET,
3268 		.tuner_addr     = ADDR_UNSET,
3269 		.radio_addr     = ADDR_UNSET,
3270 		.tuner_config   = 1,
3271 		.mpeg           = SAA7134_MPEG_DVB,
3272 		.gpiomask       = 0x0200100,
3273 		.inputs         = {{
3274 			.name = name_tv,
3275 			.vmux = 1,
3276 			.amux = TV,
3277 			.tv   = 1,
3278 			.gpio = 0x0000100,
3279 		}, {
3280 			.name = name_comp1,
3281 			.vmux = 3,
3282 			.amux = LINE1,
3283 		}, {
3284 			.name = name_svideo,
3285 			.vmux = 8,
3286 			.amux = LINE1,
3287 		} },
3288 		.radio = {
3289 			.name = name_radio,
3290 			.amux = TV,
3291 			.gpio = 0x0200100,
3292 		},
3293 	},
3294 	[SAA7134_BOARD_CINERGY_HT_PCMCIA] = {
3295 		.name           = "Terratec Cinergy HT PCMCIA",
3296 		.audio_clock    = 0x00187de7,
3297 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3298 		.radio_type     = UNSET,
3299 		.tuner_addr	= ADDR_UNSET,
3300 		.radio_addr	= ADDR_UNSET,
3301 		.mpeg           = SAA7134_MPEG_DVB,
3302 		.inputs = {{
3303 			.name   = name_tv,
3304 			.vmux   = 1,
3305 			.amux   = TV,
3306 			.tv     = 1,
3307 		},{
3308 			.name   = name_comp1,
3309 			.vmux   = 0,
3310 			.amux   = LINE1,
3311 		},{
3312 			.name   = name_svideo,
3313 			.vmux   = 6,
3314 			.amux   = LINE1,
3315 		}},
3316 	},
3317 	[SAA7134_BOARD_ENCORE_ENLTV] = {
3318 	/* Steven Walter <stevenrwalter@gmail.com>
3319 	   Juan Pablo Sormani <sorman@gmail.com> */
3320 		.name           = "Encore ENLTV",
3321 		.audio_clock    = 0x00200000,
3322 		.tuner_type     = TUNER_TNF_5335MF,
3323 		.radio_type     = UNSET,
3324 		.tuner_addr	= ADDR_UNSET,
3325 		.radio_addr	= ADDR_UNSET,
3326 		.inputs         = {{
3327 			.name = name_tv,
3328 			.vmux = 1,
3329 			.amux = 3,
3330 			.tv   = 1,
3331 		},{
3332 			.name = name_tv_mono,
3333 			.vmux = 7,
3334 			.amux = 4,
3335 			.tv   = 1,
3336 		},{
3337 			.name = name_comp1,
3338 			.vmux = 3,
3339 			.amux = 2,
3340 		},{
3341 			.name = name_svideo,
3342 			.vmux = 0,
3343 			.amux = 2,
3344 		}},
3345 		.radio = {
3346 			.name = name_radio,
3347 			.amux = LINE2,
3348 /*			.gpio = 0x00300001,*/
3349 			.gpio = 0x20000,
3350 
3351 		},
3352 		.mute = {
3353 			.name = name_mute,
3354 			.amux = 0,
3355 		},
3356 	},
3357 	[SAA7134_BOARD_ENCORE_ENLTV_FM] = {
3358   /*	Juan Pablo Sormani <sorman@gmail.com> */
3359 		.name           = "Encore ENLTV-FM",
3360 		.audio_clock    = 0x00200000,
3361 		.tuner_type     = TUNER_PHILIPS_FCV1236D,
3362 		.radio_type     = UNSET,
3363 		.tuner_addr	= ADDR_UNSET,
3364 		.radio_addr	= ADDR_UNSET,
3365 		.inputs         = {{
3366 			.name = name_tv,
3367 			.vmux = 1,
3368 			.amux = 3,
3369 			.tv   = 1,
3370 		},{
3371 			.name = name_tv_mono,
3372 			.vmux = 7,
3373 			.amux = 4,
3374 			.tv   = 1,
3375 		},{
3376 			.name = name_comp1,
3377 			.vmux = 3,
3378 			.amux = 2,
3379 		},{
3380 			.name = name_svideo,
3381 			.vmux = 0,
3382 			.amux = 2,
3383 		}},
3384 		.radio = {
3385 			.name = name_radio,
3386 			.amux = LINE2,
3387 			.gpio = 0x20000,
3388 
3389 		},
3390 		.mute = {
3391 			.name = name_mute,
3392 			.amux = 0,
3393 		},
3394 	},
3395 	[SAA7134_BOARD_ENCORE_ENLTV_FM53] = {
3396 		.name           = "Encore ENLTV-FM v5.3",
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 		.gpiomask	= 0x7000,
3403 		.inputs         = { {
3404 			.name = name_tv,
3405 			.vmux = 1,
3406 			.amux = 1,
3407 			.tv   = 1,
3408 			.gpio = 0x50000,
3409 		}, {
3410 			.name = name_comp1,
3411 			.vmux = 3,
3412 			.amux = 2,
3413 			.gpio = 0x2000,
3414 		}, {
3415 			.name = name_svideo,
3416 			.vmux = 8,
3417 			.amux = 2,
3418 			.gpio = 0x2000,
3419 		} },
3420 		.radio = {
3421 			.name = name_radio,
3422 			.vmux = 1,
3423 			.amux = 1,
3424 		},
3425 		.mute = {
3426 			.name = name_mute,
3427 			.gpio = 0xf000,
3428 			.amux = 0,
3429 		},
3430 	},
3431 	[SAA7134_BOARD_CINERGY_HT_PCI] = {
3432 		.name           = "Terratec Cinergy HT PCI",
3433 		.audio_clock    = 0x00187de7,
3434 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3435 		.radio_type     = UNSET,
3436 		.tuner_addr	= ADDR_UNSET,
3437 		.radio_addr	= ADDR_UNSET,
3438 		.mpeg           = SAA7134_MPEG_DVB,
3439 		.inputs = {{
3440 			.name   = name_tv,
3441 			.vmux   = 1,
3442 			.amux   = TV,
3443 			.tv     = 1,
3444 		},{
3445 			.name   = name_comp1,
3446 			.vmux   = 0,
3447 			.amux   = LINE1,
3448 		},{
3449 			.name   = name_svideo,
3450 			.vmux   = 6,
3451 			.amux   = LINE1,
3452 		}},
3453 	},
3454 	[SAA7134_BOARD_PHILIPS_TIGER_S] = {
3455 		.name           = "Philips Tiger - S Reference design",
3456 		.audio_clock    = 0x00187de7,
3457 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3458 		.radio_type     = UNSET,
3459 		.tuner_addr	= ADDR_UNSET,
3460 		.radio_addr	= ADDR_UNSET,
3461 		.tuner_config   = 2,
3462 		.mpeg           = SAA7134_MPEG_DVB,
3463 		.gpiomask       = 0x0200000,
3464 		.inputs = {{
3465 			.name   = name_tv,
3466 			.vmux   = 1,
3467 			.amux   = TV,
3468 			.tv     = 1,
3469 		},{
3470 			.name   = name_comp1,
3471 			.vmux   = 3,
3472 			.amux   = LINE1,
3473 		},{
3474 			.name   = name_svideo,
3475 			.vmux   = 8,
3476 			.amux   = LINE1,
3477 		}},
3478 		.radio = {
3479 			.name   = name_radio,
3480 			.amux   = TV,
3481 			.gpio   = 0x0200000,
3482 		},
3483 	},
3484 	[SAA7134_BOARD_AVERMEDIA_M102] = {
3485 		.name           = "Avermedia M102",
3486 		.audio_clock    = 0x00187de7,
3487 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3488 		.radio_type     = UNSET,
3489 		.tuner_addr	= ADDR_UNSET,
3490 		.radio_addr	= ADDR_UNSET,
3491 		.gpiomask       = 1<<21,
3492 		.inputs         = {{
3493 			.name = name_tv,
3494 			.vmux = 1,
3495 			.amux = TV,
3496 			.tv   = 1,
3497 		},{
3498 			.name = name_comp1,
3499 			.vmux = 0,
3500 			.amux = LINE2,
3501 		},{
3502 			.name = name_svideo,
3503 			.vmux = 6,
3504 			.amux = LINE2,
3505 		}},
3506 	},
3507 	[SAA7134_BOARD_ASUS_P7131_4871] = {
3508 		.name           = "ASUS P7131 4871",
3509 		.audio_clock    = 0x00187de7,
3510 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3511 		.radio_type     = UNSET,
3512 		.tuner_addr	= ADDR_UNSET,
3513 		.radio_addr	= ADDR_UNSET,
3514 		.tuner_config   = 2,
3515 		.mpeg           = SAA7134_MPEG_DVB,
3516 		.gpiomask       = 0x0200000,
3517 		.inputs = {{
3518 			.name   = name_tv,
3519 			.vmux   = 1,
3520 			.amux   = TV,
3521 			.tv     = 1,
3522 			.gpio   = 0x0200000,
3523 		}},
3524 	},
3525 	[SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA] = {
3526 		.name           = "ASUSTeK P7131 Hybrid",
3527 		.audio_clock    = 0x00187de7,
3528 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3529 		.radio_type     = UNSET,
3530 		.tuner_addr	= ADDR_UNSET,
3531 		.radio_addr	= ADDR_UNSET,
3532 		.tuner_config   = 2,
3533 		.gpiomask	= 1 << 21,
3534 		.mpeg           = SAA7134_MPEG_DVB,
3535 		.inputs         = {{
3536 			.name = name_tv,
3537 			.vmux = 1,
3538 			.amux = TV,
3539 			.tv   = 1,
3540 			.gpio = 0x0000000,
3541 		},{
3542 			.name = name_comp1,
3543 			.vmux = 3,
3544 			.amux = LINE2,
3545 			.gpio = 0x0200000,
3546 		},{
3547 			.name = name_comp2,
3548 			.vmux = 0,
3549 			.amux = LINE2,
3550 			.gpio = 0x0200000,
3551 		},{
3552 			.name = name_svideo,
3553 			.vmux = 8,
3554 			.amux = LINE2,
3555 			.gpio = 0x0200000,
3556 		}},
3557 		.radio = {
3558 			.name = name_radio,
3559 			.amux = TV,
3560 			.gpio = 0x0200000,
3561 		},
3562        },
3563        [SAA7134_BOARD_ASUSTeK_P7131_ANALOG] = {
3564 	       .name           = "ASUSTeK P7131 Analog",
3565 	       .audio_clock    = 0x00187de7,
3566 	       .tuner_type     = TUNER_PHILIPS_TDA8290,
3567 	       .radio_type     = UNSET,
3568 	       .tuner_addr     = ADDR_UNSET,
3569 	       .radio_addr     = ADDR_UNSET,
3570 	       .gpiomask       = 1 << 21,
3571 	       .inputs         = {{
3572 		       .name = name_tv,
3573 		       .vmux = 1,
3574 		       .amux = TV,
3575 		       .tv   = 1,
3576 		       .gpio = 0x0000000,
3577 	       }, {
3578 		       .name = name_comp1,
3579 		       .vmux = 3,
3580 		       .amux = LINE2,
3581 	       }, {
3582 		       .name = name_comp2,
3583 		       .vmux = 0,
3584 		       .amux = LINE2,
3585 	       }, {
3586 		       .name = name_svideo,
3587 		       .vmux = 8,
3588 		       .amux = LINE2,
3589 	       } },
3590 	       .radio = {
3591 		       .name = name_radio,
3592 		       .amux = TV,
3593 		       .gpio = 0x0200000,
3594 	       },
3595 	},
3596 	[SAA7134_BOARD_SABRENT_TV_PCB05] = {
3597 		.name           = "Sabrent PCMCIA TV-PCB05",
3598 		.audio_clock    = 0x00187de7,
3599 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3600 		.radio_type     = UNSET,
3601 		.tuner_addr     = ADDR_UNSET,
3602 		.radio_addr     = ADDR_UNSET,
3603 		.inputs         = {{
3604 			.name = name_tv,
3605 			.vmux = 1,
3606 			.amux = TV,
3607 			.tv   = 1,
3608 		},{
3609 			.name = name_comp1,
3610 			.vmux = 3,
3611 			.amux = LINE1,
3612 		},{
3613 			.name = name_comp2,
3614 			.vmux = 0,
3615 			.amux = LINE1,
3616 		},{
3617 			.name = name_svideo,
3618 			.vmux = 8,
3619 			.amux = LINE1,
3620 		}},
3621 		.mute = {
3622 			.name = name_mute,
3623 			.amux = TV,
3624 		},
3625 	},
3626 	[SAA7134_BOARD_10MOONSTVMASTER3] = {
3627 		/* Tony Wan <aloha_cn@hotmail.com> */
3628 		.name           = "10MOONS TM300 TV Card",
3629 		.audio_clock    = 0x00200000,
3630 		.tuner_type     = TUNER_LG_PAL_NEW_TAPC,
3631 		.radio_type     = UNSET,
3632 		.tuner_addr     = ADDR_UNSET,
3633 		.radio_addr     = ADDR_UNSET,
3634 		.gpiomask       = 0x7000,
3635 		.inputs         = {{
3636 			.name = name_tv,
3637 			.vmux = 1,
3638 			.amux = LINE2,
3639 			.gpio = 0x0000,
3640 			.tv   = 1,
3641 		},{
3642 			.name = name_comp1,
3643 			.vmux = 3,
3644 			.amux = LINE1,
3645 			.gpio = 0x2000,
3646 		},{
3647 			.name = name_svideo,
3648 			.vmux = 8,
3649 			.amux = LINE1,
3650 			.gpio = 0x2000,
3651 		}},
3652 		.mute = {
3653 			.name = name_mute,
3654 			.amux = LINE2,
3655 			.gpio = 0x3000,
3656 		},
3657 	},
3658 	[SAA7134_BOARD_AVERMEDIA_SUPER_007] = {
3659 		.name           = "Avermedia Super 007",
3660 		.audio_clock    = 0x00187de7,
3661 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3662 		.radio_type     = UNSET,
3663 		.tuner_addr     = ADDR_UNSET,
3664 		.radio_addr     = ADDR_UNSET,
3665 		.tuner_config   = 0,
3666 		.mpeg           = SAA7134_MPEG_DVB,
3667 		.inputs = {{
3668 			.name   = name_tv, /* FIXME: analog tv untested */
3669 			.vmux   = 1,
3670 			.amux   = TV,
3671 			.tv     = 1,
3672 		}},
3673 	},
3674 	[SAA7134_BOARD_AVERMEDIA_M135A] = {
3675 		.name           = "Avermedia PCI pure analog (M135A)",
3676 		.audio_clock    = 0x00187de7,
3677 		.tuner_type     = TUNER_PHILIPS_TDA8290,
3678 		.radio_type     = UNSET,
3679 		.tuner_addr     = ADDR_UNSET,
3680 		.radio_addr     = ADDR_UNSET,
3681 		.tuner_config   = 2,
3682 		.gpiomask       = 0x020200000,
3683 		.inputs         = {{
3684 			.name = name_tv,
3685 			.vmux = 1,
3686 			.amux = TV,
3687 			.tv   = 1,
3688 		}, {
3689 			.name = name_comp1,
3690 			.vmux = 3,
3691 			.amux = LINE1,
3692 		}, {
3693 			.name = name_svideo,
3694 			.vmux = 8,
3695 			.amux = LINE1,
3696 		} },
3697 		.radio = {
3698 			.name = name_radio,
3699 			.amux = TV,
3700 			.gpio = 0x00200000,
3701 		},
3702 		.mute = {
3703 			.name = name_mute,
3704 			.amux = TV,
3705 			.gpio = 0x01,
3706 		},
3707 	},
3708 	[SAA7134_BOARD_BEHOLD_401] = {
3709 		/*       Beholder Intl. Ltd. 2008      */
3710 		/*Dmitry Belimov <d.belimov@gmail.com> */
3711 		.name           = "Beholder BeholdTV 401",
3712 		.audio_clock    = 0x00187de7,
3713 		.tuner_type     = TUNER_PHILIPS_FQ1216ME,
3714 		.radio_type     = UNSET,
3715 		.tuner_addr	= ADDR_UNSET,
3716 		.radio_addr	= ADDR_UNSET,
3717 		.gpiomask       = 0x00008000,
3718 		.inputs         = {{
3719 			.name = name_svideo,
3720 			.vmux = 8,
3721 			.amux = LINE1,
3722 		},{
3723 			.name = name_comp1,
3724 			.vmux = 1,
3725 			.amux = LINE1,
3726 		},{
3727 			.name = name_tv,
3728 			.vmux = 3,
3729 			.amux = LINE2,
3730 			.tv   = 1,
3731 		}},
3732 		.mute = {
3733 			.name = name_mute,
3734 			.amux = LINE1,
3735 		},
3736 	},
3737 	[SAA7134_BOARD_BEHOLD_403] = {
3738 		/*       Beholder Intl. Ltd. 2008      */
3739 		/*Dmitry Belimov <d.belimov@gmail.com> */
3740 		.name           = "Beholder BeholdTV 403",
3741 		.audio_clock    = 0x00187de7,
3742 		.tuner_type     = TUNER_PHILIPS_FQ1216ME,
3743 		.radio_type     = UNSET,
3744 		.tuner_addr	= ADDR_UNSET,
3745 		.radio_addr	= ADDR_UNSET,
3746 		.gpiomask       = 0x00008000,
3747 		.inputs         = {{
3748 			.name = name_svideo,
3749 			.vmux = 8,
3750 			.amux = LINE1,
3751 		},{
3752 			.name   = name_comp1,
3753 			.vmux   = 1,
3754 			.amux   = LINE1,
3755 		},{
3756 			.name = name_tv,
3757 			.vmux = 3,
3758 			.amux = LINE2,
3759 			.tv   = 1,
3760 		}},
3761 	},
3762 	[SAA7134_BOARD_BEHOLD_403FM] = {
3763 		/*       Beholder Intl. Ltd. 2008      */
3764 		/*Dmitry Belimov <d.belimov@gmail.com> */
3765 		.name           = "Beholder BeholdTV 403 FM",
3766 		.audio_clock    = 0x00187de7,
3767 		.tuner_type     = TUNER_PHILIPS_FQ1216ME,
3768 		.radio_type     = UNSET,
3769 		.tuner_addr	= ADDR_UNSET,
3770 		.radio_addr	= ADDR_UNSET,
3771 		.gpiomask       = 0x00008000,
3772 		.inputs         = {{
3773 			.name = name_svideo,
3774 			.vmux = 8,
3775 			.amux = LINE1,
3776 		},{
3777 			.name   = name_comp1,
3778 			.vmux   = 1,
3779 			.amux   = LINE1,
3780 		},{
3781 			.name = name_tv,
3782 			.vmux = 3,
3783 			.amux = LINE2,
3784 			.tv   = 1,
3785 		}},
3786 		.radio = {
3787 			.name = name_radio,
3788 			.amux = LINE2,
3789 		},
3790 	},
3791 	[SAA7134_BOARD_BEHOLD_405] = {
3792 		/*       Beholder Intl. Ltd. 2008      */
3793 		/*Dmitry Belimov <d.belimov@gmail.com> */
3794 		.name           = "Beholder BeholdTV 405",
3795 		.audio_clock    = 0x00187de7,
3796 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3797 		.radio_type     = UNSET,
3798 		.tuner_addr     = ADDR_UNSET,
3799 		.radio_addr     = ADDR_UNSET,
3800 		.tda9887_conf   = TDA9887_PRESENT,
3801 		.gpiomask       = 0x00008000,
3802 		.inputs         = {{
3803 			.name = name_svideo,
3804 			.vmux = 8,
3805 			.amux = LINE1,
3806 		},{
3807 			.name = name_comp1,
3808 			.vmux = 3,
3809 			.amux = LINE1,
3810 		},{
3811 			.name = name_tv,
3812 			.vmux = 3,
3813 			.amux = LINE2,
3814 			.tv   = 1,
3815 		}},
3816 	},
3817 	[SAA7134_BOARD_BEHOLD_405FM] = {
3818 		/* Sergey <skiv@orel.ru> */
3819 		/*       Beholder Intl. Ltd. 2008      */
3820 		/*Dmitry Belimov <d.belimov@gmail.com> */
3821 		.name           = "Beholder BeholdTV 405 FM",
3822 		.audio_clock    = 0x00187de7,
3823 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3824 		.radio_type     = UNSET,
3825 		.tuner_addr     = ADDR_UNSET,
3826 		.radio_addr     = ADDR_UNSET,
3827 		.tda9887_conf   = TDA9887_PRESENT,
3828 		.gpiomask       = 0x00008000,
3829 		.inputs         = {{
3830 			.name = name_svideo,
3831 			.vmux = 8,
3832 			.amux = LINE1,
3833 		},{
3834 			.name = name_comp1,
3835 			.vmux = 3,
3836 			.amux = LINE1,
3837 		},{
3838 			.name = name_tv,
3839 			.vmux = 3,
3840 			.amux = LINE2,
3841 			.tv   = 1,
3842 		}},
3843 		.radio = {
3844 			.name = name_radio,
3845 			.amux = LINE2,
3846 		},
3847 	},
3848 	[SAA7134_BOARD_BEHOLD_407] = {
3849 		/*       Beholder Intl. Ltd. 2008      */
3850 		/*Dmitry Belimov <d.belimov@gmail.com> */
3851 		.name 		= "Beholder BeholdTV 407",
3852 		.audio_clock 	= 0x00187de7,
3853 		.tuner_type 	= TUNER_PHILIPS_FM1216ME_MK3,
3854 		.radio_type 	= UNSET,
3855 		.tuner_addr 	= ADDR_UNSET,
3856 		.radio_addr 	= ADDR_UNSET,
3857 		.tda9887_conf 	= TDA9887_PRESENT,
3858 		.gpiomask       = 0x00008000,
3859 		.inputs = {{
3860 			.name = name_svideo,
3861 			.vmux = 8,
3862 			.amux = LINE1,
3863 			.gpio = 0xc0c000,
3864 		},{
3865 			.name = name_comp1,
3866 			.vmux = 1,
3867 			.amux = LINE1,
3868 			.gpio = 0xc0c000,
3869 		},{
3870 			.name = name_tv,
3871 			.vmux = 3,
3872 			.amux = TV,
3873 			.tv = 1,
3874 			.gpio = 0xc0c000,
3875 		}},
3876 	},
3877 	[SAA7134_BOARD_BEHOLD_407FM] = {
3878 		/*       Beholder Intl. Ltd. 2008      */
3879 		/*Dmitry Belimov <d.belimov@gmail.com> */
3880 		.name 		= "Beholder BeholdTV 407 FM",
3881 		.audio_clock 	= 0x00187de7,
3882 		.tuner_type 	= TUNER_PHILIPS_FM1216ME_MK3,
3883 		.radio_type 	= UNSET,
3884 		.tuner_addr 	= ADDR_UNSET,
3885 		.radio_addr 	= ADDR_UNSET,
3886 		.tda9887_conf 	= TDA9887_PRESENT,
3887 		.gpiomask       = 0x00008000,
3888 		.inputs = {{
3889 			.name = name_svideo,
3890 			.vmux = 8,
3891 			.amux = LINE1,
3892 			.gpio = 0xc0c000,
3893 		},{
3894 			.name = name_comp1,
3895 			.vmux = 1,
3896 			.amux = LINE1,
3897 			.gpio = 0xc0c000,
3898 		},{
3899 			.name = name_tv,
3900 			.vmux = 3,
3901 			.amux = TV,
3902 			.tv = 1,
3903 			.gpio = 0xc0c000,
3904 		}},
3905 		.radio = {
3906 			.name = name_radio,
3907 			.amux = LINE2,
3908 			.gpio = 0xc0c000,
3909 		},
3910 	},
3911 	[SAA7134_BOARD_BEHOLD_409] = {
3912 		/*       Beholder Intl. Ltd. 2008      */
3913 		/*Dmitry Belimov <d.belimov@gmail.com> */
3914 		.name           = "Beholder BeholdTV 409",
3915 		.audio_clock    = 0x00187de7,
3916 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3917 		.radio_type     = UNSET,
3918 		.tuner_addr     = ADDR_UNSET,
3919 		.radio_addr     = ADDR_UNSET,
3920 		.tda9887_conf   = TDA9887_PRESENT,
3921 		.gpiomask       = 0x00008000,
3922 		.inputs         = {{
3923 			.name = name_tv,
3924 			.vmux = 3,
3925 			.amux = TV,
3926 			.tv   = 1,
3927 		},{
3928 			.name = name_comp1,
3929 			.vmux = 1,
3930 			.amux = LINE1,
3931 		},{
3932 			.name = name_svideo,
3933 			.vmux = 8,
3934 			.amux = LINE1,
3935 		}},
3936 	},
3937 	[SAA7134_BOARD_BEHOLD_505FM] = {
3938 		/*       Beholder Intl. Ltd. 2008      */
3939 		/*Dmitry Belimov <d.belimov@gmail.com> */
3940 		.name           = "Beholder BeholdTV 505 FM/RDS",
3941 		.audio_clock    = 0x00200000,
3942 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3943 		.radio_type     = UNSET,
3944 		.tuner_addr     = ADDR_UNSET,
3945 		.radio_addr     = ADDR_UNSET,
3946 		.tda9887_conf   = TDA9887_PRESENT,
3947 		.gpiomask       = 0x00008000,
3948 		.inputs         = {{
3949 			.name = name_tv,
3950 			.vmux = 3,
3951 			.amux = LINE2,
3952 			.tv   = 1,
3953 		},{
3954 			.name = name_comp1,
3955 			.vmux = 1,
3956 			.amux = LINE1,
3957 		},{
3958 			.name = name_svideo,
3959 			.vmux = 8,
3960 			.amux = LINE1,
3961 		}},
3962 		.mute = {
3963 			.name = name_mute,
3964 			.amux = LINE1,
3965 		},
3966 		.radio = {
3967 			.name = name_radio,
3968 			.amux = LINE2,
3969 		},
3970 	},
3971 	[SAA7134_BOARD_BEHOLD_507_9FM] = {
3972 		/*       Beholder Intl. Ltd. 2008      */
3973 		/*Dmitry Belimov <d.belimov@gmail.com> */
3974 		.name           = "Beholder BeholdTV 507 FM/RDS / BeholdTV 509 FM",
3975 		.audio_clock    = 0x00187de7,
3976 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3977 		.radio_type     = UNSET,
3978 		.tuner_addr     = ADDR_UNSET,
3979 		.radio_addr     = ADDR_UNSET,
3980 		.tda9887_conf   = TDA9887_PRESENT,
3981 		.gpiomask       = 0x00008000,
3982 		.inputs         = {{
3983 			.name = name_tv,
3984 			.vmux = 3,
3985 			.amux = TV,
3986 			.tv   = 1,
3987 		},{
3988 			.name = name_comp1,
3989 			.vmux = 1,
3990 			.amux = LINE1,
3991 		},{
3992 			.name = name_svideo,
3993 			.vmux = 8,
3994 			.amux = LINE1,
3995 		}},
3996 			.radio = {
3997 			.name = name_radio,
3998 			.amux = LINE2,
3999 		},
4000 	},
4001 	[SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM] = {
4002 		/*       Beholder Intl. Ltd. 2008      */
4003 		/*Dmitry Belimov <d.belimov@gmail.com> */
4004 		.name           = "Beholder BeholdTV Columbus TVFM",
4005 		.audio_clock    = 0x00187de7,
4006 		.tuner_type     = TUNER_ALPS_TSBE5_PAL,
4007 		.radio_type     = UNSET,
4008 		.tuner_addr     = ADDR_UNSET,
4009 		.radio_addr     = ADDR_UNSET,
4010 		.tda9887_conf   = TDA9887_PRESENT,
4011 		.gpiomask       = 0x000A8004,
4012 		.inputs         = {{
4013 			.name = name_tv,
4014 			.vmux = 3,
4015 			.amux = TV,
4016 			.tv   = 1,
4017 			.gpio = 0x000A8004,
4018 		}, {
4019 			.name = name_comp1,
4020 			.vmux = 1,
4021 			.amux = LINE1,
4022 			.gpio = 0x000A8000,
4023 		}, {
4024 			.name = name_svideo,
4025 			.vmux = 8,
4026 			.amux = LINE1,
4027 			.gpio = 0x000A8000,
4028 		} },
4029 		.radio = {
4030 			.name = name_radio,
4031 			.amux = LINE2,
4032 			.gpio = 0x000A8000,
4033 		},
4034 	},
4035 	[SAA7134_BOARD_BEHOLD_607_9FM] = {
4036 		/* Andrey Melnikoff <temnota@kmv.ru> */
4037 		.name           = "Beholder BeholdTV 607 / BeholdTV 609",
4038 		.audio_clock    = 0x00187de7,
4039 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4040 		.radio_type     = UNSET,
4041 		.tuner_addr     = ADDR_UNSET,
4042 		.radio_addr     = ADDR_UNSET,
4043 		.tda9887_conf   = TDA9887_PRESENT,
4044 		.inputs         = {{
4045 			.name = name_tv,
4046 			.vmux = 3,
4047 			.amux = TV,
4048 			.tv   = 1,
4049 		},{
4050 			.name = name_comp1,
4051 			.vmux = 1,
4052 			.amux = LINE1,
4053 		},{
4054 			.name = name_svideo,
4055 			.vmux = 8,
4056 			.amux = LINE1,
4057 		}},
4058 		.radio = {
4059 			.name = name_radio,
4060 			.amux = LINE2,
4061 		},
4062 	},
4063 	[SAA7134_BOARD_BEHOLD_M6] = {
4064 		/* Igor Kuznetsov <igk@igk.ru> */
4065 		/* Andrey Melnikoff <temnota@kmv.ru> */
4066 		/* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4067 		.name           = "Beholder BeholdTV M6",
4068 		.audio_clock    = 0x00187de7,
4069 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4070 		.radio_type     = UNSET,
4071 		.tuner_addr     = ADDR_UNSET,
4072 		.radio_addr     = ADDR_UNSET,
4073 		.tda9887_conf   = TDA9887_PRESENT,
4074 		.inputs         = { {
4075 			.name = name_tv,
4076 			.vmux = 3,
4077 			.amux = TV,
4078 			.tv   = 1,
4079 		}, {
4080 			.name = name_comp1,
4081 			.vmux = 1,
4082 			.amux = LINE1,
4083 		}, {
4084 			.name = name_svideo,
4085 			.vmux = 8,
4086 			.amux = LINE1,
4087 		} },
4088 		.radio = {
4089 			.name = name_radio,
4090 			.amux = LINE2,
4091 		},
4092 		.mpeg  = SAA7134_MPEG_EMPRESS,
4093 		.video_out = CCIR656,
4094 		.vid_port_opts  = (SET_T_CODE_POLARITY_NON_INVERTED |
4095 					SET_CLOCK_NOT_DELAYED |
4096 					SET_CLOCK_INVERTED |
4097 					SET_VSYNC_OFF),
4098 	},
4099 	[SAA7134_BOARD_BEHOLD_M63] = {
4100 		/* Igor Kuznetsov <igk@igk.ru> */
4101 		/* Andrey Melnikoff <temnota@kmv.ru> */
4102 		/* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4103 		.name           = "Beholder BeholdTV M63",
4104 		.audio_clock    = 0x00187de7,
4105 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4106 		.radio_type     = UNSET,
4107 		.tuner_addr     = ADDR_UNSET,
4108 		.radio_addr     = ADDR_UNSET,
4109 		.tda9887_conf   = TDA9887_PRESENT,
4110 		.inputs         = { {
4111 			.name = name_tv,
4112 			.vmux = 3,
4113 			.amux = TV,
4114 			.tv   = 1,
4115 		}, {
4116 			.name = name_comp1,
4117 			.vmux = 1,
4118 			.amux = LINE1,
4119 		}, {
4120 			.name = name_svideo,
4121 			.vmux = 8,
4122 			.amux = LINE1,
4123 		} },
4124 		.radio = {
4125 			.name = name_radio,
4126 			.amux = LINE2,
4127 		},
4128 		.mpeg  = SAA7134_MPEG_EMPRESS,
4129 		.video_out = CCIR656,
4130 		.vid_port_opts  = (SET_T_CODE_POLARITY_NON_INVERTED |
4131 					SET_CLOCK_NOT_DELAYED |
4132 					SET_CLOCK_INVERTED |
4133 					SET_VSYNC_OFF),
4134 	},
4135 	[SAA7134_BOARD_BEHOLD_M6_EXTRA] = {
4136 		/* Igor Kuznetsov <igk@igk.ru> */
4137 		/* Andrey Melnikoff <temnota@kmv.ru> */
4138 		/* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4139 		.name           = "Beholder BeholdTV M6 Extra",
4140 		.audio_clock    = 0x00187de7,
4141 		/* FIXME: Must be PHILIPS_FM1216ME_MK5*/
4142 		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4143 		.radio_type     = UNSET,
4144 		.tuner_addr     = ADDR_UNSET,
4145 		.radio_addr     = ADDR_UNSET,
4146 		.tda9887_conf   = TDA9887_PRESENT,
4147 		.inputs         = { {
4148 			.name = name_tv,
4149 			.vmux = 3,
4150 			.amux = TV,
4151 			.tv   = 1,
4152 		}, {
4153 			.name = name_comp1,
4154 			.vmux = 1,
4155 			.amux = LINE1,
4156 		}, {
4157 			.name = name_svideo,
4158 			.vmux = 8,
4159 			.amux = LINE1,
4160 		} },
4161 		.radio = {
4162 			.name = name_radio,
4163 			.amux = LINE2,
4164 		},
4165 		.mpeg  = SAA7134_MPEG_EMPRESS,
4166 		.video_out = CCIR656,
4167 		.vid_port_opts  = (SET_T_CODE_POLARITY_NON_INVERTED |
4168 					SET_CLOCK_NOT_DELAYED |
4169 					SET_CLOCK_INVERTED |
4170 					SET_VSYNC_OFF),
4171 	},
4172 	[SAA7134_BOARD_TWINHAN_DTV_DVB_3056] = {
4173 		.name           = "Twinhan Hybrid DTV-DVB 3056 PCI",
4174 		.audio_clock    = 0x00187de7,
4175 		.tuner_type     = TUNER_PHILIPS_TDA8290,
4176 		.radio_type     = UNSET,
4177 		.tuner_addr	= ADDR_UNSET,
4178 		.radio_addr	= ADDR_UNSET,
4179 		.tuner_config   = 2,
4180 		.mpeg           = SAA7134_MPEG_DVB,
4181 		.gpiomask       = 0x0200000,
4182 		.inputs = {{
4183 			.name   = name_tv,
4184 			.vmux   = 1,
4185 			.amux   = TV,
4186 			.tv     = 1,
4187 		}, {
4188 			.name   = name_comp1,
4189 			.vmux   = 3,
4190 			.amux   = LINE1,
4191 		}, {
4192 			.name   = name_svideo,
4193 			.vmux   = 8,		/* untested */
4194 			.amux   = LINE1,
4195 		} },
4196 		.radio = {
4197 			.name   = name_radio,
4198 			.amux   = TV,
4199 			.gpio   = 0x0200000,
4200 		},
4201 	},
4202 	[SAA7134_BOARD_GENIUS_TVGO_A11MCE] = {
4203 		/* Adrian Pardini <pardo.bsso@gmail.com> */
4204 		.name		= "Genius TVGO AM11MCE",
4205 		.audio_clock	= 0x00200000,
4206 		.tuner_type	= TUNER_TNF_5335MF,
4207 		.radio_type     = UNSET,
4208 		.tuner_addr	= ADDR_UNSET,
4209 		.radio_addr	= ADDR_UNSET,
4210 		.gpiomask       = 0xf000,
4211 		.inputs         = {{
4212 			.name = name_tv_mono,
4213 			.vmux = 1,
4214 			.amux = LINE2,
4215 			.gpio = 0x0000,
4216 			.tv   = 1,
4217 		}, {
4218 			.name = name_comp1,
4219 			.vmux = 3,
4220 			.amux = LINE1,
4221 			.gpio = 0x2000,
4222 			.tv = 1
4223 		}, {
4224 			.name = name_svideo,
4225 			.vmux = 8,
4226 			.amux = LINE1,
4227 			.gpio = 0x2000,
4228 	} },
4229 		.radio = {
4230 			.name = name_radio,
4231 			.amux = LINE2,
4232 			.gpio = 0x1000,
4233 		},
4234 		.mute = {
4235 			.name = name_mute,
4236 			.amux = LINE2,
4237 			.gpio = 0x6000,
4238 		},
4239 	},
4240 	[SAA7134_BOARD_PHILIPS_SNAKE] = {
4241 		.name           = "NXP Snake DVB-S reference design",
4242 		.audio_clock    = 0x00200000,
4243 		.tuner_type     = TUNER_ABSENT,
4244 		.radio_type     = UNSET,
4245 		.tuner_addr     = ADDR_UNSET,
4246 		.radio_addr     = ADDR_UNSET,
4247 		.mpeg           = SAA7134_MPEG_DVB,
4248 		.inputs = {{
4249 			.name   = name_comp1,
4250 			.vmux   = 3,
4251 			.amux   = LINE1,
4252 		}, {
4253 			.name   = name_svideo,
4254 			.vmux   = 8,
4255 			.amux   = LINE1,
4256 		} },
4257 	},
4258 	[SAA7134_BOARD_CREATIX_CTX953] = {
4259 		.name         = "Medion/Creatix CTX953 Hybrid",
4260 		.audio_clock  = 0x00187de7,
4261 		.tuner_type   = TUNER_PHILIPS_TDA8290,
4262 		.radio_type   = UNSET,
4263 		.tuner_addr   = ADDR_UNSET,
4264 		.radio_addr   = ADDR_UNSET,
4265 		.tuner_config = 0,
4266 		.mpeg         = SAA7134_MPEG_DVB,
4267 		.inputs       = {{
4268 			.name = name_tv,
4269 			.vmux = 1,
4270 			.amux = TV,
4271 			.tv   = 1,
4272 		}, {
4273 			.name = name_comp1,
4274 			.vmux = 0,
4275 			.amux = LINE1,
4276 		}, {
4277 			.name = name_svideo,
4278 			.vmux = 8,
4279 			.amux = LINE1,
4280 		} },
4281 	},
4282 	[SAA7134_BOARD_MSI_TVANYWHERE_AD11] = {
4283 		.name           = "MSI TV@nywhere A/D v1.1",
4284 		.audio_clock    = 0x00187de7,
4285 		.tuner_type     = TUNER_PHILIPS_TDA8290,
4286 		.radio_type     = UNSET,
4287 		.tuner_addr	= ADDR_UNSET,
4288 		.radio_addr	= ADDR_UNSET,
4289 		.tuner_config   = 2,
4290 		.mpeg           = SAA7134_MPEG_DVB,
4291 		.gpiomask       = 0x0200000,
4292 		.inputs = { {
4293 			.name   = name_tv,
4294 			.vmux   = 1,
4295 			.amux   = TV,
4296 			.tv     = 1,
4297 		}, {
4298 			.name   = name_comp1,
4299 			.vmux   = 3,
4300 			.amux   = LINE1,
4301 		}, {
4302 			.name   = name_svideo,
4303 			.vmux   = 8,
4304 			.amux   = LINE1,
4305 		} },
4306 		.radio = {
4307 			.name   = name_radio,
4308 			.amux   = TV,
4309 			.gpio   = 0x0200000,
4310 		},
4311 	},
4312 	[SAA7134_BOARD_AVERMEDIA_CARDBUS_506] = {
4313 		.name           = "AVerMedia Cardbus TV/Radio (E506R)",
4314 		.audio_clock    = 0x187de7,
4315 		.tuner_type     = TUNER_XC2028,
4316 		.radio_type     = UNSET,
4317 		.tuner_addr	= ADDR_UNSET,
4318 		.radio_addr	= ADDR_UNSET,
4319 		 .mpeg           = SAA7134_MPEG_DVB,
4320 		 .inputs         = {{
4321 			 .name = name_tv,
4322 			 .vmux = 1,
4323 			 .amux = TV,
4324 			 .tv   = 1,
4325 		 }, {
4326 			 .name = name_comp,
4327 			 .vmux = 0,
4328 			 .amux = LINE1,
4329 		 }, {
4330 			 .name = name_svideo,
4331 			 .vmux = 8,
4332 			 .amux = LINE1,
4333 		 } },
4334 		 .radio = {
4335 			 .name = name_radio,
4336 			 .amux = TV,
4337 		 },
4338 	},
4339 	[SAA7134_BOARD_AVERMEDIA_A16D] = {
4340 		.name           = "AVerMedia Hybrid TV/Radio (A16D)",
4341 		.audio_clock    = 0x187de7,
4342 		.tuner_type     = TUNER_XC2028,
4343 		.radio_type     = UNSET,
4344 		.tuner_addr	= ADDR_UNSET,
4345 		.radio_addr	= ADDR_UNSET,
4346 		.mpeg           = SAA7134_MPEG_DVB,
4347 		.inputs         = {{
4348 			.name = name_tv,
4349 			.vmux = 1,
4350 			.amux = TV,
4351 			.tv   = 1,
4352 		}, {
4353 			.name = name_svideo,
4354 			.vmux = 8,
4355 			.amux = LINE1,
4356 		}, {
4357 			.name = name_comp,
4358 			.vmux = 0,
4359 			.amux = LINE1,
4360 		} },
4361 		.radio = {
4362 			.name = name_radio,
4363 			.amux = TV,
4364 		},
4365 	},
4366 	[SAA7134_BOARD_AVERMEDIA_M115] = {
4367 		.name           = "Avermedia M115",
4368 		.audio_clock    = 0x187de7,
4369 		.tuner_type     = TUNER_XC2028,
4370 		.radio_type     = UNSET,
4371 		.tuner_addr	= ADDR_UNSET,
4372 		.radio_addr	= ADDR_UNSET,
4373 		.inputs         = {{
4374 			.name = name_tv,
4375 			.vmux = 1,
4376 			.amux = TV,
4377 			.tv   = 1,
4378 		}, {
4379 			.name = name_comp1,
4380 			.vmux = 3,
4381 			.amux = LINE1,
4382 		}, {
4383 			.name = name_svideo,
4384 			.vmux = 8,
4385 			.amux = LINE2,
4386 		} },
4387 	},
4388 	[SAA7134_BOARD_VIDEOMATE_T750] = {
4389 		/* John Newbigin <jn@it.swin.edu.au> */
4390 		.name           = "Compro VideoMate T750",
4391 		.audio_clock    = 0x00187de7,
4392 		.tuner_type     = TUNER_XC2028,
4393 		.radio_type     = UNSET,
4394 		.tuner_addr	= ADDR_UNSET,
4395 		.radio_addr	= ADDR_UNSET,
4396 		.mpeg           = SAA7134_MPEG_DVB,
4397 		.inputs = {{
4398 			.name   = name_tv,
4399 			.vmux   = 3,
4400 			.amux   = TV,
4401 			.tv     = 1,
4402 		}, {
4403 			.name   = name_comp1,
4404 			.vmux   = 1,
4405 			.amux   = LINE2,
4406 		}, {
4407 			.name   = name_svideo,
4408 			.vmux   = 8,
4409 			.amux   = LINE2,
4410 		} },
4411 		.radio = {
4412 			.name = name_radio,
4413 			.amux = TV,
4414 		}
4415 	},
4416 	[SAA7134_BOARD_AVERMEDIA_A700_PRO] = {
4417 		/* Matthias Schwarzott <zzam@gentoo.org> */
4418 		.name           = "Avermedia DVB-S Pro A700",
4419 		.audio_clock    = 0x00187de7,
4420 		.tuner_type     = TUNER_ABSENT,
4421 		.radio_type     = UNSET,
4422 		.tuner_addr     = ADDR_UNSET,
4423 		.radio_addr     = ADDR_UNSET,
4424 		/* no DVB support for now */
4425 		/* .mpeg           = SAA7134_MPEG_DVB, */
4426 		.inputs         = { {
4427 			.name = name_comp,
4428 			.vmux = 1,
4429 			.amux = LINE1,
4430 		}, {
4431 			.name = name_svideo,
4432 			.vmux = 6,
4433 			.amux = LINE1,
4434 		} },
4435 	},
4436 	[SAA7134_BOARD_AVERMEDIA_A700_HYBRID] = {
4437 		/* Matthias Schwarzott <zzam@gentoo.org> */
4438 		.name           = "Avermedia DVB-S Hybrid+FM A700",
4439 		.audio_clock    = 0x00187de7,
4440 		.tuner_type     = TUNER_ABSENT, /* TUNER_XC2028 */
4441 		.radio_type     = UNSET,
4442 		.tuner_addr     = ADDR_UNSET,
4443 		.radio_addr     = ADDR_UNSET,
4444 		/* no DVB support for now */
4445 		/* .mpeg           = SAA7134_MPEG_DVB, */
4446 		.inputs         = { {
4447 			.name = name_comp,
4448 			.vmux = 1,
4449 			.amux = LINE1,
4450 		}, {
4451 			.name = name_svideo,
4452 			.vmux = 6,
4453 			.amux = LINE1,
4454 		} },
4455 	},
4456 	[SAA7134_BOARD_BEHOLD_H6] = {
4457 		/* Igor Kuznetsov <igk@igk.ru> */
4458 		.name           = "Beholder BeholdTV H6",
4459 		.audio_clock    = 0x00187de7,
4460 		.tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
4461 		.radio_type     = UNSET,
4462 		.tuner_addr     = ADDR_UNSET,
4463 		.radio_addr     = ADDR_UNSET,
4464 		.tda9887_conf   = TDA9887_PRESENT,
4465 		.mpeg           = SAA7134_MPEG_DVB,
4466 		.inputs         = {{
4467 			.name = name_tv,
4468 			.vmux = 3,
4469 			.amux = TV,
4470 			.tv   = 1,
4471 		}, {
4472 			.name = name_comp1,
4473 			.vmux = 1,
4474 			.amux = LINE1,
4475 		}, {
4476 			.name = name_svideo,
4477 			.vmux = 8,
4478 			.amux = LINE1,
4479 		} },
4480 		.radio = {
4481 			.name = name_radio,
4482 			.amux = LINE2,
4483 		},
4484 	},
4485 	[SAA7134_BOARD_ASUSTeK_TIGER_3IN1] = {
4486 		.name           = "Asus Tiger 3in1",
4487 		.audio_clock    = 0x00187de7,
4488 		.tuner_type     = TUNER_PHILIPS_TDA8290,
4489 		.radio_type     = UNSET,
4490 		.tuner_addr     = ADDR_UNSET,
4491 		.radio_addr     = ADDR_UNSET,
4492 		.tuner_config   = 2,
4493 		.gpiomask       = 1 << 21,
4494 		.mpeg           = SAA7134_MPEG_DVB,
4495 		.inputs         = {{
4496 			.name = name_tv,
4497 			.vmux = 1,
4498 			.amux = TV,
4499 			.tv   = 1,
4500 		}, {
4501 			.name = name_comp,
4502 			.vmux = 0,
4503 			.amux = LINE2,
4504 		}, {
4505 			.name = name_svideo,
4506 			.vmux = 8,
4507 			.amux = LINE2,
4508 		} },
4509 		.radio = {
4510 			.name = name_radio,
4511 			.amux = TV,
4512 			.gpio = 0x0200000,
4513 		},
4514 	},
4515 	[SAA7134_BOARD_REAL_ANGEL_220] = {
4516 		.name           = "Zogis Real Angel 220",
4517 		.audio_clock    = 0x00187de7,
4518 		.tuner_type     = TUNER_TNF_5335MF,
4519 		.radio_type     = UNSET,
4520 		.tuner_addr     = ADDR_UNSET,
4521 		.radio_addr     = ADDR_UNSET,
4522 		.gpiomask       = 0x801a8087,
4523 		.inputs = { {
4524 			.name   = name_tv,
4525 			.vmux   = 3,
4526 			.amux   = LINE2,
4527 			.tv     = 1,
4528 			.gpio   = 0x624000,
4529 		}, {
4530 			.name   = name_comp1,
4531 			.vmux   = 1,
4532 			.amux   = LINE1,
4533 			.gpio   = 0x624000,
4534 		}, {
4535 			.name   = name_svideo,
4536 			.vmux   = 1,
4537 			.amux   = LINE1,
4538 			.gpio   = 0x624000,
4539 		} },
4540 		.radio = {
4541 			.name   = name_radio,
4542 			.amux   = LINE2,
4543 			.gpio   = 0x624001,
4544 		},
4545 		.mute = {
4546 			.name = name_mute,
4547 			.amux = TV,
4548 		},
4549 	},
4550 	[SAA7134_BOARD_ADS_INSTANT_HDTV_PCI] = {
4551 		.name           = "ADS Tech Instant HDTV",
4552 		.audio_clock    = 0x00187de7,
4553 		.tuner_type     = TUNER_PHILIPS_TUV1236D,
4554 		.radio_type     = UNSET,
4555 		.tuner_addr     = ADDR_UNSET,
4556 		.radio_addr     = ADDR_UNSET,
4557 		.tda9887_conf   = TDA9887_PRESENT,
4558 		.mpeg           = SAA7134_MPEG_DVB,
4559 		.inputs         = { {
4560 			.name = name_tv,
4561 			.vmux = 1,
4562 			.amux = TV,
4563 			.tv   = 1,
4564 		}, {
4565 			.name = name_comp,
4566 			.vmux = 4,
4567 			.amux = LINE1,
4568 		}, {
4569 			.name = name_svideo,
4570 			.vmux = 8,
4571 			.amux = LINE1,
4572 		} },
4573 	},
4574 	[SAA7134_BOARD_ASUSTeK_TIGER] = {
4575 		.name           = "Asus Tiger Rev:1.00",
4576 		.audio_clock    = 0x00187de7,
4577 		.tuner_type     = TUNER_PHILIPS_TDA8290,
4578 		.radio_type     = UNSET,
4579 		.tuner_addr	= ADDR_UNSET,
4580 		.radio_addr	= ADDR_UNSET,
4581 		.tuner_config   = 0,
4582 		.mpeg           = SAA7134_MPEG_DVB,
4583 		.gpiomask       = 0x0200000,
4584 		.inputs = { {
4585 			.name   = name_tv,
4586 			.vmux   = 1,
4587 			.amux   = TV,
4588 			.tv     = 1,
4589 		}, {
4590 			.name   = name_comp1,
4591 			.vmux   = 3,
4592 			.amux   = LINE2,
4593 		}, {
4594 			.name   = name_comp2,
4595 			.vmux   = 0,
4596 			.amux   = LINE2,
4597 		}, {
4598 			.name   = name_svideo,
4599 			.vmux   = 8,
4600 			.amux   = LINE2,
4601 		} },
4602 		.radio = {
4603 			.name   = name_radio,
4604 			.amux   = TV,
4605 			.gpio   = 0x0200000,
4606 		},
4607 	},
4608 	[SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG] = {
4609 		.name           = "Kworld Plus TV Analog Lite PCI",
4610 		.audio_clock    = 0x00187de7,
4611 		.tuner_type     = TUNER_YMEC_TVF_5533MF,
4612 		.radio_type     = TUNER_TEA5767,
4613 		.tuner_addr     = ADDR_UNSET,
4614 		.radio_addr     = ADDR_UNSET,
4615 		.gpiomask       = 0x80000700,
4616 		.inputs = { {
4617 			.name   = name_tv,
4618 			.vmux   = 1,
4619 			.amux   = LINE2,
4620 			.tv     = 1,
4621 			.gpio   = 0x100,
4622 		}, {
4623 			.name   = name_comp1,
4624 			.vmux   = 3,
4625 			.amux   = LINE1,
4626 			.gpio   = 0x200,
4627 		}, {
4628 			.name   = name_svideo,
4629 			.vmux   = 8,
4630 			.amux   = LINE1,
4631 			.gpio   = 0x200,
4632 		} },
4633 		.radio = {
4634 			.name   = name_radio,
4635 			.vmux   = 1,
4636 			.amux   = LINE1,
4637 			.gpio   = 0x100,
4638 		},
4639 		.mute = {
4640 			.name = name_mute,
4641 			.vmux = 8,
4642 			.amux = 2,
4643 		},
4644 	},
4645 	[SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS] = {
4646 		.name           = "Avermedia AVerTV GO 007 FM Plus",
4647 		.audio_clock    = 0x00187de7,
4648 		.tuner_type     = TUNER_PHILIPS_TDA8290,
4649 		.radio_type     = UNSET,
4650 		.tuner_addr	= ADDR_UNSET,
4651 		.radio_addr	= ADDR_UNSET,
4652 		.gpiomask       = 0x00300003,
4653 		/* .gpiomask       = 0x8c240003, */
4654 		.inputs         = { {
4655 			.name = name_tv,
4656 			.vmux = 1,
4657 			.amux = TV,
4658 			.tv   = 1,
4659 			.gpio = 0x01,
4660 		}, {
4661 			.name = name_svideo,
4662 			.vmux = 6,
4663 			.amux = LINE1,
4664 			.gpio = 0x02,
4665 		} },
4666 		.radio = {
4667 			.name = name_radio,
4668 			.amux = TV,
4669 			.gpio = 0x00300001,
4670 		},
4671 		.mute = {
4672 			.name = name_mute,
4673 			.amux = TV,
4674 			.gpio = 0x01,
4675 		},
4676 	},
4677 };
4678 
4679 const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
4680 
4681 /* ------------------------------------------------------------------ */
4682 /* PCI ids + subsystem IDs                                            */
4683 
4684 struct pci_device_id saa7134_pci_tbl[] = {
4685 	{
4686 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4687 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4688 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
4689 		.subdevice    = 0x2001,
4690 		.driver_data  = SAA7134_BOARD_PROTEUS_PRO,
4691 	},{
4692 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4693 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4694 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
4695 		.subdevice    = 0x2001,
4696 		.driver_data  = SAA7134_BOARD_PROTEUS_PRO,
4697 	},{
4698 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4699 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4700 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
4701 		.subdevice    = 0x6752,
4702 		.driver_data  = SAA7134_BOARD_EMPRESS,
4703 	},{
4704 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4705 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4706 		.subvendor    = 0x1131,
4707 		.subdevice    = 0x4e85,
4708 		.driver_data  = SAA7134_BOARD_MONSTERTV,
4709 	},{
4710 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4711 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4712 		.subvendor    = 0x153b,
4713 		.subdevice    = 0x1142,
4714 		.driver_data  = SAA7134_BOARD_CINERGY400,
4715 	},{
4716 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4717 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4718 		.subvendor    = 0x153b,
4719 		.subdevice    = 0x1143,
4720 		.driver_data  = SAA7134_BOARD_CINERGY600,
4721 	},{
4722 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4723 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4724 		.subvendor    = 0x153b,
4725 		.subdevice    = 0x1158,
4726 		.driver_data  = SAA7134_BOARD_CINERGY600_MK3,
4727 	},{
4728 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4729 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4730 		.subvendor    = 0x153b,
4731 		.subdevice    = 0x1162,
4732 		.driver_data  = SAA7134_BOARD_CINERGY400_CARDBUS,
4733 	},{
4734 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4735 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4736 		.subvendor    = 0x5169,
4737 		.subdevice    = 0x0138,
4738 		.driver_data  = SAA7134_BOARD_FLYVIDEO3000_NTSC,
4739 	},{
4740 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4741 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4742 		.subvendor    = 0x5168,
4743 		.subdevice    = 0x0138,
4744 		.driver_data  = SAA7134_BOARD_FLYVIDEO3000,
4745 	},{
4746 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4747 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4748 		.subvendor    = 0x4e42,				/* "Typhoon PCI Capture TV Card" Art.No. 50673 */
4749 		.subdevice    = 0x0138,
4750 		.driver_data  = SAA7134_BOARD_FLYVIDEO3000,
4751 	},{
4752 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4753 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4754 		.subvendor    = 0x5168,
4755 		.subdevice    = 0x0138,
4756 		.driver_data  = SAA7134_BOARD_FLYVIDEO2000,
4757 	},{
4758 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4759 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4760 		.subvendor    = 0x4e42,		/* Typhoon */
4761 		.subdevice    = 0x0138,		/* LifeView FlyTV Prime30 OEM */
4762 		.driver_data  = SAA7134_BOARD_FLYVIDEO2000,
4763 	},{
4764 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4765 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4766 		.subvendor    = 0x5168,
4767 		.subdevice    = 0x0212, /* minipci, LR212 */
4768 		.driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
4769 	},{
4770 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4771 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4772 		.subvendor    = 0x14c0,
4773 		.subdevice    = 0x1212, /* minipci, LR1212 */
4774 		.driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI2,
4775 	},{
4776 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4777 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4778 		.subvendor    = 0x4e42,
4779 		.subdevice    = 0x0212, /* OEM minipci, LR212 */
4780 		.driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
4781 	},{
4782 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4783 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4784 		.subvendor    = 0x5168,	/* Animation Technologies (LifeView) */
4785 		.subdevice    = 0x0214, /* Standard PCI, LR214 Rev E and earlier (SAA7135) */
4786 		.driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM,
4787 	},{
4788 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4789 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4790 		.subvendor    = 0x5168,	/* Animation Technologies (LifeView) */
4791 		.subdevice    = 0x5214, /* Standard PCI, LR214 Rev F onwards (SAA7131) */
4792 		.driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM,
4793 	},{
4794 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4795 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4796 		.subvendor    = 0x1489, /* KYE */
4797 		.subdevice    = 0x0214, /* Genius VideoWonder ProTV */
4798 		.driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM, /* is an LR214WF actually */
4799 	},{
4800 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4801 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4802 		.subvendor    = 0x16be,
4803 		.subdevice    = 0x0003,
4804 		.driver_data  = SAA7134_BOARD_MD7134,
4805 	},{
4806 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4807 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4808 		.subvendor    = 0x16be, /* CTX946 analog TV, HW mpeg, DVB-T */
4809 		.subdevice    = 0x5000, /* only analog TV and DVB-T for now */
4810 		.driver_data  = SAA7134_BOARD_MD7134,
4811 	}, {
4812 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4813 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4814 		.subvendor    = 0x1048,
4815 		.subdevice    = 0x226b,
4816 		.driver_data  = SAA7134_BOARD_ELSA,
4817 	},{
4818 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4819 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4820 		.subvendor    = 0x1048,
4821 		.subdevice    = 0x226a,
4822 		.driver_data  = SAA7134_BOARD_ELSA_500TV,
4823 	},{
4824 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4825 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4826 		.subvendor    = 0x1048,
4827 		.subdevice    = 0x226c,
4828 		.driver_data  = SAA7134_BOARD_ELSA_700TV,
4829 	},{
4830 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4831 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4832 		.subvendor    = PCI_VENDOR_ID_ASUSTEK,
4833 		.subdevice    = 0x4842,
4834 		.driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
4835 	},{
4836 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4837 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4838 		.subvendor    = PCI_VENDOR_ID_ASUSTEK,
4839 		.subdevice    = 0x4845,
4840 		.driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7135,
4841 	},{
4842 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4843 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4844 		.subvendor    = PCI_VENDOR_ID_ASUSTEK,
4845 		.subdevice    = 0x4830,
4846 		.driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
4847 	},{
4848 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4849 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4850 		.subvendor    = PCI_VENDOR_ID_ASUSTEK,
4851 		.subdevice    = 0x4843,
4852 		.driver_data  = SAA7134_BOARD_ASUSTEK_TVFM7133,
4853 	},{
4854 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4855 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4856 		.subvendor    = PCI_VENDOR_ID_ASUSTEK,
4857 		.subdevice    = 0x4840,
4858 		.driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
4859 	},{
4860 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4861 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4862 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
4863 		.subdevice    = 0xfe01,
4864 		.driver_data  = SAA7134_BOARD_TVSTATION_RDS,
4865 	},{
4866 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4867 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4868 		.subvendor    = 0x1894,
4869 		.subdevice    = 0xfe01,
4870 		.driver_data  = SAA7134_BOARD_TVSTATION_RDS,
4871 	},{
4872 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4873 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4874 		.subvendor    = 0x1894,
4875 		.subdevice    = 0xa006,
4876 		.driver_data  = SAA7134_BOARD_TVSTATION_DVR,
4877 	},{
4878 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4879 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4880 		.subvendor    = 0x1131,
4881 		.subdevice    = 0x7133,
4882 		.driver_data  = SAA7134_BOARD_VA1000POWER,
4883 	},{
4884 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4885 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4886 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
4887 		.subdevice    = 0x2001,
4888 		.driver_data  = SAA7134_BOARD_10MOONSTVMASTER,
4889 	},{
4890 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4891 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4892 		.subvendor    = 0x185b,
4893 		.subdevice    = 0xc100,
4894 		.driver_data  = SAA7134_BOARD_VIDEOMATE_TV,
4895 	},{
4896 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4897 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4898 		.subvendor    = 0x185b,
4899 		.subdevice    = 0xc100,
4900 		.driver_data  = SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS,
4901 	},{
4902 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4903 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4904 		.subvendor    = PCI_VENDOR_ID_MATROX,
4905 		.subdevice    = 0x48d0,
4906 		.driver_data  = SAA7134_BOARD_CRONOS_PLUS,
4907 	},{
4908 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4909 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4910 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
4911 		.subdevice    = 0xa70b,
4912 		.driver_data  = SAA7134_BOARD_MD2819,
4913 	},{
4914 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4915 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4916 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
4917 		.subdevice    = 0xa7a1,
4918 		.driver_data  = SAA7134_BOARD_AVERMEDIA_A700_PRO,
4919 	}, {
4920 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4921 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4922 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
4923 		.subdevice    = 0xa7a2,
4924 		.driver_data  = SAA7134_BOARD_AVERMEDIA_A700_HYBRID,
4925 	}, {
4926 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4927 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4928 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
4929 		.subdevice    = 0x2115,
4930 		.driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_305,
4931 	},{
4932 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4933 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4934 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
4935 		.subdevice    = 0x2108,
4936 		.driver_data  = SAA7134_BOARD_AVERMEDIA_305,
4937 	},{
4938 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4939 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4940 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
4941 		.subdevice    = 0x10ff,
4942 		.driver_data  = SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER,
4943 	},{
4944 		/* AVerMedia CardBus */
4945 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4946 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4947 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
4948 		.subdevice    = 0xd6ee,
4949 		.driver_data  = SAA7134_BOARD_AVERMEDIA_CARDBUS,
4950 	},{
4951 		/* TransGear 3000TV */
4952 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4953 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4954 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
4955 		.subdevice    = 0x050c,
4956 		.driver_data  = SAA7134_BOARD_TG3000TV,
4957 	},{
4958 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4959 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4960 		.subvendor    = 0x11bd,
4961 		.subdevice    = 0x002b,
4962 		.driver_data  = SAA7134_BOARD_PINNACLE_PCTV_STEREO,
4963 	},{
4964 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4965 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4966 		.subvendor    = 0x11bd,
4967 		.subdevice    = 0x002d,
4968 		.driver_data  = SAA7134_BOARD_PINNACLE_300I_DVBT_PAL,
4969 	},{
4970 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4971 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4972 		.subvendor    = 0x1019,
4973 		.subdevice    = 0x4cb4,
4974 		.driver_data  = SAA7134_BOARD_ECS_TVP3XP,
4975 	},{
4976 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4977 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4978 		.subvendor    = 0x1019,
4979 		.subdevice    = 0x4cb5,
4980 		.driver_data  = SAA7134_BOARD_ECS_TVP3XP_4CB5,
4981 	},{
4982 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4983 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4984 		.subvendor    = 0x1019,
4985 		.subdevice    = 0x4cb6,
4986 		.driver_data  = SAA7134_BOARD_ECS_TVP3XP_4CB6,
4987 	},{
4988 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4989 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4990 		.subvendor    = 0x12ab,
4991 		.subdevice    = 0x0800,
4992 		.driver_data  = SAA7134_BOARD_UPMOST_PURPLE_TV,
4993 	},{
4994 		.vendor       = PCI_VENDOR_ID_PHILIPS,
4995 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4996 		.subvendor    = 0x153b,
4997 		.subdevice    = 0x1152,
4998 		.driver_data  = SAA7134_BOARD_CINERGY200,
4999 	},{
5000 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5001 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5002 		.subvendor    = 0x185b,
5003 		.subdevice    = 0xc100,
5004 		.driver_data  = SAA7134_BOARD_VIDEOMATE_TV_PVR,
5005 	},{
5006 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5007 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5008 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
5009 		.subdevice    = 0x9715,
5010 		.driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_307,
5011 	},{
5012 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5013 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5014 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
5015 		.subdevice    = 0xa70a,
5016 		.driver_data  = SAA7134_BOARD_AVERMEDIA_307,
5017 	},{
5018 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5019 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5020 		.subvendor    = 0x185b,
5021 		.subdevice    = 0xc200,
5022 		.driver_data  = SAA7134_BOARD_VIDEOMATE_GOLD_PLUS,
5023 	},{
5024 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5025 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5026 		.subvendor    = 0x1540,
5027 		.subdevice    = 0x9524,
5028 		.driver_data  = SAA7134_BOARD_PROVIDEO_PV952,
5029 
5030 	},{
5031 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5032 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5033 		.subvendor    = 0x5168,
5034 		.subdevice    = 0x0502,                /* Cardbus version */
5035 		.driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
5036 	},{
5037 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5038 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5039 		.subvendor    = 0x5168,
5040 		.subdevice    = 0x0306,                /* PCI version */
5041 		.driver_data  = SAA7134_BOARD_FLYDVBTDUO,
5042 	},{
5043 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5044 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5045 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
5046 		.subdevice    = 0xf31f,
5047 		.driver_data  = SAA7134_BOARD_AVERMEDIA_GO_007_FM,
5048 
5049 	},{
5050 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5051 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5052 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
5053 		.subdevice    = 0xf11d,
5054 		.driver_data  = SAA7134_BOARD_AVERMEDIA_M135A,
5055 	}, {
5056 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5057 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5058 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
5059 		.subdevice    = 0x2004,
5060 		.driver_data  = SAA7134_BOARD_PHILIPS_TOUGH,
5061 	},{
5062 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5063 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5064 		.subvendor    = 0x1421,
5065 		.subdevice    = 0x0350,		/* PCI version */
5066 		.driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
5067 	},{
5068 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5069 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5070 		.subvendor    = 0x1421,
5071 		.subdevice    = 0x0351,		/* PCI version, new revision */
5072 		.driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
5073 	},{
5074 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5075 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5076 		.subvendor    = 0x1421,
5077 		.subdevice    = 0x0370,		/* cardbus version */
5078 		.driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
5079 	},{
5080 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5081 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5082 		.subvendor    = 0x1421,
5083 		.subdevice    = 0x1370,        /* cardbus version */
5084 		.driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
5085 
5086 	},{
5087 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5088 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5089 		.subvendor    = 0x4e42,		/* Typhoon */
5090 		.subdevice    = 0x0502,		/* LifeView LR502 OEM */
5091 		.driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
5092 	},{
5093 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5094 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5095 		.subvendor    = 0x1043,
5096 		.subdevice    = 0x0210,		/* mini pci NTSC version */
5097 		.driver_data  = SAA7134_BOARD_FLYTV_DIGIMATRIX,
5098 	},{
5099 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5100 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5101 		.subvendor    = 0x1043,
5102 		.subdevice    = 0x0210,		/* mini pci PAL/SECAM version */
5103 		.driver_data  = SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV,
5104 
5105 	},{
5106 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5107 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5108 		.subvendor    = 0x0000, /* It shouldn't break anything, since subdevice id seems unique */
5109 		.subdevice    = 0x4091,
5110 		.driver_data  = SAA7134_BOARD_BEHOLD_409FM,
5111 	},{
5112 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5113 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5114 		.subvendor    = 0x5456, /* GoTView */
5115 		.subdevice    = 0x7135,
5116 		.driver_data  = SAA7134_BOARD_GOTVIEW_7135,
5117 	},{
5118 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5119 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5120 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
5121 		.subdevice    = 0x2004,
5122 		.driver_data  = SAA7134_BOARD_PHILIPS_EUROPA,
5123 	},{
5124 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5125 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5126 		.subvendor    = 0x185b,
5127 		.subdevice    = 0xc900,
5128 		.driver_data  = SAA7134_BOARD_VIDEOMATE_DVBT_300,
5129 	},{
5130 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5131 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5132 		.subvendor    = 0x185b,
5133 		.subdevice    = 0xc901,
5134 		.driver_data  = SAA7134_BOARD_VIDEOMATE_DVBT_200,
5135 	},{
5136 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5137 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5138 		.subvendor    = 0x1435,
5139 		.subdevice    = 0x7350,
5140 		.driver_data  = SAA7134_BOARD_RTD_VFG7350,
5141 	},{
5142 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5143 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5144 		.subvendor    = 0x1435,
5145 		.subdevice    = 0x7330,
5146 		.driver_data  = SAA7134_BOARD_RTD_VFG7330,
5147 	},{
5148 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5149 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5150 		.subvendor    = 0x1461,
5151 		.subdevice    = 0x1044,
5152 		.driver_data  = SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180,
5153 	},{
5154 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5155 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5156 		.subvendor    = 0x1131,
5157 		.subdevice    = 0x4ee9,
5158 		.driver_data  = SAA7134_BOARD_MONSTERTV_MOBILE,
5159 	},{
5160 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5161 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5162 		.subvendor    = 0x11bd,
5163 		.subdevice    = 0x002e,
5164 		.driver_data  = SAA7134_BOARD_PINNACLE_PCTV_110i,
5165 	},{
5166 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5167 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5168 		.subvendor    = 0x1043,
5169 		.subdevice    = 0x4862,
5170 		.driver_data  = SAA7134_BOARD_ASUSTeK_P7131_DUAL,
5171 	},{
5172 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5173 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5174 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
5175 		.subdevice    = 0x2018,
5176 		.driver_data  = SAA7134_BOARD_PHILIPS_TIGER,
5177 	},{
5178 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5179 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5180 		.subvendor    = 0x1462,
5181 		.subdevice    = 0x6231, /* tda8275a, ks003 IR */
5182 		.driver_data  = SAA7134_BOARD_MSI_TVATANYWHERE_PLUS,
5183 	},{
5184 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5185 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5186 		.subvendor    = 0x1462,
5187 		.subdevice    = 0x8624, /* tda8275, ks003 IR */
5188 		.driver_data  = SAA7134_BOARD_MSI_TVATANYWHERE_PLUS,
5189 	},{
5190 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5191 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5192 		.subvendor    = 0x153b,
5193 		.subdevice    = 0x1160,
5194 		.driver_data  = SAA7134_BOARD_CINERGY250PCI,
5195 	},{
5196 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5197 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,	/* SAA 7131E */
5198 		.subvendor    = 0x5168,
5199 		.subdevice    = 0x0319,
5200 		.driver_data  = SAA7134_BOARD_FLYDVB_TRIO,
5201 	},{
5202 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5203 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5204 		.subvendor    = 0x1461,
5205 		.subdevice    = 0x2c05,
5206 		.driver_data  = SAA7134_BOARD_AVERMEDIA_777,
5207 	},{
5208 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5209 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5210 		.subvendor    = 0x5168,
5211 		.subdevice    = 0x0301,
5212 		.driver_data  = SAA7134_BOARD_FLYDVBT_LR301,
5213 	},{
5214 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5215 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5216 		.subvendor    = 0x0331,
5217 		.subdevice    = 0x1421,
5218 		.driver_data  = SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331,
5219 	},{
5220 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5221 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5222 		.subvendor    = 0x17de,
5223 		.subdevice    = 0x7201,
5224 		.driver_data  = SAA7134_BOARD_TEVION_DVBT_220RF,
5225 	},{
5226 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5227 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5228 		.subvendor    = 0x17de,
5229 		.subdevice    = 0x7250,
5230 		.driver_data  = SAA7134_BOARD_KWORLD_DVBT_210,
5231 	},{
5232 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5233 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
5234 		.subvendor    = 0x17de,
5235 		.subdevice    = 0x7350,
5236 		.driver_data  = SAA7134_BOARD_KWORLD_ATSC110,
5237 	},{
5238 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5239 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
5240 		.subvendor    = 0x17de,
5241 		.subdevice    = 0x7352,
5242 		.driver_data  = SAA7134_BOARD_KWORLD_ATSC110, /* ATSC 115 */
5243 	},{
5244 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5245 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5246 		.subvendor    = 0x1461,
5247 		.subdevice    = 0x7360,
5248 		.driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B,
5249 	},{
5250 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5251 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5252 		.subvendor    = 0x1461,
5253 		.subdevice    = 0x6360,
5254 		.driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B1,
5255 	},{
5256 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5257 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5258 		.subvendor    = 0x16be,
5259 		.subdevice    = 0x0005,
5260 		.driver_data  = SAA7134_BOARD_MD7134_BRIDGE_2,
5261 	},{
5262 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5263 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5264 		.subvendor    = 0x5168,
5265 		.subdevice    = 0x0300,
5266 		.driver_data  = SAA7134_BOARD_FLYDVBS_LR300,
5267 	},{
5268 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5269 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5270 		.subvendor    = 0x4e42,
5271 		.subdevice    = 0x0300,/* LR300 */
5272 		.driver_data  = SAA7134_BOARD_FLYDVBS_LR300,
5273 	},{
5274 		.vendor = PCI_VENDOR_ID_PHILIPS,
5275 		.device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5276 		.subvendor = 0x1489,
5277 		.subdevice = 0x0301,
5278 		.driver_data = SAA7134_BOARD_FLYDVBT_LR301,
5279 	},{
5280 		.vendor = PCI_VENDOR_ID_PHILIPS,
5281 		.device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5282 		.subvendor = 0x5168, /* Animation Technologies (LifeView) */
5283 		.subdevice = 0x0304,
5284 		.driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM,
5285 	},{
5286 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5287 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5288 		.subvendor    = 0x5168,
5289 		.subdevice    = 0x3306,
5290 		.driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
5291 	},{
5292 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5293 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5294 		.subvendor    = 0x5168,
5295 		.subdevice    = 0x3502,  /* whats the difference to 0x3306 ?*/
5296 		.driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
5297 	},{
5298 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5299 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5300 		.subvendor    = 0x5168,
5301 		.subdevice    = 0x3307, /* FlyDVB-T Hybrid Mini PCI */
5302 		.driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
5303 	}, {
5304 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5305 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5306 		.subvendor    = 0x16be,
5307 		.subdevice    = 0x0007,
5308 		.driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
5309 	},{
5310 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5311 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5312 		.subvendor    = 0x16be,
5313 		.subdevice    = 0x0008,
5314 		.driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
5315 	},{
5316 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5317 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5318 		.subvendor    = 0x16be,
5319 		.subdevice    = 0x000d, /* triple CTX948_V1.1.1 */
5320 		.driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
5321 	}, {
5322 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5323 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5324 		.subvendor    = 0x1461,
5325 		.subdevice    = 0x2c05,
5326 		.driver_data  = SAA7134_BOARD_AVERMEDIA_777,
5327 	},{
5328 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5329 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5330 		.subvendor    = 0x1489,
5331 		.subdevice    = 0x0502,                /* Cardbus version */
5332 		.driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
5333 	},{
5334 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5335 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5336 		.subvendor    = 0x0919, /* Philips Proteus PRO 2309 */
5337 		.subdevice    = 0x2003,
5338 		.driver_data  = SAA7134_BOARD_PROTEUS_2309,
5339 	},{
5340 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5341 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5342 		.subvendor    = 0x1461,
5343 		.subdevice    = 0x2c00,
5344 		.driver_data  = SAA7134_BOARD_AVERMEDIA_A16AR,
5345 	},{
5346 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5347 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5348 		.subvendor    = 0x1043,
5349 		.subdevice    = 0x4860,
5350 		.driver_data  = SAA7134_BOARD_ASUS_EUROPA2_HYBRID,
5351 	},{
5352 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5353 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5354 		.subvendor    = 0x11bd,
5355 		.subdevice    = 0x002f,
5356 		.driver_data  = SAA7134_BOARD_PINNACLE_PCTV_310i,
5357 	},{
5358 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5359 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5360 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
5361 		.subdevice    = 0x9715,
5362 		.driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_507,
5363 	},{
5364 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5365 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5366 		.subvendor    = 0x1043,
5367 		.subdevice    = 0x4876,
5368 		.driver_data  = SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA,
5369 	},{
5370 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5371 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5372 		.subvendor    = 0x0070,
5373 		.subdevice    = 0x6700,
5374 		.driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
5375 	},{
5376 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5377 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5378 		.subvendor    = 0x0070,
5379 		.subdevice    = 0x6701,
5380 		.driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
5381 	},{
5382 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5383 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5384 		.subvendor    = 0x0070,
5385 		.subdevice    = 0x6702,
5386 		.driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
5387 	},{
5388 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5389 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5390 		.subvendor    = 0x0070,
5391 		.subdevice    = 0x6703,
5392 		.driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
5393 	},{
5394 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5395 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5396 		.subvendor    = 0x0070,
5397 		.subdevice    = 0x6704,
5398 		.driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
5399 	},{
5400 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5401 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5402 		.subvendor    = 0x0070,
5403 		.subdevice    = 0x6705,
5404 		.driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
5405 	},{
5406 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5407 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5408 		.subvendor    = 0x153b,
5409 		.subdevice    = 0x1172,
5410 		.driver_data  = SAA7134_BOARD_CINERGY_HT_PCMCIA,
5411 	},{
5412 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5413 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5414 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
5415 		.subdevice    = 0x2342,
5416 		.driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
5417 	},{
5418 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5419 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5420 		.subvendor    = 0x1131,
5421 		.subdevice    = 0x2341,
5422 		.driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
5423 	},{
5424 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5425 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5426 		.subvendor    = 0x3016,
5427 		.subdevice    = 0x2344,
5428 		.driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
5429 	},{
5430 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5431 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5432 		.subvendor    = 0x1131,
5433 		.subdevice    = 0x230f,
5434 		.driver_data  = SAA7134_BOARD_ENCORE_ENLTV_FM,
5435 	},{
5436 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5437 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5438 		.subvendor    = 0x1a7f,
5439 		.subdevice    = 0x2008,
5440 		.driver_data  = SAA7134_BOARD_ENCORE_ENLTV_FM53,
5441 	}, {
5442 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5443 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5444 		.subvendor    = 0x153b,
5445 		.subdevice    = 0x1175,
5446 		.driver_data  = SAA7134_BOARD_CINERGY_HT_PCI,
5447 	},{
5448 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5449 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5450 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
5451 		.subdevice    = 0xf31e,
5452 		.driver_data  = SAA7134_BOARD_AVERMEDIA_M102,
5453 	},{
5454 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5455 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5456 		.subvendor    = 0x4E42,         /* MSI */
5457 		.subdevice    = 0x0306,         /* TV@nywhere DUO */
5458 		.driver_data  = SAA7134_BOARD_FLYDVBTDUO,
5459 	},{
5460 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5461 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5462 		.subvendor    = 0x1043,
5463 		.subdevice    = 0x4871,
5464 		.driver_data  = SAA7134_BOARD_ASUS_P7131_4871,
5465 	},{
5466 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5467 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5468 		.subvendor    = 0x1043,
5469 		.subdevice    = 0x4857,		/* REV:1.00 */
5470 		.driver_data  = SAA7134_BOARD_ASUSTeK_TIGER,
5471 	},{
5472 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5473 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5474 		.subvendor    = 0x0919, /* SinoVideo PCI 2309 Proteus (7134) */
5475 		.subdevice    = 0x2003, /* OEM cardbus */
5476 		.driver_data  = SAA7134_BOARD_SABRENT_TV_PCB05,
5477 	},{
5478 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5479 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5480 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
5481 		.subdevice    = 0x2304,
5482 		.driver_data  = SAA7134_BOARD_10MOONSTVMASTER3,
5483 	},{
5484 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5485 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5486 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
5487 		.subdevice    = 0xf01d, /* AVerTV DVB-T Super 007 */
5488 		.driver_data  = SAA7134_BOARD_AVERMEDIA_SUPER_007,
5489 	},{
5490 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5491 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5492 		.subvendor    = 0x0000,
5493 		.subdevice    = 0x4016,
5494 		.driver_data  = SAA7134_BOARD_BEHOLD_401,
5495 	},{
5496 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5497 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5498 		.subvendor    = 0x0000,
5499 		.subdevice    = 0x4036,
5500 		.driver_data  = SAA7134_BOARD_BEHOLD_403,
5501 	},{
5502 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5503 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5504 		.subvendor    = 0x0000,
5505 		.subdevice    = 0x4037,
5506 		.driver_data  = SAA7134_BOARD_BEHOLD_403FM,
5507 	},{
5508 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5509 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5510 		.subvendor    = 0x0000,
5511 		.subdevice    = 0x4050,
5512 		.driver_data  = SAA7134_BOARD_BEHOLD_405,
5513 	},{
5514 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5515 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5516 		.subvendor    = 0x0000,
5517 		.subdevice    = 0x4051,
5518 		.driver_data  = SAA7134_BOARD_BEHOLD_405FM,
5519 	},{
5520 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5521 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5522 		.subvendor    = 0x0000,
5523 		.subdevice    = 0x4070,
5524 		.driver_data  = SAA7134_BOARD_BEHOLD_407,
5525 	},{
5526 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5527 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5528 		.subvendor    = 0x0000,
5529 		.subdevice    = 0x4071,
5530 		.driver_data  = SAA7134_BOARD_BEHOLD_407FM,
5531 	},{
5532 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5533 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5534 		.subvendor    = 0x0000,
5535 		.subdevice    = 0x4090,
5536 		.driver_data  = SAA7134_BOARD_BEHOLD_409,
5537 	},{
5538 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5539 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5540 		.subvendor    = 0x0000,
5541 		.subdevice    = 0x5051,
5542 		.driver_data  = SAA7134_BOARD_BEHOLD_505FM,
5543 	},{
5544 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5545 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5546 		.subvendor    = 0x0000,
5547 		.subdevice    = 0x505B,
5548 		.driver_data  = SAA7134_BOARD_BEHOLD_505FM,
5549 	},{
5550 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5551 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5552 		.subvendor    = 0x5ace,
5553 		.subdevice    = 0x5050,
5554 		.driver_data  = SAA7134_BOARD_BEHOLD_505FM,
5555 	},{
5556 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5557 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5558 		.subvendor    = 0x0000,
5559 		.subdevice    = 0x5071,
5560 		.driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
5561 	},{
5562 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5563 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5564 		.subvendor    = 0x0000,
5565 		.subdevice    = 0x507B,
5566 		.driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
5567 	},{
5568 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5569 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5570 		.subvendor    = 0x5ace,
5571 		.subdevice    = 0x5070,
5572 		.driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
5573 	},{
5574 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5575 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5576 		.subvendor    = 0x5ace,
5577 		.subdevice    = 0x5090,
5578 		.driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
5579 	},{
5580 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5581 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5582 		.subvendor    = 0x0000,
5583 		.subdevice    = 0x5201,
5584 		.driver_data  = SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM,
5585 	},{
5586 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5587 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5588 		.subvendor    = 0x5ace,
5589 		.subdevice    = 0x6070,
5590 		.driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
5591 	},{
5592 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5593 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5594 		.subvendor    = 0x5ace,
5595 		.subdevice    = 0x6071,
5596 		.driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
5597 	},{
5598 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5599 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5600 		.subvendor    = 0x5ace,
5601 		.subdevice    = 0x6072,
5602 		.driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
5603 	},{
5604 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5605 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5606 		.subvendor    = 0x5ace,
5607 		.subdevice    = 0x6073,
5608 		.driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
5609 	},{
5610 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5611 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5612 		.subvendor    = 0x5ace,
5613 		.subdevice    = 0x6090,
5614 		.driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
5615 	},{
5616 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5617 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5618 		.subvendor    = 0x5ace,
5619 		.subdevice    = 0x6091,
5620 		.driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
5621 	},{
5622 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5623 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5624 		.subvendor    = 0x5ace,
5625 		.subdevice    = 0x6092,
5626 		.driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
5627 	},{
5628 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5629 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5630 		.subvendor    = 0x5ace,
5631 		.subdevice    = 0x6093,
5632 		.driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
5633 	},{
5634 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5635 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5636 		.subvendor    = 0x5ace,
5637 		.subdevice    = 0x6190,
5638 		.driver_data  = SAA7134_BOARD_BEHOLD_M6,
5639 	},{
5640 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5641 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5642 		.subvendor    = 0x5ace,
5643 		.subdevice    = 0x6193,
5644 		.driver_data  = SAA7134_BOARD_BEHOLD_M6_EXTRA,
5645 	}, {
5646 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5647 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5648 		.subvendor    = 0x5ace,
5649 		.subdevice    = 0x6191,
5650 		.driver_data  = SAA7134_BOARD_BEHOLD_M63,
5651 	},{
5652 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5653 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5654 		.subvendor    = 0x4e42,
5655 		.subdevice    = 0x3502,
5656 		.driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
5657 	}, {
5658 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5659 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5660 		.subvendor    = 0x1822, /*Twinhan Technology Co. Ltd*/
5661 		.subdevice    = 0x0022,
5662 		.driver_data  = SAA7134_BOARD_TWINHAN_DTV_DVB_3056,
5663 	}, {
5664 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5665 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5666 		.subvendor    = 0x16be,
5667 		.subdevice    = 0x0010, /* Medion version CTX953_V.1.4.3 */
5668 		.driver_data  = SAA7134_BOARD_CREATIX_CTX953,
5669 	}, {
5670 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5671 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5672 		.subvendor    = 0x1462, /* MSI */
5673 		.subdevice    = 0x8625, /* TV@nywhere A/D v1.1 */
5674 		.driver_data  = SAA7134_BOARD_MSI_TVANYWHERE_AD11,
5675 	},{
5676 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5677 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5678 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
5679 		.subdevice    = 0xf436,
5680 		.driver_data  = SAA7134_BOARD_AVERMEDIA_CARDBUS_506,
5681 	}, {
5682 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5683 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5684 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
5685 		.subdevice    = 0xf936,
5686 		.driver_data  = SAA7134_BOARD_AVERMEDIA_A16D,
5687 	}, {
5688 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5689 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5690 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
5691 		.subdevice    = 0xa836,
5692 		.driver_data  = SAA7134_BOARD_AVERMEDIA_M115,
5693 	}, {
5694 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5695 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5696 		.subvendor    = 0x185b,
5697 		.subdevice    = 0xc900,
5698 		.driver_data  = SAA7134_BOARD_VIDEOMATE_T750,
5699 	}, {
5700 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5701 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
5702 		.subvendor    = 0x1421,
5703 		.subdevice    = 0x0380,
5704 		.driver_data  = SAA7134_BOARD_ADS_INSTANT_HDTV_PCI,
5705 	}, {
5706 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5707 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5708 		.subvendor    = 0x5169,
5709 		.subdevice    = 0x1502,
5710 		.driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
5711 	}, {
5712 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5713 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5714 		.subvendor    = 0x5ace,
5715 		.subdevice    = 0x6290,
5716 		.driver_data  = SAA7134_BOARD_BEHOLD_H6,
5717 	}, {
5718 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5719 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5720 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
5721 		.subdevice    = 0xf636,
5722 		.driver_data  = SAA7134_BOARD_AVERMEDIA_M103,
5723 	}, {
5724 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5725 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5726 		.subvendor    = 0x1043,
5727 		.subdevice    = 0x4878, /* REV:1.02G */
5728 		.driver_data  = SAA7134_BOARD_ASUSTeK_TIGER_3IN1,
5729 	}, {
5730 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5731 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5732 		.subvendor    = 0x17de,
5733 		.subdevice    = 0x7128,
5734 		.driver_data  = SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG,
5735 	}, {
5736 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5737 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5738 		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
5739 		.subdevice    = 0xf31d,
5740 		.driver_data  = SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS,
5741 
5742 	}, {
5743 		/* --- boards without eeprom + subsystem ID --- */
5744 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5745 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5746 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
5747 		.subdevice    = 0,
5748 		.driver_data  = SAA7134_BOARD_NOAUTO,
5749 	},{
5750 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5751 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5752 		.subvendor    = PCI_VENDOR_ID_PHILIPS,
5753 		.subdevice    = 0,
5754 		.driver_data  = SAA7134_BOARD_NOAUTO,
5755 	},{
5756 		/* --- default catch --- */
5757 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5758 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5759 		.subvendor    = PCI_ANY_ID,
5760 		.subdevice    = PCI_ANY_ID,
5761 		.driver_data  = SAA7134_BOARD_UNKNOWN,
5762 	},{
5763 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5764 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5765 		.subvendor    = PCI_ANY_ID,
5766 		.subdevice    = PCI_ANY_ID,
5767 		.driver_data  = SAA7134_BOARD_UNKNOWN,
5768 	},{
5769 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5770 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5771 		.subvendor    = PCI_ANY_ID,
5772 		.subdevice    = PCI_ANY_ID,
5773 		.driver_data  = SAA7134_BOARD_UNKNOWN,
5774 	},{
5775 		.vendor       = PCI_VENDOR_ID_PHILIPS,
5776 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7135,
5777 		.subvendor    = PCI_ANY_ID,
5778 		.subdevice    = PCI_ANY_ID,
5779 		.driver_data  = SAA7134_BOARD_UNKNOWN,
5780 	},{
5781 		/* --- end of list --- */
5782 	}
5783 };
5784 MODULE_DEVICE_TABLE(pci, saa7134_pci_tbl);
5785 
5786 /* ----------------------------------------------------------- */
5787 /* flyvideo tweaks                                             */
5788 
5789 
board_flyvideo(struct saa7134_dev * dev)5790 static void board_flyvideo(struct saa7134_dev *dev)
5791 {
5792 	printk("%s: there are different flyvideo cards with different tuners\n"
5793 	       "%s: out there, you might have to use the tuner=<nr> insmod\n"
5794 	       "%s: option to override the default value.\n",
5795 	       dev->name, dev->name, dev->name);
5796 }
5797 
saa7134_xc2028_callback(struct saa7134_dev * dev,int command,int arg)5798 static int saa7134_xc2028_callback(struct saa7134_dev *dev,
5799 				   int command, int arg)
5800 {
5801 	switch (command) {
5802 	case XC2028_TUNER_RESET:
5803 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00000000);
5804 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00008000);
5805 		switch (dev->board) {
5806 		case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
5807 		case SAA7134_BOARD_AVERMEDIA_M103:
5808 			saa7134_set_gpio(dev, 23, 0);
5809 			msleep(10);
5810 			saa7134_set_gpio(dev, 23, 1);
5811 		break;
5812 		case SAA7134_BOARD_AVERMEDIA_A16D:
5813 			saa7134_set_gpio(dev, 21, 0);
5814 			msleep(10);
5815 			saa7134_set_gpio(dev, 21, 1);
5816 		break;
5817 		}
5818 	return 0;
5819 	}
5820 	return -EINVAL;
5821 }
5822 
5823 
saa7134_tda8290_callback(struct saa7134_dev * dev,int command,int arg)5824 static int saa7134_tda8290_callback(struct saa7134_dev *dev,
5825 				    int command, int arg)
5826 {
5827 	u8 sync_control;
5828 
5829 	switch (command) {
5830 	case 0: /* switch LNA gain through GPIO 22*/
5831 		saa7134_set_gpio(dev, 22, arg) ;
5832 		break;
5833 	case 1: /* vsync output at GPIO22. 50 / 60Hz */
5834 		saa_andorb(SAA7134_VIDEO_PORT_CTRL3, 0x80, 0x80);
5835 		saa_andorb(SAA7134_VIDEO_PORT_CTRL6, 0x0f, 0x03);
5836 		if (arg == 1)
5837 			sync_control = 11;
5838 		else
5839 			sync_control = 17;
5840 		saa_writeb(SAA7134_VGATE_START, sync_control);
5841 		saa_writeb(SAA7134_VGATE_STOP, sync_control + 1);
5842 		saa_andorb(SAA7134_MISC_VGATE_MSB, 0x03, 0x00);
5843 		break;
5844 	default:
5845 		return -EINVAL;
5846 	}
5847 
5848 	return 0;
5849 }
5850 
saa7134_tuner_callback(void * priv,int component,int command,int arg)5851 int saa7134_tuner_callback(void *priv, int component, int command, int arg)
5852 {
5853 	struct saa7134_dev *dev = priv;
5854 	if (dev != NULL) {
5855 		switch (dev->tuner_type) {
5856 		case TUNER_PHILIPS_TDA8290:
5857 			return saa7134_tda8290_callback(dev, command, arg);
5858 		case TUNER_XC2028:
5859 			return saa7134_xc2028_callback(dev, command, arg);
5860 		}
5861 	} else {
5862 		printk(KERN_ERR "saa7134: Error - device struct undefined.\n");
5863 		return -EINVAL;
5864 	}
5865 	return -EINVAL;
5866 }
5867 EXPORT_SYMBOL(saa7134_tuner_callback);
5868 
5869 /* ----------------------------------------------------------- */
5870 
hauppauge_eeprom(struct saa7134_dev * dev,u8 * eeprom_data)5871 static void hauppauge_eeprom(struct saa7134_dev *dev, u8 *eeprom_data)
5872 {
5873 	struct tveeprom tv;
5874 
5875 	tveeprom_hauppauge_analog(&dev->i2c_client, &tv, eeprom_data);
5876 
5877 	/* Make sure we support the board model */
5878 	switch (tv.model) {
5879 	case 67019: /* WinTV-HVR1110 (Retail, IR Blaster, hybrid, FM, SVid/Comp, 3.5mm audio in) */
5880 	case 67109: /* WinTV-HVR1000 (Retail, IR Receive, analog, no FM, SVid/Comp, 3.5mm audio in) */
5881 	case 67559: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
5882 	case 67569: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM) */
5883 	case 67579: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM) */
5884 	case 67589: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
5885 	case 67599: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
5886 		break;
5887 	default:
5888 		printk(KERN_WARNING "%s: warning: "
5889 		       "unknown hauppauge model #%d\n", dev->name, tv.model);
5890 		break;
5891 	}
5892 
5893 	printk(KERN_INFO "%s: hauppauge eeprom: model=%d\n",
5894 	       dev->name, tv.model);
5895 }
5896 
5897 /* ----------------------------------------------------------- */
5898 
saa7134_board_init1(struct saa7134_dev * dev)5899 int saa7134_board_init1(struct saa7134_dev *dev)
5900 {
5901 	/* Always print gpio, often manufacturers encode tuner type and other info. */
5902 	saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0);
5903 	dev->gpio_value = saa_readl(SAA7134_GPIO_GPSTATUS0 >> 2);
5904 	printk(KERN_INFO "%s: board init: gpio is %x\n", dev->name, dev->gpio_value);
5905 
5906 	switch (dev->board) {
5907 	case SAA7134_BOARD_FLYVIDEO2000:
5908 	case SAA7134_BOARD_FLYVIDEO3000:
5909 	case SAA7134_BOARD_FLYVIDEO3000_NTSC:
5910 		dev->has_remote = SAA7134_REMOTE_GPIO;
5911 		board_flyvideo(dev);
5912 		break;
5913 	case SAA7134_BOARD_FLYTVPLATINUM_MINI2:
5914 	case SAA7134_BOARD_FLYTVPLATINUM_FM:
5915 	case SAA7134_BOARD_CINERGY400:
5916 	case SAA7134_BOARD_CINERGY600:
5917 	case SAA7134_BOARD_CINERGY600_MK3:
5918 	case SAA7134_BOARD_ECS_TVP3XP:
5919 	case SAA7134_BOARD_ECS_TVP3XP_4CB5:
5920 	case SAA7134_BOARD_ECS_TVP3XP_4CB6:
5921 	case SAA7134_BOARD_MD2819:
5922 	case SAA7134_BOARD_KWORLD_VSTREAM_XPERT:
5923 	case SAA7134_BOARD_KWORLD_XPERT:
5924 	case SAA7134_BOARD_AVERMEDIA_STUDIO_305:
5925 	case SAA7134_BOARD_AVERMEDIA_305:
5926 	case SAA7134_BOARD_AVERMEDIA_STUDIO_307:
5927 	case SAA7134_BOARD_AVERMEDIA_307:
5928 	case SAA7134_BOARD_AVERMEDIA_STUDIO_507:
5929 	case SAA7134_BOARD_AVERMEDIA_GO_007_FM:
5930 	case SAA7134_BOARD_AVERMEDIA_777:
5931 	case SAA7134_BOARD_AVERMEDIA_M135A:
5932 /*      case SAA7134_BOARD_SABRENT_SBTTVFM:  */ /* not finished yet */
5933 	case SAA7134_BOARD_VIDEOMATE_TV_PVR:
5934 	case SAA7134_BOARD_VIDEOMATE_GOLD_PLUS:
5935 	case SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII:
5936 	case SAA7134_BOARD_VIDEOMATE_DVBT_300:
5937 	case SAA7134_BOARD_VIDEOMATE_DVBT_200:
5938 	case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
5939 	case SAA7134_BOARD_VIDEOMATE_T750:
5940 	case SAA7134_BOARD_MANLI_MTV001:
5941 	case SAA7134_BOARD_MANLI_MTV002:
5942 	case SAA7134_BOARD_BEHOLD_409FM:
5943 	case SAA7134_BOARD_AVACSSMARTTV:
5944 	case SAA7134_BOARD_GOTVIEW_7135:
5945 	case SAA7134_BOARD_KWORLD_TERMINATOR:
5946 	case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS:
5947 	case SAA7134_BOARD_FLYDVBT_LR301:
5948 	case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
5949 	case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
5950        case SAA7134_BOARD_ASUSTeK_P7131_ANALOG:
5951 	case SAA7134_BOARD_FLYDVBTDUO:
5952 	case SAA7134_BOARD_PROTEUS_2309:
5953 	case SAA7134_BOARD_AVERMEDIA_A16AR:
5954 	case SAA7134_BOARD_ENCORE_ENLTV:
5955 	case SAA7134_BOARD_ENCORE_ENLTV_FM:
5956 	case SAA7134_BOARD_ENCORE_ENLTV_FM53:
5957 	case SAA7134_BOARD_10MOONSTVMASTER3:
5958 	case SAA7134_BOARD_BEHOLD_401:
5959 	case SAA7134_BOARD_BEHOLD_403:
5960 	case SAA7134_BOARD_BEHOLD_403FM:
5961 	case SAA7134_BOARD_BEHOLD_405:
5962 	case SAA7134_BOARD_BEHOLD_405FM:
5963 	case SAA7134_BOARD_BEHOLD_407:
5964 	case SAA7134_BOARD_BEHOLD_407FM:
5965 	case SAA7134_BOARD_BEHOLD_409:
5966 	case SAA7134_BOARD_BEHOLD_505FM:
5967 	case SAA7134_BOARD_BEHOLD_507_9FM:
5968 	case SAA7134_BOARD_GENIUS_TVGO_A11MCE:
5969 	case SAA7134_BOARD_REAL_ANGEL_220:
5970 	case SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG:
5971 	case SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS:
5972 		dev->has_remote = SAA7134_REMOTE_GPIO;
5973 		break;
5974 	case SAA7134_BOARD_FLYDVBS_LR300:
5975 		saa_writeb(SAA7134_GPIO_GPMODE3, 0x80);
5976 		saa_writeb(SAA7134_GPIO_GPSTATUS2, 0x40);
5977 		dev->has_remote = SAA7134_REMOTE_GPIO;
5978 		break;
5979 	case SAA7134_BOARD_MD5044:
5980 		printk("%s: seems there are two different versions of the MD5044\n"
5981 		       "%s: (with the same ID) out there.  If sound doesn't work for\n"
5982 		       "%s: you try the audio_clock_override=0x200000 insmod option.\n",
5983 		       dev->name,dev->name,dev->name);
5984 		break;
5985 	case SAA7134_BOARD_CINERGY400_CARDBUS:
5986 		/* power-up tuner chip */
5987 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00040000, 0x00040000);
5988 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000000);
5989 		break;
5990 	case SAA7134_BOARD_PINNACLE_300I_DVBT_PAL:
5991 		/* this turns the remote control chip off to work around a bug in it */
5992 		saa_writeb(SAA7134_GPIO_GPMODE1, 0x80);
5993 		saa_writeb(SAA7134_GPIO_GPSTATUS1, 0x80);
5994 		break;
5995 	case SAA7134_BOARD_MONSTERTV_MOBILE:
5996 		/* power-up tuner chip */
5997 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00040000, 0x00040000);
5998 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000004);
5999 		break;
6000 	case SAA7134_BOARD_FLYDVBT_DUO_CARDBUS:
6001 		/* turn the fan on */
6002 		saa_writeb(SAA7134_GPIO_GPMODE3, 0x08);
6003 		saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06);
6004 		break;
6005 	case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
6006 	case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
6007 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x08000000, 0x08000000);
6008 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08000000, 0x00000000);
6009 		break;
6010 	case SAA7134_BOARD_AVERMEDIA_CARDBUS:
6011 	case SAA7134_BOARD_AVERMEDIA_M115:
6012 		/* power-down tuner chip */
6013 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0xffffffff, 0);
6014 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0);
6015 		msleep(10);
6016 		/* power-up tuner chip */
6017 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0xffffffff, 0xffffffff);
6018 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff);
6019 		msleep(10);
6020 		break;
6021 	case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
6022 	case SAA7134_BOARD_AVERMEDIA_M103:
6023 		saa7134_set_gpio(dev, 23, 0);
6024 		msleep(10);
6025 		saa7134_set_gpio(dev, 23, 1);
6026 		break;
6027 	case SAA7134_BOARD_AVERMEDIA_A16D:
6028 		saa7134_set_gpio(dev, 21, 0);
6029 		msleep(10);
6030 		saa7134_set_gpio(dev, 21, 1);
6031 		msleep(1);
6032 		dev->has_remote = SAA7134_REMOTE_GPIO;
6033 		break;
6034 	case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
6035 		/* power-down tuner chip */
6036 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x000A8004, 0x000A8004);
6037 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x000A8004, 0);
6038 		msleep(10);
6039 		/* power-up tuner chip */
6040 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x000A8004, 0x000A8004);
6041 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x000A8004, 0x000A8004);
6042 		msleep(10);
6043 		/* remote via GPIO */
6044 		dev->has_remote = SAA7134_REMOTE_GPIO;
6045 		break;
6046 	case SAA7134_BOARD_RTD_VFG7350:
6047 
6048 		/*
6049 		 * Make sure Production Test Register at offset 0x1D1 is cleared
6050 		 * to take chip out of test mode.  Clearing bit 4 (TST_EN_AOUT)
6051 		 * prevents pin 105 from remaining low; keeping pin 105 low
6052 		 * continually resets the SAA6752 chip.
6053 		 */
6054 
6055 		saa_writeb (SAA7134_PRODUCTION_TEST_MODE, 0x00);
6056 		break;
6057 	/* i2c remotes */
6058 	case SAA7134_BOARD_PINNACLE_PCTV_110i:
6059 	case SAA7134_BOARD_PINNACLE_PCTV_310i:
6060 	case SAA7134_BOARD_UPMOST_PURPLE_TV:
6061 	case SAA7134_BOARD_MSI_TVATANYWHERE_PLUS:
6062 	case SAA7134_BOARD_HAUPPAUGE_HVR1110:
6063 	case SAA7134_BOARD_BEHOLD_607_9FM:
6064 	case SAA7134_BOARD_BEHOLD_M6:
6065 	case SAA7134_BOARD_BEHOLD_M63:
6066 	case SAA7134_BOARD_BEHOLD_M6_EXTRA:
6067 	case SAA7134_BOARD_BEHOLD_H6:
6068 		dev->has_remote = SAA7134_REMOTE_I2C;
6069 		break;
6070 	case SAA7134_BOARD_AVERMEDIA_A169_B:
6071 		printk("%s: %s: dual saa713x broadcast decoders\n"
6072 		       "%s: Sorry, none of the inputs to this chip are supported yet.\n"
6073 		       "%s: Dual decoder functionality is disabled for now, use the other chip.\n",
6074 		       dev->name,card(dev).name,dev->name,dev->name);
6075 		break;
6076 	case SAA7134_BOARD_AVERMEDIA_M102:
6077 		/* enable tuner */
6078 	       dev->has_remote = SAA7134_REMOTE_GPIO;
6079 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x8c040007, 0x8c040007);
6080 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0c0007cd, 0x0c0007cd);
6081 		break;
6082 	case SAA7134_BOARD_AVERMEDIA_A700_PRO:
6083 	case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
6084 		/* write windows gpio values */
6085 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x80040100, 0x80040100);
6086 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x80040100, 0x00040100);
6087 		printk("%s: %s: hybrid analog/dvb card\n"
6088 		       "%s: Sorry, only analog s-video and composite input "
6089 		       "are supported for now.\n",
6090 			dev->name, card(dev).name, dev->name);
6091 		break;
6092 	}
6093 	return 0;
6094 }
6095 
saa7134_tuner_setup(struct saa7134_dev * dev)6096 static void saa7134_tuner_setup(struct saa7134_dev *dev)
6097 {
6098 	struct tuner_setup tun_setup;
6099 	unsigned int mode_mask = T_RADIO     |
6100 				 T_ANALOG_TV |
6101 				 T_DIGITAL_TV;
6102 
6103 	memset(&tun_setup, 0, sizeof(tun_setup));
6104 	tun_setup.tuner_callback = saa7134_tuner_callback;
6105 
6106 	if (saa7134_boards[dev->board].radio_type != UNSET) {
6107 		tun_setup.type = saa7134_boards[dev->board].radio_type;
6108 		tun_setup.addr = saa7134_boards[dev->board].radio_addr;
6109 
6110 		tun_setup.mode_mask = T_RADIO;
6111 
6112 		saa7134_i2c_call_clients(dev, TUNER_SET_TYPE_ADDR, &tun_setup);
6113 		mode_mask &= ~T_RADIO;
6114 	}
6115 
6116 	if ((dev->tuner_type != TUNER_ABSENT) && (dev->tuner_type != UNSET)) {
6117 		tun_setup.type = dev->tuner_type;
6118 		tun_setup.addr = dev->tuner_addr;
6119 		tun_setup.config = saa7134_boards[dev->board].tuner_config;
6120 		tun_setup.tuner_callback = saa7134_tuner_callback;
6121 
6122 		tun_setup.mode_mask = mode_mask;
6123 
6124 		saa7134_i2c_call_clients(dev, TUNER_SET_TYPE_ADDR, &tun_setup);
6125 	}
6126 
6127 	if (dev->tda9887_conf) {
6128 		struct v4l2_priv_tun_config tda9887_cfg;
6129 
6130 		tda9887_cfg.tuner = TUNER_TDA9887;
6131 		tda9887_cfg.priv = &dev->tda9887_conf;
6132 
6133 		saa7134_i2c_call_clients(dev, TUNER_SET_CONFIG,
6134 					 &tda9887_cfg);
6135 	}
6136 
6137 	if (dev->tuner_type == TUNER_XC2028) {
6138 		struct v4l2_priv_tun_config  xc2028_cfg;
6139 		struct xc2028_ctrl           ctl;
6140 
6141 		memset(&xc2028_cfg, 0, sizeof(xc2028_cfg));
6142 		memset(&ctl, 0, sizeof(ctl));
6143 
6144 		ctl.fname   = XC2028_DEFAULT_FIRMWARE;
6145 		ctl.max_len = 64;
6146 
6147 		switch (dev->board) {
6148 		case SAA7134_BOARD_AVERMEDIA_A16D:
6149 		case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
6150 		case SAA7134_BOARD_AVERMEDIA_M103:
6151 			ctl.demod = XC3028_FE_ZARLINK456;
6152 			break;
6153 		default:
6154 			ctl.demod = XC3028_FE_OREN538;
6155 			ctl.mts = 1;
6156 		}
6157 
6158 		xc2028_cfg.tuner = TUNER_XC2028;
6159 		xc2028_cfg.priv  = &ctl;
6160 
6161 		saa7134_i2c_call_clients(dev, TUNER_SET_CONFIG, &xc2028_cfg);
6162 	}
6163 }
6164 
6165 /* stuff which needs working i2c */
saa7134_board_init2(struct saa7134_dev * dev)6166 int saa7134_board_init2(struct saa7134_dev *dev)
6167 {
6168 	unsigned char buf;
6169 	int board;
6170 
6171 	switch (dev->board) {
6172 	case SAA7134_BOARD_BMK_MPEX_NOTUNER:
6173 	case SAA7134_BOARD_BMK_MPEX_TUNER:
6174 		dev->i2c_client.addr = 0x60;
6175 		board = (i2c_master_recv(&dev->i2c_client, &buf, 0) < 0)
6176 			? SAA7134_BOARD_BMK_MPEX_NOTUNER
6177 			: SAA7134_BOARD_BMK_MPEX_TUNER;
6178 		if (board == dev->board)
6179 			break;
6180 		dev->board = board;
6181 		printk("%s: board type fixup: %s\n", dev->name,
6182 		saa7134_boards[dev->board].name);
6183 		dev->tuner_type = saa7134_boards[dev->board].tuner_type;
6184 
6185 		break;
6186 	case SAA7134_BOARD_MD7134:
6187 	{
6188 		u8 subaddr;
6189 		u8 data[3];
6190 		int ret, tuner_t;
6191 
6192 		struct i2c_msg msg[] = {{.addr=0x50, .flags=0, .buf=&subaddr, .len = 1},
6193 					{.addr=0x50, .flags=I2C_M_RD, .buf=data, .len = 3}};
6194 		subaddr= 0x14;
6195 		tuner_t = 0;
6196 		ret = i2c_transfer(&dev->i2c_adap, msg, 2);
6197 		if (ret != 2) {
6198 			printk(KERN_ERR "EEPROM read failure\n");
6199 		} else if ((data[0] != 0) && (data[0] != 0xff)) {
6200 			/* old config structure */
6201 			subaddr = data[0] + 2;
6202 			msg[1].len = 2;
6203 			i2c_transfer(&dev->i2c_adap, msg, 2);
6204 			tuner_t = (data[0] << 8) + data[1];
6205 			switch (tuner_t){
6206 			case 0x0103:
6207 				dev->tuner_type = TUNER_PHILIPS_PAL;
6208 				break;
6209 			case 0x010C:
6210 				dev->tuner_type = TUNER_PHILIPS_FM1216ME_MK3;
6211 				break;
6212 			default:
6213 				printk(KERN_ERR "%s Cant determine tuner type %x from EEPROM\n", dev->name, tuner_t);
6214 			}
6215 		} else if ((data[1] != 0) && (data[1] != 0xff)) {
6216 			/* new config structure */
6217 			subaddr = data[1] + 1;
6218 			msg[1].len = 1;
6219 			i2c_transfer(&dev->i2c_adap, msg, 2);
6220 			subaddr = data[0] + 1;
6221 			msg[1].len = 2;
6222 			i2c_transfer(&dev->i2c_adap, msg, 2);
6223 			tuner_t = (data[1] << 8) + data[0];
6224 			switch (tuner_t) {
6225 			case 0x0005:
6226 				dev->tuner_type = TUNER_PHILIPS_FM1216ME_MK3;
6227 				break;
6228 			case 0x001d:
6229 				dev->tuner_type = TUNER_PHILIPS_FMD1216ME_MK3;
6230 					printk(KERN_INFO "%s Board has DVB-T\n", dev->name);
6231 				break;
6232 			default:
6233 				printk(KERN_ERR "%s Cant determine tuner type %x from EEPROM\n", dev->name, tuner_t);
6234 			}
6235 		} else {
6236 			printk(KERN_ERR "%s unexpected config structure\n", dev->name);
6237 		}
6238 
6239 		printk(KERN_INFO "%s Tuner type is %d\n", dev->name, dev->tuner_type);
6240 		break;
6241 	}
6242 	case SAA7134_BOARD_PHILIPS_EUROPA:
6243 		if (dev->autodetected && (dev->eedata[0x41] == 0x1c)) {
6244 			/* Reconfigure board as Snake reference design */
6245 			dev->board = SAA7134_BOARD_PHILIPS_SNAKE;
6246 			dev->tuner_type = saa7134_boards[dev->board].tuner_type;
6247 			printk(KERN_INFO "%s: Reconfigured board as %s\n",
6248 				dev->name, saa7134_boards[dev->board].name);
6249 			break;
6250 		}
6251 	case SAA7134_BOARD_VIDEOMATE_DVBT_300:
6252 	case SAA7134_BOARD_ASUS_EUROPA2_HYBRID:
6253 	{
6254 
6255 		/* The Philips EUROPA based hybrid boards have the tuner connected through
6256 		 * the channel decoder. We have to make it transparent to find it
6257 		 */
6258 		u8 data[] = { 0x07, 0x02};
6259 		struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
6260 		i2c_transfer(&dev->i2c_adap, &msg, 1);
6261 
6262 		break;
6263 	}
6264 	case SAA7134_BOARD_PHILIPS_TIGER:
6265 	case SAA7134_BOARD_PHILIPS_TIGER_S:
6266 	{
6267 		u8 data[] = { 0x3c, 0x33, 0x60};
6268 		struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
6269 		if (dev->autodetected && (dev->eedata[0x49] == 0x50)) {
6270 			dev->board = SAA7134_BOARD_PHILIPS_TIGER_S;
6271 			printk(KERN_INFO "%s: Reconfigured board as %s\n",
6272 				dev->name, saa7134_boards[dev->board].name);
6273 		}
6274 		if (dev->board == SAA7134_BOARD_PHILIPS_TIGER_S) {
6275 			dev->tuner_type = TUNER_PHILIPS_TDA8290;
6276 
6277 			saa7134_tuner_setup(dev);
6278 
6279 			data[2] = 0x68;
6280 			i2c_transfer(&dev->i2c_adap, &msg, 1);
6281 
6282 			/* Tuner setup is handled before I2C transfer.
6283 			   Due to that, there's no need to do it later
6284 			 */
6285 			return 0;
6286 		}
6287 		i2c_transfer(&dev->i2c_adap, &msg, 1);
6288 		break;
6289 	}
6290        case SAA7134_BOARD_ASUSTeK_TVFM7135:
6291        /* The card below is detected as card=53, but is different */
6292 	       if (dev->autodetected && (dev->eedata[0x27] == 0x03)) {
6293 		       dev->board = SAA7134_BOARD_ASUSTeK_P7131_ANALOG;
6294 		       printk(KERN_INFO "%s: P7131 analog only, using "
6295 						       "entry of %s\n",
6296 		       dev->name, saa7134_boards[dev->board].name);
6297 	       }
6298 	       break;
6299 	case SAA7134_BOARD_HAUPPAUGE_HVR1110:
6300 		hauppauge_eeprom(dev, dev->eedata+0x80);
6301 		/* break intentionally omitted */
6302 	case SAA7134_BOARD_PINNACLE_PCTV_310i:
6303 	case SAA7134_BOARD_KWORLD_DVBT_210:
6304 	case SAA7134_BOARD_TEVION_DVBT_220RF:
6305 	case SAA7134_BOARD_ASUSTeK_TIGER:
6306 	case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
6307 	case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
6308 	case SAA7134_BOARD_MEDION_MD8800_QUADRO:
6309 	case SAA7134_BOARD_AVERMEDIA_SUPER_007:
6310 	case SAA7134_BOARD_TWINHAN_DTV_DVB_3056:
6311 	case SAA7134_BOARD_CREATIX_CTX953:
6312 	{
6313 		/* this is a hybrid board, initialize to analog mode
6314 		 * and configure firmware eeprom address
6315 		 */
6316 		u8 data[] = { 0x3c, 0x33, 0x60};
6317 		struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
6318 		i2c_transfer(&dev->i2c_adap, &msg, 1);
6319 		break;
6320 	}
6321 	case SAA7134_BOARD_ASUSTeK_TIGER_3IN1:
6322 	{
6323 		u8 data[] = { 0x3c, 0x33, 0x60};
6324 		struct i2c_msg msg = {.addr = 0x0b, .flags = 0, .buf = data,
6325 							.len = sizeof(data)};
6326 		i2c_transfer(&dev->i2c_adap, &msg, 1);
6327 		break;
6328 	}
6329 	case SAA7134_BOARD_FLYDVB_TRIO:
6330 	{
6331 		u8 data[] = { 0x3c, 0x33, 0x62};
6332 		struct i2c_msg msg = {.addr=0x09, .flags=0, .buf=data, .len = sizeof(data)};
6333 		i2c_transfer(&dev->i2c_adap, &msg, 1);
6334 		break;
6335 	}
6336 	case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
6337 	case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
6338 	{
6339 		/* initialize analog mode  */
6340 		u8 data[] = { 0x3c, 0x33, 0x6a};
6341 		struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
6342 		i2c_transfer(&dev->i2c_adap, &msg, 1);
6343 		break;
6344 	}
6345 	case SAA7134_BOARD_CINERGY_HT_PCMCIA:
6346 	case SAA7134_BOARD_CINERGY_HT_PCI:
6347 	{
6348 		/* initialize analog mode */
6349 		u8 data[] = { 0x3c, 0x33, 0x68};
6350 		struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
6351 		i2c_transfer(&dev->i2c_adap, &msg, 1);
6352 		break;
6353 	}
6354 	case SAA7134_BOARD_ADS_INSTANT_HDTV_PCI:
6355 	case SAA7134_BOARD_KWORLD_ATSC110:
6356 	{
6357 		/* enable tuner */
6358 		int i;
6359 		static const u8 buffer [] = { 0x10, 0x12, 0x13, 0x04, 0x16,
6360 					      0x00, 0x14, 0x04, 0x17, 0x00 };
6361 		dev->i2c_client.addr = 0x0a;
6362 		for (i = 0; i < 5; i++)
6363 			if (2 != i2c_master_send(&dev->i2c_client,
6364 						 &buffer[i*2], 2))
6365 				printk(KERN_WARNING
6366 				       "%s: Unable to enable tuner(%i).\n",
6367 				       dev->name, i);
6368 		break;
6369 	}
6370 	case SAA7134_BOARD_VIDEOMATE_DVBT_200:
6371 	case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
6372 		/* The T200 and the T200A share the same pci id.  Consequently,
6373 		 * we are going to query eeprom to try to find out which one we
6374 		 * are actually looking at. */
6375 
6376 		/* Don't do this if the board was specifically selected with an
6377 		 * insmod option or if we have the default configuration T200*/
6378 		if(!dev->autodetected || (dev->eedata[0x41] == 0xd0))
6379 			break;
6380 		if(dev->eedata[0x41] == 0x02) {
6381 			/* Reconfigure board  as T200A */
6382 			dev->board = SAA7134_BOARD_VIDEOMATE_DVBT_200A;
6383 			dev->tuner_type   = saa7134_boards[dev->board].tuner_type;
6384 			dev->tda9887_conf = saa7134_boards[dev->board].tda9887_conf;
6385 			printk(KERN_INFO "%s: Reconfigured board as %s\n",
6386 				dev->name, saa7134_boards[dev->board].name);
6387 		} else {
6388 			printk(KERN_WARNING "%s: Unexpected tuner type info: %x in eeprom\n",
6389 				dev->name, dev->eedata[0x41]);
6390 			break;
6391 		}
6392 		break;
6393 	case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
6394 	{
6395 		struct v4l2_priv_tun_config tea5767_cfg;
6396 		struct tea5767_ctrl ctl;
6397 
6398 		dev->i2c_client.addr = 0xC0;
6399 		/* set TEA5767(analog FM) defines */
6400 		memset(&ctl, 0, sizeof(ctl));
6401 		ctl.xtal_freq = TEA5767_HIGH_LO_13MHz;
6402 		tea5767_cfg.tuner = TUNER_TEA5767;
6403 		tea5767_cfg.priv  = &ctl;
6404 		saa7134_i2c_call_clients(dev, TUNER_SET_CONFIG, &tea5767_cfg);
6405 		break;
6406 	}
6407 	} /* switch() */
6408 
6409 	saa7134_tuner_setup(dev);
6410 
6411 	return 0;
6412 }
6413