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