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