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