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