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