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