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