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