V4L/DVB (7388): saa7134: fix radio entry for xc2028/3028 boards
[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                 /* This card has two saa7134 chips on it,
2915                    but only one of them is currently working.
2916                    The programming for the primary decoder is
2917                    in SAA7134_BOARD_MD7134 */
2918                 .name           = "Medion 7134 Bridge #2",
2919                 .audio_clock    = 0x00187de7,
2920                 .radio_type     = UNSET,
2921                 .tuner_addr     = ADDR_UNSET,
2922                 .radio_addr     = ADDR_UNSET,
2923         },
2924         [SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS] = {
2925                 .name           = "LifeView FlyDVB-T Hybrid Cardbus/MSI TV @nywhere A/D NB",
2926                 .audio_clock    = 0x00200000,
2927                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2928                 .radio_type     = UNSET,
2929                 .tuner_addr     = ADDR_UNSET,
2930                 .radio_addr     = ADDR_UNSET,
2931                 .mpeg           = SAA7134_MPEG_DVB,
2932                 .gpiomask       = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
2933                 .inputs         = {{
2934                         .name = name_tv,
2935                         .vmux = 1,
2936                         .amux = TV,
2937                         .gpio = 0x200000,       /* GPIO21=High for TV input */
2938                         .tv   = 1,
2939                 },{
2940                         .name = name_svideo,    /* S-Video signal on S-Video input */
2941                         .vmux = 8,
2942                         .amux = LINE2,
2943                 },{
2944                         .name = name_comp1,     /* Composite signal on S-Video input */
2945                         .vmux = 0,
2946                         .amux = LINE2,
2947                 },{
2948                         .name = name_comp2,     /* Composite input */
2949                         .vmux = 3,
2950                         .amux = LINE2,
2951                 }},
2952                 .radio = {
2953                         .name = name_radio,
2954                         .amux = TV,
2955                         .gpio = 0x000000,       /* GPIO21=Low for FM radio antenna */
2956                 },
2957         },
2958         [SAA7134_BOARD_FLYVIDEO3000_NTSC] = {
2959                 /* "Zac Bowling" <zac@zacbowling.com> */
2960                 .name           = "LifeView FlyVIDEO3000 (NTSC)",
2961                 .audio_clock    = 0x00200000,
2962                 .tuner_type     = TUNER_PHILIPS_NTSC,
2963                 .radio_type     = UNSET,
2964                 .tuner_addr     = ADDR_UNSET,
2965                 .radio_addr     = ADDR_UNSET,
2966
2967                 .gpiomask       = 0xe000,
2968                 .inputs         = {{
2969                         .name = name_tv,
2970                         .vmux = 1,
2971                         .amux = TV,
2972                         .gpio = 0x8000,
2973                         .tv   = 1,
2974                 },{
2975                         .name = name_tv_mono,
2976                         .vmux = 1,
2977                         .amux = LINE2,
2978                         .gpio = 0x0000,
2979                         .tv   = 1,
2980                 },{
2981                         .name = name_comp1,
2982                         .vmux = 0,
2983                         .amux = LINE2,
2984                         .gpio = 0x4000,
2985                 },{
2986                         .name = name_comp2,
2987                         .vmux = 3,
2988                         .amux = LINE2,
2989                         .gpio = 0x4000,
2990                 },{
2991                         .name = name_svideo,
2992                         .vmux = 8,
2993                         .amux = LINE2,
2994                         .gpio = 0x4000,
2995                 }},
2996                 .radio = {
2997                         .name = name_radio,
2998                         .amux = LINE2,
2999                         .gpio = 0x2000,
3000                 },
3001                         .mute = {
3002                         .name = name_mute,
3003                         .amux = TV,
3004                         .gpio = 0x8000,
3005                 },
3006         },
3007         [SAA7134_BOARD_MEDION_MD8800_QUADRO] = {
3008                 .name           = "Medion Md8800 Quadro",
3009                 .audio_clock    = 0x00187de7,
3010                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3011                 .radio_type     = UNSET,
3012                 .tuner_addr     = ADDR_UNSET,
3013                 .radio_addr     = ADDR_UNSET,
3014                 .mpeg           = SAA7134_MPEG_DVB,
3015                 .inputs = {{
3016                         .name   = name_tv,
3017                         .vmux   = 1,
3018                         .amux   = TV,
3019                         .tv     = 1,
3020                 },{
3021                         .name   = name_comp1,
3022                         .vmux   = 0,
3023                         .amux   = LINE1,
3024                 },{
3025                         .name   = name_svideo,
3026                         .vmux   = 8,
3027                         .amux   = LINE1,
3028                 }},
3029         },
3030         [SAA7134_BOARD_FLYDVBS_LR300] = {
3031                 /* LifeView FlyDVB-s */
3032                 /* Igor M. Liplianin <liplianin@tut.by> */
3033                 .name           = "LifeView FlyDVB-S /Acorp TV134DS",
3034                 .audio_clock    = 0x00200000,
3035                 .tuner_type     = TUNER_ABSENT,
3036                 .radio_type     = UNSET,
3037                 .tuner_addr     = ADDR_UNSET,
3038                 .radio_addr     = ADDR_UNSET,
3039                 .mpeg           = SAA7134_MPEG_DVB,
3040                 .inputs         = {{
3041                         .name = name_comp1,     /* Composite input */
3042                         .vmux = 3,
3043                         .amux = LINE1,
3044                 },{
3045                         .name = name_svideo,    /* S-Video signal on S-Video input */
3046                         .vmux = 8,
3047                         .amux = LINE1,
3048                 }},
3049         },
3050         [SAA7134_BOARD_PROTEUS_2309] = {
3051                 .name           = "Proteus Pro 2309",
3052                 .audio_clock    = 0x00187de7,
3053                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3054                 .radio_type     = UNSET,
3055                 .tuner_addr     = ADDR_UNSET,
3056                 .radio_addr     = ADDR_UNSET,
3057                 .tda9887_conf   = TDA9887_PRESENT,
3058                 .inputs         = {{
3059                         .name = name_tv,
3060                         .vmux = 1,
3061                         .amux = LINE2,
3062                         .tv   = 1,
3063                 },{
3064                         .name = name_comp1,
3065                         .vmux = 0,
3066                         .amux = LINE2,
3067                 },{
3068                         .name = name_comp2,
3069                         .vmux = 3,
3070                         .amux = LINE2,
3071                 },{
3072                         .name = name_svideo,
3073                         .vmux = 8,
3074                         .amux = LINE2,
3075                 }},
3076                 .mute = {
3077                         .name = name_mute,
3078                         .amux = LINE1,
3079                 },
3080         },
3081         [SAA7134_BOARD_AVERMEDIA_A16AR] = {
3082                 /* Petr Baudis <pasky@ucw.cz> */
3083                 .name           = "AVerMedia TV Hybrid A16AR",
3084                 .audio_clock    = 0x187de7,
3085                 .tuner_type     = TUNER_PHILIPS_TD1316, /* untested */
3086                 .radio_type     = TUNER_TEA5767, /* untested */
3087                 .tuner_addr     = ADDR_UNSET,
3088                 .radio_addr     = ADDR_UNSET,
3089                 .tda9887_conf   = TDA9887_PRESENT,
3090                 .mpeg           = SAA7134_MPEG_DVB,
3091                 .inputs         = {{
3092                         .name = name_tv,
3093                         .vmux = 1,
3094                         .amux = TV,
3095                         .tv   = 1,
3096                 },{
3097                         .name = name_comp1,
3098                         .vmux = 3,
3099                         .amux = LINE2,
3100                 },{
3101                         .name = name_svideo,
3102                         .vmux = 8,
3103                         .amux = LINE1,
3104                 }},
3105                 .radio = {
3106                         .name = name_radio,
3107                         .amux = LINE1,
3108                 },
3109         },
3110         [SAA7134_BOARD_ASUS_EUROPA2_HYBRID] = {
3111                 .name           = "Asus Europa2 OEM",
3112                 .audio_clock    = 0x00187de7,
3113                 .tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
3114                 .radio_type     = UNSET,
3115                 .tuner_addr     = ADDR_UNSET,
3116                 .radio_addr     = ADDR_UNSET,
3117                 .tda9887_conf   = TDA9887_PRESENT| TDA9887_PORT1_ACTIVE | TDA9887_PORT2_ACTIVE,
3118                 .mpeg           = SAA7134_MPEG_DVB,
3119                 .inputs = {{
3120                         .name   = name_tv,
3121                         .vmux   = 3,
3122                         .amux   = TV,
3123                         .tv     = 1,
3124                 },{
3125                         .name   = name_comp1,
3126                         .vmux   = 4,
3127                         .amux   = LINE2,
3128                 },{
3129                         .name   = name_svideo,
3130                         .vmux   = 8,
3131                         .amux   = LINE2,
3132                 }},
3133                 .radio = {
3134                         .name   = name_radio,
3135                         .amux   = LINE1,
3136                 },
3137         },
3138         [SAA7134_BOARD_PINNACLE_PCTV_310i] = {
3139                 .name           = "Pinnacle PCTV 310i",
3140                 .audio_clock    = 0x00187de7,
3141                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3142                 .radio_type     = UNSET,
3143                 .tuner_addr     = ADDR_UNSET,
3144                 .radio_addr     = ADDR_UNSET,
3145                 .tuner_config   = 1,
3146                 .mpeg           = SAA7134_MPEG_DVB,
3147                 .gpiomask       = 0x000200000,
3148                 .inputs         = {{
3149                         .name = name_tv,
3150                         .vmux = 4,
3151                         .amux = TV,
3152                         .tv   = 1,
3153                 },{
3154                         .name = name_comp1,
3155                         .vmux = 1,
3156                         .amux = LINE2,
3157                 },{
3158                         .name = name_comp2,
3159                         .vmux = 0,
3160                         .amux = LINE2,
3161                 },{
3162                         .name = name_svideo,
3163                         .vmux = 8,
3164                         .amux = LINE2,
3165                 }},
3166                 .radio = {
3167                         .name = name_radio,
3168                         .amux   = TV,
3169                         .gpio   = 0x0200000,
3170                 },
3171         },
3172         [SAA7134_BOARD_AVERMEDIA_STUDIO_507] = {
3173                 /* Mikhail Fedotov <mo_fedotov@mail.ru> */
3174                 .name           = "Avermedia AVerTV Studio 507",
3175                 .audio_clock    = 0x00187de7,
3176                 .tuner_type     = TUNER_PHILIPS_FM1256_IH3,
3177                 .radio_type     = UNSET,
3178                 .tuner_addr     = ADDR_UNSET,
3179                 .radio_addr     = ADDR_UNSET,
3180                 .tda9887_conf   = TDA9887_PRESENT,
3181                 .gpiomask       = 0x03,
3182                 .inputs         = {{
3183                         .name = name_tv,
3184                         .vmux = 1,
3185                         .amux = TV,
3186                         .tv   = 1,
3187                         .gpio = 0x00,
3188                 },{
3189                         .name = name_comp1,
3190                         .vmux = 0,
3191                         .amux = LINE2,
3192                         .gpio = 0x00,
3193                 },{
3194                         .name = name_comp2,
3195                         .vmux = 3,
3196                         .amux = LINE2,
3197                         .gpio = 0x00,
3198                 },{
3199                         .name = name_svideo,
3200                         .vmux = 8,
3201                         .amux = LINE2,
3202                         .gpio = 0x00,
3203                 }},
3204                 .radio = {
3205                         .name = name_radio,
3206                         .amux = LINE2,
3207                         .gpio = 0x01,
3208                 },
3209                 .mute  = {
3210                         .name = name_mute,
3211                         .amux = LINE1,
3212                         .gpio = 0x00,
3213                 },
3214         },
3215         [SAA7134_BOARD_VIDEOMATE_DVBT_200A] = {
3216                 /* Francis Barber <fedora@barber-family.id.au> */
3217                 .name           = "Compro Videomate DVB-T200A",
3218                 .audio_clock    = 0x00187de7,
3219                 .tuner_type     = TUNER_ABSENT,
3220                 .radio_type     = UNSET,
3221                 .tuner_addr     = ADDR_UNSET,
3222                 .radio_addr     = ADDR_UNSET,
3223                 .tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
3224                 .mpeg           = SAA7134_MPEG_DVB,
3225                 .inputs = {{
3226                         .name   = name_tv,
3227                         .vmux   = 3,
3228                         .amux   = TV,
3229                         .tv     = 1,
3230                 },{
3231                         .name   = name_comp1,
3232                         .vmux   = 1,
3233                         .amux   = LINE2,
3234                 },{
3235                         .name   = name_svideo,
3236                         .vmux   = 8,
3237                         .amux   = LINE2,
3238                 }},
3239         },
3240         [SAA7134_BOARD_HAUPPAUGE_HVR1110] = {
3241                 /* Thomas Genty <tomlohave@gmail.com> */
3242                 .name           = "Hauppauge WinTV-HVR1110 DVB-T/Hybrid",
3243                 .audio_clock    = 0x00187de7,
3244                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3245                 .radio_type     = UNSET,
3246                 .tuner_addr     = ADDR_UNSET,
3247                 .radio_addr     = ADDR_UNSET,
3248                 .tuner_config   = 1,
3249                 .mpeg           = SAA7134_MPEG_DVB,
3250                 .inputs         = {{
3251                         .name = name_tv,
3252                         .vmux = 1,
3253                         .amux = TV,
3254                         .tv   = 1,
3255                 },{
3256                         .name   = name_comp1,
3257                         .vmux   = 3,
3258                         .amux   = LINE2, /* FIXME: audio doesn't work on svideo/composite */
3259                 },{
3260                         .name   = name_svideo,
3261                         .vmux   = 8,
3262                         .amux   = LINE2, /* FIXME: audio doesn't work on svideo/composite */
3263                 }},
3264                 .radio = {
3265                         .name = name_radio,
3266                         .amux   = TV,
3267                 },
3268         },
3269         [SAA7134_BOARD_CINERGY_HT_PCMCIA] = {
3270                 .name           = "Terratec Cinergy HT PCMCIA",
3271                 .audio_clock    = 0x00187de7,
3272                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3273                 .radio_type     = UNSET,
3274                 .tuner_addr     = ADDR_UNSET,
3275                 .radio_addr     = ADDR_UNSET,
3276                 .mpeg           = SAA7134_MPEG_DVB,
3277                 .inputs = {{
3278                         .name   = name_tv,
3279                         .vmux   = 1,
3280                         .amux   = TV,
3281                         .tv     = 1,
3282                 },{
3283                         .name   = name_comp1,
3284                         .vmux   = 0,
3285                         .amux   = LINE1,
3286                 },{
3287                         .name   = name_svideo,
3288                         .vmux   = 6,
3289                         .amux   = LINE1,
3290                 }},
3291         },
3292         [SAA7134_BOARD_ENCORE_ENLTV] = {
3293         /* Steven Walter <stevenrwalter@gmail.com>
3294            Juan Pablo Sormani <sorman@gmail.com> */
3295                 .name           = "Encore ENLTV",
3296                 .audio_clock    = 0x00200000,
3297                 .tuner_type     = TUNER_TNF_5335MF,
3298                 .radio_type     = UNSET,
3299                 .tuner_addr     = ADDR_UNSET,
3300                 .radio_addr     = ADDR_UNSET,
3301                 .inputs         = {{
3302                         .name = name_tv,
3303                         .vmux = 1,
3304                         .amux = 3,
3305                         .tv   = 1,
3306                 },{
3307                         .name = name_tv_mono,
3308                         .vmux = 7,
3309                         .amux = 4,
3310                         .tv   = 1,
3311                 },{
3312                         .name = name_comp1,
3313                         .vmux = 3,
3314                         .amux = 2,
3315                 },{
3316                         .name = name_svideo,
3317                         .vmux = 0,
3318                         .amux = 2,
3319                 }},
3320                 .radio = {
3321                         .name = name_radio,
3322                         .amux = LINE2,
3323 /*                      .gpio = 0x00300001,*/
3324                         .gpio = 0x20000,
3325
3326                 },
3327                 .mute = {
3328                         .name = name_mute,
3329                         .amux = 0,
3330                 },
3331         },
3332         [SAA7134_BOARD_ENCORE_ENLTV_FM] = {
3333   /*    Juan Pablo Sormani <sorman@gmail.com> */
3334                 .name           = "Encore ENLTV-FM",
3335                 .audio_clock    = 0x00200000,
3336                 .tuner_type     = TUNER_PHILIPS_FCV1236D,
3337                 .radio_type     = UNSET,
3338                 .tuner_addr     = ADDR_UNSET,
3339                 .radio_addr     = ADDR_UNSET,
3340                 .inputs         = {{
3341                         .name = name_tv,
3342                         .vmux = 1,
3343                         .amux = 3,
3344                         .tv   = 1,
3345                 },{
3346                         .name = name_tv_mono,
3347                         .vmux = 7,
3348                         .amux = 4,
3349                         .tv   = 1,
3350                 },{
3351                         .name = name_comp1,
3352                         .vmux = 3,
3353                         .amux = 2,
3354                 },{
3355                         .name = name_svideo,
3356                         .vmux = 0,
3357                         .amux = 2,
3358                 }},
3359                 .radio = {
3360                         .name = name_radio,
3361                         .amux = LINE2,
3362                         .gpio = 0x20000,
3363
3364                 },
3365                 .mute = {
3366                         .name = name_mute,
3367                         .amux = 0,
3368                 },
3369         },
3370         [SAA7134_BOARD_CINERGY_HT_PCI] = {
3371                 .name           = "Terratec Cinergy HT PCI",
3372                 .audio_clock    = 0x00187de7,
3373                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3374                 .radio_type     = UNSET,
3375                 .tuner_addr     = ADDR_UNSET,
3376                 .radio_addr     = ADDR_UNSET,
3377                 .mpeg           = SAA7134_MPEG_DVB,
3378                 .inputs = {{
3379                         .name   = name_tv,
3380                         .vmux   = 1,
3381                         .amux   = TV,
3382                         .tv     = 1,
3383                 },{
3384                         .name   = name_comp1,
3385                         .vmux   = 0,
3386                         .amux   = LINE1,
3387                 },{
3388                         .name   = name_svideo,
3389                         .vmux   = 6,
3390                         .amux   = LINE1,
3391                 }},
3392         },
3393         [SAA7134_BOARD_PHILIPS_TIGER_S] = {
3394                 .name           = "Philips Tiger - S Reference design",
3395                 .audio_clock    = 0x00187de7,
3396                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3397                 .radio_type     = UNSET,
3398                 .tuner_addr     = ADDR_UNSET,
3399                 .radio_addr     = ADDR_UNSET,
3400                 .tuner_config   = 2,
3401                 .mpeg           = SAA7134_MPEG_DVB,
3402                 .gpiomask       = 0x0200000,
3403                 .inputs = {{
3404                         .name   = name_tv,
3405                         .vmux   = 1,
3406                         .amux   = TV,
3407                         .tv     = 1,
3408                 },{
3409                         .name   = name_comp1,
3410                         .vmux   = 3,
3411                         .amux   = LINE1,
3412                 },{
3413                         .name   = name_svideo,
3414                         .vmux   = 8,
3415                         .amux   = LINE1,
3416                 }},
3417                 .radio = {
3418                         .name   = name_radio,
3419                         .amux   = TV,
3420                         .gpio   = 0x0200000,
3421                 },
3422         },
3423         [SAA7134_BOARD_AVERMEDIA_M102] = {
3424                 .name           = "Avermedia M102",
3425                 .audio_clock    = 0x00187de7,
3426                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3427                 .radio_type     = UNSET,
3428                 .tuner_addr     = ADDR_UNSET,
3429                 .radio_addr     = ADDR_UNSET,
3430                 .gpiomask       = 1<<21,
3431                 .inputs         = {{
3432                         .name = name_tv,
3433                         .vmux = 1,
3434                         .amux = TV,
3435                         .tv   = 1,
3436                 },{
3437                         .name = name_comp1,
3438                         .vmux = 0,
3439                         .amux = LINE2,
3440                 },{
3441                         .name = name_svideo,
3442                         .vmux = 6,
3443                         .amux = LINE2,
3444                 }},
3445         },
3446         [SAA7134_BOARD_ASUS_P7131_4871] = {
3447                 .name           = "ASUS P7131 4871",
3448                 .audio_clock    = 0x00187de7,
3449                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3450                 .radio_type     = UNSET,
3451                 .tuner_addr     = ADDR_UNSET,
3452                 .radio_addr     = ADDR_UNSET,
3453                 .tuner_config   = 2,
3454                 .mpeg           = SAA7134_MPEG_DVB,
3455                 .gpiomask       = 0x0200000,
3456                 .inputs = {{
3457                         .name   = name_tv,
3458                         .vmux   = 1,
3459                         .amux   = TV,
3460                         .tv     = 1,
3461                         .gpio   = 0x0200000,
3462                 }},
3463         },
3464         [SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA] = {
3465                 .name           = "ASUSTeK P7131 Hybrid",
3466                 .audio_clock    = 0x00187de7,
3467                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3468                 .radio_type     = UNSET,
3469                 .tuner_addr     = ADDR_UNSET,
3470                 .radio_addr     = ADDR_UNSET,
3471                 .tuner_config   = 2,
3472                 .gpiomask       = 1 << 21,
3473                 .mpeg           = SAA7134_MPEG_DVB,
3474                 .inputs         = {{
3475                         .name = name_tv,
3476                         .vmux = 1,
3477                         .amux = TV,
3478                         .tv   = 1,
3479                         .gpio = 0x0000000,
3480                 },{
3481                         .name = name_comp1,
3482                         .vmux = 3,
3483                         .amux = LINE2,
3484                         .gpio = 0x0200000,
3485                 },{
3486                         .name = name_comp2,
3487                         .vmux = 0,
3488                         .amux = LINE2,
3489                         .gpio = 0x0200000,
3490                 },{
3491                         .name = name_svideo,
3492                         .vmux = 8,
3493                         .amux = LINE2,
3494                         .gpio = 0x0200000,
3495                 }},
3496                 .radio = {
3497                         .name = name_radio,
3498                         .amux = TV,
3499                         .gpio = 0x0200000,
3500                 },
3501         },
3502         [SAA7134_BOARD_SABRENT_TV_PCB05] = {
3503                 .name           = "Sabrent PCMCIA TV-PCB05",
3504                 .audio_clock    = 0x00187de7,
3505                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3506                 .radio_type     = UNSET,
3507                 .tuner_addr     = ADDR_UNSET,
3508                 .radio_addr     = ADDR_UNSET,
3509                 .inputs         = {{
3510                         .name = name_tv,
3511                         .vmux = 1,
3512                         .amux = TV,
3513                         .tv   = 1,
3514                 },{
3515                         .name = name_comp1,
3516                         .vmux = 3,
3517                         .amux = LINE1,
3518                 },{
3519                         .name = name_comp2,
3520                         .vmux = 0,
3521                         .amux = LINE1,
3522                 },{
3523                         .name = name_svideo,
3524                         .vmux = 8,
3525                         .amux = LINE1,
3526                 }},
3527                 .mute = {
3528                         .name = name_mute,
3529                         .amux = TV,
3530                 },
3531         },
3532         [SAA7134_BOARD_10MOONSTVMASTER3] = {
3533                 /* Tony Wan <aloha_cn@hotmail.com> */
3534                 .name           = "10MOONS TM300 TV Card",
3535                 .audio_clock    = 0x00200000,
3536                 .tuner_type     = TUNER_LG_PAL_NEW_TAPC,
3537                 .radio_type     = UNSET,
3538                 .tuner_addr     = ADDR_UNSET,
3539                 .radio_addr     = ADDR_UNSET,
3540                 .gpiomask       = 0x7000,
3541                 .inputs         = {{
3542                         .name = name_tv,
3543                         .vmux = 1,
3544                         .amux = LINE2,
3545                         .gpio = 0x0000,
3546                         .tv   = 1,
3547                 },{
3548                         .name = name_comp1,
3549                         .vmux = 3,
3550                         .amux = LINE1,
3551                         .gpio = 0x2000,
3552                 },{
3553                         .name = name_svideo,
3554                         .vmux = 8,
3555                         .amux = LINE1,
3556                         .gpio = 0x2000,
3557                 }},
3558                 .mute = {
3559                         .name = name_mute,
3560                         .amux = LINE2,
3561                         .gpio = 0x3000,
3562                 },
3563         },
3564         [SAA7134_BOARD_AVERMEDIA_SUPER_007] = {
3565                 .name           = "Avermedia Super 007",
3566                 .audio_clock    = 0x00187de7,
3567                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3568                 .radio_type     = UNSET,
3569                 .tuner_addr     = ADDR_UNSET,
3570                 .radio_addr     = ADDR_UNSET,
3571                 .tuner_config   = 0,
3572                 .mpeg           = SAA7134_MPEG_DVB,
3573                 .inputs = {{
3574                         .name   = name_tv, /* FIXME: analog tv untested */
3575                         .vmux   = 1,
3576                         .amux   = TV,
3577                         .tv     = 1,
3578                 }},
3579         },
3580         [SAA7134_BOARD_BEHOLD_401] = {
3581                 .name           = "Beholder BeholdTV 401",
3582                 .audio_clock    = 0x00187de7,
3583                 .tuner_type     = TUNER_PHILIPS_FQ1216ME,
3584                 .radio_type     = UNSET,
3585                 .tuner_addr     = ADDR_UNSET,
3586                 .radio_addr     = ADDR_UNSET,
3587                 .inputs         = {{
3588                         .name = name_svideo,
3589                         .vmux = 8,
3590                         .amux = LINE1,
3591                 },{
3592                         .name = name_comp1,
3593                         .vmux = 1,
3594                         .amux = LINE1,
3595                 },{
3596                         .name = name_tv,
3597                         .vmux = 3,
3598                         .amux = LINE2,
3599                         .tv   = 1,
3600                 }},
3601                 .mute = {
3602                         .name = name_mute,
3603                         .amux = LINE1,
3604                 },
3605         },
3606         [SAA7134_BOARD_BEHOLD_403] = {
3607                 .name           = "Beholder BeholdTV 403",
3608                 .audio_clock    = 0x00187de7,
3609                 .tuner_type     = TUNER_PHILIPS_FQ1216ME,
3610                 .radio_type     = UNSET,
3611                 .tuner_addr     = ADDR_UNSET,
3612                 .radio_addr     = ADDR_UNSET,
3613                 .inputs         = {{
3614                         .name = name_svideo,
3615                         .vmux = 8,
3616                         .amux = LINE1,
3617                 },{
3618                         .name   = name_comp1,
3619                         .vmux   = 1,
3620                         .amux   = LINE1,
3621                 },{
3622                         .name = name_tv,
3623                         .vmux = 3,
3624                         .amux = LINE2,
3625                         .tv   = 1,
3626                 }},
3627         },
3628         [SAA7134_BOARD_BEHOLD_403FM] = {
3629                 .name           = "Beholder BeholdTV 403 FM",
3630                 .audio_clock    = 0x00187de7,
3631                 .tuner_type     = TUNER_PHILIPS_FQ1216ME,
3632                 .radio_type     = UNSET,
3633                 .tuner_addr     = ADDR_UNSET,
3634                 .radio_addr     = ADDR_UNSET,
3635                 .inputs         = {{
3636                         .name = name_svideo,
3637                         .vmux = 8,
3638                         .amux = LINE1,
3639                 },{
3640                         .name   = name_comp1,
3641                         .vmux   = 1,
3642                         .amux   = LINE1,
3643                 },{
3644                         .name = name_tv,
3645                         .vmux = 3,
3646                         .amux = LINE2,
3647                         .tv   = 1,
3648                 }},
3649                 .radio = {
3650                         .name = name_radio,
3651                         .amux = LINE2,
3652                 },
3653         },
3654         [SAA7134_BOARD_BEHOLD_405] = {
3655                 .name           = "Beholder BeholdTV 405",
3656                 .audio_clock    = 0x00187de7,
3657                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3658                 .radio_type     = UNSET,
3659                 .tuner_addr     = ADDR_UNSET,
3660                 .radio_addr     = ADDR_UNSET,
3661                 .tda9887_conf   = TDA9887_PRESENT,
3662                 .inputs         = {{
3663                         .name = name_svideo,
3664                         .vmux = 8,
3665                         .amux = LINE1,
3666                 },{
3667                         .name = name_comp1,
3668                         .vmux = 3,
3669                         .amux = LINE1,
3670                 },{
3671                         .name = name_tv,
3672                         .vmux = 3,
3673                         .amux = LINE2,
3674                         .tv   = 1,
3675                 }},
3676         },
3677         [SAA7134_BOARD_BEHOLD_405FM] = {
3678                 /* Sergey <skiv@orel.ru> */
3679                 .name           = "Beholder BeholdTV 405 FM",
3680                 .audio_clock    = 0x00187de7,
3681                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3682                 .radio_type     = UNSET,
3683                 .tuner_addr     = ADDR_UNSET,
3684                 .radio_addr     = ADDR_UNSET,
3685                 .tda9887_conf   = TDA9887_PRESENT,
3686                 .inputs         = {{
3687                         .name = name_svideo,
3688                         .vmux = 8,
3689                         .amux = LINE1,
3690                 },{
3691                         .name = name_comp1,
3692                         .vmux = 3,
3693                         .amux = LINE1,
3694                 },{
3695                         .name = name_tv,
3696                         .vmux = 3,
3697                         .amux = LINE2,
3698                         .tv   = 1,
3699                 }},
3700                 .radio = {
3701                         .name = name_radio,
3702                         .amux = LINE2,
3703                 },
3704         },
3705         [SAA7134_BOARD_BEHOLD_407] = {
3706                 .name           = "Beholder BeholdTV 407",
3707                 .audio_clock    = 0x00187de7,
3708                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3709                 .radio_type     = UNSET,
3710                 .tuner_addr     = ADDR_UNSET,
3711                 .radio_addr     = ADDR_UNSET,
3712                 .tda9887_conf   = TDA9887_PRESENT,
3713                 .gpiomask = 0xc0c000,
3714                 .inputs = {{
3715                         .name = name_svideo,
3716                         .vmux = 8,
3717                         .amux = LINE1,
3718                         .gpio = 0xc0c000,
3719                 },{
3720                         .name = name_comp1,
3721                         .vmux = 1,
3722                         .amux = LINE1,
3723                         .gpio = 0xc0c000,
3724                 },{
3725                         .name = name_tv,
3726                         .vmux = 3,
3727                         .amux = TV,
3728                         .tv = 1,
3729                         .gpio = 0xc0c000,
3730                 }},
3731         },
3732         [SAA7134_BOARD_BEHOLD_407FM] = {
3733                 .name           = "Beholder BeholdTV 407 FM",
3734                 .audio_clock    = 0x00187de7,
3735                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3736                 .radio_type     = UNSET,
3737                 .tuner_addr     = ADDR_UNSET,
3738                 .radio_addr     = ADDR_UNSET,
3739                 .tda9887_conf   = TDA9887_PRESENT,
3740                 .gpiomask = 0xc0c000,
3741                 .inputs = {{
3742                         .name = name_svideo,
3743                         .vmux = 8,
3744                         .amux = LINE1,
3745                         .gpio = 0xc0c000,
3746                 },{
3747                         .name = name_comp1,
3748                         .vmux = 1,
3749                         .amux = LINE1,
3750                         .gpio = 0xc0c000,
3751                 },{
3752                         .name = name_tv,
3753                         .vmux = 3,
3754                         .amux = TV,
3755                         .tv = 1,
3756                         .gpio = 0xc0c000,
3757                 }},
3758                 .radio = {
3759                         .name = name_radio,
3760                         .amux = LINE2,
3761                         .gpio = 0xc0c000,
3762                 },
3763         },
3764         [SAA7134_BOARD_BEHOLD_409] = {
3765                 .name           = "Beholder BeholdTV 409",
3766                 .audio_clock    = 0x00187de7,
3767                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3768                 .radio_type     = UNSET,
3769                 .tuner_addr     = ADDR_UNSET,
3770                 .radio_addr     = ADDR_UNSET,
3771                 .tda9887_conf   = TDA9887_PRESENT,
3772                 .inputs         = {{
3773                         .name = name_tv,
3774                         .vmux = 3,
3775                         .amux = TV,
3776                         .tv   = 1,
3777                 },{
3778                         .name = name_comp1,
3779                         .vmux = 1,
3780                         .amux = LINE1,
3781                 },{
3782                         .name = name_svideo,
3783                         .vmux = 8,
3784                         .amux = LINE1,
3785                 }},
3786         },
3787         [SAA7134_BOARD_BEHOLD_505FM] = {
3788                 .name           = "Beholder BeholdTV 505 FM/RDS",
3789                 .audio_clock    = 0x00200000,
3790                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3791                 .radio_type     = UNSET,
3792                 .tuner_addr     = ADDR_UNSET,
3793                 .radio_addr     = ADDR_UNSET,
3794                 .tda9887_conf   = TDA9887_PRESENT,
3795                 .inputs         = {{
3796                         .name = name_tv,
3797                         .vmux = 3,
3798                         .amux = LINE2,
3799                         .tv   = 1,
3800                 },{
3801                         .name = name_comp1,
3802                         .vmux = 1,
3803                         .amux = LINE1,
3804                 },{
3805                         .name = name_svideo,
3806                         .vmux = 8,
3807                         .amux = LINE1,
3808                 }},
3809                 .mute = {
3810                         .name = name_mute,
3811                         .amux = LINE1,
3812                 },
3813                 .radio = {
3814                         .name = name_radio,
3815                         .amux = LINE2,
3816                 },
3817         },
3818         [SAA7134_BOARD_BEHOLD_507_9FM] = {
3819                 .name           = "Beholder BeholdTV 507 FM/RDS / BeholdTV 509 FM",
3820                 .audio_clock    = 0x00187de7,
3821                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3822                 .radio_type     = UNSET,
3823                 .tuner_addr     = ADDR_UNSET,
3824                 .radio_addr     = ADDR_UNSET,
3825                 .tda9887_conf   = TDA9887_PRESENT,
3826                 .inputs         = {{
3827                         .name = name_tv,
3828                         .vmux = 3,
3829                         .amux = TV,
3830                         .tv   = 1,
3831                 },{
3832                         .name = name_comp1,
3833                         .vmux = 1,
3834                         .amux = LINE1,
3835                 },{
3836                         .name = name_svideo,
3837                         .vmux = 8,
3838                         .amux = LINE1,
3839                 }},
3840                         .radio = {
3841                         .name = name_radio,
3842                         .amux = LINE2,
3843                 },
3844         },
3845         [SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM] = {
3846                 .name           = "Beholder BeholdTV Columbus TVFM",
3847                 .audio_clock    = 0x00187de7,
3848                 .tuner_type     = TUNER_ALPS_TSBE5_PAL,
3849                 .radio_type     = UNSET,
3850                 .tuner_addr     = ADDR_UNSET,
3851                 .radio_addr     = ADDR_UNSET,
3852                 .tda9887_conf   = TDA9887_PRESENT,
3853                 .inputs         = {{
3854                         .name = name_tv,
3855                         .vmux = 3,
3856                         .amux = TV,
3857                         .tv   = 1,
3858                 },{
3859                         .name = name_comp1,
3860                         .vmux = 1,
3861                         .amux = LINE1,
3862                 },{
3863                         .name = name_svideo,
3864                         .vmux = 8,
3865                         .amux = LINE1,
3866                 }},
3867                 .radio = {
3868                         .name = name_radio,
3869                         .amux = LINE2,
3870                 },
3871         },
3872         [SAA7134_BOARD_BEHOLD_607_9FM] = {
3873                 /* Andrey Melnikoff <temnota@kmv.ru> */
3874                 .name           = "Beholder BeholdTV 607 / BeholdTV 609",
3875                 .audio_clock    = 0x00187de7,
3876                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3877                 .radio_type     = UNSET,
3878                 .tuner_addr     = ADDR_UNSET,
3879                 .radio_addr     = ADDR_UNSET,
3880                 .tda9887_conf   = TDA9887_PRESENT,
3881                 .inputs         = {{
3882                         .name = name_tv,
3883                         .vmux = 3,
3884                         .amux = TV,
3885                         .tv   = 1,
3886                 },{
3887                         .name = name_comp1,
3888                         .vmux = 1,
3889                         .amux = LINE1,
3890                 },{
3891                         .name = name_svideo,
3892                         .vmux = 8,
3893                         .amux = LINE1,
3894                 }},
3895                 .radio = {
3896                         .name = name_radio,
3897                         .amux = LINE2,
3898                 },
3899         },
3900         [SAA7134_BOARD_BEHOLD_M6] = {
3901                 /* Igor Kuznetsov <igk@igk.ru> */
3902                 /* Andrey Melnikoff <temnota@kmv.ru> */
3903                 .name           = "Beholder BeholdTV M6 / BeholdTV M6 Extra",
3904                 .audio_clock    = 0x00187de7,
3905                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3906                 .radio_type     = UNSET,
3907                 .tuner_addr     = ADDR_UNSET,
3908                 .radio_addr     = ADDR_UNSET,
3909                 .tda9887_conf   = TDA9887_PRESENT,
3910                 .inputs         = {{
3911                         .name = name_tv,
3912                         .vmux = 3,
3913                         .amux = TV,
3914                         .tv   = 1,
3915                 },{
3916                         .name = name_comp1,
3917                         .vmux = 1,
3918                         .amux = LINE1,
3919                 },{
3920                         .name = name_svideo,
3921                         .vmux = 8,
3922                         .amux = LINE1,
3923                 }},
3924                 .radio = {
3925                         .name = name_radio,
3926                         .amux = LINE2,
3927                 },
3928                 .mpeg  = SAA7134_MPEG_EMPRESS,
3929         },
3930         [SAA7134_BOARD_TWINHAN_DTV_DVB_3056] = {
3931                 .name           = "Twinhan Hybrid DTV-DVB 3056 PCI",
3932                 .audio_clock    = 0x00187de7,
3933                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3934                 .radio_type     = UNSET,
3935                 .tuner_addr     = ADDR_UNSET,
3936                 .radio_addr     = ADDR_UNSET,
3937                 .tuner_config   = 2,
3938                 .mpeg           = SAA7134_MPEG_DVB,
3939                 .gpiomask       = 0x0200000,
3940                 .inputs = {{
3941                         .name   = name_tv,
3942                         .vmux   = 1,
3943                         .amux   = TV,
3944                         .tv     = 1,
3945                 }, {
3946                         .name   = name_comp1,
3947                         .vmux   = 3,
3948                         .amux   = LINE1,
3949                 }, {
3950                         .name   = name_svideo,
3951                         .vmux   = 8,            /* untested */
3952                         .amux   = LINE1,
3953                 } },
3954                 .radio = {
3955                         .name   = name_radio,
3956                         .amux   = TV,
3957                         .gpio   = 0x0200000,
3958                 },
3959         },
3960         [SAA7134_BOARD_GENIUS_TVGO_A11MCE] = {
3961                 /* Adrian Pardini <pardo.bsso@gmail.com> */
3962                 .name           = "Genius TVGO AM11MCE",
3963                 .audio_clock    = 0x00200000,
3964                 .tuner_type     = TUNER_TNF_5335MF,
3965                 .radio_type     = UNSET,
3966                 .tuner_addr     = ADDR_UNSET,
3967                 .radio_addr     = ADDR_UNSET,
3968                 .gpiomask       = 0xf000,
3969                 .inputs         = {{
3970                         .name = name_tv_mono,
3971                         .vmux = 1,
3972                         .amux = LINE2,
3973                         .gpio = 0x0000,
3974                         .tv   = 1,
3975                 }, {
3976                         .name = name_comp1,
3977                         .vmux = 3,
3978                         .amux = LINE1,
3979                         .gpio = 0x2000,
3980                         .tv = 1
3981                 }, {
3982                         .name = name_svideo,
3983                         .vmux = 8,
3984                         .amux = LINE1,
3985                         .gpio = 0x2000,
3986         } },
3987                 .radio = {
3988                         .name = name_radio,
3989                         .amux = LINE2,
3990                         .gpio = 0x1000,
3991                 },
3992                 .mute = {
3993                         .name = name_mute,
3994                         .amux = LINE2,
3995                         .gpio = 0x6000,
3996                 },
3997         },
3998         [SAA7134_BOARD_PHILIPS_SNAKE] = {
3999                 .name           = "NXP Snake DVB-S reference design",
4000                 .audio_clock    = 0x00200000,
4001                 .tuner_type     = TUNER_ABSENT,
4002                 .radio_type     = UNSET,
4003                 .tuner_addr     = ADDR_UNSET,
4004                 .radio_addr     = ADDR_UNSET,
4005                 .mpeg           = SAA7134_MPEG_DVB,
4006                 .inputs = {{
4007                         .name   = name_comp1,
4008                         .vmux   = 3,
4009                         .amux   = LINE1,
4010                 }, {
4011                         .name   = name_svideo,
4012                         .vmux   = 8,
4013                         .amux   = LINE1,
4014                 } },
4015         },
4016         [SAA7134_BOARD_CREATIX_CTX953] = {
4017                 .name         = "Medion/Creatix CTX953 Hybrid",
4018                 .audio_clock  = 0x00187de7,
4019                 .tuner_type   = TUNER_PHILIPS_TDA8290,
4020                 .radio_type   = UNSET,
4021                 .tuner_addr   = ADDR_UNSET,
4022                 .radio_addr   = ADDR_UNSET,
4023                 .tuner_config = 0,
4024                 .mpeg         = SAA7134_MPEG_DVB,
4025                 .inputs       = {{
4026                         .name = name_tv,
4027                         .vmux = 1,
4028                         .amux = TV,
4029                         .tv   = 1,
4030                 }, {
4031                         .name = name_comp1,
4032                         .vmux = 0,
4033                         .amux = LINE1,
4034                 }, {
4035                         .name = name_svideo,
4036                         .vmux = 8,
4037                         .amux = LINE1,
4038                 } },
4039         },
4040         [SAA7134_BOARD_MSI_TVANYWHERE_AD11] = {
4041                 .name           = "MSI TV@nywhere A/D v1.1",
4042                 .audio_clock    = 0x00187de7,
4043                 .tuner_type     = TUNER_PHILIPS_TDA8290,
4044                 .radio_type     = UNSET,
4045                 .tuner_addr     = ADDR_UNSET,
4046                 .radio_addr     = ADDR_UNSET,
4047                 .tuner_config   = 2,
4048                 .mpeg           = SAA7134_MPEG_DVB,
4049                 .gpiomask       = 0x0200000,
4050                 .inputs = { {
4051                         .name   = name_tv,
4052                         .vmux   = 1,
4053                         .amux   = TV,
4054                         .tv     = 1,
4055                 }, {
4056                         .name   = name_comp1,
4057                         .vmux   = 3,
4058                         .amux   = LINE1,
4059                 }, {
4060                         .name   = name_svideo,
4061                         .vmux   = 8,
4062                         .amux   = LINE1,
4063                 } },
4064                 .radio = {
4065                         .name   = name_radio,
4066                         .amux   = TV,
4067                         .gpio   = 0x0200000,
4068                 },
4069         },
4070         [SAA7134_BOARD_AVERMEDIA_CARDBUS_506] = {
4071                 .name           = "AVerMedia Cardbus TV/Radio (E506R)",
4072                 .audio_clock    = 0x187de7,
4073                 .tuner_type     = TUNER_XC2028,
4074                 .radio_type     = UNSET,
4075                 .tuner_addr     = ADDR_UNSET,
4076                 .radio_addr     = ADDR_UNSET,
4077                  /*
4078                     TODO:
4079                  .mpeg           = SAA7134_MPEG_DVB,
4080                  */
4081
4082                  .inputs         = {{
4083                          .name = name_tv,
4084                          .vmux = 1,
4085                          .amux = TV,
4086                          .tv   = 1,
4087                  }, {
4088                          .name = name_comp1,
4089                          .vmux = 3,
4090                          .amux = LINE2,
4091                  }, {
4092                          .name = name_svideo,
4093                          .vmux = 8,
4094                          .amux = LINE1,
4095                  } },
4096                  .radio = {
4097                          .name = name_radio,
4098                          .amux = TV,
4099                  },
4100         },
4101         [SAA7134_BOARD_AVERMEDIA_A16D] = {
4102                 .name           = "AVerMedia Hybrid TV/Radio (A16D)",
4103                 .audio_clock    = 0x187de7,
4104                 .tuner_type     = TUNER_XC2028,
4105                 .radio_type     = UNSET,
4106                 .tuner_addr     = ADDR_UNSET,
4107                 .radio_addr     = ADDR_UNSET,
4108                 .inputs         = {{
4109                         .name = name_tv,
4110                         .vmux = 1,
4111                         .amux = TV,
4112                         .tv   = 1,
4113                 }, {
4114                         .name = name_svideo,
4115                         .vmux = 8,
4116                         .amux = LINE1,
4117                 } },
4118                 .radio = {
4119                         .name = name_radio,
4120                         .amux = LINE1,
4121                 },
4122         },
4123         [SAA7134_BOARD_AVERMEDIA_M115] = {
4124                 .name           = "Avermedia M115",
4125                 .audio_clock    = 0x187de7,
4126                 .tuner_type     = TUNER_XC2028,
4127                 .radio_type     = UNSET,
4128                 .tuner_addr     = ADDR_UNSET,
4129                 .radio_addr     = ADDR_UNSET,
4130                 .inputs         = {{
4131                         .name = name_tv,
4132                         .vmux = 1,
4133                         .amux = TV,
4134                         .tv   = 1,
4135                 }, {
4136                         .name = name_comp1,
4137                         .vmux = 3,
4138                         .amux = LINE1,
4139                 }, {
4140                         .name = name_svideo,
4141                         .vmux = 8,
4142                         .amux = LINE2,
4143                 } },
4144         },
4145         [SAA7134_BOARD_VIDEOMATE_T750] = {
4146                 /* John Newbigin <jn@it.swin.edu.au> */
4147                 .name           = "Compro VideoMate T750",
4148                 .audio_clock    = 0x00187de7,
4149                 .tuner_type     = TUNER_XC2028,
4150                 .radio_type     = UNSET,
4151                 .tuner_addr     = ADDR_UNSET,
4152                 .radio_addr     = ADDR_UNSET,
4153                 .mpeg           = SAA7134_MPEG_DVB,
4154                 .inputs = {{
4155                         .name   = name_tv,
4156                         .vmux   = 3,
4157                         .amux   = TV,
4158                         .tv     = 1,
4159                 }, {
4160                         .name   = name_comp1,
4161                         .vmux   = 1,
4162                         .amux   = LINE2,
4163                 }, {
4164                         .name   = name_svideo,
4165                         .vmux   = 8,
4166                         .amux   = LINE2,
4167                 } },
4168                 .radio = {
4169                         .name = name_radio,
4170                         .amux = TV,
4171                 }
4172         }
4173 };
4174
4175 const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
4176
4177 /* ------------------------------------------------------------------ */
4178 /* PCI ids + subsystem IDs                                            */
4179
4180 struct pci_device_id saa7134_pci_tbl[] = {
4181         {
4182                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4183                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4184                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4185                 .subdevice    = 0x2001,
4186                 .driver_data  = SAA7134_BOARD_PROTEUS_PRO,
4187         },{
4188                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4189                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4190                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4191                 .subdevice    = 0x2001,
4192                 .driver_data  = SAA7134_BOARD_PROTEUS_PRO,
4193         },{
4194                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4195                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4196                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4197                 .subdevice    = 0x6752,
4198                 .driver_data  = SAA7134_BOARD_EMPRESS,
4199         },{
4200                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4201                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4202                 .subvendor    = 0x1131,
4203                 .subdevice    = 0x4e85,
4204                 .driver_data  = SAA7134_BOARD_MONSTERTV,
4205         },{
4206                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4207                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4208                 .subvendor    = 0x153b,
4209                 .subdevice    = 0x1142,
4210                 .driver_data  = SAA7134_BOARD_CINERGY400,
4211         },{
4212                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4213                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4214                 .subvendor    = 0x153b,
4215                 .subdevice    = 0x1143,
4216                 .driver_data  = SAA7134_BOARD_CINERGY600,
4217         },{
4218                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4219                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4220                 .subvendor    = 0x153b,
4221                 .subdevice    = 0x1158,
4222                 .driver_data  = SAA7134_BOARD_CINERGY600_MK3,
4223         },{
4224                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4225                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4226                 .subvendor    = 0x153b,
4227                 .subdevice    = 0x1162,
4228                 .driver_data  = SAA7134_BOARD_CINERGY400_CARDBUS,
4229         },{
4230                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4231                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4232                 .subvendor    = 0x5169,
4233                 .subdevice    = 0x0138,
4234                 .driver_data  = SAA7134_BOARD_FLYVIDEO3000_NTSC,
4235         },{
4236                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4237                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4238                 .subvendor    = 0x5168,
4239                 .subdevice    = 0x0138,
4240                 .driver_data  = SAA7134_BOARD_FLYVIDEO3000,
4241         },{
4242                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4243                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4244                 .subvendor    = 0x4e42,                         /* "Typhoon PCI Capture TV Card" Art.No. 50673 */
4245                 .subdevice    = 0x0138,
4246                 .driver_data  = SAA7134_BOARD_FLYVIDEO3000,
4247         },{
4248                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4249                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4250                 .subvendor    = 0x5168,
4251                 .subdevice    = 0x0138,
4252                 .driver_data  = SAA7134_BOARD_FLYVIDEO2000,
4253         },{
4254                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4255                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4256                 .subvendor    = 0x4e42,         /* Typhoon */
4257                 .subdevice    = 0x0138,         /* LifeView FlyTV Prime30 OEM */
4258                 .driver_data  = SAA7134_BOARD_FLYVIDEO2000,
4259         },{
4260                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4261                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4262                 .subvendor    = 0x5168,
4263                 .subdevice    = 0x0212, /* minipci, LR212 */
4264                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
4265         },{
4266                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4267                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4268                 .subvendor    = 0x14c0,
4269                 .subdevice    = 0x1212, /* minipci, LR1212 */
4270                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI2,
4271         },{
4272                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4273                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4274                 .subvendor    = 0x4e42,
4275                 .subdevice    = 0x0212, /* OEM minipci, LR212 */
4276                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
4277         },{
4278                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4279                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4280                 .subvendor    = 0x5168, /* Animation Technologies (LifeView) */
4281                 .subdevice    = 0x0214, /* Standard PCI, LR214 Rev E and earlier (SAA7135) */
4282                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM,
4283         },{
4284                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4285                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4286                 .subvendor    = 0x5168, /* Animation Technologies (LifeView) */
4287                 .subdevice    = 0x5214, /* Standard PCI, LR214 Rev F onwards (SAA7131) */
4288                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM,
4289         },{
4290                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4291                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4292                 .subvendor    = 0x1489, /* KYE */
4293                 .subdevice    = 0x0214, /* Genius VideoWonder ProTV */
4294                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM, /* is an LR214WF actually */
4295         },{
4296                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4297                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4298                 .subvendor    = 0x16be,
4299                 .subdevice    = 0x0003,
4300                 .driver_data  = SAA7134_BOARD_MD7134,
4301         },{
4302                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4303                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4304                 .subvendor    = 0x1048,
4305                 .subdevice    = 0x226b,
4306                 .driver_data  = SAA7134_BOARD_ELSA,
4307         },{
4308                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4309                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4310                 .subvendor    = 0x1048,
4311                 .subdevice    = 0x226a,
4312                 .driver_data  = SAA7134_BOARD_ELSA_500TV,
4313         },{
4314                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4315                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4316                 .subvendor    = 0x1048,
4317                 .subdevice    = 0x226c,
4318                 .driver_data  = SAA7134_BOARD_ELSA_700TV,
4319         },{
4320                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4321                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4322                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
4323                 .subdevice    = 0x4842,
4324                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
4325         },{
4326                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4327                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4328                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
4329                 .subdevice    = 0x4845,
4330                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7135,
4331         },{
4332                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4333                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4334                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
4335                 .subdevice    = 0x4830,
4336                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
4337         },{
4338                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4339                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4340                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
4341                 .subdevice    = 0x4843,
4342                 .driver_data  = SAA7134_BOARD_ASUSTEK_TVFM7133,
4343         },{
4344                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4345                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4346                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
4347                 .subdevice    = 0x4840,
4348                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
4349         },{
4350                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4351                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4352                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4353                 .subdevice    = 0xfe01,
4354                 .driver_data  = SAA7134_BOARD_TVSTATION_RDS,
4355         },{
4356                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4357                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4358                 .subvendor    = 0x1894,
4359                 .subdevice    = 0xfe01,
4360                 .driver_data  = SAA7134_BOARD_TVSTATION_RDS,
4361         },{
4362                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4363                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4364                 .subvendor    = 0x1894,
4365                 .subdevice    = 0xa006,
4366                 .driver_data  = SAA7134_BOARD_TVSTATION_DVR,
4367         },{
4368                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4369                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4370                 .subvendor    = 0x1131,
4371                 .subdevice    = 0x7133,
4372                 .driver_data  = SAA7134_BOARD_VA1000POWER,
4373         },{
4374                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4375                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4376                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4377                 .subdevice    = 0x2001,
4378                 .driver_data  = SAA7134_BOARD_10MOONSTVMASTER,
4379         },{
4380                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4381                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4382                 .subvendor    = 0x185b,
4383                 .subdevice    = 0xc100,
4384                 .driver_data  = SAA7134_BOARD_VIDEOMATE_TV,
4385         },{
4386                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4387                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4388                 .subvendor    = 0x185b,
4389                 .subdevice    = 0xc100,
4390                 .driver_data  = SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS,
4391         },{
4392                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4393                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4394                 .subvendor    = PCI_VENDOR_ID_MATROX,
4395                 .subdevice    = 0x48d0,
4396                 .driver_data  = SAA7134_BOARD_CRONOS_PLUS,
4397         },{
4398                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4399                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4400                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4401                 .subdevice    = 0xa70b,
4402                 .driver_data  = SAA7134_BOARD_MD2819,
4403         },{
4404                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4405                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4406                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4407                 .subdevice    = 0x2115,
4408                 .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_305,
4409         },{
4410                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4411                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4412                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4413                 .subdevice    = 0x2108,
4414                 .driver_data  = SAA7134_BOARD_AVERMEDIA_305,
4415         },{
4416                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4417                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4418                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4419                 .subdevice    = 0x10ff,
4420                 .driver_data  = SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER,
4421         },{
4422                 /* AVerMedia CardBus */
4423                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4424                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4425                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4426                 .subdevice    = 0xd6ee,
4427                 .driver_data  = SAA7134_BOARD_AVERMEDIA_CARDBUS,
4428         },{
4429                 /* TransGear 3000TV */
4430                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4431                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4432                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4433                 .subdevice    = 0x050c,
4434                 .driver_data  = SAA7134_BOARD_TG3000TV,
4435         },{
4436                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4437                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4438                 .subvendor    = 0x11bd,
4439                 .subdevice    = 0x002b,
4440                 .driver_data  = SAA7134_BOARD_PINNACLE_PCTV_STEREO,
4441         },{
4442                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4443                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4444                 .subvendor    = 0x11bd,
4445                 .subdevice    = 0x002d,
4446                 .driver_data  = SAA7134_BOARD_PINNACLE_300I_DVBT_PAL,
4447         },{
4448                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4449                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4450                 .subvendor    = 0x1019,
4451                 .subdevice    = 0x4cb4,
4452                 .driver_data  = SAA7134_BOARD_ECS_TVP3XP,
4453         },{
4454                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4455                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4456                 .subvendor    = 0x1019,
4457                 .subdevice    = 0x4cb5,
4458                 .driver_data  = SAA7134_BOARD_ECS_TVP3XP_4CB5,
4459         },{
4460                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4461                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4462                 .subvendor    = 0x1019,
4463                 .subdevice    = 0x4cb6,
4464                 .driver_data  = SAA7134_BOARD_ECS_TVP3XP_4CB6,
4465         },{
4466                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4467                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4468                 .subvendor    = 0x12ab,
4469                 .subdevice    = 0x0800,
4470                 .driver_data  = SAA7134_BOARD_UPMOST_PURPLE_TV,
4471         },{
4472                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4473                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4474                 .subvendor    = 0x153b,
4475                 .subdevice    = 0x1152,
4476                 .driver_data  = SAA7134_BOARD_CINERGY200,
4477         },{
4478                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4479                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4480                 .subvendor    = 0x185b,
4481                 .subdevice    = 0xc100,
4482                 .driver_data  = SAA7134_BOARD_VIDEOMATE_TV_PVR,
4483         },{
4484                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4485                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4486                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4487                 .subdevice    = 0x9715,
4488                 .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_307,
4489         },{
4490                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4491                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4492                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4493                 .subdevice    = 0xa70a,
4494                 .driver_data  = SAA7134_BOARD_AVERMEDIA_307,
4495         },{
4496                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4497                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4498                 .subvendor    = 0x185b,
4499                 .subdevice    = 0xc200,
4500                 .driver_data  = SAA7134_BOARD_VIDEOMATE_GOLD_PLUS,
4501         },{
4502                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4503                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4504                 .subvendor    = 0x1540,
4505                 .subdevice    = 0x9524,
4506                 .driver_data  = SAA7134_BOARD_PROVIDEO_PV952,
4507
4508         },{
4509                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4510                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4511                 .subvendor    = 0x5168,
4512                 .subdevice    = 0x0502,                /* Cardbus version */
4513                 .driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
4514         },{
4515                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4516                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4517                 .subvendor    = 0x5168,
4518                 .subdevice    = 0x0306,                /* PCI version */
4519                 .driver_data  = SAA7134_BOARD_FLYDVBTDUO,
4520         },{
4521                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4522                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4523                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4524                 .subdevice    = 0xf31f,
4525                 .driver_data  = SAA7134_BOARD_AVERMEDIA_GO_007_FM,
4526
4527         },{
4528                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4529                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4530                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4531                 .subdevice    = 0x2004,
4532                 .driver_data  = SAA7134_BOARD_PHILIPS_TOUGH,
4533         },{
4534                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4535                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4536                 .subvendor    = 0x1421,
4537                 .subdevice    = 0x0350,         /* PCI version */
4538                 .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
4539         },{
4540                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4541                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4542                 .subvendor    = 0x1421,
4543                 .subdevice    = 0x0351,         /* PCI version, new revision */
4544                 .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
4545         },{
4546                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4547                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4548                 .subvendor    = 0x1421,
4549                 .subdevice    = 0x0370,         /* cardbus version */
4550                 .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
4551         },{
4552                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4553                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4554                 .subvendor    = 0x1421,
4555                 .subdevice    = 0x1370,        /* cardbus version */
4556                 .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
4557
4558         },{
4559                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4560                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4561                 .subvendor    = 0x4e42,         /* Typhoon */
4562                 .subdevice    = 0x0502,         /* LifeView LR502 OEM */
4563                 .driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
4564         },{
4565                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4566                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4567                 .subvendor    = 0x1043,
4568                 .subdevice    = 0x0210,         /* mini pci NTSC version */
4569                 .driver_data  = SAA7134_BOARD_FLYTV_DIGIMATRIX,
4570         },{
4571                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4572                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4573                 .subvendor    = 0x1043,
4574                 .subdevice    = 0x0210,         /* mini pci PAL/SECAM version */
4575                 .driver_data  = SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV,
4576
4577         },{
4578                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4579                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4580                 .subvendor    = 0x0000, /* It shouldn't break anything, since subdevice id seems unique */
4581                 .subdevice    = 0x4091,
4582                 .driver_data  = SAA7134_BOARD_BEHOLD_409FM,
4583         },{
4584                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4585                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4586                 .subvendor    = 0x5456, /* GoTView */
4587                 .subdevice    = 0x7135,
4588                 .driver_data  = SAA7134_BOARD_GOTVIEW_7135,
4589         },{
4590                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4591                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4592                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4593                 .subdevice    = 0x2004,
4594                 .driver_data  = SAA7134_BOARD_PHILIPS_EUROPA,
4595         },{
4596                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4597                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4598                 .subvendor    = 0x185b,
4599                 .subdevice    = 0xc900,
4600                 .driver_data  = SAA7134_BOARD_VIDEOMATE_DVBT_300,
4601         },{
4602                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4603                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4604                 .subvendor    = 0x185b,
4605                 .subdevice    = 0xc901,
4606                 .driver_data  = SAA7134_BOARD_VIDEOMATE_DVBT_200,
4607         },{
4608                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4609                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4610                 .subvendor    = 0x1435,
4611                 .subdevice    = 0x7350,
4612                 .driver_data  = SAA7134_BOARD_RTD_VFG7350,
4613         },{
4614                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4615                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4616                 .subvendor    = 0x1435,
4617                 .subdevice    = 0x7330,
4618                 .driver_data  = SAA7134_BOARD_RTD_VFG7330,
4619         },{
4620                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4621                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4622                 .subvendor    = 0x1461,
4623                 .subdevice    = 0x1044,
4624                 .driver_data  = SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180,
4625         },{
4626                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4627                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4628                 .subvendor    = 0x1131,
4629                 .subdevice    = 0x4ee9,
4630                 .driver_data  = SAA7134_BOARD_MONSTERTV_MOBILE,
4631         },{
4632                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4633                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4634                 .subvendor    = 0x11bd,
4635                 .subdevice    = 0x002e,
4636                 .driver_data  = SAA7134_BOARD_PINNACLE_PCTV_110i,
4637         },{
4638                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4639                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4640                 .subvendor    = 0x1043,
4641                 .subdevice    = 0x4862,
4642                 .driver_data  = SAA7134_BOARD_ASUSTeK_P7131_DUAL,
4643         },{
4644                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4645                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4646                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4647                 .subdevice    = 0x2018,
4648                 .driver_data  = SAA7134_BOARD_PHILIPS_TIGER,
4649         },{
4650                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4651                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4652                 .subvendor    = 0x1462,
4653                 .subdevice    = 0x6231, /* tda8275a, ks003 IR */
4654                 .driver_data  = SAA7134_BOARD_MSI_TVATANYWHERE_PLUS,
4655         },{
4656                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4657                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4658                 .subvendor    = 0x1462,
4659                 .subdevice    = 0x8624, /* tda8275, ks003 IR */
4660                 .driver_data  = SAA7134_BOARD_MSI_TVATANYWHERE_PLUS,
4661         },{
4662                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4663                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4664                 .subvendor    = 0x153b,
4665                 .subdevice    = 0x1160,
4666                 .driver_data  = SAA7134_BOARD_CINERGY250PCI,
4667         },{
4668                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4669                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,  /* SAA 7131E */
4670                 .subvendor    = 0x5168,
4671                 .subdevice    = 0x0319,
4672                 .driver_data  = SAA7134_BOARD_FLYDVB_TRIO,
4673         },{
4674                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4675                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4676                 .subvendor    = 0x1461,
4677                 .subdevice    = 0x2c05,
4678                 .driver_data  = SAA7134_BOARD_AVERMEDIA_777,
4679         },{
4680                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4681                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4682                 .subvendor    = 0x5168,
4683                 .subdevice    = 0x0301,
4684                 .driver_data  = SAA7134_BOARD_FLYDVBT_LR301,
4685         },{
4686                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4687                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4688                 .subvendor    = 0x0331,
4689                 .subdevice    = 0x1421,
4690                 .driver_data  = SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331,
4691         },{
4692                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4693                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4694                 .subvendor    = 0x17de,
4695                 .subdevice    = 0x7201,
4696                 .driver_data  = SAA7134_BOARD_TEVION_DVBT_220RF,
4697         },{
4698                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4699                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4700                 .subvendor    = 0x17de,
4701                 .subdevice    = 0x7250,
4702                 .driver_data  = SAA7134_BOARD_KWORLD_DVBT_210,
4703         },{
4704                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4705                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
4706                 .subvendor    = 0x17de,
4707                 .subdevice    = 0x7350,
4708                 .driver_data  = SAA7134_BOARD_KWORLD_ATSC110,
4709         },{
4710                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4711                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
4712                 .subvendor    = 0x17de,
4713                 .subdevice    = 0x7352,
4714                 .driver_data  = SAA7134_BOARD_KWORLD_ATSC110, /* ATSC 115 */
4715         },{
4716                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4717                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4718                 .subvendor    = 0x1461,
4719                 .subdevice    = 0x7360,
4720                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B,
4721         },{
4722                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4723                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4724                 .subvendor    = 0x1461,
4725                 .subdevice    = 0x6360,
4726                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B1,
4727         },{
4728                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4729                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4730                 .subvendor    = 0x16be,
4731                 .subdevice    = 0x0005,
4732                 .driver_data  = SAA7134_BOARD_MD7134_BRIDGE_2,
4733         },{
4734                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4735                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4736                 .subvendor    = 0x5168,
4737                 .subdevice    = 0x0300,
4738                 .driver_data  = SAA7134_BOARD_FLYDVBS_LR300,
4739         },{
4740                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4741                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4742                 .subvendor    = 0x4e42,
4743                 .subdevice    = 0x0300,/* LR300 */
4744                 .driver_data  = SAA7134_BOARD_FLYDVBS_LR300,
4745         },{
4746                 .vendor = PCI_VENDOR_ID_PHILIPS,
4747                 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4748                 .subvendor = 0x1489,
4749                 .subdevice = 0x0301,
4750                 .driver_data = SAA7134_BOARD_FLYDVBT_LR301,
4751         },{
4752                 .vendor = PCI_VENDOR_ID_PHILIPS,
4753                 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4754                 .subvendor = 0x5168, /* Animation Technologies (LifeView) */
4755                 .subdevice = 0x0304,
4756                 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM,
4757         },{
4758                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4759                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4760                 .subvendor    = 0x5168,
4761                 .subdevice    = 0x3306,
4762                 .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
4763         },{
4764                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4765                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4766                 .subvendor    = 0x5168,
4767                 .subdevice    = 0x3502,  /* whats the difference to 0x3306 ?*/
4768                 .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
4769         },{
4770                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4771                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4772                 .subvendor    = 0x5168,
4773                 .subdevice    = 0x3307, /* FlyDVB-T Hybrid Mini PCI */
4774                 .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
4775         }, {
4776                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4777                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4778                 .subvendor    = 0x16be,
4779                 .subdevice    = 0x0007,
4780                 .driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
4781         },{
4782                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4783                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4784                 .subvendor    = 0x16be,
4785                 .subdevice    = 0x0008,
4786                 .driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
4787         },{
4788                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4789                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4790                 .subvendor    = 0x16be,
4791                 .subdevice    = 0x000d, /* triple CTX948_V1.1.1 */
4792                 .driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
4793         }, {
4794                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4795                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4796                 .subvendor    = 0x1461,
4797                 .subdevice    = 0x2c05,
4798                 .driver_data  = SAA7134_BOARD_AVERMEDIA_777,
4799         },{
4800                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4801                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4802                 .subvendor    = 0x1489,
4803                 .subdevice    = 0x0502,                /* Cardbus version */
4804                 .driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
4805         },{
4806                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4807                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4808                 .subvendor    = 0x0919, /* Philips Proteus PRO 2309 */
4809                 .subdevice    = 0x2003,
4810                 .driver_data  = SAA7134_BOARD_PROTEUS_2309,
4811         },{
4812                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4813                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4814                 .subvendor    = 0x1461,
4815                 .subdevice    = 0x2c00,
4816                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A16AR,
4817         },{
4818                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4819                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4820                 .subvendor    = 0x1043,
4821                 .subdevice    = 0x4860,
4822                 .driver_data  = SAA7134_BOARD_ASUS_EUROPA2_HYBRID,
4823         },{
4824                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4825                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4826                 .subvendor    = 0x11bd,
4827                 .subdevice    = 0x002f,
4828                 .driver_data  = SAA7134_BOARD_PINNACLE_PCTV_310i,
4829         },{
4830                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4831                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4832                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4833                 .subdevice    = 0x9715,
4834                 .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_507,
4835         },{
4836                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4837                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4838                 .subvendor    = 0x1043,
4839                 .subdevice    = 0x4876,
4840                 .driver_data  = SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA,
4841         },{
4842                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4843                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4844                 .subvendor    = 0x0070,
4845                 .subdevice    = 0x6700,
4846                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
4847         },{
4848                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4849                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4850                 .subvendor    = 0x0070,
4851                 .subdevice    = 0x6701,
4852                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
4853         },{
4854                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4855                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4856                 .subvendor    = 0x0070,
4857                 .subdevice    = 0x6702,
4858                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
4859         },{
4860                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4861                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4862                 .subvendor    = 0x0070,
4863                 .subdevice    = 0x6703,
4864                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
4865         },{
4866                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4867                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4868                 .subvendor    = 0x0070,
4869                 .subdevice    = 0x6704,
4870                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
4871         },{
4872                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4873                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4874                 .subvendor    = 0x0070,
4875                 .subdevice    = 0x6705,
4876                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
4877         },{
4878                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4879                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4880                 .subvendor    = 0x153b,
4881                 .subdevice    = 0x1172,
4882                 .driver_data  = SAA7134_BOARD_CINERGY_HT_PCMCIA,
4883         },{
4884                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4885                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4886                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4887                 .subdevice    = 0x2342,
4888                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
4889         },{
4890                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4891                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4892                 .subvendor    = 0x1131,
4893                 .subdevice    = 0x2341,
4894                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
4895         },{
4896                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4897                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4898                 .subvendor    = 0x3016,
4899                 .subdevice    = 0x2344,
4900                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
4901         },{
4902                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4903                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4904                 .subvendor    = 0x1131,
4905                 .subdevice    = 0x230f,
4906                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV_FM,
4907         },{
4908                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4909                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4910                 .subvendor    = 0x153b,
4911                 .subdevice    = 0x1175,
4912                 .driver_data  = SAA7134_BOARD_CINERGY_HT_PCI,
4913         },{
4914                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4915                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4916                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4917                 .subdevice    = 0xf31e,
4918                 .driver_data  = SAA7134_BOARD_AVERMEDIA_M102,
4919         },{
4920                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4921                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4922                 .subvendor    = 0x4E42,         /* MSI */
4923                 .subdevice    = 0x0306,         /* TV@nywhere DUO */
4924                 .driver_data  = SAA7134_BOARD_FLYDVBTDUO,
4925         },{
4926                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4927                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4928                 .subvendor    = 0x1043,
4929                 .subdevice    = 0x4871,
4930                 .driver_data  = SAA7134_BOARD_ASUS_P7131_4871,
4931         },{
4932                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4933                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4934                 .subvendor    = 0x1043,
4935                 .subdevice    = 0x4857,
4936                 .driver_data  = SAA7134_BOARD_ASUSTeK_P7131_DUAL,
4937         },{
4938                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4939                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4940                 .subvendor    = 0x0919, /* SinoVideo PCI 2309 Proteus (7134) */
4941                 .subdevice    = 0x2003, /* OEM cardbus */
4942                 .driver_data  = SAA7134_BOARD_SABRENT_TV_PCB05,
4943         },{
4944                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4945                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4946                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4947                 .subdevice    = 0x2304,
4948                 .driver_data  = SAA7134_BOARD_10MOONSTVMASTER3,
4949         },{
4950                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4951                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4952                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4953                 .subdevice    = 0xf01d, /* AVerTV DVB-T Super 007 */
4954                 .driver_data  = SAA7134_BOARD_AVERMEDIA_SUPER_007,
4955         },{
4956                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4957                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4958                 .subvendor    = 0x0000,
4959                 .subdevice    = 0x4016,
4960                 .driver_data  = SAA7134_BOARD_BEHOLD_401,
4961         },{
4962                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4963                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4964                 .subvendor    = 0x0000,
4965                 .subdevice    = 0x4036,
4966                 .driver_data  = SAA7134_BOARD_BEHOLD_403,
4967         },{
4968                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4969                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4970                 .subvendor    = 0x0000,
4971                 .subdevice    = 0x4037,
4972                 .driver_data  = SAA7134_BOARD_BEHOLD_403FM,
4973         },{
4974                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4975                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4976                 .subvendor    = 0x0000,
4977                 .subdevice    = 0x4050,
4978                 .driver_data  = SAA7134_BOARD_BEHOLD_405,
4979         },{
4980                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4981                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4982                 .subvendor    = 0x0000,
4983                 .subdevice    = 0x4051,
4984                 .driver_data  = SAA7134_BOARD_BEHOLD_405FM,
4985         },{
4986                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4987                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4988                 .subvendor    = 0x0000,
4989                 .subdevice    = 0x4070,
4990                 .driver_data  = SAA7134_BOARD_BEHOLD_407,
4991         },{
4992                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4993                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4994                 .subvendor    = 0x0000,
4995                 .subdevice    = 0x4071,
4996                 .driver_data  = SAA7134_BOARD_BEHOLD_407FM,
4997         },{
4998                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4999                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5000                 .subvendor    = 0x0000,
5001                 .subdevice    = 0x4090,
5002                 .driver_data  = SAA7134_BOARD_BEHOLD_409,
5003         },{
5004                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5005                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5006                 .subvendor    = 0x0000,
5007                 .subdevice    = 0x5051,
5008                 .driver_data  = SAA7134_BOARD_BEHOLD_505FM,
5009         },{
5010                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5011                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5012                 .subvendor    = 0x0000,
5013                 .subdevice    = 0x505B,
5014                 .driver_data  = SAA7134_BOARD_BEHOLD_505FM,
5015         },{
5016                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5017                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5018                 .subvendor    = 0x5ace,
5019                 .subdevice    = 0x5050,
5020                 .driver_data  = SAA7134_BOARD_BEHOLD_505FM,
5021         },{
5022                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5023                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5024                 .subvendor    = 0x0000,
5025                 .subdevice    = 0x5071,
5026                 .driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
5027         },{
5028                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5029                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5030                 .subvendor    = 0x0000,
5031                 .subdevice    = 0x507B,
5032                 .driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
5033         },{
5034                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5035                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5036                 .subvendor    = 0x5ace,
5037                 .subdevice    = 0x5070,
5038                 .driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
5039         },{
5040                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5041                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5042                 .subvendor    = 0x5ace,
5043                 .subdevice    = 0x5090,
5044                 .driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
5045         },{
5046                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5047                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5048                 .subvendor    = 0x0000,
5049                 .subdevice    = 0x5201,
5050                 .driver_data  = SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM,
5051         },{
5052                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5053                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5054                 .subvendor    = 0x5ace,
5055                 .subdevice    = 0x6070,
5056                 .driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
5057         },{
5058                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5059                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5060                 .subvendor    = 0x5ace,
5061                 .subdevice    = 0x6071,
5062                 .driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
5063         },{
5064                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5065                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5066                 .subvendor    = 0x5ace,
5067                 .subdevice    = 0x6072,
5068                 .driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
5069         },{
5070                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5071                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5072                 .subvendor    = 0x5ace,
5073                 .subdevice    = 0x6073,
5074                 .driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
5075         },{
5076                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5077                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5078                 .subvendor    = 0x5ace,
5079                 .subdevice    = 0x6090,
5080                 .driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
5081         },{
5082                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5083                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5084                 .subvendor    = 0x5ace,
5085                 .subdevice    = 0x6091,
5086                 .driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
5087         },{
5088                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5089                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5090                 .subvendor    = 0x5ace,
5091                 .subdevice    = 0x6092,
5092                 .driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
5093         },{
5094                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5095                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5096                 .subvendor    = 0x5ace,
5097                 .subdevice    = 0x6093,
5098                 .driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
5099         },{
5100                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5101                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5102                 .subvendor    = 0x5ace,
5103                 .subdevice    = 0x6190,
5104                 .driver_data  = SAA7134_BOARD_BEHOLD_M6,
5105         },{
5106                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5107                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5108                 .subvendor    = 0x5ace,
5109                 .subdevice    = 0x6193,
5110                 .driver_data  = SAA7134_BOARD_BEHOLD_M6,
5111         },{
5112                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5113                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5114                 .subvendor    = 0x4e42,
5115                 .subdevice    = 0x3502,
5116                 .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
5117         }, {
5118                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5119                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5120                 .subvendor    = 0x1822, /*Twinhan Technology Co. Ltd*/
5121                 .subdevice    = 0x0022,
5122                 .driver_data  = SAA7134_BOARD_TWINHAN_DTV_DVB_3056,
5123         }, {
5124                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5125                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5126                 .subvendor    = 0x16be,
5127                 .subdevice    = 0x0010, /* Medion version CTX953_V.1.4.3 */
5128                 .driver_data  = SAA7134_BOARD_CREATIX_CTX953,
5129         }, {
5130                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5131                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5132                 .subvendor    = 0x1462, /* MSI */
5133                 .subdevice    = 0x8625, /* TV@nywhere A/D v1.1 */
5134                 .driver_data  = SAA7134_BOARD_MSI_TVANYWHERE_AD11,
5135         },{
5136                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5137                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5138                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
5139                 .subdevice    = 0xf436,
5140                 .driver_data  = SAA7134_BOARD_AVERMEDIA_CARDBUS_506,
5141         }, {
5142                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5143                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5144                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
5145                 .subdevice    = 0xf936,
5146                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A16D,
5147         }, {
5148                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5149                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5150                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
5151                 .subdevice    = 0xa836,
5152                 .driver_data  = SAA7134_BOARD_AVERMEDIA_M115,
5153         }, {
5154                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5155                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5156                 .subvendor    = 0x185b,
5157                 .subdevice    = 0xc900,
5158                 .driver_data  = SAA7134_BOARD_VIDEOMATE_T750,
5159         }, {
5160                 /* --- boards without eeprom + subsystem ID --- */
5161                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5162                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5163                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
5164                 .subdevice    = 0,
5165                 .driver_data  = SAA7134_BOARD_NOAUTO,
5166         },{
5167                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5168                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5169                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
5170                 .subdevice    = 0,
5171                 .driver_data  = SAA7134_BOARD_NOAUTO,
5172         },{
5173                 /* --- default catch --- */
5174                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5175                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5176                 .subvendor    = PCI_ANY_ID,
5177                 .subdevice    = PCI_ANY_ID,
5178                 .driver_data  = SAA7134_BOARD_UNKNOWN,
5179         },{
5180                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5181                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5182                 .subvendor    = PCI_ANY_ID,
5183                 .subdevice    = PCI_ANY_ID,
5184                 .driver_data  = SAA7134_BOARD_UNKNOWN,
5185         },{
5186                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5187                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5188                 .subvendor    = PCI_ANY_ID,
5189                 .subdevice    = PCI_ANY_ID,
5190                 .driver_data  = SAA7134_BOARD_UNKNOWN,
5191         },{
5192                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5193                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7135,
5194                 .subvendor    = PCI_ANY_ID,
5195                 .subdevice    = PCI_ANY_ID,
5196                 .driver_data  = SAA7134_BOARD_UNKNOWN,
5197         },{
5198                 /* --- end of list --- */
5199         }
5200 };
5201 MODULE_DEVICE_TABLE(pci, saa7134_pci_tbl);
5202
5203 /* ----------------------------------------------------------- */
5204 /* flyvideo tweaks                                             */
5205
5206
5207 static void board_flyvideo(struct saa7134_dev *dev)
5208 {
5209         printk("%s: there are different flyvideo cards with different tuners\n"
5210                "%s: out there, you might have to use the tuner=<nr> insmod\n"
5211                "%s: option to override the default value.\n",
5212                dev->name, dev->name, dev->name);
5213 }
5214
5215 static int saa7134_xc2028_callback(struct saa7134_dev *dev,
5216                                    int command, int arg)
5217 {
5218         switch (command) {
5219         case XC2028_TUNER_RESET:
5220                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x06e20000, 0x06e20000);
5221                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x06a20000, 0x06a20000);
5222                 saa_andorl(SAA7133_ANALOG_IO_SELECT >> 2, 0x02, 0x02);
5223                 saa_andorl(SAA7134_ANALOG_IN_CTRL1 >> 2, 0x81, 0x81);
5224                 saa_andorl(SAA7134_AUDIO_CLOCK0 >> 2, 0x03187de7, 0x03187de7);
5225                 saa_andorl(SAA7134_AUDIO_PLL_CTRL >> 2, 0x03, 0x03);
5226                 saa_andorl(SAA7134_AUDIO_CLOCKS_PER_FIELD0 >> 2,
5227                            0x0001e000, 0x0001e000);
5228                 return 0;
5229         }
5230         return -EINVAL;
5231 }
5232
5233
5234 static int saa7134_tda8290_callback(struct saa7134_dev *dev,
5235                                     int command, int arg)
5236 {
5237         u8 sync_control;
5238
5239         switch (command) {
5240         case 0: /* switch LNA gain through GPIO 22*/
5241                 saa7134_set_gpio(dev, 22, arg) ;
5242                 break;
5243         case 1: /* vsync output at GPIO22. 50 / 60Hz */
5244                 saa_andorb(SAA7134_VIDEO_PORT_CTRL3, 0x80, 0x80);
5245                 saa_andorb(SAA7134_VIDEO_PORT_CTRL6, 0x0f, 0x03);
5246                 if (arg == 1)
5247                         sync_control = 11;
5248                 else
5249                         sync_control = 17;
5250                 saa_writeb(SAA7134_VGATE_START, sync_control);
5251                 saa_writeb(SAA7134_VGATE_STOP, sync_control + 1);
5252                 saa_andorb(SAA7134_MISC_VGATE_MSB, 0x03, 0x00);
5253                 break;
5254         default:
5255                 return -EINVAL;
5256         }
5257
5258         return 0;
5259 }
5260
5261 int saa7134_tuner_callback(void *priv, int command, int arg)
5262 {
5263         struct i2c_algo_bit_data *i2c_algo = priv;
5264         struct saa7134_dev *dev = i2c_algo->data;
5265
5266         switch (dev->tuner_type) {
5267         case TUNER_PHILIPS_TDA8290:
5268                 return saa7134_tda8290_callback(dev, command, arg);
5269         case TUNER_XC2028:
5270                 return saa7134_xc2028_callback(dev, command, arg);
5271         }
5272         return -EINVAL;
5273 }
5274 EXPORT_SYMBOL(saa7134_tuner_callback);
5275
5276 /* ----------------------------------------------------------- */
5277
5278 static void hauppauge_eeprom(struct saa7134_dev *dev, u8 *eeprom_data)
5279 {
5280         struct tveeprom tv;
5281
5282         tveeprom_hauppauge_analog(&dev->i2c_client, &tv, eeprom_data);
5283
5284         /* Make sure we support the board model */
5285         switch (tv.model) {
5286         case 67019: /* WinTV-HVR1110 (Retail, IR Blaster, hybrid, FM, SVid/Comp, 3.5mm audio in) */
5287         case 67109: /* WinTV-HVR1000 (Retail, IR Receive, analog, no FM, SVid/Comp, 3.5mm audio in) */
5288         case 67559: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
5289         case 67569: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM) */
5290         case 67579: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM) */
5291         case 67589: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
5292         case 67599: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
5293                 break;
5294         default:
5295                 printk(KERN_WARNING "%s: warning: "
5296                        "unknown hauppauge model #%d\n", dev->name, tv.model);
5297                 break;
5298         }
5299
5300         printk(KERN_INFO "%s: hauppauge eeprom: model=%d\n",
5301                dev->name, tv.model);
5302 }
5303
5304 /* ----------------------------------------------------------- */
5305
5306 int saa7134_board_init1(struct saa7134_dev *dev)
5307 {
5308         /* Always print gpio, often manufacturers encode tuner type and other info. */
5309         saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0);
5310         dev->gpio_value = saa_readl(SAA7134_GPIO_GPSTATUS0 >> 2);
5311         printk(KERN_INFO "%s: board init: gpio is %x\n", dev->name, dev->gpio_value);
5312
5313         switch (dev->board) {
5314         case SAA7134_BOARD_FLYVIDEO2000:
5315         case SAA7134_BOARD_FLYVIDEO3000:
5316         case SAA7134_BOARD_FLYVIDEO3000_NTSC:
5317                 dev->has_remote = SAA7134_REMOTE_GPIO;
5318                 board_flyvideo(dev);
5319                 break;
5320         case SAA7134_BOARD_FLYTVPLATINUM_MINI2:
5321         case SAA7134_BOARD_FLYTVPLATINUM_FM:
5322         case SAA7134_BOARD_CINERGY400:
5323         case SAA7134_BOARD_CINERGY600:
5324         case SAA7134_BOARD_CINERGY600_MK3:
5325         case SAA7134_BOARD_ECS_TVP3XP:
5326         case SAA7134_BOARD_ECS_TVP3XP_4CB5:
5327         case SAA7134_BOARD_ECS_TVP3XP_4CB6:
5328         case SAA7134_BOARD_MD2819:
5329         case SAA7134_BOARD_KWORLD_VSTREAM_XPERT:
5330         case SAA7134_BOARD_KWORLD_XPERT:
5331         case SAA7134_BOARD_AVERMEDIA_STUDIO_305:
5332         case SAA7134_BOARD_AVERMEDIA_305:
5333         case SAA7134_BOARD_AVERMEDIA_STUDIO_307:
5334         case SAA7134_BOARD_AVERMEDIA_307:
5335         case SAA7134_BOARD_AVERMEDIA_STUDIO_507:
5336         case SAA7134_BOARD_AVERMEDIA_GO_007_FM:
5337         case SAA7134_BOARD_AVERMEDIA_777:
5338 /*      case SAA7134_BOARD_SABRENT_SBTTVFM:  */ /* not finished yet */
5339         case SAA7134_BOARD_VIDEOMATE_TV_PVR:
5340         case SAA7134_BOARD_VIDEOMATE_GOLD_PLUS:
5341         case SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII:
5342         case SAA7134_BOARD_VIDEOMATE_DVBT_300:
5343         case SAA7134_BOARD_VIDEOMATE_DVBT_200:
5344         case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
5345         case SAA7134_BOARD_VIDEOMATE_T750:
5346         case SAA7134_BOARD_MANLI_MTV001:
5347         case SAA7134_BOARD_MANLI_MTV002:
5348         case SAA7134_BOARD_BEHOLD_409FM:
5349         case SAA7134_BOARD_AVACSSMARTTV:
5350         case SAA7134_BOARD_GOTVIEW_7135:
5351         case SAA7134_BOARD_KWORLD_TERMINATOR:
5352         case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS:
5353         case SAA7134_BOARD_FLYDVBT_LR301:
5354         case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
5355         case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
5356         case SAA7134_BOARD_FLYDVBTDUO:
5357         case SAA7134_BOARD_PROTEUS_2309:
5358         case SAA7134_BOARD_AVERMEDIA_A16AR:
5359         case SAA7134_BOARD_ENCORE_ENLTV:
5360         case SAA7134_BOARD_ENCORE_ENLTV_FM:
5361         case SAA7134_BOARD_10MOONSTVMASTER3:
5362         case SAA7134_BOARD_BEHOLD_401:
5363         case SAA7134_BOARD_BEHOLD_403:
5364         case SAA7134_BOARD_BEHOLD_403FM:
5365         case SAA7134_BOARD_BEHOLD_405:
5366         case SAA7134_BOARD_BEHOLD_405FM:
5367         case SAA7134_BOARD_BEHOLD_407:
5368         case SAA7134_BOARD_BEHOLD_407FM:
5369         case SAA7134_BOARD_BEHOLD_409:
5370         case SAA7134_BOARD_BEHOLD_505FM:
5371         case SAA7134_BOARD_BEHOLD_507_9FM:
5372         case SAA7134_BOARD_GENIUS_TVGO_A11MCE:
5373                 dev->has_remote = SAA7134_REMOTE_GPIO;
5374                 break;
5375         case SAA7134_BOARD_FLYDVBS_LR300:
5376                 saa_writeb(SAA7134_GPIO_GPMODE3, 0x80);
5377                 saa_writeb(SAA7134_GPIO_GPSTATUS2, 0x40);
5378                 dev->has_remote = SAA7134_REMOTE_GPIO;
5379                 break;
5380         case SAA7134_BOARD_MD5044:
5381                 printk("%s: seems there are two different versions of the MD5044\n"
5382                        "%s: (with the same ID) out there.  If sound doesn't work for\n"
5383                        "%s: you try the audio_clock_override=0x200000 insmod option.\n",
5384                        dev->name,dev->name,dev->name);
5385                 break;
5386         case SAA7134_BOARD_CINERGY400_CARDBUS:
5387                 /* power-up tuner chip */
5388                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00040000, 0x00040000);
5389                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000000);
5390                 break;
5391         case SAA7134_BOARD_PINNACLE_300I_DVBT_PAL:
5392                 /* this turns the remote control chip off to work around a bug in it */
5393                 saa_writeb(SAA7134_GPIO_GPMODE1, 0x80);
5394                 saa_writeb(SAA7134_GPIO_GPSTATUS1, 0x80);
5395                 break;
5396         case SAA7134_BOARD_MONSTERTV_MOBILE:
5397                 /* power-up tuner chip */
5398                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00040000, 0x00040000);
5399                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000004);
5400                 break;
5401         case SAA7134_BOARD_FLYDVBT_DUO_CARDBUS:
5402                 /* turn the fan on */
5403                 saa_writeb(SAA7134_GPIO_GPMODE3, 0x08);
5404                 saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06);
5405                 break;
5406         case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
5407         case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
5408                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x08000000, 0x08000000);
5409                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08000000, 0x00000000);
5410                 break;
5411         case SAA7134_BOARD_AVERMEDIA_CARDBUS:
5412         case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
5413         case SAA7134_BOARD_AVERMEDIA_M115:
5414         case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
5415                 /* power-up tuner chip */
5416                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0xffffffff, 0xffffffff);
5417                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff);
5418                 msleep(1);
5419                 break;
5420         case SAA7134_BOARD_RTD_VFG7350:
5421
5422                 /*
5423                  * Make sure Production Test Register at offset 0x1D1 is cleared
5424                  * to take chip out of test mode.  Clearing bit 4 (TST_EN_AOUT)
5425                  * prevents pin 105 from remaining low; keeping pin 105 low
5426                  * continually resets the SAA6752 chip.
5427                  */
5428
5429                 saa_writeb (SAA7134_PRODUCTION_TEST_MODE, 0x00);
5430                 break;
5431         /* i2c remotes */
5432         case SAA7134_BOARD_PINNACLE_PCTV_110i:
5433         case SAA7134_BOARD_PINNACLE_PCTV_310i:
5434         case SAA7134_BOARD_UPMOST_PURPLE_TV:
5435         case SAA7134_BOARD_HAUPPAUGE_HVR1110:
5436         case SAA7134_BOARD_BEHOLD_607_9FM:
5437         case SAA7134_BOARD_BEHOLD_M6:
5438                 dev->has_remote = SAA7134_REMOTE_I2C;
5439                 break;
5440         case SAA7134_BOARD_AVERMEDIA_A169_B:
5441         case SAA7134_BOARD_MD7134_BRIDGE_2:
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 }