Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / media / pci / 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 #include "tea5767.h"
34 #include "tda18271.h"
35 #include "xc5000.h"
36 #include "s5h1411.h"
37
38 /* commly used strings */
39 static char name_mute[]    = "mute";
40 static char name_radio[]   = "Radio";
41 static char name_tv[]      = "Television";
42 static char name_tv_mono[] = "TV (mono only)";
43 static char name_comp[]    = "Composite";
44 static char name_comp1[]   = "Composite1";
45 static char name_comp2[]   = "Composite2";
46 static char name_comp3[]   = "Composite3";
47 static char name_comp4[]   = "Composite4";
48 static char name_svideo[]  = "S-Video";
49
50 /* ------------------------------------------------------------------ */
51 /* board config info                                                  */
52
53 static struct tda18271_std_map aver_a706_std_map = {
54         .fm_radio = { .if_freq = 5500, .fm_rfn = 0, .agc_mode = 3, .std = 0,
55                       .if_lvl = 0, .rfagc_top = 0x2c, },
56 };
57
58 /* If radio_type !=UNSET, radio_addr should be specified
59  */
60
61 struct saa7134_board saa7134_boards[] = {
62         [SAA7134_BOARD_UNKNOWN] = {
63                 .name           = "UNKNOWN/GENERIC",
64                 .audio_clock    = 0x00187de7,
65                 .tuner_type     = TUNER_ABSENT,
66                 .radio_type     = UNSET,
67                 .tuner_addr     = ADDR_UNSET,
68                 .radio_addr     = ADDR_UNSET,
69
70                 .inputs         = {{
71                         .name = "default",
72                         .vmux = 0,
73                         .amux = LINE1,
74                 }},
75         },
76         [SAA7134_BOARD_PROTEUS_PRO] = {
77                 /* /me */
78                 .name           = "Proteus Pro [philips reference design]",
79                 .audio_clock    = 0x00187de7,
80                 .tuner_type     = TUNER_PHILIPS_PAL,
81                 .radio_type     = UNSET,
82                 .tuner_addr     = ADDR_UNSET,
83                 .radio_addr     = ADDR_UNSET,
84
85                 .inputs         = {{
86                         .name = name_comp1,
87                         .vmux = 0,
88                         .amux = LINE1,
89                 },{
90                         .name = name_tv,
91                         .vmux = 1,
92                         .amux = TV,
93                         .tv   = 1,
94                 },{
95                         .name = name_tv_mono,
96                         .vmux = 1,
97                         .amux = LINE2,
98                         .tv   = 1,
99                 }},
100                 .radio = {
101                         .name = name_radio,
102                         .amux = LINE2,
103                 },
104         },
105         [SAA7134_BOARD_FLYVIDEO3000] = {
106                 /* "Marco d'Itri" <md@Linux.IT> */
107                 .name           = "LifeView FlyVIDEO3000",
108                 .audio_clock    = 0x00200000,
109                 .tuner_type     = TUNER_PHILIPS_PAL,
110                 .radio_type     = UNSET,
111                 .tuner_addr     = ADDR_UNSET,
112                 .radio_addr     = ADDR_UNSET,
113
114                 .gpiomask       = 0xe000,
115                 .inputs         = {{
116                         .name = name_tv,
117                         .vmux = 1,
118                         .amux = TV,
119                         .gpio = 0x8000,
120                         .tv   = 1,
121                 },{
122                         .name = name_tv_mono,
123                         .vmux = 1,
124                         .amux = LINE2,
125                         .gpio = 0x0000,
126                         .tv   = 1,
127                 },{
128                         .name = name_comp1,
129                         .vmux = 0,
130                         .amux = LINE2,
131                         .gpio = 0x4000,
132                 },{
133                         .name = name_comp2,
134                         .vmux = 3,
135                         .amux = LINE2,
136                         .gpio = 0x4000,
137                 },{
138                         .name = name_svideo,
139                         .vmux = 8,
140                         .amux = LINE2,
141                         .gpio = 0x4000,
142                 }},
143                 .radio = {
144                         .name = name_radio,
145                         .amux = LINE2,
146                         .gpio = 0x2000,
147                 },
148                 .mute = {
149                         .name = name_mute,
150                         .amux = TV,
151                         .gpio = 0x8000,
152                 },
153         },
154         [SAA7134_BOARD_FLYVIDEO2000] = {
155                 /* "TC Wan" <tcwan@cs.usm.my> */
156                 .name           = "LifeView/Typhoon FlyVIDEO2000",
157                 .audio_clock    = 0x00200000,
158                 .tuner_type     = TUNER_LG_PAL_NEW_TAPC,
159                 .radio_type     = UNSET,
160                 .tuner_addr     = ADDR_UNSET,
161                 .radio_addr     = ADDR_UNSET,
162
163                 .gpiomask       = 0xe000,
164                 .inputs         = {{
165                         .name = name_tv,
166                         .vmux = 1,
167                         .amux = LINE2,
168                         .gpio = 0x0000,
169                         .tv   = 1,
170                 },{
171                         .name = name_comp1,
172                         .vmux = 0,
173                         .amux = LINE2,
174                         .gpio = 0x4000,
175                 },{
176                         .name = name_comp2,
177                         .vmux = 3,
178                         .amux = LINE2,
179                         .gpio = 0x4000,
180                 },{
181                         .name = name_svideo,
182                         .vmux = 8,
183                         .amux = LINE2,
184                         .gpio = 0x4000,
185                 }},
186                 .radio = {
187                         .name = name_radio,
188                         .amux = LINE2,
189                         .gpio = 0x2000,
190                 },
191                 .mute = {
192                         .name = name_mute,
193                         .amux = LINE2,
194                         .gpio = 0x8000,
195                 },
196         },
197         [SAA7134_BOARD_FLYTVPLATINUM_MINI] = {
198                 /* "Arnaud Quette" <aquette@free.fr> */
199                 .name           = "LifeView FlyTV Platinum Mini",
200                 .audio_clock    = 0x00200000,
201                 .tuner_type     = TUNER_PHILIPS_TDA8290,
202                 .radio_type     = UNSET,
203                 .tuner_addr     = ADDR_UNSET,
204                 .radio_addr     = ADDR_UNSET,
205
206                 .inputs         = {{
207                         .name = name_tv,
208                         .vmux = 1,
209                         .amux = TV,
210                         .tv   = 1,
211                 },{
212                         .name = name_comp1,     /* Composite signal on S-Video input */
213                         .vmux = 0,
214                         .amux = LINE2,
215                 },{
216                         .name = name_comp2,     /* Composite input */
217                         .vmux = 3,
218                         .amux = LINE2,
219                 },{
220                         .name = name_svideo,
221                         .vmux = 8,
222                         .amux = LINE2,
223                 }},
224         },
225         [SAA7134_BOARD_FLYTVPLATINUM_FM] = {
226                 /* LifeView FlyTV Platinum FM (LR214WF) */
227                 /* "Peter Missel <peter.missel@onlinehome.de> */
228                 .name           = "LifeView FlyTV Platinum FM / Gold",
229                 .audio_clock    = 0x00200000,
230                 .tuner_type     = TUNER_PHILIPS_TDA8290,
231                 .radio_type     = UNSET,
232                 .tuner_addr     = ADDR_UNSET,
233                 .radio_addr     = ADDR_UNSET,
234
235                 .gpiomask       = 0x1E000,      /* Set GP16 and unused 15,14,13 to Output */
236                 .inputs         = {{
237                         .name = name_tv,
238                         .vmux = 1,
239                         .amux = TV,
240                         .gpio = 0x10000,        /* GP16=1 selects TV input */
241                         .tv   = 1,
242                 },{
243 /*                      .name = name_tv_mono,
244                         .vmux = 1,
245                         .amux = LINE2,
246                         .gpio = 0x0000,
247                         .tv   = 1,
248                 },{
249 */                      .name = name_comp1,     /* Composite signal on S-Video input */
250                         .vmux = 0,
251                         .amux = LINE2,
252 /*                      .gpio = 0x4000,         */
253                 },{
254                         .name = name_comp2,     /* Composite input */
255                         .vmux = 3,
256                         .amux = LINE2,
257 /*                      .gpio = 0x4000,         */
258                 },{
259                         .name = name_svideo,    /* S-Video signal on S-Video input */
260                         .vmux = 8,
261                         .amux = LINE2,
262 /*                      .gpio = 0x4000,         */
263                 }},
264                 .radio = {
265                         .name = name_radio,
266                         .amux = TV,
267                         .gpio = 0x00000,        /* GP16=0 selects FM radio antenna */
268                 },
269                 .mute = {
270                         .name = name_mute,
271                         .amux = TV,
272                         .gpio = 0x10000,
273                 },
274         },
275         [SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM] = {
276                 /* RoverMedia TV Link Pro FM (LR138 REV:I) */
277                 /* Eugene Yudin <Eugene.Yudin@gmail.com> */
278                 .name           = "RoverMedia TV Link Pro FM",
279                 .audio_clock    = 0x00200000,
280                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3, /* TCL MFPE05 2 */
281                 .radio_type     = UNSET,
282                 .tuner_addr     = ADDR_UNSET,
283                 .radio_addr     = ADDR_UNSET,
284                 .tda9887_conf   = TDA9887_PRESENT,
285                 .gpiomask       = 0xe000,
286                 .inputs         = { {
287                         .name = name_tv,
288                         .vmux = 1,
289                         .amux = TV,
290                         .gpio = 0x8000,
291                         .tv   = 1,
292                 }, {
293                         .name = name_tv_mono,
294                         .vmux = 1,
295                         .amux = LINE2,
296                         .gpio = 0x0000,
297                         .tv   = 1,
298                 }, {
299                         .name = name_comp1,
300                         .vmux = 0,
301                         .amux = LINE2,
302                         .gpio = 0x4000,
303                 }, {
304                         .name = name_comp2,
305                         .vmux = 3,
306                         .amux = LINE2,
307                         .gpio = 0x4000,
308                 }, {
309                         .name = name_svideo,
310                         .vmux = 8,
311                         .amux = LINE2,
312                         .gpio = 0x4000,
313                 } },
314                 .radio = {
315                         .name = name_radio,
316                         .amux = LINE2,
317                         .gpio = 0x2000,
318                 },
319                 .mute = {
320                         .name = name_mute,
321                         .amux = TV,
322                         .gpio = 0x8000,
323                 },
324         },
325         [SAA7134_BOARD_EMPRESS] = {
326                 /* "Gert Vervoort" <gert.vervoort@philips.com> */
327                 .name           = "EMPRESS",
328                 .audio_clock    = 0x00187de7,
329                 .tuner_type     = TUNER_PHILIPS_PAL,
330                 .radio_type     = UNSET,
331                 .tuner_addr     = ADDR_UNSET,
332                 .radio_addr     = ADDR_UNSET,
333                 .empress_addr   = 0x20,
334
335                 .inputs         = {{
336                         .name = name_comp1,
337                         .vmux = 0,
338                         .amux = LINE1,
339                 },{
340                         .name = name_svideo,
341                         .vmux = 8,
342                         .amux = LINE1,
343                 },{
344                         .name = name_tv,
345                         .vmux = 1,
346                         .amux = LINE2,
347                         .tv   = 1,
348                 }},
349                 .radio = {
350                         .name = name_radio,
351                         .amux = LINE2,
352                 },
353                 .mpeg      = SAA7134_MPEG_EMPRESS,
354                 .video_out = CCIR656,
355         },
356         [SAA7134_BOARD_MONSTERTV] = {
357                 /* "K.Ohta" <alpha292@bremen.or.jp> */
358                 .name           = "SKNet Monster TV",
359                 .audio_clock    = 0x00187de7,
360                 .tuner_type     = TUNER_PHILIPS_NTSC_M,
361                 .radio_type     = UNSET,
362                 .tuner_addr     = ADDR_UNSET,
363                 .radio_addr     = ADDR_UNSET,
364
365                 .inputs         = {{
366                         .name = name_tv,
367                         .vmux = 1,
368                         .amux = TV,
369                         .tv   = 1,
370                 },{
371                         .name = name_comp1,
372                         .vmux = 0,
373                         .amux = LINE1,
374                 },{
375                         .name = name_svideo,
376                         .vmux = 8,
377                         .amux = LINE1,
378                 }},
379                 .radio = {
380                         .name = name_radio,
381                         .amux = LINE2,
382                 },
383         },
384         [SAA7134_BOARD_MD9717] = {
385                 .name           = "Tevion MD 9717",
386                 .audio_clock    = 0x00200000,
387                 .tuner_type     = TUNER_PHILIPS_PAL,
388                 .radio_type     = UNSET,
389                 .tuner_addr     = ADDR_UNSET,
390                 .radio_addr     = ADDR_UNSET,
391                 .inputs         = {{
392                         .name = name_tv,
393                         .vmux = 1,
394                         .amux = TV,
395                         .tv   = 1,
396                 },{
397                         /* workaround for problems with normal TV sound */
398                         .name = name_tv_mono,
399                         .vmux = 1,
400                         .amux = LINE2,
401                         .tv   = 1,
402                 },{
403                         .name = name_comp1,
404                         .vmux = 0,
405                         .amux = LINE1,
406                 },{
407                         .name = name_comp2,
408                         .vmux = 3,
409                         .amux = LINE1,
410                 },{
411                         .name = name_svideo,
412                         .vmux = 8,
413                         .amux = LINE1,
414                 }},
415                 .radio = {
416                         .name = name_radio,
417                         .amux = LINE2,
418                 },
419                .mute = {
420                        .name = name_mute,
421                        .amux = TV,
422                },
423         },
424         [SAA7134_BOARD_TVSTATION_RDS] = {
425                 /* Typhoon TV Tuner RDS: Art.Nr. 50694 */
426                 .name           = "KNC One TV-Station RDS / Typhoon TV Tuner RDS",
427                 .audio_clock    = 0x00200000,
428                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
429                 .radio_type     = UNSET,
430                 .tuner_addr     = ADDR_UNSET,
431                 .radio_addr     = ADDR_UNSET,
432                 .tda9887_conf   = TDA9887_PRESENT,
433                 .inputs         = {{
434                         .name = name_tv,
435                         .vmux = 1,
436                         .amux = TV,
437                         .tv   = 1,
438                 },{
439                         .name = name_tv_mono,
440                         .vmux = 1,
441                         .amux   = LINE2,
442                         .tv   = 1,
443                 },{
444
445                         .name = name_svideo,
446                         .vmux = 8,
447                         .amux = LINE1,
448                 },{
449                         .name = name_comp1,
450                         .vmux = 3,
451                         .amux = LINE1,
452                 },{
453
454                         .name = "CVid over SVid",
455                         .vmux = 0,
456                         .amux = LINE1,
457                 }},
458                 .radio = {
459                         .name = name_radio,
460                         .amux = LINE2,
461                 },
462         },
463         [SAA7134_BOARD_TVSTATION_DVR] = {
464                 .name           = "KNC One TV-Station DVR",
465                 .audio_clock    = 0x00200000,
466                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
467                 .radio_type     = UNSET,
468                 .tuner_addr     = ADDR_UNSET,
469                 .radio_addr     = ADDR_UNSET,
470                 .empress_addr   = 0x20,
471                 .tda9887_conf   = TDA9887_PRESENT,
472                 .gpiomask       = 0x820000,
473                 .inputs         = {{
474                         .name = name_tv,
475                         .vmux = 1,
476                         .amux = TV,
477                         .tv   = 1,
478                         .gpio = 0x20000,
479                 },{
480                         .name = name_svideo,
481                         .vmux = 8,
482                         .amux = LINE1,
483                         .gpio = 0x20000,
484                 },{
485                         .name = name_comp1,
486                         .vmux = 3,
487                         .amux = LINE1,
488                         .gpio = 0x20000,
489                 }},
490                 .radio          = {
491                         .name = name_radio,
492                         .amux = LINE2,
493                         .gpio = 0x20000,
494                 },
495                 .mpeg           = SAA7134_MPEG_EMPRESS,
496                 .video_out      = CCIR656,
497         },
498         [SAA7134_BOARD_CINERGY400] = {
499                 .name           = "Terratec Cinergy 400 TV",
500                 .audio_clock    = 0x00200000,
501                 .tuner_type     = TUNER_PHILIPS_PAL,
502                 .radio_type     = UNSET,
503                 .tuner_addr     = ADDR_UNSET,
504                 .radio_addr     = ADDR_UNSET,
505                 .inputs         = {{
506                         .name = name_tv,
507                         .vmux = 1,
508                         .amux = TV,
509                         .tv   = 1,
510                 },{
511                         .name = name_comp1,
512                         .vmux = 4,
513                         .amux = LINE1,
514                 },{
515                         .name = name_svideo,
516                         .vmux = 8,
517                         .amux = LINE1,
518                 },{
519                         .name = name_comp2, /* CVideo over SVideo Connector */
520                         .vmux = 0,
521                         .amux = LINE1,
522                 }}
523         },
524         [SAA7134_BOARD_MD5044] = {
525                 .name           = "Medion 5044",
526                 .audio_clock    = 0x00187de7, /* was: 0x00200000, */
527                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
528                 .radio_type     = UNSET,
529                 .tuner_addr     = ADDR_UNSET,
530                 .radio_addr     = ADDR_UNSET,
531                 .tda9887_conf   = TDA9887_PRESENT,
532                 .inputs         = {{
533                         .name = name_tv,
534                         .vmux = 1,
535                         .amux = TV,
536                         .tv   = 1,
537                 },{
538                         /* workaround for problems with normal TV sound */
539                         .name = name_tv_mono,
540                         .vmux = 1,
541                         .amux = LINE2,
542                         .tv   = 1,
543                 },{
544                         .name = name_comp1,
545                         .vmux = 0,
546                         .amux = LINE2,
547                 },{
548                         .name = name_comp2,
549                         .vmux = 3,
550                         .amux = LINE2,
551                 },{
552                         .name = name_svideo,
553                         .vmux = 8,
554                         .amux = LINE2,
555                 }},
556                 .radio = {
557                         .name = name_radio,
558                         .amux = LINE2,
559                 },
560         },
561         [SAA7134_BOARD_KWORLD] = {
562                 .name           = "Kworld/KuroutoShikou SAA7130-TVPCI",
563                 .audio_clock    = 0x00187de7,
564                 .tuner_type     = TUNER_PHILIPS_NTSC_M,
565                 .radio_type     = UNSET,
566                 .tuner_addr     = ADDR_UNSET,
567                 .radio_addr     = ADDR_UNSET,
568                 .inputs         = {{
569                         .name = name_svideo,
570                         .vmux = 8,
571                         .amux = LINE1,
572                 },{
573                         .name = name_comp1,
574                         .vmux = 3,
575                         .amux = LINE1,
576                 },{
577                         .name = name_tv,
578                         .vmux = 1,
579                         .amux = LINE2,
580                         .tv   = 1,
581                 }},
582         },
583         [SAA7134_BOARD_CINERGY600] = {
584                 .name           = "Terratec Cinergy 600 TV",
585                 .audio_clock    = 0x00200000,
586                 .tuner_type     = TUNER_PHILIPS_PAL,
587                 .radio_type     = UNSET,
588                 .tuner_addr     = ADDR_UNSET,
589                 .radio_addr     = ADDR_UNSET,
590                 .tda9887_conf   = TDA9887_PRESENT,
591                 .inputs         = {{
592                         .name = name_tv,
593                         .vmux = 1,
594                         .amux = TV,
595                         .tv   = 1,
596                 },{
597                         .name = name_comp1,
598                         .vmux = 4,
599                         .amux = LINE1,
600                 },{
601                         .name = name_svideo,
602                         .vmux = 8,
603                         .amux = LINE1,
604                 },{
605                         .name = name_comp2, /* CVideo over SVideo Connector */
606                         .vmux = 0,
607                         .amux = LINE1,
608                 }},
609                 .radio = {
610                         .name = name_radio,
611                         .amux = LINE2,
612                 },
613         },
614         [SAA7134_BOARD_MD7134] = {
615                 .name           = "Medion 7134",
616                 .audio_clock    = 0x00187de7,
617                 .tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
618                 .radio_type     = UNSET,
619                 .tuner_addr     = ADDR_UNSET,
620                 .radio_addr     = ADDR_UNSET,
621                 .tda9887_conf   = TDA9887_PRESENT,
622                 .mpeg           = SAA7134_MPEG_DVB,
623                 .inputs = {{
624                         .name   = name_tv,
625                         .vmux   = 1,
626                         .amux   = TV,
627                         .tv     = 1,
628                 },{
629                         .name   = name_comp1,
630                         .vmux   = 0,
631                         .amux   = LINE1,
632                 },{
633                         .name   = name_svideo,
634                         .vmux   = 8,
635                         .amux   = LINE1,
636                 }},
637                 .radio = {
638                         .name   = name_radio,
639                         .amux   = LINE2,
640                },
641                .mute = {
642                        .name = name_mute,
643                        .amux = TV,
644                 },
645         },
646         [SAA7134_BOARD_TYPHOON_90031] = {
647                 /* aka Typhoon "TV+Radio", Art.Nr 90031 */
648                 /* Tom Zoerner <tomzo at users sourceforge net> */
649                 .name           = "Typhoon TV+Radio 90031",
650                 .audio_clock    = 0x00200000,
651                 .tuner_type     = TUNER_PHILIPS_PAL,
652                 .radio_type     = UNSET,
653                 .tuner_addr     = ADDR_UNSET,
654                 .radio_addr     = ADDR_UNSET,
655                 .tda9887_conf   = TDA9887_PRESENT,
656                 .inputs         = {{
657                         .name   = name_tv,
658                         .vmux   = 1,
659                         .amux   = TV,
660                         .tv     = 1,
661                 },{
662                         .name   = name_comp1,
663                         .vmux   = 3,
664                         .amux   = LINE1,
665                 },{
666                         .name   = name_svideo,
667                         .vmux   = 8,
668                         .amux   = LINE1,
669                 }},
670                 .radio = {
671                         .name   = name_radio,
672                         .amux   = LINE2,
673                 },
674         },
675         [SAA7134_BOARD_ELSA] = {
676                 .name           = "ELSA EX-VISION 300TV",
677                 .audio_clock    = 0x00187de7,
678                 .tuner_type     = TUNER_HITACHI_NTSC,
679                 .radio_type     = UNSET,
680                 .tuner_addr     = ADDR_UNSET,
681                 .radio_addr     = ADDR_UNSET,
682                 .inputs         = {{
683                         .name = name_svideo,
684                         .vmux = 8,
685                         .amux = LINE1,
686                 },{
687                         .name   = name_comp1,
688                         .vmux   = 0,
689                         .amux   = LINE1,
690                 },{
691                         .name = name_tv,
692                         .vmux = 4,
693                         .amux = LINE2,
694                         .tv   = 1,
695                 }},
696         },
697         [SAA7134_BOARD_ELSA_500TV] = {
698                 .name           = "ELSA EX-VISION 500TV",
699                 .audio_clock    = 0x00187de7,
700                 .tuner_type     = TUNER_HITACHI_NTSC,
701                 .radio_type     = UNSET,
702                 .tuner_addr     = ADDR_UNSET,
703                 .radio_addr     = ADDR_UNSET,
704                 .inputs         = {{
705                         .name = name_svideo,
706                         .vmux = 7,
707                         .amux = LINE1,
708                 },{
709                         .name = name_tv,
710                         .vmux = 8,
711                         .amux = TV,
712                         .tv   = 1,
713                 },{
714                         .name = name_tv_mono,
715                         .vmux = 8,
716                         .amux = LINE2,
717                         .tv   = 1,
718                 }},
719         },
720         [SAA7134_BOARD_ELSA_700TV] = {
721                 .name           = "ELSA EX-VISION 700TV",
722                 .audio_clock    = 0x00187de7,
723                 .tuner_type     = TUNER_HITACHI_NTSC,
724                 .radio_type     = UNSET,
725                 .tuner_addr     = ADDR_UNSET,
726                 .radio_addr     = ADDR_UNSET,
727                 .inputs         = {{
728                         .name = name_tv,
729                         .vmux = 4,
730                         .amux = LINE2,
731                         .tv   = 1,
732                 },{
733                         .name = name_comp1,
734                         .vmux = 6,
735                         .amux = LINE1,
736                 },{
737                         .name = name_svideo,
738                         .vmux = 7,
739                         .amux = LINE1,
740                 }},
741                 .mute           = {
742                         .name = name_mute,
743                         .amux = TV,
744                 },
745         },
746         [SAA7134_BOARD_ASUSTeK_TVFM7134] = {
747                 .name           = "ASUS TV-FM 7134",
748                 .audio_clock    = 0x00187de7,
749                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
750                 .radio_type     = UNSET,
751                 .tuner_addr     = ADDR_UNSET,
752                 .radio_addr     = ADDR_UNSET,
753                 .tda9887_conf   = TDA9887_PRESENT,
754                 .inputs         = {{
755                         .name = name_tv,
756                         .vmux = 1,
757                         .amux = TV,
758                         .tv   = 1,
759                 },{
760                         .name = name_comp1,
761                         .vmux = 4,
762                         .amux = LINE2,
763                 },{
764                         .name = name_svideo,
765                         .vmux = 6,
766                         .amux = LINE2,
767                 }},
768                 .radio = {
769                         .name = name_radio,
770                         .amux = LINE1,
771                 },
772         },
773         [SAA7134_BOARD_ASUSTeK_TVFM7135] = {
774                 .name           = "ASUS TV-FM 7135",
775                 .audio_clock    = 0x00187de7,
776                 .tuner_type     = TUNER_PHILIPS_TDA8290,
777                 .radio_type     = UNSET,
778                 .tuner_addr     = ADDR_UNSET,
779                 .radio_addr     = ADDR_UNSET,
780                 .gpiomask       = 0x200000,
781                 .inputs         = {{
782                         .name = name_tv,
783                         .vmux = 1,
784                         .amux = TV,
785                         .gpio = 0x0000,
786                         .tv   = 1,
787                 },{
788                         .name = name_comp1,
789                         .vmux = 4,
790                         .amux = LINE2,
791                         .gpio = 0x0000,
792                 },{
793                         .name = name_svideo,
794                         .vmux = 6,
795                         .amux = LINE2,
796                         .gpio = 0x0000,
797                 }},
798                 .radio = {
799                         .name = name_radio,
800                         .amux = TV,
801                         .gpio = 0x200000,
802                 },
803                 .mute  = {
804                         .name = name_mute,
805                         .gpio = 0x0000,
806                 },
807
808         },
809         [SAA7134_BOARD_VA1000POWER] = {
810                 .name           = "AOPEN VA1000 POWER",
811                 .audio_clock    = 0x00187de7,
812                 .tuner_type     = TUNER_PHILIPS_NTSC,
813                 .radio_type     = UNSET,
814                 .tuner_addr     = ADDR_UNSET,
815                 .radio_addr     = ADDR_UNSET,
816                 .inputs         = {{
817                         .name = name_svideo,
818                         .vmux = 8,
819                         .amux = LINE1,
820                 },{
821                         .name = name_comp1,
822                         .vmux = 3,
823                         .amux = LINE1,
824                 },{
825                         .name = name_tv,
826                         .vmux = 1,
827                         .amux = LINE2,
828                         .tv   = 1,
829                 }},
830         },
831         [SAA7134_BOARD_10MOONSTVMASTER] = {
832                 /* "lilicheng" <llc@linuxfans.org> */
833                 .name           = "10MOONS PCI TV CAPTURE CARD",
834                 .audio_clock    = 0x00200000,
835                 .tuner_type     = TUNER_LG_PAL_NEW_TAPC,
836                 .radio_type     = UNSET,
837                 .tuner_addr     = ADDR_UNSET,
838                 .radio_addr     = ADDR_UNSET,
839                 .gpiomask       = 0xe000,
840                 .inputs         = {{
841                         .name = name_tv,
842                         .vmux = 1,
843                         .amux = LINE2,
844                         .gpio = 0x0000,
845                         .tv   = 1,
846                 },{
847                         .name = name_comp1,
848                         .vmux = 0,
849                         .amux = LINE2,
850                         .gpio = 0x4000,
851                 },{
852                         .name = name_comp2,
853                         .vmux = 3,
854                         .amux = LINE2,
855                         .gpio = 0x4000,
856                 },{
857                         .name = name_svideo,
858                         .vmux = 8,
859                         .amux = LINE2,
860                         .gpio = 0x4000,
861                 }},
862                 .radio = {
863                         .name = name_radio,
864                         .amux = LINE2,
865                         .gpio = 0x2000,
866                 },
867                 .mute = {
868                         .name = name_mute,
869                         .amux = LINE2,
870                         .gpio = 0x8000,
871                 },
872         },
873         [SAA7134_BOARD_BMK_MPEX_NOTUNER] = {
874                 /* "Andrew de Quincey" <adq@lidskialf.net> */
875                 .name           = "BMK MPEX No Tuner",
876                 .audio_clock    = 0x200000,
877                 .tuner_type     = TUNER_ABSENT,
878                 .radio_type     = UNSET,
879                 .tuner_addr     = ADDR_UNSET,
880                 .radio_addr     = ADDR_UNSET,
881                 .empress_addr   = 0x20,
882                 .inputs         = {{
883                         .name = name_comp1,
884                         .vmux = 4,
885                         .amux = LINE1,
886                 },{
887                         .name = name_comp2,
888                         .vmux = 3,
889                         .amux = LINE1,
890                 },{
891                         .name = name_comp3,
892                         .vmux = 0,
893                         .amux = LINE1,
894                 },{
895                         .name = name_comp4,
896                         .vmux = 1,
897                         .amux = LINE1,
898                 },{
899                         .name = name_svideo,
900                         .vmux = 8,
901                         .amux = LINE1,
902                 }},
903                 .mpeg      = SAA7134_MPEG_EMPRESS,
904                 .video_out = CCIR656,
905         },
906         [SAA7134_BOARD_VIDEOMATE_TV] = {
907                 .name           = "Compro VideoMate TV",
908                 .audio_clock    = 0x00187de7,
909                 .tuner_type     = TUNER_PHILIPS_NTSC_M,
910                 .radio_type     = UNSET,
911                 .tuner_addr     = ADDR_UNSET,
912                 .radio_addr     = ADDR_UNSET,
913                 .inputs         = {{
914                         .name = name_svideo,
915                         .vmux = 8,
916                         .amux = LINE1,
917                 },{
918                         .name = name_comp1,
919                         .vmux = 3,
920                         .amux = LINE1,
921                 },{
922                         .name = name_tv,
923                         .vmux = 1,
924                         .amux = LINE2,
925                         .tv   = 1,
926                 }},
927         },
928         [SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS] = {
929                 .name           = "Compro VideoMate TV Gold+",
930                 .audio_clock    = 0x00187de7,
931                 .tuner_type     = TUNER_PHILIPS_NTSC_M,
932                 .gpiomask       = 0x800c0000,
933                 .radio_type     = UNSET,
934                 .tuner_addr     = ADDR_UNSET,
935                 .radio_addr     = ADDR_UNSET,
936                 .inputs         = {{
937                         .name = name_svideo,
938                         .vmux = 8,
939                         .amux = LINE1,
940                         .gpio = 0x06c00012,
941                 },{
942                         .name = name_comp1,
943                         .vmux = 3,
944                         .amux = LINE1,
945                         .gpio = 0x0ac20012,
946                 },{
947                         .name = name_tv,
948                         .vmux = 1,
949                         .amux = LINE2,
950                         .gpio = 0x08c20012,
951                         .tv   = 1,
952                 }},                             /* radio and probably mute is missing */
953         },
954         [SAA7134_BOARD_CRONOS_PLUS] = {
955                 /*
956                 gpio pins:
957                         0  .. 3   BASE_ID
958                         4  .. 7   PROTECT_ID
959                         8  .. 11  USER_OUT
960                         12 .. 13  USER_IN
961                         14 .. 15  VIDIN_SEL
962                 */
963                 .name           = "Matrox CronosPlus",
964                 .tuner_type     = TUNER_ABSENT,
965                 .radio_type     = UNSET,
966                 .tuner_addr     = ADDR_UNSET,
967                 .radio_addr     = ADDR_UNSET,
968                 .gpiomask       = 0xcf00,
969                 .inputs         = {{
970                         .name = name_comp1,
971                         .vmux = 0,
972                         .gpio = 2 << 14,
973                 },{
974                         .name = name_comp2,
975                         .vmux = 0,
976                         .gpio = 1 << 14,
977                 },{
978                         .name = name_comp3,
979                         .vmux = 0,
980                         .gpio = 0 << 14,
981                 },{
982                         .name = name_comp4,
983                         .vmux = 0,
984                         .gpio = 3 << 14,
985                 },{
986                         .name = name_svideo,
987                         .vmux = 8,
988                         .gpio = 2 << 14,
989                 }},
990         },
991         [SAA7134_BOARD_MD2819] = {
992                 .name           = "AverMedia M156 / Medion 2819",
993                 .audio_clock    = 0x00187de7,
994                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
995                 .radio_type     = UNSET,
996                 .tuner_addr     = ADDR_UNSET,
997                 .radio_addr     = ADDR_UNSET,
998                 .tda9887_conf   = TDA9887_PRESENT,
999                 .gpiomask       = 0x03,
1000                 .inputs         = {{
1001                         .name = name_tv,
1002                         .vmux = 1,
1003                         .amux = TV,
1004                         .tv   = 1,
1005                         .gpio = 0x00,
1006                 }, {
1007                         .name = name_comp1,
1008                         .vmux = 3,
1009                         .amux = LINE1,
1010                         .gpio = 0x02,
1011                 }, {
1012                         .name = name_comp2,
1013                         .vmux = 0,
1014                         .amux = LINE1,
1015                         .gpio = 0x02,
1016                 }, {
1017                         .name = name_svideo,
1018                         .vmux = 8,
1019                         .amux = LINE1,
1020                         .gpio = 0x02,
1021                 } },
1022                 .radio = {
1023                         .name = name_radio,
1024                         .amux = LINE1,
1025                         .gpio = 0x01,
1026                 },
1027                 .mute  = {
1028                         .name = name_mute,
1029                         .amux = TV,
1030                         .gpio = 0x00,
1031                 },
1032         },
1033         [SAA7134_BOARD_BMK_MPEX_TUNER] = {
1034                 /* "Greg Wickham <greg.wickham@grangenet.net> */
1035                 .name           = "BMK MPEX Tuner",
1036                 .audio_clock    = 0x200000,
1037                 .tuner_type     = TUNER_PHILIPS_PAL,
1038                 .radio_type     = UNSET,
1039                 .tuner_addr     = ADDR_UNSET,
1040                 .radio_addr     = ADDR_UNSET,
1041                 .empress_addr   = 0x20,
1042                 .inputs         = {{
1043                         .name = name_comp1,
1044                         .vmux = 1,
1045                         .amux = LINE1,
1046                 },{
1047                         .name = name_svideo,
1048                         .vmux = 8,
1049                         .amux = LINE1,
1050                 },{
1051                         .name = name_tv,
1052                         .vmux = 3,
1053                         .amux = TV,
1054                         .tv   = 1,
1055                 }},
1056                 .mpeg      = SAA7134_MPEG_EMPRESS,
1057                 .video_out = CCIR656,
1058         },
1059         [SAA7134_BOARD_ASUSTEK_TVFM7133] = {
1060                 .name           = "ASUS TV-FM 7133",
1061                 .audio_clock    = 0x00187de7,
1062                 /* probably wrong, the 7133 one is the NTSC version ...
1063                 * .tuner_type  = TUNER_PHILIPS_FM1236_MK3 */
1064                 .tuner_type     = TUNER_LG_NTSC_NEW_TAPC,
1065                 .radio_type     = UNSET,
1066                 .tuner_addr     = ADDR_UNSET,
1067                 .radio_addr     = ADDR_UNSET,
1068                 .tda9887_conf   = TDA9887_PRESENT,
1069                 .inputs         = {{
1070                         .name = name_tv,
1071                         .vmux = 1,
1072                         .amux = TV,
1073                         .tv   = 1,
1074
1075                 },{
1076                         .name = name_comp1,
1077                         .vmux = 4,
1078                         .amux = LINE2,
1079                 },{
1080                         .name = name_svideo,
1081                         .vmux = 6,
1082                         .amux = LINE2,
1083                 }},
1084                 .radio = {
1085                         .name = name_radio,
1086                         .amux = LINE1,
1087                 },
1088         },
1089         [SAA7134_BOARD_PINNACLE_PCTV_STEREO] = {
1090                 .name           = "Pinnacle PCTV Stereo (saa7134)",
1091                 .audio_clock    = 0x00187de7,
1092                 .tuner_type     = TUNER_MT2032,
1093                 .radio_type     = UNSET,
1094                 .tuner_addr     = ADDR_UNSET,
1095                 .radio_addr     = ADDR_UNSET,
1096                 .tda9887_conf   = TDA9887_PRESENT | TDA9887_INTERCARRIER | TDA9887_PORT2_INACTIVE,
1097                 .inputs         = {{
1098                         .name = name_tv,
1099                         .vmux = 3,
1100                         .amux = TV,
1101                         .tv   = 1,
1102                 },{
1103                         .name = name_comp1,
1104                         .vmux = 0,
1105                         .amux = LINE2,
1106                 },{
1107                         .name = name_comp2,
1108                         .vmux = 1,
1109                         .amux = LINE2,
1110                 },{
1111                         .name = name_svideo,
1112                         .vmux = 8,
1113                         .amux = LINE2,
1114                 }},
1115         },
1116         [SAA7134_BOARD_MANLI_MTV002] = {
1117                 /* Ognjen Nastic <ognjen@logosoft.ba> */
1118                 .name           = "Manli MuchTV M-TV002",
1119                 .audio_clock    = 0x00200000,
1120                 .tuner_type     = TUNER_PHILIPS_PAL,
1121                 .radio_type     = UNSET,
1122                 .tuner_addr     = ADDR_UNSET,
1123                 .radio_addr     = ADDR_UNSET,
1124                 .inputs         = {{
1125                         .name = name_svideo,
1126                         .vmux = 8,
1127                         .amux = LINE1,
1128                 },{
1129                         .name   = name_comp1,
1130                         .vmux   = 1,
1131                         .amux   = LINE1,
1132                 },{
1133                         .name = name_tv,
1134                         .vmux = 3,
1135                         .amux = LINE2,
1136                         .tv   = 1,
1137                 }},
1138                 .radio = {
1139                         .name = name_radio,
1140                         .amux = LINE2,
1141                 },
1142         },
1143         [SAA7134_BOARD_MANLI_MTV001] = {
1144                 /* Ognjen Nastic <ognjen@logosoft.ba> UNTESTED */
1145                 .name           = "Manli MuchTV M-TV001",
1146                 .audio_clock    = 0x00200000,
1147                 .tuner_type     = TUNER_PHILIPS_PAL,
1148                 .radio_type     = UNSET,
1149                 .tuner_addr     = ADDR_UNSET,
1150                 .radio_addr     = ADDR_UNSET,
1151                 .inputs         = {{
1152                         .name = name_svideo,
1153                         .vmux = 8,
1154                         .amux = LINE1,
1155                 },{
1156                         .name = name_comp1,
1157                         .vmux = 1,
1158                         .amux = LINE1,
1159                 },{
1160                         .name = name_tv,
1161                         .vmux = 3,
1162                         .amux = LINE2,
1163                         .tv   = 1,
1164                 }},
1165                 .mute = {
1166                         .name = name_mute,
1167                         .amux = LINE1,
1168                 },
1169         },
1170         [SAA7134_BOARD_TG3000TV] = {
1171                 /* TransGear 3000TV */
1172                 .name           = "Nagase Sangyo TransGear 3000TV",
1173                 .audio_clock    = 0x00187de7,
1174                 .tuner_type     = TUNER_PHILIPS_NTSC_M,
1175                 .radio_type     = UNSET,
1176                 .tuner_addr     = ADDR_UNSET,
1177                 .radio_addr     = ADDR_UNSET,
1178                 .inputs         = {{
1179                         .name = name_tv,
1180                         .vmux = 1,
1181                         .amux = LINE2,
1182                         .tv   = 1,
1183                 },{
1184                         .name = name_comp1,
1185                         .vmux = 3,
1186                         .amux = LINE2,
1187                 },{
1188                         .name = name_svideo,
1189                         .vmux = 8,
1190                         .amux = LINE2,
1191                 }},
1192         },
1193         [SAA7134_BOARD_ECS_TVP3XP] = {
1194                 .name           = "Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM) ",
1195                 .audio_clock    = 0x187de7,  /* xtal 32.1 MHz */
1196                 .tuner_type     = TUNER_PHILIPS_PAL,
1197                 .radio_type     = UNSET,
1198                 .tuner_addr     = ADDR_UNSET,
1199                 .radio_addr     = ADDR_UNSET,
1200                 .inputs         = {{
1201                         .name   = name_tv,
1202                         .vmux   = 1,
1203                         .amux   = TV,
1204                         .tv     = 1,
1205                 },{
1206                         .name   = name_tv_mono,
1207                         .vmux   = 1,
1208                         .amux   = LINE2,
1209                         .tv     = 1,
1210                 },{
1211                         .name   = name_comp1,
1212                         .vmux   = 3,
1213                         .amux   = LINE1,
1214                 },{
1215                         .name   = name_svideo,
1216                         .vmux   = 8,
1217                         .amux   = LINE1,
1218                 },{
1219                         .name   = "CVid over SVid",
1220                         .vmux   = 0,
1221                         .amux   = LINE1,
1222                 }},
1223                 .radio = {
1224                         .name   = name_radio,
1225                         .amux   = LINE2,
1226                 },
1227         },
1228         [SAA7134_BOARD_ECS_TVP3XP_4CB5] = {
1229                 .name           = "Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM)",
1230                 .audio_clock    = 0x187de7,
1231                 .tuner_type     = TUNER_PHILIPS_NTSC,
1232                 .radio_type     = UNSET,
1233                 .tuner_addr     = ADDR_UNSET,
1234                 .radio_addr     = ADDR_UNSET,
1235                 .inputs         = {{
1236                         .name   = name_tv,
1237                         .vmux   = 1,
1238                         .amux   = TV,
1239                         .tv     = 1,
1240                 },{
1241                         .name   = name_tv_mono,
1242                         .vmux   = 1,
1243                         .amux   = LINE2,
1244                         .tv     = 1,
1245                 },{
1246                         .name   = name_comp1,
1247                         .vmux   = 3,
1248                         .amux   = LINE1,
1249                 },{
1250                         .name   = name_svideo,
1251                         .vmux   = 8,
1252                         .amux   = LINE1,
1253                 },{
1254                         .name   = "CVid over SVid",
1255                         .vmux   = 0,
1256                         .amux   = LINE1,
1257                 }},
1258                 .radio = {
1259                         .name   = name_radio,
1260                         .amux   = LINE2,
1261                 },
1262         },
1263     [SAA7134_BOARD_ECS_TVP3XP_4CB6] = {
1264                 /* Barry Scott <barry.scott@onelan.co.uk> */
1265                 .name           = "Elitegroup ECS TVP3XP FM1246 Tuner Card (PAL,FM)",
1266                 .audio_clock    = 0x187de7,
1267                 .tuner_type     = TUNER_PHILIPS_PAL_I,
1268                 .radio_type     = UNSET,
1269                 .tuner_addr     = ADDR_UNSET,
1270                 .radio_addr     = ADDR_UNSET,
1271                 .inputs         = {{
1272                         .name   = name_tv,
1273                         .vmux   = 1,
1274                         .amux   = TV,
1275                         .tv     = 1,
1276                 },{
1277                         .name   = name_tv_mono,
1278                         .vmux   = 1,
1279                         .amux   = LINE2,
1280                         .tv     = 1,
1281                 },{
1282                         .name   = name_comp1,
1283                         .vmux   = 3,
1284                         .amux   = LINE1,
1285                 },{
1286                         .name   = name_svideo,
1287                         .vmux   = 8,
1288                         .amux   = LINE1,
1289                 },{
1290                         .name   = "CVid over SVid",
1291                         .vmux   = 0,
1292                         .amux   = LINE1,
1293                 }},
1294                 .radio = {
1295                         .name   = name_radio,
1296                         .amux   = LINE2,
1297                 },
1298         },
1299         [SAA7134_BOARD_AVACSSMARTTV] = {
1300                 /* Roman Pszonczenko <romka@kolos.math.uni.lodz.pl> */
1301                 .name           = "AVACS SmartTV",
1302                 .audio_clock    = 0x00187de7,
1303                 .tuner_type     = TUNER_PHILIPS_PAL,
1304                 .radio_type     = UNSET,
1305                 .tuner_addr     = ADDR_UNSET,
1306                 .radio_addr     = ADDR_UNSET,
1307                 .inputs         = {{
1308                         .name = name_tv,
1309                         .vmux = 1,
1310                         .amux = TV,
1311                         .tv   = 1,
1312                 },{
1313                         .name = name_tv_mono,
1314                         .vmux = 1,
1315                         .amux = LINE2,
1316                         .tv   = 1,
1317                 },{
1318                         .name = name_comp1,
1319                         .vmux = 0,
1320                         .amux = LINE2,
1321                 },{
1322                         .name = name_comp2,
1323                         .vmux = 3,
1324                         .amux = LINE2,
1325                 },{
1326                         .name = name_svideo,
1327                         .vmux = 8,
1328                         .amux = LINE2,
1329                 }},
1330                 .radio = {
1331                         .name = name_radio,
1332                         .amux = LINE2,
1333                         .gpio = 0x200000,
1334                 },
1335         },
1336         [SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER] = {
1337                 /* Michael Smith <msmith@cbnco.com> */
1338                 .name           = "AVerMedia DVD EZMaker",
1339                 .audio_clock    = 0x00187de7,
1340                 .tuner_type     = TUNER_ABSENT,
1341                 .radio_type     = UNSET,
1342                 .tuner_addr     = ADDR_UNSET,
1343                 .radio_addr     = ADDR_UNSET,
1344                 .inputs         = {{
1345                         .name = name_comp1,
1346                         .vmux = 3,
1347                 },{
1348                         .name = name_svideo,
1349                         .vmux = 8,
1350                 }},
1351         },
1352         [SAA7134_BOARD_AVERMEDIA_M103] = {
1353                 /* Massimo Piccioni <dafastidio@libero.it> */
1354                 .name           = "AVerMedia MiniPCI DVB-T Hybrid M103",
1355                 .audio_clock    = 0x187de7,
1356                 .tuner_type     = TUNER_XC2028,
1357                 .radio_type     = UNSET,
1358                 .tuner_addr     = ADDR_UNSET,
1359                 .radio_addr     = ADDR_UNSET,
1360                  .mpeg           = SAA7134_MPEG_DVB,
1361                  .inputs         = {{
1362                          .name = name_tv,
1363                          .vmux = 1,
1364                          .amux = TV,
1365                          .tv   = 1,
1366                  } },
1367         },
1368         [SAA7134_BOARD_NOVAC_PRIMETV7133] = {
1369                 /* toshii@netbsd.org */
1370                 .name           = "Noval Prime TV 7133",
1371                 .audio_clock    = 0x00200000,
1372                 .tuner_type     = TUNER_ALPS_TSBH1_NTSC,
1373                 .radio_type     = UNSET,
1374                 .tuner_addr     = ADDR_UNSET,
1375                 .radio_addr     = ADDR_UNSET,
1376                 .inputs         = {{
1377                         .name = name_comp1,
1378                         .vmux = 3,
1379                 },{
1380                         .name = name_tv,
1381                         .vmux = 1,
1382                         .amux = TV,
1383                         .tv   = 1,
1384                 },{
1385                         .name = name_svideo,
1386                         .vmux = 8,
1387                 }},
1388         },
1389         [SAA7134_BOARD_AVERMEDIA_STUDIO_305] = {
1390                 .name           = "AverMedia AverTV Studio 305",
1391                 .audio_clock    = 0x00187de7,
1392                 .tuner_type     = TUNER_PHILIPS_FM1256_IH3,
1393                 .radio_type     = UNSET,
1394                 .tuner_addr     = ADDR_UNSET,
1395                 .radio_addr     = ADDR_UNSET,
1396                 .tda9887_conf   = TDA9887_PRESENT,
1397                 .inputs         = {{
1398                         .name = name_tv,
1399                         .vmux = 1,
1400                         .amux = LINE2,
1401                         .tv   = 1,
1402                 },{
1403                         .name = name_comp1,
1404                         .vmux = 0,
1405                         .amux = LINE2,
1406                 },{
1407                         .name = name_comp2,
1408                         .vmux = 3,
1409                         .amux = LINE2,
1410                 },{
1411                         .name = name_svideo,
1412                         .vmux = 8,
1413                         .amux = LINE2,
1414                 }},
1415                 .radio = {
1416                         .name = name_radio,
1417                         .amux = LINE2,
1418                 },
1419                 .mute = {
1420                         .name = name_mute,
1421                         .amux = LINE1,
1422                 },
1423         },
1424         [SAA7134_BOARD_AVERMEDIA_STUDIO_505] = {
1425                 /* Vasiliy Temnikov <vaka@newmail.ru> */
1426                 .name           = "AverMedia AverTV Studio 505",
1427                 .audio_clock    = 0x00187de7,
1428                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
1429                 .radio_type     = UNSET,
1430                 .tuner_addr     = ADDR_UNSET,
1431                 .radio_addr     = ADDR_UNSET,
1432                 .tda9887_conf   = TDA9887_PRESENT,
1433                 .inputs         = { {
1434                         .name = name_tv,
1435                         .vmux = 1,
1436                         .amux = LINE2,
1437                         .tv   = 1,
1438                 }, {
1439                         .name = name_comp1,
1440                         .vmux = 0,
1441                         .amux = LINE2,
1442                 }, {
1443                         .name = name_comp2,
1444                         .vmux = 3,
1445                         .amux = LINE2,
1446                 },{
1447                         .name = name_svideo,
1448                         .vmux = 8,
1449                         .amux = LINE2,
1450                 } },
1451                 .radio = {
1452                         .name = name_radio,
1453                         .amux = LINE2,
1454                 },
1455                 .mute = {
1456                         .name = name_mute,
1457                         .amux = LINE1,
1458                 },
1459         },
1460         [SAA7134_BOARD_UPMOST_PURPLE_TV] = {
1461                 .name           = "UPMOST PURPLE TV",
1462                 .audio_clock    = 0x00187de7,
1463                 .tuner_type     = TUNER_PHILIPS_FM1236_MK3,
1464                 .radio_type     = UNSET,
1465                 .tuner_addr     = ADDR_UNSET,
1466                 .radio_addr     = ADDR_UNSET,
1467                 .tda9887_conf   = TDA9887_PRESENT,
1468                 .inputs         = {{
1469                         .name = name_tv,
1470                         .vmux = 7,
1471                         .amux = TV,
1472                         .tv   = 1,
1473                 },{
1474                         .name = name_svideo,
1475                         .vmux = 7,
1476                         .amux = LINE1,
1477                 }},
1478         },
1479         [SAA7134_BOARD_ITEMS_MTV005] = {
1480                 /* Norman Jonas <normanjonas@arcor.de> */
1481                 .name           = "Items MuchTV Plus / IT-005",
1482                 .audio_clock    = 0x00187de7,
1483                 .tuner_type     = TUNER_PHILIPS_PAL,
1484                 .radio_type     = UNSET,
1485                 .tuner_addr     = ADDR_UNSET,
1486                 .radio_addr     = ADDR_UNSET,
1487                 .inputs         = {{
1488                         .name = name_tv,
1489                         .vmux = 3,
1490                         .amux = TV,
1491                         .tv   = 1,
1492                 },{
1493                         .name   = name_comp1,
1494                         .vmux   = 1,
1495                         .amux   = LINE1,
1496                 },{
1497                         .name = name_svideo,
1498                         .vmux = 8,
1499                         .amux = LINE1,
1500                 }},
1501                 .radio = {
1502                         .name = name_radio,
1503                         .amux = LINE2,
1504                 },
1505         },
1506         [SAA7134_BOARD_CINERGY200] = {
1507                 .name           = "Terratec Cinergy 200 TV",
1508                 .audio_clock    = 0x00200000,
1509                 .tuner_type     = TUNER_PHILIPS_PAL,
1510                 .radio_type     = UNSET,
1511                 .tuner_addr     = ADDR_UNSET,
1512                 .radio_addr     = ADDR_UNSET,
1513                 .inputs         = {{
1514                         .name = name_tv,
1515                         .vmux = 1,
1516                         .amux = LINE2,
1517                         .tv   = 1,
1518                 },{
1519                         .name = name_comp1,
1520                         .vmux = 4,
1521                         .amux = LINE1,
1522                 },{
1523                         .name = name_svideo,
1524                         .vmux = 8,
1525                         .amux = LINE1,
1526                 },{
1527                         .name = name_comp2, /* CVideo over SVideo Connector */
1528                         .vmux = 0,
1529                         .amux = LINE1,
1530                 }},
1531                 .mute = {
1532                         .name = name_mute,
1533                         .amux = LINE2,
1534                 },
1535         },
1536         [SAA7134_BOARD_VIDEOMATE_TV_PVR] = {
1537                 /* Alain St-Denis <alain@topaze.homeip.net> */
1538                 .name           = "Compro VideoMate TV PVR/FM",
1539                 .audio_clock    = 0x00187de7,
1540                 .tuner_type     = TUNER_PHILIPS_NTSC_M,
1541                 .radio_type     = UNSET,
1542                 .tuner_addr     = ADDR_UNSET,
1543                 .radio_addr     = ADDR_UNSET,
1544                 .gpiomask       = 0x808c0080,
1545                 .inputs         = {{
1546                         .name = name_svideo,
1547                         .vmux = 8,
1548                         .amux = LINE1,
1549                         .gpio = 0x00080,
1550                 },{
1551                         .name = name_comp1,
1552                         .vmux = 3,
1553                         .amux = LINE1,
1554                         .gpio = 0x00080,
1555                 },{
1556                         .name = name_tv,
1557                         .vmux = 1,
1558                         .amux = LINE2_LEFT,
1559                         .tv   = 1,
1560                         .gpio = 0x00080,
1561                 }},
1562                 .radio = {
1563                         .name = name_radio,
1564                         .amux = LINE2,
1565                         .gpio = 0x80000,
1566                 },
1567                 .mute = {
1568                         .name = name_mute,
1569                         .amux = LINE2,
1570                         .gpio = 0x40000,
1571                 },
1572         },
1573         [SAA7134_BOARD_SABRENT_SBTTVFM] = {
1574                 /* Michael Rodriguez-Torrent <mrtorrent@asu.edu> */
1575                 .name           = "Sabrent SBT-TVFM (saa7130)",
1576                 .audio_clock    = 0x00187de7,
1577                 .tuner_type     = TUNER_PHILIPS_NTSC_M,
1578                 .radio_type     = UNSET,
1579                 .tuner_addr     = ADDR_UNSET,
1580                 .radio_addr     = ADDR_UNSET,
1581                 .inputs         = {{
1582                         .name = name_comp1,
1583                         .vmux = 1,
1584                         .amux = LINE1,
1585                 },{
1586                         .name = name_tv,
1587                         .vmux = 3,
1588                         .amux = LINE2,
1589                         .tv   = 1,
1590                 },{
1591                         .name = name_svideo,
1592                         .vmux = 8,
1593                         .amux = LINE1,
1594                 }},
1595                 .radio = {
1596                         .name   = name_radio,
1597                         .amux   = LINE2,
1598                 },
1599         },
1600         [SAA7134_BOARD_ZOLID_XPERT_TV7134] = {
1601                 /* Helge Jensen <helge.jensen@slog.dk> */
1602                 .name           = ":Zolid Xpert TV7134",
1603                 .audio_clock    = 0x00187de7,
1604                 .tuner_type     = TUNER_PHILIPS_NTSC,
1605                 .radio_type     = UNSET,
1606                 .tuner_addr     = ADDR_UNSET,
1607                 .radio_addr     = ADDR_UNSET,
1608                 .inputs         = {{
1609                         .name = name_svideo,
1610                         .vmux = 8,
1611                         .amux = LINE1,
1612                 },{
1613                         .name = name_comp1,
1614                         .vmux = 3,
1615                         .amux = LINE1,
1616                 },{
1617                         .name = name_tv,
1618                         .vmux = 1,
1619                         .amux = LINE2,
1620                         .tv   = 1,
1621                 }},
1622         },
1623         [SAA7134_BOARD_EMPIRE_PCI_TV_RADIO_LE] = {
1624                 /* "Matteo Az" <matte.az@nospam.libero.it> ;-) */
1625                 .name           = "Empire PCI TV-Radio LE",
1626                 .audio_clock    = 0x00187de7,
1627                 .tuner_type     = TUNER_PHILIPS_PAL,
1628                 .radio_type     = UNSET,
1629                 .tuner_addr     = ADDR_UNSET,
1630                 .radio_addr     = ADDR_UNSET,
1631                 .gpiomask       = 0x4000,
1632                 .inputs         = {{
1633                         .name = name_tv_mono,
1634                         .vmux = 1,
1635                         .amux = LINE2,
1636                         .gpio = 0x8000,
1637                         .tv   = 1,
1638                 },{
1639                         .name = name_comp1,
1640                         .vmux = 3,
1641                         .amux = LINE1,
1642                         .gpio = 0x8000,
1643                 },{
1644                         .name = name_svideo,
1645                         .vmux = 6,
1646                         .amux = LINE1,
1647                         .gpio = 0x8000,
1648                 }},
1649                 .radio = {
1650                         .name = name_radio,
1651                         .amux = LINE1,
1652                         .gpio = 0x8000,
1653                 },
1654                 .mute = {
1655                         .name = name_mute,
1656                         .amux = TV,
1657                         .gpio =0x8000,
1658                 }
1659         },
1660         [SAA7134_BOARD_AVERMEDIA_STUDIO_307] = {
1661                 /*
1662                 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
1663                 Lots of thanks to Andrey Zolotarev <zolotarev_andrey@mail.ru>
1664                 */
1665                 .name           = "Avermedia AVerTV Studio 307",
1666                 .audio_clock    = 0x00187de7,
1667                 .tuner_type     = TUNER_PHILIPS_FM1256_IH3,
1668                 .radio_type     = UNSET,
1669                 .tuner_addr     = ADDR_UNSET,
1670                 .radio_addr     = ADDR_UNSET,
1671                 .tda9887_conf   = TDA9887_PRESENT,
1672                 .gpiomask       = 0x03,
1673                 .inputs         = {{
1674                         .name = name_tv,
1675                         .vmux = 1,
1676                         .amux = TV,
1677                         .tv   = 1,
1678                         .gpio = 0x00,
1679                 },{
1680                         .name = name_comp,
1681                         .vmux = 3,
1682                         .amux = LINE1,
1683                         .gpio = 0x02,
1684                 },{
1685                         .name = name_svideo,
1686                         .vmux = 8,
1687                         .amux = LINE1,
1688                         .gpio = 0x02,
1689                 }},
1690                 .radio = {
1691                         .name = name_radio,
1692                         .amux = LINE1,
1693                         .gpio = 0x01,
1694                 },
1695                 .mute  = {
1696                         .name = name_mute,
1697                         .amux = LINE1,
1698                         .gpio = 0x00,
1699                 },
1700         },
1701         [SAA7134_BOARD_AVERMEDIA_GO_007_FM] = {
1702                 .name           = "Avermedia AVerTV GO 007 FM",
1703                 .audio_clock    = 0x00187de7,
1704                 .tuner_type     = TUNER_PHILIPS_TDA8290,
1705                 .radio_type     = UNSET,
1706                 .tuner_addr     = ADDR_UNSET,
1707                 .radio_addr     = ADDR_UNSET,
1708                 .gpiomask       = 0x00300003,
1709                 /* .gpiomask       = 0x8c240003, */
1710                 .inputs         = {{
1711                         .name = name_tv,
1712                         .vmux = 1,
1713                         .amux = TV,
1714                         .tv   = 1,
1715                         .gpio = 0x01,
1716                 },{
1717                         .name = name_comp1,
1718                         .vmux = 0,
1719                         .amux = LINE1,
1720                         .gpio = 0x02,
1721                 },{
1722                         .name = name_svideo,
1723                         .vmux = 6,
1724                         .amux = LINE1,
1725                         .gpio = 0x02,
1726                 }},
1727                 .radio = {
1728                         .name = name_radio,
1729                         .amux = TV,
1730                         .gpio = 0x00300001,
1731                 },
1732                 .mute = {
1733                         .name = name_mute,
1734                         .amux = TV,
1735                         .gpio = 0x01,
1736                 },
1737         },
1738         [SAA7134_BOARD_AVERMEDIA_CARDBUS] = {
1739                 /* Kees.Blom@cwi.nl */
1740                 .name           = "AVerMedia Cardbus TV/Radio (E500)",
1741                 .audio_clock    = 0x187de7,
1742                 .tuner_type     = TUNER_PHILIPS_TDA8290,
1743                 .radio_type     = UNSET,
1744                 .tuner_addr     = ADDR_UNSET,
1745                 .radio_addr     = ADDR_UNSET,
1746                 .inputs         = {{
1747                         .name = name_tv,
1748                         .vmux = 1,
1749                         .amux = TV,
1750                         .tv   = 1,
1751                 },{
1752                         .name = name_comp1,
1753                         .vmux = 3,
1754                         .amux = LINE2,
1755                 },{
1756                         .name = name_svideo,
1757                         .vmux = 8,
1758                         .amux = LINE1,
1759                 }},
1760                 .radio = {
1761                         .name = name_radio,
1762                         .amux = LINE1,
1763                 },
1764         },
1765         [SAA7134_BOARD_AVERMEDIA_CARDBUS_501] = {
1766                 /* Oldrich Jedlicka <oldium.pro@seznam.cz> */
1767                 .name           = "AVerMedia Cardbus TV/Radio (E501R)",
1768                 .audio_clock    = 0x187de7,
1769                 .tuner_type     = TUNER_ALPS_TSBE5_PAL,
1770                 .radio_type     = TUNER_TEA5767,
1771                 .tuner_addr     = 0x61,
1772                 .radio_addr     = 0x60,
1773                 .tda9887_conf   = TDA9887_PRESENT,
1774                 .gpiomask       = 0x08000000,
1775                 .inputs         = { {
1776                         .name = name_tv,
1777                         .vmux = 1,
1778                         .amux = TV,
1779                         .tv   = 1,
1780                         .gpio = 0x08000000,
1781                 }, {
1782                         .name = name_comp1,
1783                         .vmux = 3,
1784                         .amux = LINE1,
1785                         .gpio = 0x08000000,
1786                 }, {
1787                         .name = name_svideo,
1788                         .vmux = 8,
1789                         .amux = LINE1,
1790                         .gpio = 0x08000000,
1791                 } },
1792                 .radio = {
1793                         .name = name_radio,
1794                         .amux = LINE2,
1795                         .gpio = 0x00000000,
1796                 },
1797         },
1798         [SAA7134_BOARD_CINERGY400_CARDBUS] = {
1799                 .name           = "Terratec Cinergy 400 mobile",
1800                 .audio_clock    = 0x187de7,
1801                 .tuner_type     = TUNER_ALPS_TSBE5_PAL,
1802                 .radio_type     = UNSET,
1803                 .tuner_addr     = ADDR_UNSET,
1804                 .radio_addr     = ADDR_UNSET,
1805                 .tda9887_conf   = TDA9887_PRESENT,
1806                 .inputs         = {{
1807                         .name = name_tv,
1808                         .vmux = 1,
1809                         .amux = TV,
1810                         .tv   = 1,
1811                 },{
1812                         .name = name_tv_mono,
1813                         .vmux = 1,
1814                         .amux = LINE2,
1815                         .tv   = 1,
1816                 },{
1817                         .name = name_comp1,
1818                         .vmux = 3,
1819                         .amux = LINE1,
1820                 },{
1821                         .name = name_svideo,
1822                         .vmux = 8,
1823                         .amux = LINE1,
1824                 }},
1825         },
1826         [SAA7134_BOARD_CINERGY600_MK3] = {
1827                 .name           = "Terratec Cinergy 600 TV MK3",
1828                 .audio_clock    = 0x00200000,
1829                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
1830                 .radio_type     = UNSET,
1831                 .tuner_addr     = ADDR_UNSET,
1832                 .radio_addr     = ADDR_UNSET,
1833                 .rds_addr       = 0x10,
1834                 .tda9887_conf   = TDA9887_PRESENT,
1835                 .inputs         = {{
1836                         .name = name_tv,
1837                         .vmux = 1,
1838                         .amux = TV,
1839                         .tv   = 1,
1840                 },{
1841                         .name = name_comp1,
1842                         .vmux = 4,
1843                         .amux = LINE1,
1844                 },{
1845                         .name = name_svideo,
1846                         .vmux = 8,
1847                         .amux = LINE1,
1848                 },{
1849                         .name = name_comp2, /* CVideo over SVideo Connector */
1850                         .vmux = 0,
1851                         .amux = LINE1,
1852                 }},
1853                 .radio = {
1854                         .name = name_radio,
1855                         .amux = LINE2,
1856                 },
1857         },
1858         [SAA7134_BOARD_VIDEOMATE_GOLD_PLUS] = {
1859                 /* Dylan Walkden <dylan_walkden@hotmail.com> */
1860                 .name           = "Compro VideoMate Gold+ Pal",
1861                 .audio_clock    = 0x00187de7,
1862                 .tuner_type     = TUNER_PHILIPS_PAL,
1863                 .radio_type     = UNSET,
1864                 .tuner_addr     = ADDR_UNSET,
1865                 .radio_addr     = ADDR_UNSET,
1866                 .gpiomask       = 0x1ce780,
1867                 .inputs         = {{
1868                         .name = name_svideo,
1869                         .vmux = 0,              /* CVideo over SVideo Connector - ok? */
1870                         .amux = LINE1,
1871                         .gpio = 0x008080,
1872                 },{
1873                         .name = name_comp1,
1874                         .vmux = 3,
1875                         .amux = LINE1,
1876                         .gpio = 0x008080,
1877                 },{
1878                         .name = name_tv,
1879                         .vmux = 1,
1880                         .amux = TV,
1881                         .tv   = 1,
1882                         .gpio = 0x008080,
1883                 }},
1884                 .radio = {
1885                         .name = name_radio,
1886                         .amux = LINE2,
1887                         .gpio = 0x80000,
1888                 },
1889                 .mute = {
1890                         .name = name_mute,
1891                         .amux = LINE2,
1892                         .gpio = 0x0c8000,
1893                 },
1894         },
1895         [SAA7134_BOARD_PINNACLE_300I_DVBT_PAL] = {
1896                 .name           = "Pinnacle PCTV 300i DVB-T + PAL",
1897                 .audio_clock    = 0x00187de7,
1898                 .tuner_type     = TUNER_MT2032,
1899                 .radio_type     = UNSET,
1900                 .tuner_addr     = ADDR_UNSET,
1901                 .radio_addr     = ADDR_UNSET,
1902                 .tda9887_conf   = TDA9887_PRESENT | TDA9887_INTERCARRIER | TDA9887_PORT2_INACTIVE,
1903                 .mpeg           = SAA7134_MPEG_DVB,
1904                 .inputs         = {{
1905                         .name = name_tv,
1906                         .vmux = 3,
1907                         .amux = TV,
1908                         .tv   = 1,
1909                 },{
1910                         .name = name_comp1,
1911                         .vmux = 0,
1912                         .amux = LINE2,
1913                 },{
1914                         .name = name_comp2,
1915                         .vmux = 1,
1916                         .amux = LINE2,
1917                 },{
1918                         .name = name_svideo,
1919                         .vmux = 8,
1920                         .amux = LINE2,
1921                 }},
1922         },
1923         [SAA7134_BOARD_PROVIDEO_PV952] = {
1924                 /* andreas.kretschmer@web.de */
1925                 .name           = "ProVideo PV952",
1926                 .audio_clock    = 0x00187de7,
1927                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
1928                 .radio_type     = UNSET,
1929                 .tuner_addr     = ADDR_UNSET,
1930                 .radio_addr     = ADDR_UNSET,
1931                 .tda9887_conf   = TDA9887_PRESENT,
1932                 .inputs         = {{
1933                         .name = name_comp1,
1934                         .vmux = 0,
1935                         .amux = LINE1,
1936                 },{
1937                         .name = name_tv,
1938                         .vmux = 1,
1939                         .amux = TV,
1940                         .tv   = 1,
1941                 },{
1942                         .name = name_tv_mono,
1943                         .vmux = 1,
1944                         .amux = LINE2,
1945                         .tv   = 1,
1946                 }},
1947                 .radio = {
1948                         .name = name_radio,
1949                         .amux = LINE2,
1950                 },
1951         },
1952         [SAA7134_BOARD_AVERMEDIA_305] = {
1953                 /* much like the "studio" version but without radio
1954                 * and another tuner (sirspiritus@yandex.ru) */
1955                 .name           = "AverMedia AverTV/305",
1956                 .audio_clock    = 0x00187de7,
1957                 .tuner_type     = TUNER_PHILIPS_FQ1216ME,
1958                 .radio_type     = UNSET,
1959                 .tuner_addr     = ADDR_UNSET,
1960                 .radio_addr     = ADDR_UNSET,
1961                 .tda9887_conf   = TDA9887_PRESENT,
1962                 .inputs         = {{
1963                         .name = name_tv,
1964                         .vmux = 1,
1965                         .amux = LINE2,
1966                         .tv   = 1,
1967                 },{
1968                         .name = name_comp1,
1969                         .vmux = 0,
1970                         .amux = LINE2,
1971                 },{
1972                         .name = name_comp2,
1973                         .vmux = 3,
1974                         .amux = LINE2,
1975                 },{
1976                         .name = name_svideo,
1977                         .vmux = 8,
1978                         .amux = LINE2,
1979                 }},
1980                 .mute = {
1981                         .name = name_mute,
1982                         .amux = LINE1,
1983                 },
1984         },
1985         [SAA7134_BOARD_FLYDVBTDUO] = {
1986                 /* LifeView FlyDVB-T DUO */
1987                 /* "Nico Sabbi <nsabbi@tiscali.it>  Hartmut Hackmann hartmut.hackmann@t-online.de*/
1988                 .name           = "LifeView FlyDVB-T DUO / MSI TV@nywhere Duo",
1989                 .audio_clock    = 0x00200000,
1990                 .tuner_type     = TUNER_PHILIPS_TDA8290,
1991                 .radio_type     = UNSET,
1992                 .tuner_addr     = ADDR_UNSET,
1993                 .radio_addr     = ADDR_UNSET,
1994                 .gpiomask       = 0x00200000,
1995                 .mpeg           = SAA7134_MPEG_DVB,
1996                 .inputs         = {{
1997                         .name = name_tv,
1998                         .vmux = 1,
1999                         .amux = TV,
2000                         .gpio = 0x200000,       /* GPIO21=High for TV input */
2001                         .tv   = 1,
2002                 },{
2003                         .name = name_comp1,     /* Composite signal on S-Video input */
2004                         .vmux = 0,
2005                         .amux = LINE2,
2006                 },{
2007                         .name = name_comp2,     /* Composite input */
2008                         .vmux = 3,
2009                         .amux = LINE2,
2010                 },{
2011                         .name = name_svideo,    /* S-Video signal on S-Video input */
2012                         .vmux = 8,
2013                         .amux = LINE2,
2014                 }},
2015                 .radio = {
2016                         .name = name_radio,
2017                         .amux = TV,
2018                         .gpio = 0x000000,       /* GPIO21=Low for FM radio antenna */
2019                 },
2020         },
2021         [SAA7134_BOARD_PHILIPS_TOUGH] = {
2022                 .name           = "Philips TOUGH DVB-T reference design",
2023                 .tuner_type     = TUNER_ABSENT,
2024                 .audio_clock    = 0x00187de7,
2025                 .radio_type     = UNSET,
2026                 .tuner_addr     = ADDR_UNSET,
2027                 .radio_addr     = ADDR_UNSET,
2028                 .mpeg           = SAA7134_MPEG_DVB,
2029                 .inputs = {{
2030                         .name   = name_comp1,
2031                         .vmux   = 0,
2032                         .amux   = LINE1,
2033                 },{
2034                         .name   = name_svideo,
2035                         .vmux   = 8,
2036                         .amux   = LINE1,
2037                 }},
2038         },
2039         [SAA7134_BOARD_AVERMEDIA_307] = {
2040                 /*
2041                 Davydov Vladimir <vladimir@iqmedia.com>
2042                 */
2043                 .name           = "Avermedia AVerTV 307",
2044                 .audio_clock    = 0x00187de7,
2045                 .tuner_type     = TUNER_PHILIPS_FQ1216ME,
2046                 .radio_type     = UNSET,
2047                 .tuner_addr     = ADDR_UNSET,
2048                 .radio_addr     = ADDR_UNSET,
2049                 .tda9887_conf   = TDA9887_PRESENT,
2050                 .inputs         = {{
2051                         .name = name_tv,
2052                         .vmux = 1,
2053                         .amux = TV,
2054                         .tv   = 1,
2055                 },{
2056                         .name = name_comp1,
2057                         .vmux = 0,
2058                         .amux = LINE1,
2059                 },{
2060                         .name = name_comp2,
2061                         .vmux = 3,
2062                         .amux = LINE1,
2063                 },{
2064                         .name = name_svideo,
2065                         .vmux = 8,
2066                         .amux = LINE1,
2067                 }},
2068         },
2069         [SAA7134_BOARD_ADS_INSTANT_TV] = {
2070                 .name           = "ADS Tech Instant TV (saa7135)",
2071                 .audio_clock    = 0x00187de7,
2072                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2073                 .radio_type     = UNSET,
2074                 .tuner_addr     = ADDR_UNSET,
2075                 .radio_addr     = ADDR_UNSET,
2076                 .inputs         = {{
2077                         .name = name_tv,
2078                         .vmux = 1,
2079                         .amux = TV,
2080                         .tv   = 1,
2081                 },{
2082                         .name = name_comp1,
2083                         .vmux = 3,
2084                         .amux = LINE2,
2085                 },{
2086                         .name = name_svideo,
2087                         .vmux = 8,
2088                         .amux = LINE2,
2089                 }},
2090         },
2091         [SAA7134_BOARD_KWORLD_VSTREAM_XPERT] = {
2092                 .name           = "Kworld/Tevion V-Stream Xpert TV PVR7134",
2093                 .audio_clock    = 0x00187de7,
2094                 .tuner_type     = TUNER_PHILIPS_PAL_I,
2095                 .radio_type     = UNSET,
2096                 .tuner_addr     = ADDR_UNSET,
2097                 .radio_addr     = ADDR_UNSET,
2098                 .gpiomask       = 0x0700,
2099                 .inputs = {{
2100                         .name   = name_tv,
2101                         .vmux   = 1,
2102                         .amux   = TV,
2103                         .tv     = 1,
2104                         .gpio   = 0x000,
2105                 },{
2106                         .name   = name_comp1,
2107                         .vmux   = 3,
2108                         .amux   = LINE1,
2109                         .gpio   = 0x200,                /* gpio by DScaler */
2110                 },{
2111                         .name   = name_svideo,
2112                         .vmux   = 0,
2113                         .amux   = LINE1,
2114                         .gpio   = 0x200,
2115                 }},
2116                 .radio = {
2117                         .name   = name_radio,
2118                         .amux   = LINE1,
2119                         .gpio   = 0x100,
2120                 },
2121                 .mute  = {
2122                         .name = name_mute,
2123                         .amux = TV,
2124                         .gpio = 0x000,
2125                 },
2126         },
2127         [SAA7134_BOARD_FLYDVBT_DUO_CARDBUS] = {
2128                 .name           = "LifeView/Typhoon/Genius FlyDVB-T Duo Cardbus",
2129                 .audio_clock    = 0x00200000,
2130                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2131                 .radio_type     = UNSET,
2132                 .tuner_addr     = ADDR_UNSET,
2133                 .radio_addr     = ADDR_UNSET,
2134                 .mpeg           = SAA7134_MPEG_DVB,
2135                 .gpiomask       = 0x00200000,
2136                 .inputs         = {{
2137                         .name = name_tv,
2138                         .vmux = 1,
2139                         .amux = TV,
2140                         .gpio = 0x200000,       /* GPIO21=High for TV input */
2141                         .tv   = 1,
2142                 },{
2143                         .name = name_svideo,    /* S-Video signal on S-Video input */
2144                         .vmux = 8,
2145                         .amux = LINE2,
2146                 },{
2147                         .name = name_comp1,     /* Composite signal on S-Video input */
2148                         .vmux = 0,
2149                         .amux = LINE2,
2150                 },{
2151                         .name = name_comp2,     /* Composite input */
2152                         .vmux = 3,
2153                         .amux = LINE2,
2154                 }},
2155                 .radio = {
2156                         .name = name_radio,
2157                         .amux = TV,
2158                         .gpio = 0x000000,       /* GPIO21=Low for FM radio antenna */
2159                 },
2160         },
2161         [SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII] = {
2162                 .name           = "Compro VideoMate TV Gold+II",
2163                 .audio_clock    = 0x002187de7,
2164                 .tuner_type     = TUNER_LG_PAL_NEW_TAPC,
2165                 .radio_type     = TUNER_TEA5767,
2166                 .tuner_addr     = 0x63,
2167                 .radio_addr     = 0x60,
2168                 .gpiomask       = 0x8c1880,
2169                 .inputs         = {{
2170                         .name = name_svideo,
2171                         .vmux = 0,
2172                         .amux = LINE1,
2173                         .gpio = 0x800800,
2174                 },{
2175                         .name = name_comp1,
2176                         .vmux = 3,
2177                         .amux = LINE1,
2178                         .gpio = 0x801000,
2179                 },{
2180                         .name = name_tv,
2181                         .vmux = 1,
2182                         .amux = TV,
2183                         .tv   = 1,
2184                         .gpio = 0x800000,
2185                 }},
2186                 .radio = {
2187                         .name = name_radio,
2188                         .amux = TV,
2189                         .gpio = 0x880000,
2190                 },
2191                 .mute = {
2192                         .name = name_mute,
2193                         .amux = LINE2,
2194                         .gpio = 0x840000,
2195                 },
2196         },
2197         [SAA7134_BOARD_KWORLD_XPERT] = {
2198                 /*
2199                 FIXME:
2200                 - Remote control doesn't initialize properly.
2201                 - Audio volume starts muted,
2202                 then gradually increases after channel change.
2203                 - Overlay scaling problems (application error?)
2204                 - Composite S-Video untested.
2205                 From: Konrad Rzepecki <hannibal@megapolis.pl>
2206                 */
2207                 .name           = "Kworld Xpert TV PVR7134",
2208                 .audio_clock    = 0x00187de7,
2209                 .tuner_type     = TUNER_TENA_9533_DI,
2210                 .radio_type     = TUNER_TEA5767,
2211                 .tuner_addr     = 0x61,
2212                 .radio_addr     = 0x60,
2213                 .gpiomask       = 0x0700,
2214                 .inputs = {{
2215                         .name   = name_tv,
2216                         .vmux   = 1,
2217                         .amux   = TV,
2218                         .tv     = 1,
2219                         .gpio   = 0x000,
2220                 },{
2221                         .name   = name_comp1,
2222                         .vmux   = 3,
2223                         .amux   = LINE1,
2224                         .gpio   = 0x200,                /* gpio by DScaler */
2225                 },{
2226                         .name   = name_svideo,
2227                         .vmux   = 0,
2228                         .amux   = LINE1,
2229                         .gpio   = 0x200,
2230                 }},
2231                 .radio = {
2232                         .name   = name_radio,
2233                         .amux   = LINE1,
2234                         .gpio   = 0x100,
2235                 },
2236                 .mute = {
2237                         .name = name_mute,
2238                         .amux = TV,
2239                         .gpio = 0x000,
2240                 },
2241         },
2242         [SAA7134_BOARD_FLYTV_DIGIMATRIX] = {
2243                 .name           = "FlyTV mini Asus Digimatrix",
2244                 .audio_clock    = 0x00200000,
2245                 .tuner_type     = TUNER_LG_TALN,
2246                 .radio_type     = UNSET,
2247                 .tuner_addr     = ADDR_UNSET,
2248                 .radio_addr     = ADDR_UNSET,
2249                 .inputs         = {{
2250                         .name = name_tv,
2251                         .vmux = 1,
2252                         .amux = TV,
2253                         .tv   = 1,
2254                 },{
2255                         .name = name_tv_mono,
2256                         .vmux = 1,
2257                         .amux = LINE2,
2258                         .tv   = 1,
2259                 },{
2260                         .name = name_comp1,
2261                         .vmux = 0,
2262                         .amux = LINE2,
2263                 },{
2264                         .name = name_comp2,
2265                         .vmux = 3,
2266                         .amux = LINE2,
2267                 },{
2268                         .name = name_svideo,
2269                         .vmux = 8,
2270                         .amux = LINE2,
2271                 }},
2272                 .radio = {
2273                         .name = name_radio,             /* radio unconfirmed */
2274                         .amux = LINE2,
2275                 },
2276         },
2277         [SAA7134_BOARD_KWORLD_TERMINATOR] = {
2278                 /* Kworld V-Stream Studio TV Terminator */
2279                 /* "James Webb <jrwebb@qwest.net> */
2280                 .name           = "V-Stream Studio TV Terminator",
2281                 .audio_clock    = 0x00187de7,
2282                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2283                 .radio_type     = UNSET,
2284                 .tuner_addr     = ADDR_UNSET,
2285                 .radio_addr     = ADDR_UNSET,
2286                 .gpiomask       = 1 << 21,
2287                 .inputs         = {{
2288                         .name = name_tv,
2289                         .vmux = 1,
2290                         .amux = TV,
2291                         .gpio = 0x0000000,
2292                         .tv   = 1,
2293                 },{
2294                         .name = name_comp1,     /* Composite input */
2295                         .vmux = 3,
2296                         .amux = LINE2,
2297                         .gpio = 0x0000000,
2298                 },{
2299                         .name = name_svideo,    /* S-Video input */
2300                         .vmux = 8,
2301                         .amux = LINE2,
2302                         .gpio = 0x0000000,
2303                 }},
2304                 .radio = {
2305                         .name = name_radio,
2306                         .amux = TV,
2307                         .gpio = 0x0200000,
2308                 },
2309         },
2310         [SAA7134_BOARD_YUAN_TUN900] = {
2311                 /* FIXME:
2312                  * S-Video and composite sources untested.
2313                  * Radio not working.
2314                  * Remote control not yet implemented.
2315                  * From : codemaster@webgeeks.be */
2316                 .name           = "Yuan TUN-900 (saa7135)",
2317                 .audio_clock    = 0x00187de7,
2318                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2319                 .radio_type     = UNSET,
2320                 .tuner_addr= ADDR_UNSET,
2321                 .radio_addr= ADDR_UNSET,
2322                 .gpiomask       = 0x00010003,
2323                 .inputs         = {{
2324                         .name = name_tv,
2325                         .vmux = 1,
2326                         .amux = TV,
2327                         .tv   = 1,
2328                         .gpio = 0x01,
2329                 },{
2330                         .name = name_comp1,
2331                         .vmux = 0,
2332                         .amux = LINE2,
2333                         .gpio = 0x02,
2334                 },{
2335                         .name = name_svideo,
2336                         .vmux = 6,
2337                         .amux = LINE2,
2338                         .gpio = 0x02,
2339                 }},
2340                 .radio = {
2341                         .name = name_radio,
2342                         .amux = LINE1,
2343                         .gpio = 0x00010003,
2344                 },
2345                 .mute = {
2346                         .name = name_mute,
2347                         .amux = TV,
2348                         .gpio = 0x01,
2349                 },
2350         },
2351         [SAA7134_BOARD_BEHOLD_409FM] = {
2352                 /* <http://tuner.beholder.ru>, Sergey <skiv@orel.ru> */
2353                 /*       Beholder Intl. Ltd. 2008      */
2354                 /*Dmitry Belimov <d.belimov@gmail.com> */
2355                 .name           = "Beholder BeholdTV 409 FM",
2356                 .audio_clock    = 0x00187de7,
2357                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
2358                 .radio_type     = UNSET,
2359                 .tuner_addr     = ADDR_UNSET,
2360                 .radio_addr     = ADDR_UNSET,
2361                 .tda9887_conf   = TDA9887_PRESENT,
2362                 .gpiomask       = 0x00008000,
2363                 .inputs         = {{
2364                           .name = name_tv,
2365                           .vmux = 3,
2366                           .amux = TV,
2367                           .tv   = 1,
2368                 },{
2369                           .name = name_comp1,
2370                           .vmux = 1,
2371                           .amux = LINE1,
2372                 },{
2373                           .name = name_svideo,
2374                           .vmux = 8,
2375                           .amux = LINE1,
2376                 }},
2377                 .radio = {
2378                           .name = name_radio,
2379                           .amux = LINE2,
2380                 },
2381         },
2382         [SAA7134_BOARD_GOTVIEW_7135] = {
2383                 /* Mike Baikov <mike@baikov.com> */
2384                 /* Andrey Cvetcov <ays14@yandex.ru> */
2385                 .name            = "GoTView 7135 PCI",
2386                 .audio_clock     = 0x00187de7,
2387                 .tuner_type      = TUNER_PHILIPS_FM1216ME_MK3,
2388                 .radio_type      = UNSET,
2389                 .tuner_addr      = ADDR_UNSET,
2390                 .radio_addr      = ADDR_UNSET,
2391                 .tda9887_conf    = TDA9887_PRESENT,
2392                 .gpiomask        = 0x00200003,
2393                 .inputs          = {{
2394                         .name = name_tv,
2395                         .vmux = 1,
2396                         .amux = TV,
2397                         .tv   = 1,
2398                         .gpio = 0x00200003,
2399                 },{
2400                         .name = name_tv_mono,
2401                         .vmux = 1,
2402                         .amux = LINE2,
2403                         .gpio = 0x00200003,
2404                 },{
2405                         .name = name_comp1,
2406                         .vmux = 3,
2407                         .amux = LINE1,
2408                         .gpio = 0x00200003,
2409                 },{
2410                         .name = name_svideo,
2411                         .vmux = 8,
2412                         .amux = LINE1,
2413                         .gpio = 0x00200003,
2414                 }},
2415                 .radio = {
2416                         .name = name_radio,
2417                         .amux = LINE2,
2418                         .gpio = 0x00200003,
2419                 },
2420                 .mute = {
2421                         .name = name_mute,
2422                         .amux = TV,
2423                         .gpio = 0x00200003,
2424                 },
2425         },
2426         [SAA7134_BOARD_PHILIPS_EUROPA] = {
2427                 .name           = "Philips EUROPA V3 reference design",
2428                 .audio_clock    = 0x00187de7,
2429                 .tuner_type     = TUNER_PHILIPS_TD1316,
2430                 .radio_type     = UNSET,
2431                 .tuner_addr     = 0x61,
2432                 .radio_addr     = ADDR_UNSET,
2433                 .tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
2434                 .mpeg           = SAA7134_MPEG_DVB,
2435                 .inputs = {{
2436                         .name   = name_tv,
2437                         .vmux   = 3,
2438                         .amux   = TV,
2439                         .tv     = 1,
2440                 },{
2441                         .name   = name_comp1,
2442                         .vmux   = 0,
2443                         .amux   = LINE2,
2444                 },{
2445                         .name   = name_svideo,
2446                         .vmux   = 8,
2447                         .amux   = LINE2,
2448                 }},
2449         },
2450         [SAA7134_BOARD_VIDEOMATE_DVBT_300] = {
2451                 .name           = "Compro Videomate DVB-T300",
2452                 .audio_clock    = 0x00187de7,
2453                 .tuner_type     = TUNER_PHILIPS_TD1316,
2454                 .radio_type     = UNSET,
2455                 .tuner_addr     = 0x61,
2456                 .radio_addr     = ADDR_UNSET,
2457                 .tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
2458                 .mpeg           = SAA7134_MPEG_DVB,
2459                 .inputs = {{
2460                         .name   = name_tv,
2461                         .vmux   = 3,
2462                         .amux   = TV,
2463                         .tv     = 1,
2464                 },{
2465                         .name   = name_comp1,
2466                         .vmux   = 1,
2467                         .amux   = LINE2,
2468                 },{
2469                         .name   = name_svideo,
2470                         .vmux   = 8,
2471                         .amux   = LINE2,
2472                 }},
2473         },
2474         [SAA7134_BOARD_VIDEOMATE_DVBT_200] = {
2475                 .name           = "Compro Videomate DVB-T200",
2476                 .tuner_type     = TUNER_ABSENT,
2477                 .audio_clock    = 0x00187de7,
2478                 .radio_type     = UNSET,
2479                 .tuner_addr     = ADDR_UNSET,
2480                 .radio_addr     = ADDR_UNSET,
2481                 .mpeg           = SAA7134_MPEG_DVB,
2482                 .inputs = {{
2483                         .name   = name_comp1,
2484                         .vmux   = 0,
2485                         .amux   = LINE1,
2486                 },{
2487                         .name   = name_svideo,
2488                         .vmux   = 8,
2489                         .amux   = LINE1,
2490                 }},
2491         },
2492         [SAA7134_BOARD_RTD_VFG7350] = {
2493                 .name           = "RTD Embedded Technologies VFG7350",
2494                 .audio_clock    = 0x00200000,
2495                 .tuner_type     = TUNER_ABSENT,
2496                 .radio_type     = UNSET,
2497                 .tuner_addr     = ADDR_UNSET,
2498                 .radio_addr     = ADDR_UNSET,
2499                 .empress_addr   = 0x21,
2500                 .inputs         = {{
2501                         .name   = "Composite 0",
2502                         .vmux   = 0,
2503                         .amux   = LINE1,
2504                 },{
2505                         .name   = "Composite 1",
2506                         .vmux   = 1,
2507                         .amux   = LINE2,
2508                 },{
2509                         .name   = "Composite 2",
2510                         .vmux   = 2,
2511                         .amux   = LINE1,
2512                 },{
2513                         .name   = "Composite 3",
2514                         .vmux   = 3,
2515                         .amux   = LINE2,
2516                 },{
2517                         .name   = "S-Video 0",
2518                         .vmux   = 8,
2519                         .amux   = LINE1,
2520                 },{
2521                         .name   = "S-Video 1",
2522                         .vmux   = 9,
2523                         .amux   = LINE2,
2524                 }},
2525                 .mpeg           = SAA7134_MPEG_EMPRESS,
2526                 .video_out      = CCIR656,
2527                 .vid_port_opts  = ( SET_T_CODE_POLARITY_NON_INVERTED |
2528                                     SET_CLOCK_NOT_DELAYED |
2529                                     SET_CLOCK_INVERTED |
2530                                     SET_VSYNC_OFF ),
2531         },
2532         [SAA7134_BOARD_RTD_VFG7330] = {
2533                 .name           = "RTD Embedded Technologies VFG7330",
2534                 .audio_clock    = 0x00200000,
2535                 .tuner_type     = TUNER_ABSENT,
2536                 .radio_type     = UNSET,
2537                 .tuner_addr     = ADDR_UNSET,
2538                 .radio_addr     = ADDR_UNSET,
2539                 .inputs         = {{
2540                         .name   = "Composite 0",
2541                         .vmux   = 0,
2542                         .amux   = LINE1,
2543                 },{
2544                         .name   = "Composite 1",
2545                         .vmux   = 1,
2546                         .amux   = LINE2,
2547                 },{
2548                         .name   = "Composite 2",
2549                         .vmux   = 2,
2550                         .amux   = LINE1,
2551                 },{
2552                         .name   = "Composite 3",
2553                         .vmux   = 3,
2554                         .amux   = LINE2,
2555                 },{
2556                         .name   = "S-Video 0",
2557                         .vmux   = 8,
2558                         .amux   = LINE1,
2559                 },{
2560                         .name   = "S-Video 1",
2561                         .vmux   = 9,
2562                         .amux   = LINE2,
2563                 }},
2564         },
2565         [SAA7134_BOARD_FLYTVPLATINUM_MINI2] = {
2566                 .name           = "LifeView FlyTV Platinum Mini2",
2567                 .audio_clock    = 0x00200000,
2568                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2569                 .radio_type     = UNSET,
2570                 .tuner_addr     = ADDR_UNSET,
2571                 .radio_addr     = ADDR_UNSET,
2572
2573                 .inputs         = {{
2574                         .name = name_tv,
2575                         .vmux = 1,
2576                         .amux = TV,
2577                         .tv   = 1,
2578                 },{
2579                         .name = name_comp1,     /* Composite signal on S-Video input */
2580                         .vmux = 0,
2581                         .amux = LINE2,
2582                 },{
2583                         .name = name_comp2,     /* Composite input */
2584                         .vmux = 3,
2585                         .amux = LINE2,
2586                 },{
2587                         .name = name_svideo,
2588                         .vmux = 8,
2589                         .amux = LINE2,
2590                 }},
2591         },
2592         [SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180] = {
2593                 /* Michael Krufky <mkrufky@linuxtv.org>
2594                  * Uses Alps Electric TDHU2, containing NXT2004 ATSC Decoder
2595                  * AFAIK, there is no analog demod, thus,
2596                  * no support for analog television.
2597                  */
2598                 .name           = "AVerMedia AVerTVHD MCE A180",
2599                 .audio_clock    = 0x00187de7,
2600                 .tuner_type     = TUNER_ABSENT,
2601                 .radio_type     = UNSET,
2602                 .tuner_addr     = ADDR_UNSET,
2603                 .radio_addr     = ADDR_UNSET,
2604                 .mpeg           = SAA7134_MPEG_DVB,
2605                 .inputs         = {{
2606                         .name = name_comp1,
2607                         .vmux = 3,
2608                         .amux = LINE2,
2609                 },{
2610                         .name = name_svideo,
2611                         .vmux = 8,
2612                         .amux = LINE2,
2613                 }},
2614         },
2615         [SAA7134_BOARD_MONSTERTV_MOBILE] = {
2616                 .name           = "SKNet MonsterTV Mobile",
2617                 .audio_clock    = 0x00187de7,
2618                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2619                 .radio_type     = UNSET,
2620                 .tuner_addr     = ADDR_UNSET,
2621                 .radio_addr     = ADDR_UNSET,
2622
2623                 .inputs         = {{
2624                           .name = name_tv,
2625                           .vmux = 1,
2626                           .amux = TV,
2627                           .tv   = 1,
2628                 },{
2629                           .name = name_comp1,
2630                           .vmux = 3,
2631                           .amux = LINE1,
2632                 },{
2633                           .name = name_svideo,
2634                           .vmux = 6,
2635                           .amux = LINE1,
2636                 }},
2637         },
2638         [SAA7134_BOARD_PINNACLE_PCTV_110i] = {
2639                .name           = "Pinnacle PCTV 40i/50i/110i (saa7133)",
2640                 .audio_clock    = 0x00187de7,
2641                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2642                 .radio_type     = UNSET,
2643                 .tuner_addr     = ADDR_UNSET,
2644                 .radio_addr     = ADDR_UNSET,
2645                 .gpiomask       = 0x080200000,
2646                 .inputs         = { {
2647                         .name = name_tv,
2648                         .vmux = 4,
2649                         .amux = TV,
2650                         .tv   = 1,
2651                 }, {
2652                         .name = name_comp1,
2653                         .vmux = 1,
2654                         .amux = LINE2,
2655                 }, {
2656                         .name = name_comp2,
2657                         .vmux = 0,
2658                         .amux = LINE2,
2659                 }, {
2660                         .name = name_svideo,
2661                         .vmux = 8,
2662                         .amux = LINE2,
2663                 } },
2664                 .radio = {
2665                         .name = name_radio,
2666                         .amux = TV,
2667                         .gpio = 0x0200000,
2668                 },
2669         },
2670         [SAA7134_BOARD_ASUSTeK_P7131_DUAL] = {
2671                 .name           = "ASUSTeK P7131 Dual",
2672                 .audio_clock    = 0x00187de7,
2673                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2674                 .radio_type     = UNSET,
2675                 .tuner_addr     = ADDR_UNSET,
2676                 .radio_addr     = ADDR_UNSET,
2677                 .gpiomask       = 1 << 21,
2678                 .mpeg           = SAA7134_MPEG_DVB,
2679                 .inputs         = {{
2680                         .name = name_tv,
2681                         .vmux = 1,
2682                         .amux = TV,
2683                         .tv   = 1,
2684                         .gpio = 0x0000000,
2685                 },{
2686                         .name = name_comp1,
2687                         .vmux = 3,
2688                         .amux = LINE2,
2689                         .gpio = 0x0200000,
2690                 },{
2691                         .name = name_comp2,
2692                         .vmux = 0,
2693                         .amux = LINE2,
2694                         .gpio = 0x0200000,
2695                 },{
2696                         .name = name_svideo,
2697                         .vmux = 8,
2698                         .amux = LINE2,
2699                         .gpio = 0x0200000,
2700                 }},
2701                 .radio = {
2702                         .name = name_radio,
2703                         .amux = TV,
2704                         .gpio = 0x0200000,
2705                 },
2706         },
2707         [SAA7134_BOARD_SEDNA_PC_TV_CARDBUS] = {
2708                 /* Paul Tom Zalac <pzalac@gmail.com> */
2709                 /* Pavel Mihaylov <bin@bash.info> */
2710                 .name           = "Sedna/MuchTV PC TV Cardbus TV/Radio (ITO25 Rev:2B)",
2711                                 /* Sedna/MuchTV (OEM) Cardbus TV Tuner */
2712                 .audio_clock    = 0x00187de7,
2713                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2714                 .radio_type     = UNSET,
2715                 .tuner_addr     = ADDR_UNSET,
2716                 .radio_addr     = ADDR_UNSET,
2717                 .gpiomask       = 0xe880c0,
2718                 .inputs         = {{
2719                         .name = name_tv,
2720                         .vmux = 3,
2721                         .amux = TV,
2722                         .tv   = 1,
2723                 },{
2724                         .name = name_comp1,
2725                         .vmux = 1,
2726                         .amux = LINE1,
2727                 },{
2728                         .name = name_svideo,
2729                         .vmux = 6,
2730                         .amux = LINE1,
2731                 }},
2732                 .radio = {
2733                         .name = name_radio,
2734                         .amux = LINE2,
2735                 },
2736         },
2737         [SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV] = {
2738                 /* "Cyril Lacoux (Yack)" <clacoux@ifeelgood.org> */
2739                 .name           = "ASUS Digimatrix TV",
2740                 .audio_clock    = 0x00200000,
2741                 .tuner_type     = TUNER_PHILIPS_FQ1216ME,
2742                 .tda9887_conf   = TDA9887_PRESENT,
2743                 .radio_type     = UNSET,
2744                 .tuner_addr     = ADDR_UNSET,
2745                 .radio_addr     = ADDR_UNSET,
2746                 .inputs         = {{
2747                         .name = name_tv,
2748                         .vmux = 1,
2749                         .amux = TV,
2750                         .tv   = 1,
2751                 },{
2752                         .name = name_comp1,
2753                         .vmux = 3,
2754                         .amux = LINE1,
2755                 },{
2756                         .name = name_svideo,
2757                         .vmux = 8,
2758                         .amux = LINE1,
2759                 }},
2760         },
2761         [SAA7134_BOARD_PHILIPS_TIGER] = {
2762                 .name           = "Philips Tiger reference design",
2763                 .audio_clock    = 0x00187de7,
2764                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2765                 .radio_type     = UNSET,
2766                 .tuner_addr     = ADDR_UNSET,
2767                 .radio_addr     = ADDR_UNSET,
2768                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF },
2769                 .mpeg           = SAA7134_MPEG_DVB,
2770                 .gpiomask       = 0x0200000,
2771                 .inputs = {{
2772                         .name   = name_tv,
2773                         .vmux   = 1,
2774                         .amux   = TV,
2775                         .tv     = 1,
2776                 },{
2777                         .name   = name_comp1,
2778                         .vmux   = 3,
2779                         .amux   = LINE1,
2780                 },{
2781                         .name   = name_svideo,
2782                         .vmux   = 8,
2783                         .amux   = LINE1,
2784                 }},
2785                 .radio = {
2786                         .name   = name_radio,
2787                         .amux   = TV,
2788                         .gpio   = 0x0200000,
2789                 },
2790         },
2791         [SAA7134_BOARD_MSI_TVATANYWHERE_PLUS] = {
2792                 .name           = "MSI TV@Anywhere plus",
2793                 .audio_clock    = 0x00187de7,
2794                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2795                 .radio_type     = UNSET,
2796                 .tuner_addr     = ADDR_UNSET,
2797                 .radio_addr     = ADDR_UNSET,
2798                 .gpiomask       = 1 << 21,
2799                 .inputs = {{
2800                         .name   = name_tv,
2801                         .vmux   = 1,
2802                         .amux   = TV,
2803                         .tv     = 1,
2804                 },{
2805                         .name   = name_comp1,
2806                         .vmux   = 3,
2807                         .amux   = LINE2,        /* unconfirmed, taken from Philips driver */
2808                 },{
2809                         .name   = name_comp2,
2810                         .vmux   = 0,            /* untested, Composite over S-Video */
2811                         .amux   = LINE2,
2812                 },{
2813                         .name   = name_svideo,
2814                         .vmux   = 8,
2815                         .amux   = LINE2,
2816                 }},
2817                 .radio = {
2818                         .name   = name_radio,
2819                         .amux   = TV,
2820                         .gpio   = 0x0200000,
2821                 },
2822         },
2823         [SAA7134_BOARD_CINERGY250PCI] = {
2824                 /* remote-control does not work. The signal about a
2825                    key press comes in via gpio, but the key code
2826                    doesn't. Neither does it have an i2c remote control
2827                    interface. */
2828                 .name           = "Terratec Cinergy 250 PCI TV",
2829                 .audio_clock    = 0x00187de7,
2830                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2831                 .radio_type     = UNSET,
2832                 .tuner_addr     = ADDR_UNSET,
2833                 .radio_addr     = ADDR_UNSET,
2834                 .gpiomask       = 0x80200000,
2835                 .inputs         = {{
2836                         .name = name_tv,
2837                         .vmux = 1,
2838                         .amux = TV,
2839                         .tv   = 1,
2840                 },{
2841                         .name = name_svideo,  /* NOT tested */
2842                         .vmux = 8,
2843                         .amux = LINE1,
2844                 }},
2845                 .radio = {
2846                         .name   = name_radio,
2847                         .amux   = TV,
2848                         .gpio   = 0x0200000,
2849                 },
2850         },
2851         [SAA7134_BOARD_FLYDVB_TRIO] = {
2852                 /* LifeView LR319 FlyDVB Trio */
2853                 /* Peter Missel <peter.missel@onlinehome.de> */
2854                 .name           = "LifeView FlyDVB Trio",
2855                 .audio_clock    = 0x00200000,
2856                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2857                 .radio_type     = UNSET,
2858                 .tuner_addr     = ADDR_UNSET,
2859                 .radio_addr     = ADDR_UNSET,
2860                 .gpiomask       = 0x00200000,
2861                 .mpeg           = SAA7134_MPEG_DVB,
2862                 .inputs         = {{
2863                         .name = name_tv,        /* Analog broadcast/cable TV */
2864                         .vmux = 1,
2865                         .amux = TV,
2866                         .gpio = 0x200000,       /* GPIO21=High for TV input */
2867                         .tv   = 1,
2868                 },{
2869                         .name = name_svideo,    /* S-Video signal on S-Video input */
2870                         .vmux = 8,
2871                         .amux = LINE2,
2872                 },{
2873                         .name = name_comp1,     /* Composite signal on S-Video input */
2874                         .vmux = 0,
2875                         .amux = LINE2,
2876                 },{
2877                         .name = name_comp2,     /* Composite input */
2878                         .vmux = 3,
2879                         .amux = LINE2,
2880                 }},
2881                 .radio = {
2882                         .name = name_radio,
2883                         .amux = TV,
2884                         .gpio = 0x000000,       /* GPIO21=Low for FM radio antenna */
2885                 },
2886         },
2887         [SAA7134_BOARD_AVERMEDIA_777] = {
2888                 .name           = "AverTV DVB-T 777",
2889                 .audio_clock    = 0x00187de7,
2890                 .tuner_type     = TUNER_ABSENT,
2891                 .radio_type     = UNSET,
2892                 .tuner_addr     = ADDR_UNSET,
2893                 .radio_addr     = ADDR_UNSET,
2894                 .mpeg           = SAA7134_MPEG_DVB,
2895                 .inputs = {{
2896                         .name   = name_comp1,
2897                         .vmux   = 1,
2898                         .amux   = LINE1,
2899                 },{
2900                         .name   = name_svideo,
2901                         .vmux   = 8,
2902                         .amux   = LINE1,
2903                 }},
2904         },
2905         [SAA7134_BOARD_FLYDVBT_LR301] = {
2906                 /* LifeView FlyDVB-T */
2907                 /* Giampiero Giancipoli <gianci@libero.it> */
2908                 .name           = "LifeView FlyDVB-T / Genius VideoWonder DVB-T",
2909                 .audio_clock    = 0x00200000,
2910                 .tuner_type     = TUNER_ABSENT,
2911                 .radio_type     = UNSET,
2912                 .tuner_addr     = ADDR_UNSET,
2913                 .radio_addr     = ADDR_UNSET,
2914                 .mpeg           = SAA7134_MPEG_DVB,
2915                 .inputs         = {{
2916                         .name = name_comp1,     /* Composite input */
2917                         .vmux = 3,
2918                         .amux = LINE2,
2919                 },{
2920                         .name = name_svideo,    /* S-Video signal on S-Video input */
2921                         .vmux = 8,
2922                         .amux = LINE2,
2923                 }},
2924         },
2925         [SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331] = {
2926                 .name           = "ADS Instant TV Duo Cardbus PTV331",
2927                 .audio_clock    = 0x00200000,
2928                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2929                 .radio_type     = UNSET,
2930                 .tuner_addr     = ADDR_UNSET,
2931                 .radio_addr     = ADDR_UNSET,
2932                 .mpeg           = SAA7134_MPEG_DVB,
2933                 .gpiomask       = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
2934                 .inputs = {{
2935                         .name   = name_tv,
2936                         .vmux   = 1,
2937                         .amux   = TV,
2938                         .tv     = 1,
2939                         .gpio   = 0x00200000,
2940                 }},
2941         },
2942         [SAA7134_BOARD_TEVION_DVBT_220RF] = {
2943                 .name           = "Tevion/KWorld DVB-T 220RF",
2944                 .audio_clock    = 0x00187de7,
2945                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2946                 .radio_type     = UNSET,
2947                 .tuner_addr     = ADDR_UNSET,
2948                 .radio_addr     = ADDR_UNSET,
2949                 .mpeg           = SAA7134_MPEG_DVB,
2950                 .gpiomask       = 1 << 21,
2951                 .inputs = {{
2952                         .name   = name_tv,
2953                         .vmux   = 1,
2954                         .amux   = TV,
2955                         .tv     = 1,
2956                 },{
2957                         .name   = name_comp1,
2958                         .vmux   = 3,
2959                         .amux   = LINE1,
2960                 },{
2961                         .name   = name_comp2,
2962                         .vmux   = 0,
2963                         .amux   = LINE1,
2964                 },{
2965                         .name   = name_svideo,
2966                         .vmux   = 8,
2967                         .amux   = LINE1,
2968                 }},
2969                 .radio = {
2970                         .name   = name_radio,
2971                         .amux   = TV,
2972                         .gpio   = 0x0200000,
2973                 },
2974         },
2975         [SAA7134_BOARD_KWORLD_DVBT_210] = {
2976                 .name           = "KWorld DVB-T 210",
2977                 .audio_clock    = 0x00187de7,
2978                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2979                 .radio_type     = UNSET,
2980                 .tuner_addr     = ADDR_UNSET,
2981                 .radio_addr     = ADDR_UNSET,
2982                 .mpeg           = SAA7134_MPEG_DVB,
2983                 .gpiomask       = 1 << 21,
2984                 .inputs = {{
2985                         .name   = name_tv,
2986                         .vmux   = 1,
2987                         .amux   = TV,
2988                         .tv     = 1,
2989                 },{
2990                         .name   = name_comp1,
2991                         .vmux   = 3,
2992                         .amux   = LINE1,
2993                 },{
2994                         .name   = name_svideo,
2995                         .vmux   = 8,
2996                         .amux   = LINE1,
2997                 }},
2998                 .radio = {
2999                         .name   = name_radio,
3000                         .amux   = TV,
3001                         .gpio   = 0x0200000,
3002                 },
3003         },
3004         [SAA7134_BOARD_KWORLD_ATSC110] = {
3005                 .name           = "Kworld ATSC110/115",
3006                 .audio_clock    = 0x00187de7,
3007                 .tuner_type     = TUNER_PHILIPS_TUV1236D,
3008                 .radio_type     = UNSET,
3009                 .tuner_addr     = ADDR_UNSET,
3010                 .radio_addr     = ADDR_UNSET,
3011                 .tda9887_conf   = TDA9887_PRESENT,
3012                 .mpeg           = SAA7134_MPEG_DVB,
3013                 .inputs         = {{
3014                         .name = name_tv,
3015                         .vmux = 1,
3016                         .amux = TV,
3017                         .tv   = 1,
3018                 },{
3019                         .name = name_comp1,
3020                         .vmux = 3,
3021                         .amux = LINE2,
3022                 },{
3023                         .name = name_svideo,
3024                         .vmux = 8,
3025                         .amux = LINE2,
3026                 }},
3027         },
3028         [SAA7134_BOARD_AVERMEDIA_A169_B] = {
3029                 /* AVerMedia A169  */
3030                 /* Rickard Osser <ricky@osser.se>  */
3031                 /* This card has two saa7134 chips on it,
3032                    but only one of them is currently working. */
3033                 .name           = "AVerMedia A169 B",
3034                 .audio_clock    = 0x02187de7,
3035                 .tuner_type     = TUNER_LG_TALN,
3036                 .radio_type     = UNSET,
3037                 .tuner_addr     = ADDR_UNSET,
3038                 .radio_addr     = ADDR_UNSET,
3039                 .tda9887_conf   = TDA9887_PRESENT,
3040                 .gpiomask       = 0x0a60000,
3041         },
3042         [SAA7134_BOARD_AVERMEDIA_A169_B1] = {
3043                 /* AVerMedia A169 */
3044                 /* Rickard Osser <ricky@osser.se> */
3045                 .name           = "AVerMedia A169 B1",
3046                 .audio_clock    = 0x02187de7,
3047                 .tuner_type     = TUNER_LG_TALN,
3048                 .radio_type     = UNSET,
3049                 .tuner_addr     = ADDR_UNSET,
3050                 .radio_addr     = ADDR_UNSET,
3051                 .tda9887_conf   = TDA9887_PRESENT,
3052                 .gpiomask       = 0xca60000,
3053                 .inputs         = {{
3054                         .name = name_tv,
3055                         .vmux = 4,
3056                         .amux = TV,
3057                         .tv   = 1,
3058                         .gpio = 0x04a61000,
3059                 },{
3060                         .name = name_comp2,  /*  Composite SVIDEO (B/W if signal is carried with SVIDEO) */
3061                         .vmux = 1,
3062                         .amux = LINE2,
3063                 },{
3064                         .name = name_svideo,
3065                         .vmux = 9,           /* 9 is correct as S-VIDEO1 according to a169.inf! */
3066                         .amux = LINE1,
3067                 }},
3068         },
3069         [SAA7134_BOARD_MD7134_BRIDGE_2] = {
3070                 /* The second saa7134 on this card only serves as DVB-S host bridge */
3071                 .name           = "Medion 7134 Bridge #2",
3072                 .audio_clock    = 0x00187de7,
3073                 .radio_type     = UNSET,
3074                 .tuner_addr     = ADDR_UNSET,
3075                 .radio_addr     = ADDR_UNSET,
3076                 .mpeg           = SAA7134_MPEG_DVB,
3077         },
3078         [SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS] = {
3079                 .name           = "LifeView FlyDVB-T Hybrid Cardbus/MSI TV @nywhere A/D NB",
3080                 .audio_clock    = 0x00200000,
3081                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3082                 .radio_type     = UNSET,
3083                 .tuner_addr     = ADDR_UNSET,
3084                 .radio_addr     = ADDR_UNSET,
3085                 .mpeg           = SAA7134_MPEG_DVB,
3086                 .gpiomask       = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
3087                 .inputs         = {{
3088                         .name = name_tv,
3089                         .vmux = 1,
3090                         .amux = TV,
3091                         .gpio = 0x200000,       /* GPIO21=High for TV input */
3092                         .tv   = 1,
3093                 },{
3094                         .name = name_svideo,    /* S-Video signal on S-Video input */
3095                         .vmux = 8,
3096                         .amux = LINE2,
3097                 },{
3098                         .name = name_comp1,     /* Composite signal on S-Video input */
3099                         .vmux = 0,
3100                         .amux = LINE2,
3101                 },{
3102                         .name = name_comp2,     /* Composite input */
3103                         .vmux = 3,
3104                         .amux = LINE2,
3105                 }},
3106                 .radio = {
3107                         .name = name_radio,
3108                         .amux = TV,
3109                         .gpio = 0x000000,       /* GPIO21=Low for FM radio antenna */
3110                 },
3111         },
3112         [SAA7134_BOARD_FLYVIDEO3000_NTSC] = {
3113                 /* "Zac Bowling" <zac@zacbowling.com> */
3114                 .name           = "LifeView FlyVIDEO3000 (NTSC)",
3115                 .audio_clock    = 0x00200000,
3116                 .tuner_type     = TUNER_PHILIPS_NTSC,
3117                 .radio_type     = UNSET,
3118                 .tuner_addr     = ADDR_UNSET,
3119                 .radio_addr     = ADDR_UNSET,
3120
3121                 .gpiomask       = 0xe000,
3122                 .inputs         = {{
3123                         .name = name_tv,
3124                         .vmux = 1,
3125                         .amux = TV,
3126                         .gpio = 0x8000,
3127                         .tv   = 1,
3128                 },{
3129                         .name = name_tv_mono,
3130                         .vmux = 1,
3131                         .amux = LINE2,
3132                         .gpio = 0x0000,
3133                         .tv   = 1,
3134                 },{
3135                         .name = name_comp1,
3136                         .vmux = 0,
3137                         .amux = LINE2,
3138                         .gpio = 0x4000,
3139                 },{
3140                         .name = name_comp2,
3141                         .vmux = 3,
3142                         .amux = LINE2,
3143                         .gpio = 0x4000,
3144                 },{
3145                         .name = name_svideo,
3146                         .vmux = 8,
3147                         .amux = LINE2,
3148                         .gpio = 0x4000,
3149                 }},
3150                 .radio = {
3151                         .name = name_radio,
3152                         .amux = LINE2,
3153                         .gpio = 0x2000,
3154                 },
3155                         .mute = {
3156                         .name = name_mute,
3157                         .amux = TV,
3158                         .gpio = 0x8000,
3159                 },
3160         },
3161         [SAA7134_BOARD_MEDION_MD8800_QUADRO] = {
3162                 .name           = "Medion Md8800 Quadro",
3163                 .audio_clock    = 0x00187de7,
3164                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3165                 .radio_type     = UNSET,
3166                 .tuner_addr     = ADDR_UNSET,
3167                 .radio_addr     = ADDR_UNSET,
3168                 .mpeg           = SAA7134_MPEG_DVB,
3169                 .inputs = {{
3170                         .name   = name_tv,
3171                         .vmux   = 1,
3172                         .amux   = TV,
3173                         .tv     = 1,
3174                 },{
3175                         .name   = name_comp1,
3176                         .vmux   = 0,
3177                         .amux   = LINE1,
3178                 },{
3179                         .name   = name_svideo,
3180                         .vmux   = 8,
3181                         .amux   = LINE1,
3182                 }},
3183         },
3184         [SAA7134_BOARD_FLYDVBS_LR300] = {
3185                 /* LifeView FlyDVB-s */
3186                 /* Igor M. Liplianin <liplianin@tut.by> */
3187                 .name           = "LifeView FlyDVB-S /Acorp TV134DS",
3188                 .audio_clock    = 0x00200000,
3189                 .tuner_type     = TUNER_ABSENT,
3190                 .radio_type     = UNSET,
3191                 .tuner_addr     = ADDR_UNSET,
3192                 .radio_addr     = ADDR_UNSET,
3193                 .mpeg           = SAA7134_MPEG_DVB,
3194                 .inputs         = {{
3195                         .name = name_comp1,     /* Composite input */
3196                         .vmux = 3,
3197                         .amux = LINE1,
3198                 },{
3199                         .name = name_svideo,    /* S-Video signal on S-Video input */
3200                         .vmux = 8,
3201                         .amux = LINE1,
3202                 }},
3203         },
3204         [SAA7134_BOARD_PROTEUS_2309] = {
3205                 .name           = "Proteus Pro 2309",
3206                 .audio_clock    = 0x00187de7,
3207                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3208                 .radio_type     = UNSET,
3209                 .tuner_addr     = ADDR_UNSET,
3210                 .radio_addr     = ADDR_UNSET,
3211                 .tda9887_conf   = TDA9887_PRESENT,
3212                 .inputs         = {{
3213                         .name = name_tv,
3214                         .vmux = 1,
3215                         .amux = LINE2,
3216                         .tv   = 1,
3217                 },{
3218                         .name = name_comp1,
3219                         .vmux = 0,
3220                         .amux = LINE2,
3221                 },{
3222                         .name = name_comp2,
3223                         .vmux = 3,
3224                         .amux = LINE2,
3225                 },{
3226                         .name = name_svideo,
3227                         .vmux = 8,
3228                         .amux = LINE2,
3229                 }},
3230                 .mute = {
3231                         .name = name_mute,
3232                         .amux = LINE1,
3233                 },
3234         },
3235         [SAA7134_BOARD_AVERMEDIA_A16AR] = {
3236                 /* Petr Baudis <pasky@ucw.cz> */
3237                 .name           = "AVerMedia TV Hybrid A16AR",
3238                 .audio_clock    = 0x187de7,
3239                 .tuner_type     = TUNER_PHILIPS_TD1316, /* untested */
3240                 .radio_type     = TUNER_TEA5767, /* untested */
3241                 .tuner_addr     = ADDR_UNSET,
3242                 .radio_addr     = 0x60,
3243                 .tda9887_conf   = TDA9887_PRESENT,
3244                 .mpeg           = SAA7134_MPEG_DVB,
3245                 .inputs         = {{
3246                         .name = name_tv,
3247                         .vmux = 1,
3248                         .amux = TV,
3249                         .tv   = 1,
3250                 },{
3251                         .name = name_comp1,
3252                         .vmux = 3,
3253                         .amux = LINE2,
3254                 },{
3255                         .name = name_svideo,
3256                         .vmux = 8,
3257                         .amux = LINE1,
3258                 }},
3259                 .radio = {
3260                         .name = name_radio,
3261                         .amux = LINE1,
3262                 },
3263         },
3264         [SAA7134_BOARD_ASUS_EUROPA2_HYBRID] = {
3265                 .name           = "Asus Europa2 OEM",
3266                 .audio_clock    = 0x00187de7,
3267                 .tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
3268                 .radio_type     = UNSET,
3269                 .tuner_addr     = ADDR_UNSET,
3270                 .radio_addr     = ADDR_UNSET,
3271                 .tda9887_conf   = TDA9887_PRESENT| TDA9887_PORT1_ACTIVE | TDA9887_PORT2_ACTIVE,
3272                 .mpeg           = SAA7134_MPEG_DVB,
3273                 .inputs = {{
3274                         .name   = name_tv,
3275                         .vmux   = 3,
3276                         .amux   = TV,
3277                         .tv     = 1,
3278                 },{
3279                         .name   = name_comp1,
3280                         .vmux   = 4,
3281                         .amux   = LINE2,
3282                 },{
3283                         .name   = name_svideo,
3284                         .vmux   = 8,
3285                         .amux   = LINE2,
3286                 }},
3287                 .radio = {
3288                         .name   = name_radio,
3289                         .amux   = LINE1,
3290                 },
3291         },
3292         [SAA7134_BOARD_PINNACLE_PCTV_310i] = {
3293                 .name           = "Pinnacle PCTV 310i",
3294                 .audio_clock    = 0x00187de7,
3295                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3296                 .radio_type     = UNSET,
3297                 .tuner_addr     = ADDR_UNSET,
3298                 .radio_addr     = ADDR_UNSET,
3299                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_ON },
3300                 .mpeg           = SAA7134_MPEG_DVB,
3301                 .gpiomask       = 0x000200000,
3302                 .inputs         = {{
3303                         .name = name_tv,
3304                         .vmux = 4,
3305                         .amux = TV,
3306                         .tv   = 1,
3307                 },{
3308                         .name = name_comp1,
3309                         .vmux = 1,
3310                         .amux = LINE2,
3311                 },{
3312                         .name = name_comp2,
3313                         .vmux = 0,
3314                         .amux = LINE2,
3315                 },{
3316                         .name = name_svideo,
3317                         .vmux = 8,
3318                         .amux = LINE2,
3319                 }},
3320                 .radio = {
3321                         .name = name_radio,
3322                         .amux   = TV,
3323                         .gpio   = 0x0200000,
3324                 },
3325         },
3326         [SAA7134_BOARD_AVERMEDIA_STUDIO_507] = {
3327                 /* Mikhail Fedotov <mo_fedotov@mail.ru> */
3328                 .name           = "Avermedia AVerTV Studio 507",
3329                 .audio_clock    = 0x00187de7,
3330                 .tuner_type     = TUNER_PHILIPS_FM1256_IH3,
3331                 .radio_type     = UNSET,
3332                 .tuner_addr     = ADDR_UNSET,
3333                 .radio_addr     = ADDR_UNSET,
3334                 .tda9887_conf   = TDA9887_PRESENT,
3335                 .gpiomask       = 0x03,
3336                 .inputs         = {{
3337                         .name = name_tv,
3338                         .vmux = 1,
3339                         .amux = TV,
3340                         .tv   = 1,
3341                         .gpio = 0x00,
3342                 },{
3343                         .name = name_comp1,
3344                         .vmux = 0,
3345                         .amux = LINE2,
3346                         .gpio = 0x00,
3347                 },{
3348                         .name = name_comp2,
3349                         .vmux = 3,
3350                         .amux = LINE2,
3351                         .gpio = 0x00,
3352                 },{
3353                         .name = name_svideo,
3354                         .vmux = 8,
3355                         .amux = LINE2,
3356                         .gpio = 0x00,
3357                 }},
3358                 .radio = {
3359                         .name = name_radio,
3360                         .amux = LINE2,
3361                         .gpio = 0x01,
3362                 },
3363                 .mute  = {
3364                         .name = name_mute,
3365                         .amux = LINE1,
3366                         .gpio = 0x00,
3367                 },
3368         },
3369         [SAA7134_BOARD_VIDEOMATE_DVBT_200A] = {
3370                 /* Francis Barber <fedora@barber-family.id.au> */
3371                 .name           = "Compro Videomate DVB-T200A",
3372                 .audio_clock    = 0x00187de7,
3373                 .tuner_type     = TUNER_ABSENT,
3374                 .radio_type     = UNSET,
3375                 .tuner_addr     = ADDR_UNSET,
3376                 .radio_addr     = ADDR_UNSET,
3377                 .tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
3378                 .mpeg           = SAA7134_MPEG_DVB,
3379                 .inputs = {{
3380                         .name   = name_tv,
3381                         .vmux   = 3,
3382                         .amux   = TV,
3383                         .tv     = 1,
3384                 },{
3385                         .name   = name_comp1,
3386                         .vmux   = 1,
3387                         .amux   = LINE2,
3388                 },{
3389                         .name   = name_svideo,
3390                         .vmux   = 8,
3391                         .amux   = LINE2,
3392                 }},
3393         },
3394         [SAA7134_BOARD_HAUPPAUGE_HVR1110] = {
3395                 /* Thomas Genty <tomlohave@gmail.com> */
3396                 /* David Bentham <db260179@hotmail.com> */
3397                 .name           = "Hauppauge WinTV-HVR1110 DVB-T/Hybrid",
3398                 .audio_clock    = 0x00187de7,
3399                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3400                 .radio_type     = UNSET,
3401                 .tuner_addr     = ADDR_UNSET,
3402                 .radio_addr     = ADDR_UNSET,
3403                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_ON },
3404                 .mpeg           = SAA7134_MPEG_DVB,
3405                 .gpiomask       = 0x0200100,
3406                 .inputs         = {{
3407                         .name = name_tv,
3408                         .vmux = 1,
3409                         .amux = TV,
3410                         .tv   = 1,
3411                         .gpio = 0x0000100,
3412                 }, {
3413                         .name = name_comp1,
3414                         .vmux = 3,
3415                         .amux = LINE1,
3416                 }, {
3417                         .name = name_svideo,
3418                         .vmux = 8,
3419                         .amux = LINE1,
3420                 } },
3421                 .radio = {
3422                         .name = name_radio,
3423                         .amux = TV,
3424                         .gpio = 0x0200100,
3425                 },
3426         },
3427         [SAA7134_BOARD_HAUPPAUGE_HVR1150] = {
3428                 .name           = "Hauppauge WinTV-HVR1150 ATSC/QAM-Hybrid",
3429                 .audio_clock    = 0x00187de7,
3430                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3431                 .radio_type     = UNSET,
3432                 .tuner_addr     = ADDR_UNSET,
3433                 .radio_addr     = ADDR_UNSET,
3434                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_ON_BRIDGE },
3435                 .mpeg           = SAA7134_MPEG_DVB,
3436                 .ts_type        = SAA7134_MPEG_TS_SERIAL,
3437                 .ts_force_val   = 1,
3438                 .gpiomask       = 0x0800100, /* GPIO 21 is an INPUT */
3439                 .inputs         = {{
3440                         .name = name_tv,
3441                         .vmux = 1,
3442                         .amux = TV,
3443                         .tv   = 1,
3444                         .gpio = 0x0000100,
3445                 }, {
3446                         .name = name_comp1,
3447                         .vmux = 3,
3448                         .amux = LINE1,
3449                 }, {
3450                         .name = name_svideo,
3451                         .vmux = 8,
3452                         .amux = LINE1,
3453                 } },
3454                 .radio = {
3455                         .name = name_radio,
3456                         .amux = TV,
3457                         .gpio = 0x0800100, /* GPIO 23 HI for FM */
3458                 },
3459         },
3460         [SAA7134_BOARD_HAUPPAUGE_HVR1120] = {
3461                 .name           = "Hauppauge WinTV-HVR1120 DVB-T/Hybrid",
3462                 .audio_clock    = 0x00187de7,
3463                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3464                 .radio_type     = UNSET,
3465                 .tuner_addr     = ADDR_UNSET,
3466                 .radio_addr     = ADDR_UNSET,
3467                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_ON_BRIDGE },
3468                 .mpeg           = SAA7134_MPEG_DVB,
3469                 .ts_type        = SAA7134_MPEG_TS_SERIAL,
3470                 .gpiomask       = 0x0800100, /* GPIO 21 is an INPUT */
3471                 .inputs         = {{
3472                         .name = name_tv,
3473                         .vmux = 1,
3474                         .amux = TV,
3475                         .tv   = 1,
3476                         .gpio = 0x0000100,
3477                 }, {
3478                         .name = name_comp1,
3479                         .vmux = 3,
3480                         .amux = LINE1,
3481                 }, {
3482                         .name = name_svideo,
3483                         .vmux = 8,
3484                         .amux = LINE1,
3485                 } },
3486                 .radio = {
3487                         .name = name_radio,
3488                         .amux = TV,
3489                         .gpio = 0x0800100, /* GPIO 23 HI for FM */
3490                 },
3491         },
3492         [SAA7134_BOARD_CINERGY_HT_PCMCIA] = {
3493                 .name           = "Terratec Cinergy HT PCMCIA",
3494                 .audio_clock    = 0x00187de7,
3495                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3496                 .radio_type     = UNSET,
3497                 .tuner_addr     = ADDR_UNSET,
3498                 .radio_addr     = ADDR_UNSET,
3499                 .mpeg           = SAA7134_MPEG_DVB,
3500                 .inputs = {{
3501                         .name   = name_tv,
3502                         .vmux   = 1,
3503                         .amux   = TV,
3504                         .tv     = 1,
3505                 },{
3506                         .name   = name_comp1,
3507                         .vmux   = 0,
3508                         .amux   = LINE1,
3509                 },{
3510                         .name   = name_svideo,
3511                         .vmux   = 6,
3512                         .amux   = LINE1,
3513                 }},
3514         },
3515         [SAA7134_BOARD_ENCORE_ENLTV] = {
3516         /* Steven Walter <stevenrwalter@gmail.com>
3517            Juan Pablo Sormani <sorman@gmail.com> */
3518                 .name           = "Encore ENLTV",
3519                 .audio_clock    = 0x00200000,
3520                 .tuner_type     = TUNER_TNF_5335MF,
3521                 .radio_type     = UNSET,
3522                 .tuner_addr     = ADDR_UNSET,
3523                 .radio_addr     = ADDR_UNSET,
3524                 .inputs         = {{
3525                         .name = name_tv,
3526                         .vmux = 1,
3527                         .amux = 3,
3528                         .tv   = 1,
3529                 },{
3530                         .name = name_tv_mono,
3531                         .vmux = 7,
3532                         .amux = 4,
3533                         .tv   = 1,
3534                 },{
3535                         .name = name_comp1,
3536                         .vmux = 3,
3537                         .amux = 2,
3538                 },{
3539                         .name = name_svideo,
3540                         .vmux = 0,
3541                         .amux = 2,
3542                 }},
3543                 .radio = {
3544                         .name = name_radio,
3545                         .amux = LINE2,
3546 /*                      .gpio = 0x00300001,*/
3547                         .gpio = 0x20000,
3548
3549                 },
3550                 .mute = {
3551                         .name = name_mute,
3552                         .amux = 0,
3553                 },
3554         },
3555         [SAA7134_BOARD_ENCORE_ENLTV_FM] = {
3556   /*    Juan Pablo Sormani <sorman@gmail.com> */
3557                 .name           = "Encore ENLTV-FM",
3558                 .audio_clock    = 0x00200000,
3559                 .tuner_type     = TUNER_PHILIPS_FCV1236D,
3560                 .radio_type     = UNSET,
3561                 .tuner_addr     = ADDR_UNSET,
3562                 .radio_addr     = ADDR_UNSET,
3563                 .inputs         = {{
3564                         .name = name_tv,
3565                         .vmux = 1,
3566                         .amux = 3,
3567                         .tv   = 1,
3568                 },{
3569                         .name = name_tv_mono,
3570                         .vmux = 7,
3571                         .amux = 4,
3572                         .tv   = 1,
3573                 },{
3574                         .name = name_comp1,
3575                         .vmux = 3,
3576                         .amux = 2,
3577                 },{
3578                         .name = name_svideo,
3579                         .vmux = 0,
3580                         .amux = 2,
3581                 }},
3582                 .radio = {
3583                         .name = name_radio,
3584                         .amux = LINE2,
3585                         .gpio = 0x20000,
3586
3587                 },
3588                 .mute = {
3589                         .name = name_mute,
3590                         .amux = 0,
3591                 },
3592         },
3593         [SAA7134_BOARD_ENCORE_ENLTV_FM53] = {
3594                 .name           = "Encore ENLTV-FM v5.3",
3595                 .audio_clock    = 0x00200000,
3596                 .tuner_type     = TUNER_TNF_5335MF,
3597                 .radio_type     = UNSET,
3598                 .tuner_addr     = ADDR_UNSET,
3599                 .radio_addr     = ADDR_UNSET,
3600                 .gpiomask       = 0x7000,
3601                 .inputs         = { {
3602                         .name = name_tv,
3603                         .vmux = 1,
3604                         .amux = 1,
3605                         .tv   = 1,
3606                         .gpio = 0x50000,
3607                 }, {
3608                         .name = name_comp1,
3609                         .vmux = 3,
3610                         .amux = 2,
3611                         .gpio = 0x2000,
3612                 }, {
3613                         .name = name_svideo,
3614                         .vmux = 8,
3615                         .amux = 2,
3616                         .gpio = 0x2000,
3617                 } },
3618                 .radio = {
3619                         .name = name_radio,
3620                         .vmux = 1,
3621                         .amux = 1,
3622                 },
3623                 .mute = {
3624                         .name = name_mute,
3625                         .gpio = 0xf000,
3626                         .amux = 0,
3627                 },
3628         },
3629         [SAA7134_BOARD_ENCORE_ENLTV_FM3] = {
3630                 .name           = "Encore ENLTV-FM 3",
3631                 .audio_clock    = 0x02187de7,
3632                 .tuner_type     = TUNER_TENA_TNF_5337,
3633                 .radio_type     = TUNER_TEA5767,
3634                 .tuner_addr     = 0x61,
3635                 .radio_addr     = 0x60,
3636                 .inputs         = { {
3637                         .name = name_tv,
3638                         .vmux = 1,
3639                         .amux = LINE2,
3640                         .tv   = 1,
3641                 }, {
3642                         .name = name_comp1,
3643                         .vmux = 3,
3644                         .amux = LINE1,
3645                 }, {
3646                         .name = name_svideo,
3647                         .vmux = 8,
3648                         .amux = LINE1,
3649                 } },
3650                 .radio = {
3651                         .name = name_radio,
3652                         .vmux = 1,
3653                         .amux = LINE1,
3654                 },
3655                 .mute = {
3656                         .name = name_mute,
3657                         .amux = LINE1,
3658                         .gpio = 0x43000,
3659                 },
3660         },
3661         [SAA7134_BOARD_CINERGY_HT_PCI] = {
3662                 .name           = "Terratec Cinergy HT PCI",
3663                 .audio_clock    = 0x00187de7,
3664                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3665                 .radio_type     = UNSET,
3666                 .tuner_addr     = ADDR_UNSET,
3667                 .radio_addr     = ADDR_UNSET,
3668                 .mpeg           = SAA7134_MPEG_DVB,
3669                 .inputs = {{
3670                         .name   = name_tv,
3671                         .vmux   = 1,
3672                         .amux   = TV,
3673                         .tv     = 1,
3674                 },{
3675                         .name   = name_comp1,
3676                         .vmux   = 0,
3677                         .amux   = LINE1,
3678                 },{
3679                         .name   = name_svideo,
3680                         .vmux   = 6,
3681                         .amux   = LINE1,
3682                 }},
3683         },
3684         [SAA7134_BOARD_PHILIPS_TIGER_S] = {
3685                 .name           = "Philips Tiger - S Reference design",
3686                 .audio_clock    = 0x00187de7,
3687                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3688                 .radio_type     = UNSET,
3689                 .tuner_addr     = ADDR_UNSET,
3690                 .radio_addr     = ADDR_UNSET,
3691                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
3692                 .mpeg           = SAA7134_MPEG_DVB,
3693                 .gpiomask       = 0x0200000,
3694                 .inputs = {{
3695                         .name   = name_tv,
3696                         .vmux   = 1,
3697                         .amux   = TV,
3698                         .tv     = 1,
3699                 },{
3700                         .name   = name_comp1,
3701                         .vmux   = 3,
3702                         .amux   = LINE1,
3703                 },{
3704                         .name   = name_svideo,
3705                         .vmux   = 8,
3706                         .amux   = LINE1,
3707                 }},
3708                 .radio = {
3709                         .name   = name_radio,
3710                         .amux   = TV,
3711                         .gpio   = 0x0200000,
3712                 },
3713         },
3714         [SAA7134_BOARD_AVERMEDIA_M102] = {
3715                 .name           = "Avermedia M102",
3716                 .audio_clock    = 0x00187de7,
3717                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3718                 .radio_type     = UNSET,
3719                 .tuner_addr     = ADDR_UNSET,
3720                 .radio_addr     = ADDR_UNSET,
3721                 .gpiomask       = 1<<21,
3722                 .inputs         = {{
3723                         .name = name_tv,
3724                         .vmux = 1,
3725                         .amux = TV,
3726                         .tv   = 1,
3727                 },{
3728                         .name = name_comp1,
3729                         .vmux = 0,
3730                         .amux = LINE2,
3731                 },{
3732                         .name = name_svideo,
3733                         .vmux = 6,
3734                         .amux = LINE2,
3735                 }},
3736         },
3737         [SAA7134_BOARD_ASUS_P7131_4871] = {
3738                 .name           = "ASUS P7131 4871",
3739                 .audio_clock    = 0x00187de7,
3740                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3741                 .radio_type     = UNSET,
3742                 .tuner_addr     = ADDR_UNSET,
3743                 .radio_addr     = ADDR_UNSET,
3744                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
3745                 .mpeg           = SAA7134_MPEG_DVB,
3746                 .gpiomask       = 0x0200000,
3747                 .inputs = {{
3748                         .name   = name_tv,
3749                         .vmux   = 1,
3750                         .amux   = TV,
3751                         .tv     = 1,
3752                         .gpio   = 0x0200000,
3753                 }},
3754         },
3755         [SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA] = {
3756                 .name           = "ASUSTeK P7131 Hybrid",
3757                 .audio_clock    = 0x00187de7,
3758                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3759                 .radio_type     = UNSET,
3760                 .tuner_addr     = ADDR_UNSET,
3761                 .radio_addr     = ADDR_UNSET,
3762                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
3763                 .gpiomask       = 1 << 21,
3764                 .mpeg           = SAA7134_MPEG_DVB,
3765                 .inputs         = {{
3766                         .name = name_tv,
3767                         .vmux = 1,
3768                         .amux = TV,
3769                         .tv   = 1,
3770                         .gpio = 0x0000000,
3771                 },{
3772                         .name = name_comp1,
3773                         .vmux = 3,
3774                         .amux = LINE2,
3775                         .gpio = 0x0200000,
3776                 },{
3777                         .name = name_comp2,
3778                         .vmux = 0,
3779                         .amux = LINE2,
3780                         .gpio = 0x0200000,
3781                 },{
3782                         .name = name_svideo,
3783                         .vmux = 8,
3784                         .amux = LINE2,
3785                         .gpio = 0x0200000,
3786                 }},
3787                 .radio = {
3788                         .name = name_radio,
3789                         .amux = TV,
3790                         .gpio = 0x0200000,
3791                 },
3792         },
3793         [SAA7134_BOARD_ASUSTeK_P7131_ANALOG] = {
3794                .name           = "ASUSTeK P7131 Analog",
3795                .audio_clock    = 0x00187de7,
3796                .tuner_type     = TUNER_PHILIPS_TDA8290,
3797                .radio_type     = UNSET,
3798                .tuner_addr     = ADDR_UNSET,
3799                .radio_addr     = ADDR_UNSET,
3800                .gpiomask       = 1 << 21,
3801                .inputs         = {{
3802                        .name = name_tv,
3803                        .vmux = 1,
3804                        .amux = TV,
3805                        .tv   = 1,
3806                        .gpio = 0x0000000,
3807                }, {
3808                        .name = name_comp1,
3809                        .vmux = 3,
3810                        .amux = LINE2,
3811                }, {
3812                        .name = name_comp2,
3813                        .vmux = 0,
3814                        .amux = LINE2,
3815                }, {
3816                        .name = name_svideo,
3817                        .vmux = 8,
3818                        .amux = LINE2,
3819                } },
3820                .radio = {
3821                        .name = name_radio,
3822                        .amux = TV,
3823                        .gpio = 0x0200000,
3824                },
3825         },
3826         [SAA7134_BOARD_SABRENT_TV_PCB05] = {
3827                 .name           = "Sabrent PCMCIA TV-PCB05",
3828                 .audio_clock    = 0x00187de7,
3829                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3830                 .radio_type     = UNSET,
3831                 .tuner_addr     = ADDR_UNSET,
3832                 .radio_addr     = ADDR_UNSET,
3833                 .inputs         = {{
3834                         .name = name_tv,
3835                         .vmux = 1,
3836                         .amux = TV,
3837                         .tv   = 1,
3838                 },{
3839                         .name = name_comp1,
3840                         .vmux = 3,
3841                         .amux = LINE1,
3842                 },{
3843                         .name = name_comp2,
3844                         .vmux = 0,
3845                         .amux = LINE1,
3846                 },{
3847                         .name = name_svideo,
3848                         .vmux = 8,
3849                         .amux = LINE1,
3850                 }},
3851                 .mute = {
3852                         .name = name_mute,
3853                         .amux = TV,
3854                 },
3855         },
3856         [SAA7134_BOARD_10MOONSTVMASTER3] = {
3857                 /* Tony Wan <aloha_cn@hotmail.com> */
3858                 .name           = "10MOONS TM300 TV Card",
3859                 .audio_clock    = 0x00200000,
3860                 .tuner_type     = TUNER_LG_PAL_NEW_TAPC,
3861                 .radio_type     = UNSET,
3862                 .tuner_addr     = ADDR_UNSET,
3863                 .radio_addr     = ADDR_UNSET,
3864                 .gpiomask       = 0x7000,
3865                 .inputs         = {{
3866                         .name = name_tv,
3867                         .vmux = 1,
3868                         .amux = LINE2,
3869                         .gpio = 0x0000,
3870                         .tv   = 1,
3871                 },{
3872                         .name = name_comp1,
3873                         .vmux = 3,
3874                         .amux = LINE1,
3875                         .gpio = 0x2000,
3876                 },{
3877                         .name = name_svideo,
3878                         .vmux = 8,
3879                         .amux = LINE1,
3880                         .gpio = 0x2000,
3881                 }},
3882                 .mute = {
3883                         .name = name_mute,
3884                         .amux = LINE2,
3885                         .gpio = 0x3000,
3886                 },
3887         },
3888         [SAA7134_BOARD_AVERMEDIA_SUPER_007] = {
3889                 .name           = "Avermedia Super 007",
3890                 .audio_clock    = 0x00187de7,
3891                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3892                 .radio_type     = UNSET,
3893                 .tuner_addr     = ADDR_UNSET,
3894                 .radio_addr     = ADDR_UNSET,
3895                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF },
3896                 .mpeg           = SAA7134_MPEG_DVB,
3897                 .inputs = {{
3898                         .name   = name_tv, /* FIXME: analog tv untested */
3899                         .vmux   = 1,
3900                         .amux   = TV,
3901                         .tv     = 1,
3902                 }},
3903         },
3904         [SAA7134_BOARD_AVERMEDIA_M135A] = {
3905                 .name           = "Avermedia PCI pure analog (M135A)",
3906                 .audio_clock    = 0x00187de7,
3907                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3908                 .radio_type     = UNSET,
3909                 .tuner_addr     = ADDR_UNSET,
3910                 .radio_addr     = ADDR_UNSET,
3911                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
3912                 .gpiomask       = 0x020200000,
3913                 .inputs         = {{
3914                         .name = name_tv,
3915                         .vmux = 1,
3916                         .amux = TV,
3917                         .tv   = 1,
3918                 }, {
3919                         .name = name_comp1,
3920                         .vmux = 3,
3921                         .amux = LINE1,
3922                 }, {
3923                         .name = name_svideo,
3924                         .vmux = 8,
3925                         .amux = LINE1,
3926                 } },
3927                 .radio = {
3928                         .name = name_radio,
3929                         .amux = TV,
3930                         .gpio = 0x00200000,
3931                 },
3932                 .mute = {
3933                         .name = name_mute,
3934                         .amux = TV,
3935                         .gpio = 0x01,
3936                 },
3937         },
3938         [SAA7134_BOARD_AVERMEDIA_M733A] = {
3939                 .name           = "Avermedia PCI M733A",
3940                 .audio_clock    = 0x00187de7,
3941                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3942                 .radio_type     = UNSET,
3943                 .tuner_addr     = ADDR_UNSET,
3944                 .radio_addr     = ADDR_UNSET,
3945                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF },
3946                 .gpiomask       = 0x020200000,
3947                 .inputs         = {{
3948                         .name = name_tv,
3949                         .vmux = 1,
3950                         .amux = TV,
3951                         .tv   = 1,
3952                 }, {
3953                         .name = name_comp1,
3954                         .vmux = 3,
3955                         .amux = LINE1,
3956                 }, {
3957                         .name = name_svideo,
3958                         .vmux = 8,
3959                         .amux = LINE1,
3960                 } },
3961                 .radio = {
3962                         .name = name_radio,
3963                         .amux = TV,
3964                         .gpio = 0x00200000,
3965                 },
3966                 .mute = {
3967                         .name = name_mute,
3968                         .amux = TV,
3969                         .gpio = 0x01,
3970                 },
3971         },
3972         [SAA7134_BOARD_BEHOLD_401] = {
3973                 /*       Beholder Intl. Ltd. 2008      */
3974                 /*Dmitry Belimov <d.belimov@gmail.com> */
3975                 .name           = "Beholder BeholdTV 401",
3976                 .audio_clock    = 0x00187de7,
3977                 .tuner_type     = TUNER_PHILIPS_FQ1216ME,
3978                 .radio_type     = UNSET,
3979                 .tuner_addr     = ADDR_UNSET,
3980                 .radio_addr     = ADDR_UNSET,
3981                 .gpiomask       = 0x00008000,
3982                 .inputs         = {{
3983                         .name = name_svideo,
3984                         .vmux = 8,
3985                         .amux = LINE1,
3986                 },{
3987                         .name = name_comp1,
3988                         .vmux = 1,
3989                         .amux = LINE1,
3990                 },{
3991                         .name = name_tv,
3992                         .vmux = 3,
3993                         .amux = LINE2,
3994                         .tv   = 1,
3995                 }},
3996                 .mute = {
3997                         .name = name_mute,
3998                         .amux = LINE1,
3999                 },
4000         },
4001         [SAA7134_BOARD_BEHOLD_403] = {
4002                 /*       Beholder Intl. Ltd. 2008      */
4003                 /*Dmitry Belimov <d.belimov@gmail.com> */
4004                 .name           = "Beholder BeholdTV 403",
4005                 .audio_clock    = 0x00187de7,
4006                 .tuner_type     = TUNER_PHILIPS_FQ1216ME,
4007                 .radio_type     = UNSET,
4008                 .tuner_addr     = ADDR_UNSET,
4009                 .radio_addr     = ADDR_UNSET,
4010                 .gpiomask       = 0x00008000,
4011                 .inputs         = {{
4012                         .name = name_svideo,
4013                         .vmux = 8,
4014                         .amux = LINE1,
4015                 },{
4016                         .name   = name_comp1,
4017                         .vmux   = 1,
4018                         .amux   = LINE1,
4019                 },{
4020                         .name = name_tv,
4021                         .vmux = 3,
4022                         .amux = LINE2,
4023                         .tv   = 1,
4024                 }},
4025         },
4026         [SAA7134_BOARD_BEHOLD_403FM] = {
4027                 /*       Beholder Intl. Ltd. 2008      */
4028                 /*Dmitry Belimov <d.belimov@gmail.com> */
4029                 .name           = "Beholder BeholdTV 403 FM",
4030                 .audio_clock    = 0x00187de7,
4031                 .tuner_type     = TUNER_PHILIPS_FQ1216ME,
4032                 .radio_type     = UNSET,
4033                 .tuner_addr     = ADDR_UNSET,
4034                 .radio_addr     = ADDR_UNSET,
4035                 .gpiomask       = 0x00008000,
4036                 .inputs         = {{
4037                         .name = name_svideo,
4038                         .vmux = 8,
4039                         .amux = LINE1,
4040                 },{
4041                         .name   = name_comp1,
4042                         .vmux   = 1,
4043                         .amux   = LINE1,
4044                 },{
4045                         .name = name_tv,
4046                         .vmux = 3,
4047                         .amux = LINE2,
4048                         .tv   = 1,
4049                 }},
4050                 .radio = {
4051                         .name = name_radio,
4052                         .amux = LINE2,
4053                 },
4054         },
4055         [SAA7134_BOARD_BEHOLD_405] = {
4056                 /*       Beholder Intl. Ltd. 2008      */
4057                 /*Dmitry Belimov <d.belimov@gmail.com> */
4058                 .name           = "Beholder BeholdTV 405",
4059                 .audio_clock    = 0x00187de7,
4060                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4061                 .radio_type     = UNSET,
4062                 .tuner_addr     = ADDR_UNSET,
4063                 .radio_addr     = ADDR_UNSET,
4064                 .tda9887_conf   = TDA9887_PRESENT,
4065                 .gpiomask       = 0x00008000,
4066                 .inputs         = {{
4067                         .name = name_svideo,
4068                         .vmux = 8,
4069                         .amux = LINE1,
4070                 },{
4071                         .name = name_comp1,
4072                         .vmux = 3,
4073                         .amux = LINE1,
4074                 },{
4075                         .name = name_tv,
4076                         .vmux = 3,
4077                         .amux = LINE2,
4078                         .tv   = 1,
4079                 }},
4080         },
4081         [SAA7134_BOARD_BEHOLD_405FM] = {
4082                 /* Sergey <skiv@orel.ru> */
4083                 /*       Beholder Intl. Ltd. 2008      */
4084                 /*Dmitry Belimov <d.belimov@gmail.com> */
4085                 .name           = "Beholder BeholdTV 405 FM",
4086                 .audio_clock    = 0x00187de7,
4087                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4088                 .radio_type     = UNSET,
4089                 .tuner_addr     = ADDR_UNSET,
4090                 .radio_addr     = ADDR_UNSET,
4091                 .tda9887_conf   = TDA9887_PRESENT,
4092                 .gpiomask       = 0x00008000,
4093                 .inputs         = {{
4094                         .name = name_svideo,
4095                         .vmux = 8,
4096                         .amux = LINE1,
4097                 },{
4098                         .name = name_comp1,
4099                         .vmux = 3,
4100                         .amux = LINE1,
4101                 },{
4102                         .name = name_tv,
4103                         .vmux = 3,
4104                         .amux = LINE2,
4105                         .tv   = 1,
4106                 }},
4107                 .radio = {
4108                         .name = name_radio,
4109                         .amux = LINE2,
4110                 },
4111         },
4112         [SAA7134_BOARD_BEHOLD_407] = {
4113                 /*       Beholder Intl. Ltd. 2008      */
4114                 /*Dmitry Belimov <d.belimov@gmail.com> */
4115                 .name           = "Beholder BeholdTV 407",
4116                 .audio_clock    = 0x00187de7,
4117                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4118                 .radio_type     = UNSET,
4119                 .tuner_addr     = ADDR_UNSET,
4120                 .radio_addr     = ADDR_UNSET,
4121                 .tda9887_conf   = TDA9887_PRESENT,
4122                 .gpiomask       = 0x00008000,
4123                 .inputs = {{
4124                         .name = name_svideo,
4125                         .vmux = 8,
4126                         .amux = LINE1,
4127                         .gpio = 0xc0c000,
4128                 },{
4129                         .name = name_comp1,
4130                         .vmux = 1,
4131                         .amux = LINE1,
4132                         .gpio = 0xc0c000,
4133                 },{
4134                         .name = name_tv,
4135                         .vmux = 3,
4136                         .amux = TV,
4137                         .tv = 1,
4138                         .gpio = 0xc0c000,
4139                 }},
4140         },
4141         [SAA7134_BOARD_BEHOLD_407FM] = {
4142                 /*       Beholder Intl. Ltd. 2008      */
4143                 /*Dmitry Belimov <d.belimov@gmail.com> */
4144                 .name           = "Beholder BeholdTV 407 FM",
4145                 .audio_clock    = 0x00187de7,
4146                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4147                 .radio_type     = UNSET,
4148                 .tuner_addr     = ADDR_UNSET,
4149                 .radio_addr     = ADDR_UNSET,
4150                 .tda9887_conf   = TDA9887_PRESENT,
4151                 .gpiomask       = 0x00008000,
4152                 .inputs = {{
4153                         .name = name_svideo,
4154                         .vmux = 8,
4155                         .amux = LINE1,
4156                         .gpio = 0xc0c000,
4157                 },{
4158                         .name = name_comp1,
4159                         .vmux = 1,
4160                         .amux = LINE1,
4161                         .gpio = 0xc0c000,
4162                 },{
4163                         .name = name_tv,
4164                         .vmux = 3,
4165                         .amux = TV,
4166                         .tv = 1,
4167                         .gpio = 0xc0c000,
4168                 }},
4169                 .radio = {
4170                         .name = name_radio,
4171                         .amux = LINE2,
4172                         .gpio = 0xc0c000,
4173                 },
4174         },
4175         [SAA7134_BOARD_BEHOLD_409] = {
4176                 /*       Beholder Intl. Ltd. 2008      */
4177                 /*Dmitry Belimov <d.belimov@gmail.com> */
4178                 .name           = "Beholder BeholdTV 409",
4179                 .audio_clock    = 0x00187de7,
4180                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4181                 .radio_type     = UNSET,
4182                 .tuner_addr     = ADDR_UNSET,
4183                 .radio_addr     = ADDR_UNSET,
4184                 .tda9887_conf   = TDA9887_PRESENT,
4185                 .gpiomask       = 0x00008000,
4186                 .inputs         = {{
4187                         .name = name_tv,
4188                         .vmux = 3,
4189                         .amux = TV,
4190                         .tv   = 1,
4191                 },{
4192                         .name = name_comp1,
4193                         .vmux = 1,
4194                         .amux = LINE1,
4195                 },{
4196                         .name = name_svideo,
4197                         .vmux = 8,
4198                         .amux = LINE1,
4199                 }},
4200         },
4201         [SAA7134_BOARD_BEHOLD_505FM] = {
4202                 /*       Beholder Intl. Ltd. 2008      */
4203                 /*Dmitry Belimov <d.belimov@gmail.com> */
4204                 .name           = "Beholder BeholdTV 505 FM",
4205                 .audio_clock    = 0x00200000,
4206                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4207                 .radio_type     = UNSET,
4208                 .tuner_addr     = ADDR_UNSET,
4209                 .radio_addr     = ADDR_UNSET,
4210                 .tda9887_conf   = TDA9887_PRESENT,
4211                 .gpiomask       = 0x00008000,
4212                 .inputs         = {{
4213                         .name = name_tv,
4214                         .vmux = 3,
4215                         .amux = LINE2,
4216                         .tv   = 1,
4217                 }, {
4218                         .name = name_comp1,
4219                         .vmux = 1,
4220                         .amux = LINE1,
4221                 }, {
4222                         .name = name_svideo,
4223                         .vmux = 8,
4224                         .amux = LINE1,
4225                 } },
4226                 .mute = {
4227                         .name = name_mute,
4228                         .amux = LINE1,
4229                 },
4230                 .radio = {
4231                         .name = name_radio,
4232                         .amux = LINE2,
4233                 },
4234         },
4235         [SAA7134_BOARD_BEHOLD_505RDS_MK5] = {
4236                 /*       Beholder Intl. Ltd. 2008      */
4237                 /*Dmitry Belimov <d.belimov@gmail.com> */
4238                 .name           = "Beholder BeholdTV 505 RDS",
4239                 .audio_clock    = 0x00200000,
4240                 .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4241                 .radio_type     = UNSET,
4242                 .tuner_addr     = ADDR_UNSET,
4243                 .radio_addr     = ADDR_UNSET,
4244                 .rds_addr       = 0x10,
4245                 .tda9887_conf   = TDA9887_PRESENT,
4246                 .gpiomask       = 0x00008000,
4247                 .inputs         = {{
4248                         .name = name_tv,
4249                         .vmux = 3,
4250                         .amux = LINE2,
4251                         .tv   = 1,
4252                 },{
4253                         .name = name_comp1,
4254                         .vmux = 1,
4255                         .amux = LINE1,
4256                 },{
4257                         .name = name_svideo,
4258                         .vmux = 8,
4259                         .amux = LINE1,
4260                 }},
4261                 .mute = {
4262                         .name = name_mute,
4263                         .amux = LINE1,
4264                 },
4265                 .radio = {
4266                         .name = name_radio,
4267                         .amux = LINE2,
4268                 },
4269         },
4270         [SAA7134_BOARD_BEHOLD_507_9FM] = {
4271                 /*       Beholder Intl. Ltd. 2008      */
4272                 /*Dmitry Belimov <d.belimov@gmail.com> */
4273                 .name           = "Beholder BeholdTV 507 FM / BeholdTV 509 FM",
4274                 .audio_clock    = 0x00187de7,
4275                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4276                 .radio_type     = UNSET,
4277                 .tuner_addr     = ADDR_UNSET,
4278                 .radio_addr     = ADDR_UNSET,
4279                 .tda9887_conf   = TDA9887_PRESENT,
4280                 .gpiomask       = 0x00008000,
4281                 .inputs         = {{
4282                         .name = name_tv,
4283                         .vmux = 3,
4284                         .amux = TV,
4285                         .tv   = 1,
4286                 },{
4287                         .name = name_comp1,
4288                         .vmux = 1,
4289                         .amux = LINE1,
4290                 },{
4291                         .name = name_svideo,
4292                         .vmux = 8,
4293                         .amux = LINE1,
4294                 }},
4295                         .radio = {
4296                         .name = name_radio,
4297                         .amux = LINE2,
4298                 },
4299         },
4300         [SAA7134_BOARD_BEHOLD_507RDS_MK5] = {
4301                 /*       Beholder Intl. Ltd. 2008      */
4302                 /*Dmitry Belimov <d.belimov@gmail.com> */
4303                 .name           = "Beholder BeholdTV 507 RDS",
4304                 .audio_clock    = 0x00187de7,
4305                 .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4306                 .radio_type     = UNSET,
4307                 .tuner_addr     = ADDR_UNSET,
4308                 .radio_addr     = ADDR_UNSET,
4309                 .rds_addr       = 0x10,
4310                 .tda9887_conf   = TDA9887_PRESENT,
4311                 .gpiomask       = 0x00008000,
4312                 .inputs         = {{
4313                         .name = name_tv,
4314                         .vmux = 3,
4315                         .amux = TV,
4316                         .tv   = 1,
4317                 }, {
4318                         .name = name_comp1,
4319                         .vmux = 1,
4320                         .amux = LINE1,
4321                 }, {
4322                         .name = name_svideo,
4323                         .vmux = 8,
4324                         .amux = LINE1,
4325                 } },
4326                         .radio = {
4327                         .name = name_radio,
4328                         .amux = LINE2,
4329                 },
4330         },
4331         [SAA7134_BOARD_BEHOLD_507RDS_MK3] = {
4332                 /*       Beholder Intl. Ltd. 2008      */
4333                 /*Dmitry Belimov <d.belimov@gmail.com> */
4334                 .name           = "Beholder BeholdTV 507 RDS",
4335                 .audio_clock    = 0x00187de7,
4336                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4337                 .radio_type     = UNSET,
4338                 .tuner_addr     = ADDR_UNSET,
4339                 .radio_addr     = ADDR_UNSET,
4340                 .rds_addr       = 0x10,
4341                 .tda9887_conf   = TDA9887_PRESENT,
4342                 .gpiomask       = 0x00008000,
4343                 .inputs         = {{
4344                         .name = name_tv,
4345                         .vmux = 3,
4346                         .amux = TV,
4347                         .tv   = 1,
4348                 }, {
4349                         .name = name_comp1,
4350                         .vmux = 1,
4351                         .amux = LINE1,
4352                 }, {
4353                         .name = name_svideo,
4354                         .vmux = 8,
4355                         .amux = LINE1,
4356                 } },
4357                         .radio = {
4358                         .name = name_radio,
4359                         .amux = LINE2,
4360                 },
4361         },
4362         [SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM] = {
4363                 /*       Beholder Intl. Ltd. 2008      */
4364                 /* Dmitry Belimov <d.belimov@gmail.com> */
4365                 .name           = "Beholder BeholdTV Columbus TV/FM",
4366                 .audio_clock    = 0x00187de7,
4367                 .tuner_type     = TUNER_ALPS_TSBE5_PAL,
4368                 .radio_type     = TUNER_TEA5767,
4369                 .tuner_addr     = 0xc2 >> 1,
4370                 .radio_addr     = 0xc0 >> 1,
4371                 .tda9887_conf   = TDA9887_PRESENT,
4372                 .gpiomask       = 0x000A8004,
4373                 .inputs         = {{
4374                         .name = name_tv,
4375                         .vmux = 3,
4376                         .amux = TV,
4377                         .tv   = 1,
4378                         .gpio = 0x000A8004,
4379                 }, {
4380                         .name = name_comp1,
4381                         .vmux = 1,
4382                         .amux = LINE1,
4383                         .gpio = 0x000A8000,
4384                 }, {
4385                         .name = name_svideo,
4386                         .vmux = 8,
4387                         .amux = LINE1,
4388                         .gpio = 0x000A8000,
4389                 } },
4390                 .radio = {
4391                         .name = name_radio,
4392                         .amux = LINE2,
4393                         .gpio = 0x000A8000,
4394                 },
4395         },
4396         [SAA7134_BOARD_BEHOLD_607FM_MK3] = {
4397                 /* Andrey Melnikoff <temnota@kmv.ru> */
4398                 .name           = "Beholder BeholdTV 607 FM",
4399                 .audio_clock    = 0x00187de7,
4400                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4401                 .radio_type     = UNSET,
4402                 .tuner_addr     = ADDR_UNSET,
4403                 .radio_addr     = ADDR_UNSET,
4404                 .tda9887_conf   = TDA9887_PRESENT,
4405                 .inputs         = {{
4406                         .name = name_tv,
4407                         .vmux = 3,
4408                         .amux = TV,
4409                         .tv   = 1,
4410                 }, {
4411                         .name = name_comp1,
4412                         .vmux = 1,
4413                         .amux = LINE1,
4414                 }, {
4415                         .name = name_svideo,
4416                         .vmux = 8,
4417                         .amux = LINE1,
4418                 } },
4419                 .radio = {
4420                         .name = name_radio,
4421                         .amux = LINE2,
4422                 },
4423         },
4424         [SAA7134_BOARD_BEHOLD_609FM_MK3] = {
4425                 /* Andrey Melnikoff <temnota@kmv.ru> */
4426                 .name           = "Beholder BeholdTV 609 FM",
4427                 .audio_clock    = 0x00187de7,
4428                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4429                 .radio_type     = UNSET,
4430                 .tuner_addr     = ADDR_UNSET,
4431                 .radio_addr     = ADDR_UNSET,
4432                 .tda9887_conf   = TDA9887_PRESENT,
4433                 .inputs         = {{
4434                         .name = name_tv,
4435                         .vmux = 3,
4436                         .amux = TV,
4437                         .tv   = 1,
4438                 }, {
4439                         .name = name_comp1,
4440                         .vmux = 1,
4441                         .amux = LINE1,
4442                 }, {
4443                         .name = name_svideo,
4444                         .vmux = 8,
4445                         .amux = LINE1,
4446                 } },
4447                 .radio = {
4448                         .name = name_radio,
4449                         .amux = LINE2,
4450                 },
4451         },
4452         [SAA7134_BOARD_BEHOLD_607FM_MK5] = {
4453                 /* Andrey Melnikoff <temnota@kmv.ru> */
4454                 .name           = "Beholder BeholdTV 607 FM",
4455                 .audio_clock    = 0x00187de7,
4456                 .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4457                 .radio_type     = UNSET,
4458                 .tuner_addr     = ADDR_UNSET,
4459                 .radio_addr     = ADDR_UNSET,
4460                 .tda9887_conf   = TDA9887_PRESENT,
4461                 .inputs         = {{
4462                         .name = name_tv,
4463                         .vmux = 3,
4464                         .amux = TV,
4465                         .tv   = 1,
4466                 }, {
4467                         .name = name_comp1,
4468                         .vmux = 1,
4469                         .amux = LINE1,
4470                 }, {
4471                         .name = name_svideo,
4472                         .vmux = 8,
4473                         .amux = LINE1,
4474                 } },
4475                 .radio = {
4476                         .name = name_radio,
4477                         .amux = LINE2,
4478                 },
4479         },
4480         [SAA7134_BOARD_BEHOLD_609FM_MK5] = {
4481                 /* Andrey Melnikoff <temnota@kmv.ru> */
4482                 .name           = "Beholder BeholdTV 609 FM",
4483                 .audio_clock    = 0x00187de7,
4484                 .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4485                 .radio_type     = UNSET,
4486                 .tuner_addr     = ADDR_UNSET,
4487                 .radio_addr     = ADDR_UNSET,
4488                 .tda9887_conf   = TDA9887_PRESENT,
4489                 .inputs         = {{
4490                         .name = name_tv,
4491                         .vmux = 3,
4492                         .amux = TV,
4493                         .tv   = 1,
4494                 }, {
4495                         .name = name_comp1,
4496                         .vmux = 1,
4497                         .amux = LINE1,
4498                 }, {
4499                         .name = name_svideo,
4500                         .vmux = 8,
4501                         .amux = LINE1,
4502                 } },
4503                 .radio = {
4504                         .name = name_radio,
4505                         .amux = LINE2,
4506                 },
4507         },
4508         [SAA7134_BOARD_BEHOLD_607RDS_MK3] = {
4509                 /* Andrey Melnikoff <temnota@kmv.ru> */
4510                 .name           = "Beholder BeholdTV 607 RDS",
4511                 .audio_clock    = 0x00187de7,
4512                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4513                 .radio_type     = UNSET,
4514                 .tuner_addr     = ADDR_UNSET,
4515                 .radio_addr     = ADDR_UNSET,
4516                 .rds_addr       = 0x10,
4517                 .tda9887_conf   = TDA9887_PRESENT,
4518                 .inputs         = {{
4519                         .name = name_tv,
4520                         .vmux = 3,
4521                         .amux = TV,
4522                         .tv   = 1,
4523                 }, {
4524                         .name = name_comp1,
4525                         .vmux = 1,
4526                         .amux = LINE1,
4527                 }, {
4528                         .name = name_svideo,
4529                         .vmux = 8,
4530                         .amux = LINE1,
4531                 } },
4532                 .radio = {
4533                         .name = name_radio,
4534                         .amux = LINE2,
4535                 },
4536         },
4537         [SAA7134_BOARD_BEHOLD_609RDS_MK3] = {
4538                 /* Andrey Melnikoff <temnota@kmv.ru> */
4539                 .name           = "Beholder BeholdTV 609 RDS",
4540                 .audio_clock    = 0x00187de7,
4541                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4542                 .radio_type     = UNSET,
4543                 .tuner_addr     = ADDR_UNSET,
4544                 .radio_addr     = ADDR_UNSET,
4545                 .rds_addr       = 0x10,
4546                 .tda9887_conf   = TDA9887_PRESENT,
4547                 .inputs         = {{
4548                         .name = name_tv,
4549                         .vmux = 3,
4550                         .amux = TV,
4551                         .tv   = 1,
4552                 }, {
4553                         .name = name_comp1,
4554                         .vmux = 1,
4555                         .amux = LINE1,
4556                 }, {
4557                         .name = name_svideo,
4558                         .vmux = 8,
4559                         .amux = LINE1,
4560                 } },
4561                 .radio = {
4562                         .name = name_radio,
4563                         .amux = LINE2,
4564                 },
4565         },
4566         [SAA7134_BOARD_BEHOLD_607RDS_MK5] = {
4567                 /* Andrey Melnikoff <temnota@kmv.ru> */
4568                 .name           = "Beholder BeholdTV 607 RDS",
4569                 .audio_clock    = 0x00187de7,
4570                 .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4571                 .radio_type     = UNSET,
4572                 .tuner_addr     = ADDR_UNSET,
4573                 .radio_addr     = ADDR_UNSET,
4574                 .rds_addr       = 0x10,
4575                 .tda9887_conf   = TDA9887_PRESENT,
4576                 .inputs         = {{
4577                         .name = name_tv,
4578                         .vmux = 3,
4579                         .amux = TV,
4580                         .tv   = 1,
4581                 }, {
4582                         .name = name_comp1,
4583                         .vmux = 1,
4584                         .amux = LINE1,
4585                 }, {
4586                         .name = name_svideo,
4587                         .vmux = 8,
4588                         .amux = LINE1,
4589                 } },
4590                 .radio = {
4591                         .name = name_radio,
4592                         .amux = LINE2,
4593                 },
4594         },
4595         [SAA7134_BOARD_BEHOLD_609RDS_MK5] = {
4596                 /* Andrey Melnikoff <temnota@kmv.ru> */
4597                 .name           = "Beholder BeholdTV 609 RDS",
4598                 .audio_clock    = 0x00187de7,
4599                 .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4600                 .radio_type     = UNSET,
4601                 .tuner_addr     = ADDR_UNSET,
4602                 .radio_addr     = ADDR_UNSET,
4603                 .rds_addr       = 0x10,
4604                 .tda9887_conf   = TDA9887_PRESENT,
4605                 .inputs         = {{
4606                         .name = name_tv,
4607                         .vmux = 3,
4608                         .amux = TV,
4609                         .tv   = 1,
4610                 },{
4611                         .name = name_comp1,
4612                         .vmux = 1,
4613                         .amux = LINE1,
4614                 },{
4615                         .name = name_svideo,
4616                         .vmux = 8,
4617                         .amux = LINE1,
4618                 }},
4619                 .radio = {
4620                         .name = name_radio,
4621                         .amux = LINE2,
4622                 },
4623         },
4624         [SAA7134_BOARD_BEHOLD_M6] = {
4625                 /* Igor Kuznetsov <igk@igk.ru> */
4626                 /* Andrey Melnikoff <temnota@kmv.ru> */
4627                 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4628                 /* Alexey Osipov <lion-simba@pridelands.ru> */
4629                 .name           = "Beholder BeholdTV M6",
4630                 .audio_clock    = 0x00187de7,
4631                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4632                 .radio_type     = UNSET,
4633                 .tuner_addr     = ADDR_UNSET,
4634                 .radio_addr     = ADDR_UNSET,
4635                 .empress_addr   = 0x20,
4636                 .tda9887_conf   = TDA9887_PRESENT,
4637                 .inputs         = { {
4638                         .name = name_tv,
4639                         .vmux = 3,
4640                         .amux = TV,
4641                         .tv   = 1,
4642                 }, {
4643                         .name = name_comp1,
4644                         .vmux = 1,
4645                         .amux = LINE1,
4646                 }, {
4647                         .name = name_svideo,
4648                         .vmux = 8,
4649                         .amux = LINE1,
4650                 } },
4651                 .radio = {
4652                         .name = name_radio,
4653                         .amux = LINE2,
4654                 },
4655                 .mpeg  = SAA7134_MPEG_EMPRESS,
4656                 .video_out = CCIR656,
4657                 .vid_port_opts  = (SET_T_CODE_POLARITY_NON_INVERTED |
4658                                         SET_CLOCK_NOT_DELAYED |
4659                                         SET_CLOCK_INVERTED |
4660                                         SET_VSYNC_OFF),
4661         },
4662         [SAA7134_BOARD_BEHOLD_M63] = {
4663                 /* Igor Kuznetsov <igk@igk.ru> */
4664                 /* Andrey Melnikoff <temnota@kmv.ru> */
4665                 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4666                 .name           = "Beholder BeholdTV M63",
4667                 .audio_clock    = 0x00187de7,
4668                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4669                 .radio_type     = UNSET,
4670                 .tuner_addr     = ADDR_UNSET,
4671                 .radio_addr     = ADDR_UNSET,
4672                 .empress_addr   = 0x20,
4673                 .tda9887_conf   = TDA9887_PRESENT,
4674                 .inputs         = { {
4675                         .name = name_tv,
4676                         .vmux = 3,
4677                         .amux = TV,
4678                         .tv   = 1,
4679                 }, {
4680                         .name = name_comp1,
4681                         .vmux = 1,
4682                         .amux = LINE1,
4683                 }, {
4684                         .name = name_svideo,
4685                         .vmux = 8,
4686                         .amux = LINE1,
4687                 } },
4688                 .radio = {
4689                         .name = name_radio,
4690                         .amux = LINE2,
4691                 },
4692                 .mpeg  = SAA7134_MPEG_EMPRESS,
4693                 .video_out = CCIR656,
4694                 .vid_port_opts  = (SET_T_CODE_POLARITY_NON_INVERTED |
4695                                         SET_CLOCK_NOT_DELAYED |
4696                                         SET_CLOCK_INVERTED |
4697                                         SET_VSYNC_OFF),
4698         },
4699         [SAA7134_BOARD_BEHOLD_M6_EXTRA] = {
4700                 /* Igor Kuznetsov <igk@igk.ru> */
4701                 /* Andrey Melnikoff <temnota@kmv.ru> */
4702                 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4703                 /* Alexey Osipov <lion-simba@pridelands.ru> */
4704                 .name           = "Beholder BeholdTV M6 Extra",
4705                 .audio_clock    = 0x00187de7,
4706                 .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4707                 .radio_type     = UNSET,
4708                 .tuner_addr     = ADDR_UNSET,
4709                 .radio_addr     = ADDR_UNSET,
4710                 .rds_addr       = 0x10,
4711                 .empress_addr   = 0x20,
4712                 .tda9887_conf   = TDA9887_PRESENT,
4713                 .inputs         = { {
4714                         .name = name_tv,
4715                         .vmux = 3,
4716                         .amux = TV,
4717                         .tv   = 1,
4718                 }, {
4719                         .name = name_comp1,
4720                         .vmux = 1,
4721                         .amux = LINE1,
4722                 }, {
4723                         .name = name_svideo,
4724                         .vmux = 8,
4725                         .amux = LINE1,
4726                 } },
4727                 .radio = {
4728                         .name = name_radio,
4729                         .amux = LINE2,
4730                 },
4731                 .mpeg  = SAA7134_MPEG_EMPRESS,
4732                 .video_out = CCIR656,
4733                 .vid_port_opts  = (SET_T_CODE_POLARITY_NON_INVERTED |
4734                                         SET_CLOCK_NOT_DELAYED |
4735                                         SET_CLOCK_INVERTED |
4736                                         SET_VSYNC_OFF),
4737         },
4738         [SAA7134_BOARD_TWINHAN_DTV_DVB_3056] = {
4739                 .name           = "Twinhan Hybrid DTV-DVB 3056 PCI",
4740                 .audio_clock    = 0x00187de7,
4741                 .tuner_type     = TUNER_PHILIPS_TDA8290,
4742                 .radio_type     = UNSET,
4743                 .tuner_addr     = ADDR_UNSET,
4744                 .radio_addr     = ADDR_UNSET,
4745                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
4746                 .mpeg           = SAA7134_MPEG_DVB,
4747                 .gpiomask       = 0x0200000,
4748                 .inputs = {{
4749                         .name   = name_tv,
4750                         .vmux   = 1,
4751                         .amux   = TV,
4752                         .tv     = 1,
4753                 }, {
4754                         .name   = name_comp1,
4755                         .vmux   = 3,
4756                         .amux   = LINE1,
4757                 }, {
4758                         .name   = name_svideo,
4759                         .vmux   = 8,            /* untested */
4760                         .amux   = LINE1,
4761                 } },
4762                 .radio = {
4763                         .name   = name_radio,
4764                         .amux   = TV,
4765                         .gpio   = 0x0200000,
4766                 },
4767         },
4768         [SAA7134_BOARD_GENIUS_TVGO_A11MCE] = {
4769                 /* Adrian Pardini <pardo.bsso@gmail.com> */
4770                 .name           = "Genius TVGO AM11MCE",
4771                 .audio_clock    = 0x00200000,
4772                 .tuner_type     = TUNER_TNF_5335MF,
4773                 .radio_type     = UNSET,
4774                 .tuner_addr     = ADDR_UNSET,
4775                 .radio_addr     = ADDR_UNSET,
4776                 .gpiomask       = 0xf000,
4777                 .inputs         = {{
4778                         .name = name_tv_mono,
4779                         .vmux = 1,
4780                         .amux = LINE2,
4781                         .gpio = 0x0000,
4782                         .tv   = 1,
4783                 }, {
4784                         .name = name_comp1,
4785                         .vmux = 3,
4786                         .amux = LINE1,
4787                         .gpio = 0x2000,
4788                         .tv = 1
4789                 }, {
4790                         .name = name_svideo,
4791                         .vmux = 8,
4792                         .amux = LINE1,
4793                         .gpio = 0x2000,
4794         } },
4795                 .radio = {
4796                         .name = name_radio,
4797                         .amux = LINE2,
4798                         .gpio = 0x1000,
4799                 },
4800                 .mute = {
4801                         .name = name_mute,
4802                         .amux = LINE2,
4803                         .gpio = 0x6000,
4804                 },
4805         },
4806         [SAA7134_BOARD_PHILIPS_SNAKE] = {
4807                 .name           = "NXP Snake DVB-S reference design",
4808                 .audio_clock    = 0x00200000,
4809                 .tuner_type     = TUNER_ABSENT,
4810                 .radio_type     = UNSET,
4811                 .tuner_addr     = ADDR_UNSET,
4812                 .radio_addr     = ADDR_UNSET,
4813                 .mpeg           = SAA7134_MPEG_DVB,
4814                 .inputs = {{
4815                         .name   = name_comp1,
4816                         .vmux   = 3,
4817                         .amux   = LINE1,
4818                 }, {
4819                         .name   = name_svideo,
4820                         .vmux   = 8,
4821                         .amux   = LINE1,
4822                 } },
4823         },
4824         [SAA7134_BOARD_CREATIX_CTX953] = {
4825                 .name         = "Medion/Creatix CTX953 Hybrid",
4826                 .audio_clock  = 0x00187de7,
4827                 .tuner_type   = TUNER_PHILIPS_TDA8290,
4828                 .radio_type   = UNSET,
4829                 .tuner_addr   = ADDR_UNSET,
4830                 .radio_addr   = ADDR_UNSET,
4831                 .tda829x_conf = { .lna_cfg = TDA8290_LNA_OFF },
4832                 .mpeg         = SAA7134_MPEG_DVB,
4833                 .inputs       = {{
4834                         .name = name_tv,
4835                         .vmux = 1,
4836                         .amux = TV,
4837                         .tv   = 1,
4838                 }, {
4839                         .name = name_comp1,
4840                         .vmux = 0,
4841                         .amux = LINE1,
4842                 }, {
4843                         .name = name_svideo,
4844                         .vmux = 8,
4845                         .amux = LINE1,
4846                 } },
4847         },
4848         [SAA7134_BOARD_MSI_TVANYWHERE_AD11] = {
4849                 .name           = "MSI TV@nywhere A/D v1.1",
4850                 .audio_clock    = 0x00187de7,
4851                 .tuner_type     = TUNER_PHILIPS_TDA8290,
4852                 .radio_type     = UNSET,
4853                 .tuner_addr     = ADDR_UNSET,
4854                 .radio_addr     = ADDR_UNSET,
4855                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
4856                 .mpeg           = SAA7134_MPEG_DVB,
4857                 .gpiomask       = 0x0200000,
4858                 .inputs = { {
4859                         .name   = name_tv,
4860                         .vmux   = 1,
4861                         .amux   = TV,
4862                         .tv     = 1,
4863                 }, {
4864                         .name   = name_comp1,
4865                         .vmux   = 3,
4866                         .amux   = LINE1,
4867                 }, {
4868                         .name   = name_svideo,
4869                         .vmux   = 8,
4870                         .amux   = LINE1,
4871                 } },
4872                 .radio = {
4873                         .name   = name_radio,
4874                         .amux   = TV,
4875                         .gpio   = 0x0200000,
4876                 },
4877         },
4878         [SAA7134_BOARD_AVERMEDIA_CARDBUS_506] = {
4879                 .name           = "AVerMedia Cardbus TV/Radio (E506R)",
4880                 .audio_clock    = 0x187de7,
4881                 .tuner_type     = TUNER_XC2028,
4882                 .radio_type     = UNSET,
4883                 .tuner_addr     = ADDR_UNSET,
4884                 .radio_addr     = ADDR_UNSET,
4885                  .mpeg           = SAA7134_MPEG_DVB,
4886                  .inputs         = {{
4887                          .name = name_tv,
4888                          .vmux = 1,
4889                          .amux = TV,
4890                          .tv   = 1,
4891                  }, {
4892                          .name = name_comp1,
4893                          .vmux = 3,
4894                          .amux = LINE1,
4895                  }, {
4896                          .name = name_svideo,
4897                          .vmux = 8,
4898                          .amux = LINE2,
4899                  } },
4900                  .radio = {
4901                          .name = name_radio,
4902                          .amux = TV,
4903                  },
4904         },
4905         [SAA7134_BOARD_AVERMEDIA_A16D] = {
4906                 .name           = "AVerMedia Hybrid TV/Radio (A16D)",
4907                 .audio_clock    = 0x187de7,
4908                 .tuner_type     = TUNER_XC2028,
4909                 .radio_type     = UNSET,
4910                 .tuner_addr     = ADDR_UNSET,
4911                 .radio_addr     = ADDR_UNSET,
4912                 .mpeg           = SAA7134_MPEG_DVB,
4913                 .inputs         = {{
4914                         .name = name_tv,
4915                         .vmux = 1,
4916                         .amux = TV,
4917                         .tv   = 1,
4918                 }, {
4919                         .name = name_svideo,
4920                         .vmux = 8,
4921                         .amux = LINE1,
4922                 }, {
4923                         .name = name_comp,
4924                         .vmux = 0,
4925                         .amux = LINE1,
4926                 } },
4927                 .radio = {
4928                         .name = name_radio,
4929                         .amux = TV,
4930                 },
4931         },
4932         [SAA7134_BOARD_AVERMEDIA_M115] = {
4933                 .name           = "Avermedia M115",
4934                 .audio_clock    = 0x187de7,
4935                 .tuner_type     = TUNER_XC2028,
4936                 .radio_type     = UNSET,
4937                 .tuner_addr     = ADDR_UNSET,
4938                 .radio_addr     = ADDR_UNSET,
4939                 .inputs         = {{
4940                         .name = name_tv,
4941                         .vmux = 1,
4942                         .amux = TV,
4943                         .tv   = 1,
4944                 }, {
4945                         .name = name_comp1,
4946                         .vmux = 3,
4947                         .amux = LINE1,
4948                 }, {
4949                         .name = name_svideo,
4950                         .vmux = 8,
4951                         .amux = LINE2,
4952                 } },
4953         },
4954         [SAA7134_BOARD_VIDEOMATE_T750] = {
4955                 /* John Newbigin <jn@it.swin.edu.au> */
4956                 .name           = "Compro VideoMate T750",
4957                 .audio_clock    = 0x00187de7,
4958                 .tuner_type     = TUNER_XC2028,
4959                 .radio_type     = UNSET,
4960                 .tuner_addr     = 0x61,
4961                 .radio_addr     = ADDR_UNSET,
4962                 .mpeg           = SAA7134_MPEG_DVB,
4963                 .inputs = {{
4964                         .name   = name_tv,
4965                         .vmux   = 3,
4966                         .amux   = TV,
4967                         .tv     = 1,
4968                 }, {
4969                         .name   = name_comp1,
4970                         .vmux   = 1,
4971                         .amux   = LINE2,
4972                 }, {
4973                         .name   = name_svideo,
4974                         .vmux   = 8,
4975                         .amux   = LINE2,
4976                 } },
4977                 .radio = {
4978                         .name = name_radio,
4979                         .amux = TV,
4980                 }
4981         },
4982         [SAA7134_BOARD_AVERMEDIA_A700_PRO] = {
4983                 /* Matthias Schwarzott <zzam@gentoo.org> */
4984                 .name           = "Avermedia DVB-S Pro A700",
4985                 .audio_clock    = 0x00187de7,
4986                 .tuner_type     = TUNER_ABSENT,
4987                 .radio_type     = UNSET,
4988                 .tuner_addr     = ADDR_UNSET,
4989                 .radio_addr     = ADDR_UNSET,
4990                 .mpeg           = SAA7134_MPEG_DVB,
4991                 .inputs         = { {
4992                         .name = name_comp,
4993                         .vmux = 1,
4994                         .amux = LINE1,
4995                 }, {
4996                         .name = name_svideo,
4997                         .vmux = 6,
4998                         .amux = LINE1,
4999                 } },
5000         },
5001         [SAA7134_BOARD_AVERMEDIA_A700_HYBRID] = {
5002                 /* Matthias Schwarzott <zzam@gentoo.org> */
5003                 .name           = "Avermedia DVB-S Hybrid+FM A700",
5004                 .audio_clock    = 0x00187de7,
5005                 .tuner_type     = TUNER_XC2028,
5006                 .radio_type     = UNSET,
5007                 .tuner_addr     = ADDR_UNSET,
5008                 .radio_addr     = ADDR_UNSET,
5009                 .mpeg           = SAA7134_MPEG_DVB,
5010                 .inputs         = { {
5011                         .name   = name_tv,
5012                         .vmux   = 4,
5013                         .amux   = TV,
5014                         .tv     = 1,
5015                 }, {
5016                         .name = name_comp,
5017                         .vmux = 1,
5018                         .amux = LINE1,
5019                 }, {
5020                         .name = name_svideo,
5021                         .vmux = 6,
5022                         .amux = LINE1,
5023                 } },
5024                 .radio = {
5025                         .name = name_radio,
5026                         .amux = TV,
5027                 },
5028         },
5029         [SAA7134_BOARD_BEHOLD_H6] = {
5030                 /* Igor Kuznetsov <igk@igk.ru> */
5031                 .name           = "Beholder BeholdTV H6",
5032                 .audio_clock    = 0x00187de7,
5033                 .tuner_type     = TUNER_PHILIPS_FMD1216MEX_MK3,
5034                 .radio_type     = UNSET,
5035                 .tuner_addr     = ADDR_UNSET,
5036                 .radio_addr     = ADDR_UNSET,
5037                 .tda9887_conf   = TDA9887_PRESENT,
5038                 .mpeg           = SAA7134_MPEG_DVB,
5039                 .inputs         = {{
5040                         .name = name_tv,
5041                         .vmux = 3,
5042                         .amux = TV,
5043                         .tv   = 1,
5044                 }, {
5045                         .name = name_comp1,
5046                         .vmux = 1,
5047                         .amux = LINE1,
5048                 }, {
5049                         .name = name_svideo,
5050                         .vmux = 8,
5051                         .amux = LINE1,
5052                 } },
5053                 .radio = {
5054                         .name = name_radio,
5055                         .amux = LINE2,
5056                 },
5057         },
5058         [SAA7134_BOARD_ASUSTeK_TIGER_3IN1] = {
5059                 .name           = "Asus Tiger 3in1",
5060                 .audio_clock    = 0x00187de7,
5061                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5062                 .radio_type     = UNSET,
5063                 .tuner_addr     = ADDR_UNSET,
5064                 .radio_addr     = ADDR_UNSET,
5065                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
5066                 .gpiomask       = 1 << 21,
5067                 .mpeg           = SAA7134_MPEG_DVB,
5068                 .inputs         = {{
5069                         .name = name_tv,
5070                         .vmux = 1,
5071                         .amux = TV,
5072                         .tv   = 1,
5073                 }, {
5074                         .name = name_comp,
5075                         .vmux = 0,
5076                         .amux = LINE2,
5077                 }, {
5078                         .name = name_svideo,
5079                         .vmux = 8,
5080                         .amux = LINE2,
5081                 } },
5082                 .radio = {
5083                         .name = name_radio,
5084                         .amux = TV,
5085                         .gpio = 0x0200000,
5086                 },
5087         },
5088         [SAA7134_BOARD_ASUSTeK_PS3_100] = {
5089                 .name           = "Asus My Cinema PS3-100",
5090                 .audio_clock    = 0x00187de7,
5091                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5092                 .radio_type     = UNSET,
5093                 .tuner_addr     = ADDR_UNSET,
5094                 .radio_addr     = ADDR_UNSET,
5095                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
5096                 .gpiomask       = 1 << 21,
5097                 .mpeg           = SAA7134_MPEG_DVB,
5098                 .inputs         = {{
5099                         .name = name_tv,
5100                         .vmux = 1,
5101                         .amux = TV,
5102                         .tv   = 1,
5103                 }, {
5104                         .name = name_comp,
5105                         .vmux = 0,
5106                         .amux = LINE2,
5107                 }, {
5108                         .name = name_svideo,
5109                         .vmux = 8,
5110                         .amux = LINE2,
5111                 } },
5112                 .radio = {
5113                         .name = name_radio,
5114                         .amux = TV,
5115                         .gpio = 0x0200000,
5116                 },
5117         },
5118         [SAA7134_BOARD_REAL_ANGEL_220] = {
5119                 .name           = "Zogis Real Angel 220",
5120                 .audio_clock    = 0x00187de7,
5121                 .tuner_type     = TUNER_TNF_5335MF,
5122                 .radio_type     = UNSET,
5123                 .tuner_addr     = ADDR_UNSET,
5124                 .radio_addr     = ADDR_UNSET,
5125                 .gpiomask       = 0x801a8087,
5126                 .inputs = { {
5127                         .name   = name_tv,
5128                         .vmux   = 3,
5129                         .amux   = LINE2,
5130                         .tv     = 1,
5131                         .gpio   = 0x624000,
5132                 }, {
5133                         .name   = name_comp1,
5134                         .vmux   = 1,
5135                         .amux   = LINE1,
5136                         .gpio   = 0x624000,
5137                 }, {
5138                         .name   = name_svideo,
5139                         .vmux   = 1,
5140                         .amux   = LINE1,
5141                         .gpio   = 0x624000,
5142                 } },
5143                 .radio = {
5144                         .name   = name_radio,
5145                         .amux   = LINE2,
5146                         .gpio   = 0x624001,
5147                 },
5148                 .mute = {
5149                         .name = name_mute,
5150                         .amux = TV,
5151                 },
5152         },
5153         [SAA7134_BOARD_ADS_INSTANT_HDTV_PCI] = {
5154                 .name           = "ADS Tech Instant HDTV",
5155                 .audio_clock    = 0x00187de7,
5156                 .tuner_type     = TUNER_PHILIPS_TUV1236D,
5157                 .radio_type     = UNSET,
5158                 .tuner_addr     = ADDR_UNSET,
5159                 .radio_addr     = ADDR_UNSET,
5160                 .tda9887_conf   = TDA9887_PRESENT,
5161                 .mpeg           = SAA7134_MPEG_DVB,
5162                 .inputs         = { {
5163                         .name = name_tv,
5164                         .vmux = 1,
5165                         .amux = TV,
5166                         .tv   = 1,
5167                 }, {
5168                         .name = name_comp,
5169                         .vmux = 4,
5170                         .amux = LINE1,
5171                 }, {
5172                         .name = name_svideo,
5173                         .vmux = 8,
5174                         .amux = LINE1,
5175                 } },
5176         },
5177         [SAA7134_BOARD_ASUSTeK_TIGER] = {
5178                 .name           = "Asus Tiger Rev:1.00",
5179                 .audio_clock    = 0x00187de7,
5180                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5181                 .radio_type     = UNSET,
5182                 .tuner_addr     = ADDR_UNSET,
5183                 .radio_addr     = ADDR_UNSET,
5184                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF },
5185                 .mpeg           = SAA7134_MPEG_DVB,
5186                 .gpiomask       = 0x0200000,
5187                 .inputs = { {
5188                         .name   = name_tv,
5189                         .vmux   = 1,
5190                         .amux   = TV,
5191                         .tv     = 1,
5192                 }, {
5193                         .name   = name_comp1,
5194                         .vmux   = 3,
5195                         .amux   = LINE2,
5196                 }, {
5197                         .name   = name_comp2,
5198                         .vmux   = 0,
5199                         .amux   = LINE2,
5200                 }, {
5201                         .name   = name_svideo,
5202                         .vmux   = 8,
5203                         .amux   = LINE2,
5204                 } },
5205                 .radio = {
5206                         .name   = name_radio,
5207                         .amux   = TV,
5208                         .gpio   = 0x0200000,
5209                 },
5210         },
5211         [SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG] = {
5212                 .name           = "Kworld Plus TV Analog Lite PCI",
5213                 .audio_clock    = 0x00187de7,
5214                 .tuner_type     = TUNER_YMEC_TVF_5533MF,
5215                 .radio_type     = TUNER_TEA5767,
5216                 .tuner_addr     = ADDR_UNSET,
5217                 .radio_addr     = 0x60,
5218                 .gpiomask       = 0x80000700,
5219                 .inputs = { {
5220                         .name   = name_tv,
5221                         .vmux   = 1,
5222                         .amux   = LINE2,
5223                         .tv     = 1,
5224                         .gpio   = 0x100,
5225                 }, {
5226                         .name   = name_comp1,
5227                         .vmux   = 3,
5228                         .amux   = LINE1,
5229                         .gpio   = 0x200,
5230                 }, {
5231                         .name   = name_svideo,
5232                         .vmux   = 8,
5233                         .amux   = LINE1,
5234                         .gpio   = 0x200,
5235                 } },
5236                 .radio = {
5237                         .name   = name_radio,
5238                         .vmux   = 1,
5239                         .amux   = LINE1,
5240                         .gpio   = 0x100,
5241                 },
5242                 .mute = {
5243                         .name = name_mute,
5244                         .vmux = 8,
5245                         .amux = 2,
5246                 },
5247         },
5248         [SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG] = {
5249                 .name           = "Kworld PCI SBTVD/ISDB-T Full-Seg Hybrid",
5250                 .audio_clock    = 0x00187de7,
5251                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5252                 .tuner_addr     = ADDR_UNSET,
5253                 .radio_type     = UNSET,
5254                 .radio_addr     = ADDR_UNSET,
5255                 .gpiomask       = 0x8e054000,
5256                 .mpeg           = SAA7134_MPEG_DVB,
5257                 .ts_type        = SAA7134_MPEG_TS_PARALLEL,
5258                 .inputs = { {
5259                         .name   = name_tv,
5260                         .vmux   = 1,
5261                         .amux   = TV,
5262                         .tv     = 1,
5263 #if 0   /* FIXME */
5264                 }, {
5265                         .name   = name_comp1,
5266                         .vmux   = 3,
5267                         .amux   = LINE1,
5268                         .gpio   = 0x200,
5269                 }, {
5270                         .name   = name_svideo,
5271                         .vmux   = 8,
5272                         .amux   = LINE1,
5273                         .gpio   = 0x200,
5274 #endif
5275                 } },
5276 #if 0
5277                 .radio = {
5278                         .name   = name_radio,
5279                         .vmux   = 1,
5280                         .amux   = LINE1,
5281                         .gpio   = 0x100,
5282                 },
5283 #endif
5284                 .mute = {
5285                         .name = name_mute,
5286                         .vmux = 0,
5287                         .amux = TV,
5288                 },
5289         },
5290         [SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS] = {
5291                 .name           = "Avermedia AVerTV GO 007 FM Plus",
5292                 .audio_clock    = 0x00187de7,
5293                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5294                 .radio_type     = UNSET,
5295                 .tuner_addr     = ADDR_UNSET,
5296                 .radio_addr     = ADDR_UNSET,
5297                 .gpiomask       = 0x00300003,
5298                 /* .gpiomask       = 0x8c240003, */
5299                 .inputs         = { {
5300                         .name = name_tv,
5301                         .vmux = 1,
5302                         .amux = TV,
5303                         .tv   = 1,
5304                         .gpio = 0x01,
5305                 }, {
5306                         .name = name_svideo,
5307                         .vmux = 6,
5308                         .amux = LINE1,
5309                         .gpio = 0x02,
5310                 } },
5311                 .radio = {
5312                         .name = name_radio,
5313                         .amux = TV,
5314                         .gpio = 0x00300001,
5315                 },
5316                 .mute = {
5317                         .name = name_mute,
5318                         .amux = TV,
5319                         .gpio = 0x01,
5320                 },
5321         },
5322         [SAA7134_BOARD_AVERMEDIA_STUDIO_507UA] = {
5323                 /* Andy Shevchenko <andy@smile.org.ua> */
5324                 .name           = "Avermedia AVerTV Studio 507UA",
5325                 .audio_clock    = 0x00187de7,
5326                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3, /* Should be MK5 */
5327                 .radio_type     = UNSET,
5328                 .tuner_addr     = ADDR_UNSET,
5329                 .radio_addr     = ADDR_UNSET,
5330                 .tda9887_conf   = TDA9887_PRESENT,
5331                 .gpiomask       = 0x03,
5332                 .inputs         = { {
5333                         .name = name_tv,
5334                         .vmux = 1,
5335                         .amux = TV,
5336                         .tv   = 1,
5337                         .gpio = 0x00,
5338                 }, {
5339                         .name = name_comp1,
5340                         .vmux = 3,
5341                         .amux = LINE1,
5342                         .gpio = 0x00,
5343                 }, {
5344                         .name = name_svideo,
5345                         .vmux = 8,
5346                         .amux = LINE1,
5347                         .gpio = 0x00,
5348                 } },
5349                 .radio = {
5350                         .name = name_radio,
5351                         .amux = LINE2,
5352                         .gpio = 0x01,
5353                 },
5354                 .mute  = {
5355                         .name = name_mute,
5356                         .amux = LINE1,
5357                         .gpio = 0x00,
5358                 },
5359         },
5360         [SAA7134_BOARD_VIDEOMATE_S350] = {
5361                 /* Jan D. Louw <jd.louw@mweb.co.za */
5362                 .name           = "Compro VideoMate S350/S300",
5363                 .audio_clock    = 0x00187de7,
5364                 .tuner_type     = TUNER_ABSENT,
5365                 .radio_type     = UNSET,
5366                 .tuner_addr     = ADDR_UNSET,
5367                 .radio_addr     = ADDR_UNSET,
5368                 .mpeg           = SAA7134_MPEG_DVB,
5369                 .inputs = { {
5370                         .name   = name_comp1,
5371                         .vmux   = 0,
5372                         .amux   = LINE1,
5373                 }, {
5374                         .name   = name_svideo,
5375                         .vmux   = 8, /* Not tested */
5376                         .amux   = LINE1
5377                 } },
5378         },
5379         [SAA7134_BOARD_BEHOLD_X7] = {
5380                 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
5381                 .name           = "Beholder BeholdTV X7",
5382                 .audio_clock    = 0x00187de7,
5383                 .tuner_type     = TUNER_XC5000,
5384                 .radio_type     = UNSET,
5385                 .tuner_addr     = ADDR_UNSET,
5386                 .radio_addr     = ADDR_UNSET,
5387                 .mpeg           = SAA7134_MPEG_DVB,
5388                 .inputs         = { {
5389                         .name = name_tv,
5390                         .vmux = 2,
5391                         .amux = TV,
5392                         .tv   = 1,
5393                 }, {
5394                         .name = name_comp1,
5395                         .vmux = 0,
5396                         .amux = LINE1,
5397                 }, {
5398                         .name = name_svideo,
5399                         .vmux = 9,
5400                         .amux = LINE1,
5401                 } },
5402                 .radio = {
5403                         .name = name_radio,
5404                         .amux = TV,
5405                 },
5406         },
5407         [SAA7134_BOARD_ZOLID_HYBRID_PCI] = {
5408                 .name           = "Zolid Hybrid TV Tuner PCI",
5409                 .audio_clock    = 0x00187de7,
5410                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5411                 .radio_type     = UNSET,
5412                 .tuner_addr     = ADDR_UNSET,
5413                 .radio_addr     = ADDR_UNSET,
5414                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF },
5415                 .mpeg           = SAA7134_MPEG_DVB,
5416                 .ts_type        = SAA7134_MPEG_TS_PARALLEL,
5417                 .inputs         = {{
5418                         .name = name_tv,
5419                         .vmux = 1,
5420                         .amux = TV,
5421                         .tv   = 1,
5422                 } },
5423                 .radio = {      /* untested */
5424                         .name = name_radio,
5425                         .amux = TV,
5426                 },
5427         },
5428         [SAA7134_BOARD_ASUS_EUROPA_HYBRID] = {
5429                 .name           = "Asus Europa Hybrid OEM",
5430                 .audio_clock    = 0x00187de7,
5431                 .tuner_type     = TUNER_PHILIPS_TD1316,
5432                 .radio_type     = UNSET,
5433                 .tuner_addr     = 0x61,
5434                 .radio_addr     = ADDR_UNSET,
5435                 .tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
5436                 .mpeg           = SAA7134_MPEG_DVB,
5437                 .inputs = { {
5438                         .name   = name_tv,
5439                         .vmux   = 3,
5440                         .amux   = TV,
5441                         .tv     = 1,
5442                 }, {
5443                         .name   = name_comp1,
5444                         .vmux   = 4,
5445                         .amux   = LINE2,
5446                 }, {
5447                         .name   = name_svideo,
5448                         .vmux   = 8,
5449                         .amux   = LINE2,
5450                 } },
5451         },
5452         [SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S] = {
5453                 .name           = "Leadtek Winfast DTV1000S",
5454                 .audio_clock    = 0x00187de7,
5455                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5456                 .radio_type     = UNSET,
5457                 .tuner_addr     = ADDR_UNSET,
5458                 .radio_addr     = ADDR_UNSET,
5459                 .mpeg           = SAA7134_MPEG_DVB,
5460                 .inputs         = { {
5461                         .name = name_comp1,
5462                         .vmux = 3,
5463                 }, {
5464                         .name = name_svideo,
5465                         .vmux = 8,
5466                 } },
5467         },
5468         [SAA7134_BOARD_BEHOLD_505RDS_MK3] = {
5469                 /*       Beholder Intl. Ltd. 2008      */
5470                 /*Dmitry Belimov <d.belimov@gmail.com> */
5471                 .name           = "Beholder BeholdTV 505 RDS",
5472                 .audio_clock    = 0x00200000,
5473                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
5474                 .radio_type     = UNSET,
5475                 .tuner_addr     = ADDR_UNSET,
5476                 .radio_addr     = ADDR_UNSET,
5477                 .rds_addr       = 0x10,
5478                 .tda9887_conf   = TDA9887_PRESENT,
5479                 .gpiomask       = 0x00008000,
5480                 .inputs         = {{
5481                         .name = name_tv,
5482                         .vmux = 3,
5483                         .amux = LINE2,
5484                         .tv   = 1,
5485                 }, {
5486                         .name = name_comp1,
5487                         .vmux = 1,
5488                         .amux = LINE1,
5489                 }, {
5490                         .name = name_svideo,
5491                         .vmux = 8,
5492                         .amux = LINE1,
5493                 } },
5494                 .mute = {
5495                         .name = name_mute,
5496                         .amux = LINE1,
5497                 },
5498                 .radio = {
5499                         .name = name_radio,
5500                         .amux = LINE2,
5501                 },
5502         },
5503         [SAA7134_BOARD_HAWELL_HW_404M7] = {
5504                 /* Hawell HW-404M7 & Hawell HW-808M7  */
5505                 /* Bogoslovskiy Viktor <bogovic@bk.ru> */
5506                 .name         = "Hawell HW-404M7",
5507                 .audio_clock   = 0x00200000,
5508                 .tuner_type    = UNSET,
5509                 .radio_type    = UNSET,
5510                 .tuner_addr   = ADDR_UNSET,
5511                 .radio_addr   = ADDR_UNSET,
5512                 .gpiomask      = 0x389c00,
5513                 .inputs       = {{
5514                         .name = name_comp1,
5515                         .vmux = 3,
5516                         .amux = LINE1,
5517                         .gpio = 0x01fc00,
5518                 } },
5519         },
5520         [SAA7134_BOARD_BEHOLD_H7] = {
5521                 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
5522                 .name           = "Beholder BeholdTV H7",
5523                 .audio_clock    = 0x00187de7,
5524                 .tuner_type     = TUNER_XC5000,
5525                 .radio_type     = UNSET,
5526                 .tuner_addr     = ADDR_UNSET,
5527                 .radio_addr     = ADDR_UNSET,
5528                 .mpeg           = SAA7134_MPEG_DVB,
5529                 .ts_type        = SAA7134_MPEG_TS_PARALLEL,
5530                 .inputs         = { {
5531                         .name = name_tv,
5532                         .vmux = 2,
5533                         .amux = TV,
5534                         .tv   = 1,
5535                 }, {
5536                         .name = name_comp1,
5537                         .vmux = 0,
5538                         .amux = LINE1,
5539                 }, {
5540                         .name = name_svideo,
5541                         .vmux = 9,
5542                         .amux = LINE1,
5543                 } },
5544                 .radio = {
5545                         .name = name_radio,
5546                         .amux = TV,
5547                 },
5548         },
5549         [SAA7134_BOARD_BEHOLD_A7] = {
5550                 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
5551                 .name           = "Beholder BeholdTV A7",
5552                 .audio_clock    = 0x00187de7,
5553                 .tuner_type     = TUNER_XC5000,
5554                 .radio_type     = UNSET,
5555                 .tuner_addr     = ADDR_UNSET,
5556                 .radio_addr     = ADDR_UNSET,
5557                 .inputs         = { {
5558                         .name = name_tv,
5559                         .vmux = 2,
5560                         .amux = TV,
5561                         .tv   = 1,
5562                 }, {
5563                         .name = name_comp1,
5564                         .vmux = 0,
5565                         .amux = LINE1,
5566                 }, {
5567                         .name = name_svideo,
5568                         .vmux = 9,
5569                         .amux = LINE1,
5570                 } },
5571                 .radio = {
5572                         .name = name_radio,
5573                         .amux = TV,
5574                 },
5575         },
5576         [SAA7134_BOARD_TECHNOTREND_BUDGET_T3000] = {
5577                 .name           = "TechoTrend TT-budget T-3000",
5578                 .tuner_type     = TUNER_PHILIPS_TD1316,
5579                 .audio_clock    = 0x00187de7,
5580                 .radio_type     = UNSET,
5581                 .tuner_addr     = 0x63,
5582                 .radio_addr     = ADDR_UNSET,
5583                 .tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
5584                 .mpeg           = SAA7134_MPEG_DVB,
5585                 .inputs = {{
5586                         .name   = name_tv,
5587                         .vmux   = 3,
5588                         .amux   = TV,
5589                         .tv     = 1,
5590                 }, {
5591                         .name   = name_comp1,
5592                         .vmux   = 0,
5593                         .amux   = LINE2,
5594                 }, {
5595                         .name   = name_svideo,
5596                         .vmux   = 8,
5597                         .amux   = LINE2,
5598                 } },
5599         },
5600         [SAA7134_BOARD_VIDEOMATE_M1F] = {
5601                 /* Pavel Osnova <pvosnova@gmail.com> */
5602                 .name           = "Compro VideoMate Vista M1F",
5603                 .audio_clock    = 0x00187de7,
5604                 .tuner_type     = TUNER_LG_PAL_NEW_TAPC,
5605                 .radio_type     = TUNER_TEA5767,
5606                 .tuner_addr     = ADDR_UNSET,
5607                 .radio_addr     = 0x60,
5608                 .inputs         = { {
5609                         .name = name_tv,
5610                         .vmux = 1,
5611                         .amux = TV,
5612                         .tv   = 1,
5613                 }, {
5614                         .name = name_comp1,
5615                         .vmux = 3,
5616                         .amux = LINE2,
5617                 }, {
5618                         .name = name_svideo,
5619                         .vmux = 8,
5620                         .amux = LINE2,
5621                 } },
5622                 .radio = {
5623                         .name = name_radio,
5624                         .amux = LINE1,
5625                 },
5626                 .mute = {
5627                         .name = name_mute,
5628                         .amux = TV,
5629                 },
5630         },
5631         [SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2] = {
5632                 /* Timothy Lee <timothy.lee@siriushk.com> */
5633                 .name           = "MagicPro ProHDTV Pro2 DMB-TH/Hybrid",
5634                 .audio_clock    = 0x00187de7,
5635                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5636                 .radio_type     = UNSET,
5637                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_ON_BRIDGE },
5638                 .tuner_addr     = ADDR_UNSET,
5639                 .radio_addr     = ADDR_UNSET,
5640                 .gpiomask       = 0x02050000,
5641                 .mpeg           = SAA7134_MPEG_DVB,
5642                 .ts_type        = SAA7134_MPEG_TS_PARALLEL,
5643                 .inputs         = { {
5644                         .name   = name_tv,
5645                         .vmux   = 1,
5646                         .amux   = TV,
5647                         .tv     = 1,
5648                         .gpio   = 0x00050000,
5649                 }, {
5650                         .name   = name_comp1,
5651                         .vmux   = 3,
5652                         .amux   = LINE1,
5653                         .gpio   = 0x00050000,
5654                 }, {
5655                         .name   = name_svideo,
5656                         .vmux   = 8,
5657                         .amux   = LINE1,
5658                         .gpio   = 0x00050000,
5659                 } },
5660                 .radio = {
5661                         .name   = name_radio,
5662                         .amux   = TV,
5663                         .gpio   = 0x00050000,
5664                 },
5665                 .mute = {
5666                         .name   = name_mute,
5667                         .vmux   = 0,
5668                         .amux   = TV,
5669                         .gpio   = 0x00050000,
5670                 },
5671         },
5672         [SAA7134_BOARD_BEHOLD_501] = {
5673                 /*       Beholder Intl. Ltd. 2010       */
5674                 /* Dmitry Belimov <d.belimov@gmail.com> */
5675                 .name           = "Beholder BeholdTV 501",
5676                 .audio_clock    = 0x00200000,
5677                 .tuner_type     = TUNER_ABSENT,
5678                 .radio_type     = UNSET,
5679                 .tuner_addr     = ADDR_UNSET,
5680                 .radio_addr     = ADDR_UNSET,
5681                 .gpiomask       = 0x00008000,
5682                 .inputs         = { {
5683                         .name = name_tv,
5684                         .vmux = 3,
5685                         .amux = LINE2,
5686                         .tv   = 1,
5687                 }, {
5688                         .name = name_comp1,
5689                         .vmux = 1,
5690                         .amux = LINE1,
5691                 }, {
5692                         .name = name_svideo,
5693                         .vmux = 8,
5694                         .amux = LINE1,
5695                 } },
5696                 .mute = {
5697                         .name = name_mute,
5698                         .amux = LINE1,
5699                 },
5700         },
5701         [SAA7134_BOARD_BEHOLD_503FM] = {
5702                 /*       Beholder Intl. Ltd. 2010       */
5703                 /* Dmitry Belimov <d.belimov@gmail.com> */
5704                 .name           = "Beholder BeholdTV 503 FM",
5705                 .audio_clock    = 0x00200000,
5706                 .tuner_type     = TUNER_ABSENT,
5707                 .radio_type     = UNSET,
5708                 .tuner_addr     = ADDR_UNSET,
5709                 .radio_addr     = ADDR_UNSET,
5710                 .gpiomask       = 0x00008000,
5711                 .inputs         = { {
5712                         .name = name_tv,
5713                         .vmux = 3,
5714                         .amux = LINE2,
5715                         .tv   = 1,
5716                 }, {
5717                         .name = name_comp1,
5718                         .vmux = 1,
5719                         .amux = LINE1,
5720                 }, {
5721                         .name = name_svideo,
5722                         .vmux = 8,
5723                         .amux = LINE1,
5724                 } },
5725                 .mute = {
5726                         .name = name_mute,
5727                         .amux = LINE1,
5728                 },
5729         },
5730         [SAA7134_BOARD_SENSORAY811_911] = {
5731                 .name           = "Sensoray 811/911",
5732                 .audio_clock    = 0x00200000,
5733                 .tuner_type     = TUNER_ABSENT,
5734                 .radio_type     = UNSET,
5735                 .tuner_addr     = ADDR_UNSET,
5736                 .radio_addr     = ADDR_UNSET,
5737                 .inputs         = {{
5738                         .name   = name_comp1,
5739                         .vmux   = 0,
5740                         .amux   = LINE1,
5741                 }, {
5742                         .name   = name_comp3,
5743                         .vmux   = 2,
5744                         .amux   = LINE1,
5745                 }, {
5746                         .name   = name_svideo,
5747                         .vmux   = 8,
5748                         .amux   = LINE1,
5749                 } },
5750         },
5751         [SAA7134_BOARD_KWORLD_PC150U] = {
5752                 .name           = "Kworld PC150-U",
5753                 .audio_clock    = 0x00187de7,
5754                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5755                 .radio_type     = UNSET,
5756                 .tuner_addr     = ADDR_UNSET,
5757                 .radio_addr     = ADDR_UNSET,
5758                 .mpeg           = SAA7134_MPEG_DVB,
5759                 .gpiomask       = 1 << 21,
5760                 .ts_type        = SAA7134_MPEG_TS_PARALLEL,
5761                 .inputs = { {
5762                         .name   = name_tv,
5763                         .vmux   = 1,
5764                         .amux   = TV,
5765                         .tv     = 1,
5766                 }, {
5767                         .name   = name_comp,
5768                         .vmux   = 3,
5769                         .amux   = LINE1,
5770                 }, {
5771                         .name   = name_svideo,
5772                         .vmux   = 8,
5773                         .amux   = LINE2,
5774                 } },
5775                 .radio = {
5776                         .name   = name_radio,
5777                         .amux   = TV,
5778                         .gpio   = 0x0000000,
5779                 },
5780         },
5781         [SAA7134_BOARD_HAWELL_HW_9004V1] = {
5782                 /* Hawell HW-9004V1 */
5783                 /* Vadim Frolov <fralik@gmail.com> */
5784                 .name         = "Hawell HW-9004V1",
5785                 .audio_clock   = 0x00200000,
5786                 .tuner_type    = UNSET,
5787                 .radio_type    = UNSET,
5788                 .tuner_addr   = ADDR_UNSET,
5789                 .radio_addr   = ADDR_UNSET,
5790                 .gpiomask      = 0x618E700,
5791                 .inputs       = {{
5792                         .name = name_comp1,
5793                         .vmux = 3,
5794                         .amux = LINE1,
5795                         .gpio = 0x6010000,
5796                 } },
5797         },
5798         [SAA7134_BOARD_AVERMEDIA_A706] = {
5799                 .name           = "AverMedia AverTV Satellite Hybrid+FM A706",
5800                 .audio_clock    = 0x00187de7,
5801                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5802                 .radio_type     = UNSET,
5803                 .tuner_addr     = ADDR_UNSET,
5804                 .radio_addr     = ADDR_UNSET,
5805                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF,
5806                                     .no_i2c_gate = 1,
5807                                     .tda18271_std_map = &aver_a706_std_map },
5808                 .gpiomask       = 1 << 11,
5809                 .mpeg           = SAA7134_MPEG_DVB,
5810                 .inputs         = {{
5811                         .name = name_tv,
5812                         .vmux = 1,
5813                         .amux = TV,
5814                         .tv   = 1,
5815                 }, {
5816                         .name = name_comp,
5817                         .vmux = 4,
5818                         .amux = LINE1,
5819                 }, {
5820                         .name = name_svideo,
5821                         .vmux = 8,
5822                         .amux = LINE1,
5823                 } },
5824                 .radio = {
5825                         .name = name_radio,
5826                         .amux = TV,
5827                         .gpio = 0x0000800,
5828                 },
5829         },
5830         [SAA7134_BOARD_WIS_VOYAGER] = {
5831                 .name           = "WIS Voyager or compatible",
5832                 .audio_clock    = 0x00200000,
5833                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5834                 .radio_type     = UNSET,
5835                 .tuner_addr     = ADDR_UNSET,
5836                 .radio_addr     = ADDR_UNSET,
5837                 .mpeg           = SAA7134_MPEG_GO7007,
5838                 .inputs         = { {
5839                         .name = name_comp1,
5840                         .vmux = 0,
5841                         .amux = LINE2,
5842                 }, {
5843                         .name = name_tv,
5844                         .vmux = 3,
5845                         .amux = TV,
5846                         .tv   = 1,
5847                 }, {
5848                         .name = name_svideo,
5849                         .vmux = 6,
5850                 .amux = LINE1,
5851                 } },
5852         },
5853
5854 };
5855
5856 const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
5857
5858 /* ------------------------------------------------------------------ */
5859 /* PCI ids + subsystem IDs                                            */
5860
5861 struct pci_device_id saa7134_pci_tbl[] = {
5862         {
5863                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5864                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5865                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
5866                 .subdevice    = 0x2001,
5867                 .driver_data  = SAA7134_BOARD_PROTEUS_PRO,
5868         },{
5869                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5870                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5871                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
5872                 .subdevice    = 0x2001,
5873                 .driver_data  = SAA7134_BOARD_PROTEUS_PRO,
5874         },{
5875                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5876                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5877                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
5878                 .subdevice    = 0x6752,
5879                 .driver_data  = SAA7134_BOARD_EMPRESS,
5880         },{
5881                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5882                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5883                 .subvendor    = 0x1131,
5884                 .subdevice    = 0x4e85,
5885                 .driver_data  = SAA7134_BOARD_MONSTERTV,
5886         },{
5887                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5888                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5889                 .subvendor    = 0x153b,
5890                 .subdevice    = 0x1142,
5891                 .driver_data  = SAA7134_BOARD_CINERGY400,
5892         },{
5893                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5894                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5895                 .subvendor    = 0x153b,
5896                 .subdevice    = 0x1143,
5897                 .driver_data  = SAA7134_BOARD_CINERGY600,
5898         },{
5899                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5900                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5901                 .subvendor    = 0x153b,
5902                 .subdevice    = 0x1158,
5903                 .driver_data  = SAA7134_BOARD_CINERGY600_MK3,
5904         },{
5905                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5906                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5907                 .subvendor    = 0x153b,
5908                 .subdevice    = 0x1162,
5909                 .driver_data  = SAA7134_BOARD_CINERGY400_CARDBUS,
5910         },{
5911                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5912                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5913                 .subvendor    = 0x5169,
5914                 .subdevice    = 0x0138,
5915                 .driver_data  = SAA7134_BOARD_FLYVIDEO3000_NTSC,
5916         },{
5917                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5918                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5919                 .subvendor    = 0x5168,
5920                 .subdevice    = 0x0138,
5921                 .driver_data  = SAA7134_BOARD_FLYVIDEO3000,
5922         },{
5923                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5924                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5925                 .subvendor    = 0x4e42,                         /* "Typhoon PCI Capture TV Card" Art.No. 50673 */
5926                 .subdevice    = 0x0138,
5927                 .driver_data  = SAA7134_BOARD_FLYVIDEO3000,
5928         },{
5929                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5930                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5931                 .subvendor    = 0x5168,
5932                 .subdevice    = 0x0138,
5933                 .driver_data  = SAA7134_BOARD_FLYVIDEO2000,
5934         },{
5935                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5936                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5937                 .subvendor    = 0x4e42,         /* Typhoon */
5938                 .subdevice    = 0x0138,         /* LifeView FlyTV Prime30 OEM */
5939                 .driver_data  = SAA7134_BOARD_FLYVIDEO2000,
5940         },{
5941                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5942                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5943                 .subvendor    = 0x5168,
5944                 .subdevice    = 0x0212, /* minipci, LR212 */
5945                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
5946         },{
5947                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5948                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5949                 .subvendor    = 0x14c0,
5950                 .subdevice    = 0x1212, /* minipci, LR1212 */
5951                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI2,
5952         },{
5953                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5954                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5955                 .subvendor    = 0x4e42,
5956                 .subdevice    = 0x0212, /* OEM minipci, LR212 */
5957                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
5958         },{
5959                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5960                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5961                 .subvendor    = 0x5168, /* Animation Technologies (LifeView) */
5962                 .subdevice    = 0x0214, /* Standard PCI, LR214 Rev E and earlier (SAA7135) */
5963                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM,
5964         },{
5965                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5966                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5967                 .subvendor    = 0x5168, /* Animation Technologies (LifeView) */
5968                 .subdevice    = 0x5214, /* Standard PCI, LR214 Rev F onwards (SAA7131) */
5969                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM,
5970         },{
5971                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5972                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5973                 .subvendor    = 0x1489, /* KYE */
5974                 .subdevice    = 0x0214, /* Genius VideoWonder ProTV */
5975                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM, /* is an LR214WF actually */
5976         },{
5977                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5978                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5979                 .subvendor    = 0x16be,
5980                 .subdevice    = 0x0003,
5981                 .driver_data  = SAA7134_BOARD_MD7134,
5982         },{
5983                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5984                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5985                 .subvendor    = 0x16be, /* CTX946 analog TV, HW mpeg, DVB-T */
5986                 .subdevice    = 0x5000, /* only analog TV and DVB-T for now */
5987                 .driver_data  = SAA7134_BOARD_MD7134,
5988         }, {
5989                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5990                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5991                 .subvendor    = 0x1048,
5992                 .subdevice    = 0x226b,
5993                 .driver_data  = SAA7134_BOARD_ELSA,
5994         },{
5995                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5996                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5997                 .subvendor    = 0x1048,
5998                 .subdevice    = 0x226a,
5999                 .driver_data  = SAA7134_BOARD_ELSA_500TV,
6000         },{
6001                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6002                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6003                 .subvendor    = 0x1048,
6004                 .subdevice    = 0x226c,
6005                 .driver_data  = SAA7134_BOARD_ELSA_700TV,
6006         },{
6007                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6008                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6009                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
6010                 .subdevice    = 0x4842,
6011                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
6012         },{
6013                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6014                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6015                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
6016                 .subdevice    = 0x4845,
6017                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7135,
6018         },{
6019                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6020                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6021                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
6022                 .subdevice    = 0x4830,
6023                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
6024         },{
6025                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6026                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6027                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
6028                 .subdevice    = 0x4843,
6029                 .driver_data  = SAA7134_BOARD_ASUSTEK_TVFM7133,
6030         },{
6031                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6032                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6033                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
6034                 .subdevice    = 0x4840,
6035                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
6036         },{
6037                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6038                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6039                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
6040                 .subdevice    = 0xfe01,
6041                 .driver_data  = SAA7134_BOARD_TVSTATION_RDS,
6042         },{
6043                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6044                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6045                 .subvendor    = 0x1894,
6046                 .subdevice    = 0xfe01,
6047                 .driver_data  = SAA7134_BOARD_TVSTATION_RDS,
6048         },{
6049                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6050                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6051                 .subvendor    = 0x1894,
6052                 .subdevice    = 0xa006,
6053                 .driver_data  = SAA7134_BOARD_TVSTATION_DVR,
6054         },{
6055                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6056                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6057                 .subvendor    = 0x1131,
6058                 .subdevice    = 0x7133,
6059                 .driver_data  = SAA7134_BOARD_VA1000POWER,
6060         },{
6061                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6062                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6063                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
6064                 .subdevice    = 0x2001,
6065                 .driver_data  = SAA7134_BOARD_10MOONSTVMASTER,
6066         },{
6067                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6068                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6069                 .subvendor    = 0x185b,
6070                 .subdevice    = 0xc100,
6071                 .driver_data  = SAA7134_BOARD_VIDEOMATE_TV,
6072         },{
6073                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6074                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6075                 .subvendor    = 0x185b,
6076                 .subdevice    = 0xc100,
6077                 .driver_data  = SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS,
6078         },{
6079                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6080                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6081                 .subvendor    = PCI_VENDOR_ID_MATROX,
6082                 .subdevice    = 0x48d0,
6083                 .driver_data  = SAA7134_BOARD_CRONOS_PLUS,
6084         },{
6085                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6086                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6087                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6088                 .subdevice    = 0xa70b,
6089                 .driver_data  = SAA7134_BOARD_MD2819,
6090         },{
6091                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6092                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6093                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6094                 .subdevice    = 0xa7a1,
6095                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A700_PRO,
6096         }, {
6097                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6098                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6099                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6100                 .subdevice    = 0xa7a2,
6101                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A700_HYBRID,
6102         }, {
6103                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6104                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6105                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6106                 .subdevice    = 0x2115,
6107                 .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_305,
6108         },{
6109                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6110                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6111                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6112                 .subdevice    = 0xa115,
6113                 .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_505,
6114         }, {
6115                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6116                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6117                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6118                 .subdevice    = 0x2108,
6119                 .driver_data  = SAA7134_BOARD_AVERMEDIA_305,
6120         },{
6121                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6122                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6123                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6124                 .subdevice    = 0x10ff,
6125                 .driver_data  = SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER,
6126         },{
6127                 /* AVerMedia CardBus */
6128                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6129                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6130                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6131                 .subdevice    = 0xd6ee,
6132                 .driver_data  = SAA7134_BOARD_AVERMEDIA_CARDBUS,
6133         },{
6134                 /* AVerMedia CardBus */
6135                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6136                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6137                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6138                 .subdevice    = 0xb7e9,
6139                 .driver_data  = SAA7134_BOARD_AVERMEDIA_CARDBUS_501,
6140         }, {
6141                 /* TransGear 3000TV */
6142                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6143                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6144                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6145                 .subdevice    = 0x050c,
6146                 .driver_data  = SAA7134_BOARD_TG3000TV,
6147         },{
6148                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6149                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6150                 .subvendor    = 0x11bd,
6151                 .subdevice    = 0x002b,
6152                 .driver_data  = SAA7134_BOARD_PINNACLE_PCTV_STEREO,
6153         },{
6154                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6155                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6156                 .subvendor    = 0x11bd,
6157                 .subdevice    = 0x002d,
6158                 .driver_data  = SAA7134_BOARD_PINNACLE_300I_DVBT_PAL,
6159         },{
6160                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6161                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6162                 .subvendor    = 0x1019,
6163                 .subdevice    = 0x4cb4,
6164                 .driver_data  = SAA7134_BOARD_ECS_TVP3XP,
6165         },{
6166                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6167                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6168                 .subvendor    = 0x1019,
6169                 .subdevice    = 0x4cb5,
6170                 .driver_data  = SAA7134_BOARD_ECS_TVP3XP_4CB5,
6171         },{
6172                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6173                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6174                 .subvendor    = 0x1019,
6175                 .subdevice    = 0x4cb6,
6176                 .driver_data  = SAA7134_BOARD_ECS_TVP3XP_4CB6,
6177         },{
6178                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6179                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6180                 .subvendor    = 0x12ab,
6181                 .subdevice    = 0x0800,
6182                 .driver_data  = SAA7134_BOARD_UPMOST_PURPLE_TV,
6183         },{
6184                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6185                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6186                 .subvendor    = 0x153b,
6187                 .subdevice    = 0x1152,
6188                 .driver_data  = SAA7134_BOARD_CINERGY200,
6189         },{
6190                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6191                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6192                 .subvendor    = 0x185b,
6193                 .subdevice    = 0xc100,
6194                 .driver_data  = SAA7134_BOARD_VIDEOMATE_TV_PVR,
6195         },{
6196                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6197                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6198                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6199                 .subdevice    = 0x9715,
6200                 .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_307,
6201         },{
6202                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6203                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6204                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6205                 .subdevice    = 0xa70a,
6206                 .driver_data  = SAA7134_BOARD_AVERMEDIA_307,
6207         },{
6208                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6209                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6210                 .subvendor    = 0x185b,
6211                 .subdevice    = 0xc200,
6212                 .driver_data  = SAA7134_BOARD_VIDEOMATE_GOLD_PLUS,
6213         },{
6214                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6215                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6216                 .subvendor    = 0x1540,
6217                 .subdevice    = 0x9524,
6218                 .driver_data  = SAA7134_BOARD_PROVIDEO_PV952,
6219
6220         },{
6221                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6222                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6223                 .subvendor    = 0x5168,
6224                 .subdevice    = 0x0502,                /* Cardbus version */
6225                 .driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
6226         },{
6227                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6228                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6229                 .subvendor    = 0x5168,
6230                 .subdevice    = 0x0306,                /* PCI version */
6231                 .driver_data  = SAA7134_BOARD_FLYDVBTDUO,
6232         },{
6233                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6234                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6235                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6236                 .subdevice    = 0xf31f,
6237                 .driver_data  = SAA7134_BOARD_AVERMEDIA_GO_007_FM,
6238
6239         },{
6240                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6241                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6242                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6243                 .subdevice    = 0xf11d,
6244                 .driver_data  = SAA7134_BOARD_AVERMEDIA_M135A,
6245         }, {
6246                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6247                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6248                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6249                 .subdevice    = 0x4155,
6250                 .driver_data  = SAA7134_BOARD_AVERMEDIA_M733A,
6251         }, {
6252                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6253                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6254                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6255                 .subdevice    = 0x4255,
6256                 .driver_data  = SAA7134_BOARD_AVERMEDIA_M733A,
6257         }, {
6258                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6259                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6260                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
6261                 .subdevice    = 0x2004,
6262                 .driver_data  = SAA7134_BOARD_PHILIPS_TOUGH,
6263         },{
6264                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6265                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6266                 .subvendor    = 0x1421,
6267                 .subdevice    = 0x0350,         /* PCI version */
6268                 .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
6269         },{
6270                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6271                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6272                 .subvendor    = 0x1421,
6273                 .subdevice    = 0x0351,         /* PCI version, new revision */
6274                 .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
6275         },{
6276                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6277                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6278                 .subvendor    = 0x1421,
6279                 .subdevice    = 0x0370,         /* cardbus version */
6280                 .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
6281         },{
6282                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6283                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6284                 .subvendor    = 0x1421,
6285                 .subdevice    = 0x1370,        /* cardbus version */
6286                 .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
6287
6288         },{
6289                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6290                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6291                 .subvendor    = 0x4e42,         /* Typhoon */
6292                 .subdevice    = 0x0502,         /* LifeView LR502 OEM */
6293                 .driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
6294         },{
6295                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6296                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6297                 .subvendor    = 0x1043,
6298                 .subdevice    = 0x0210,         /* mini pci NTSC version */
6299                 .driver_data  = SAA7134_BOARD_FLYTV_DIGIMATRIX,
6300         },{
6301                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6302                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6303                 .subvendor    = 0x1043,
6304                 .subdevice    = 0x0210,         /* mini pci PAL/SECAM version */
6305                 .driver_data  = SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV,
6306
6307         },{
6308                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6309                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6310                 .subvendor    = 0x0000, /* It shouldn't break anything, since subdevice id seems unique */
6311                 .subdevice    = 0x4091,
6312                 .driver_data  = SAA7134_BOARD_BEHOLD_409FM,
6313         },{
6314                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6315                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6316                 .subvendor    = 0x5456, /* GoTView */
6317                 .subdevice    = 0x7135,
6318                 .driver_data  = SAA7134_BOARD_GOTVIEW_7135,
6319         },{
6320                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6321                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6322                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
6323                 .subdevice    = 0x2004,
6324                 .driver_data  = SAA7134_BOARD_PHILIPS_EUROPA,
6325         },{
6326                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6327                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6328                 .subvendor    = 0x185b,
6329                 .subdevice    = 0xc900,
6330                 .driver_data  = SAA7134_BOARD_VIDEOMATE_DVBT_300,
6331         },{
6332                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6333                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6334                 .subvendor    = 0x185b,
6335                 .subdevice    = 0xc901,
6336                 .driver_data  = SAA7134_BOARD_VIDEOMATE_DVBT_200,
6337         },{
6338                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6339                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6340                 .subvendor    = 0x1435,
6341                 .subdevice    = 0x7350,
6342                 .driver_data  = SAA7134_BOARD_RTD_VFG7350,
6343         },{
6344                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6345                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6346                 .subvendor    = 0x1435,
6347                 .subdevice    = 0x7330,
6348                 .driver_data  = SAA7134_BOARD_RTD_VFG7330,
6349         },{
6350                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6351                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6352                 .subvendor    = 0x1461,
6353                 .subdevice    = 0x1044,
6354                 .driver_data  = SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180,
6355         },{
6356                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6357                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6358                 .subvendor    = 0x1131,
6359                 .subdevice    = 0x4ee9,
6360                 .driver_data  = SAA7134_BOARD_MONSTERTV_MOBILE,
6361         },{
6362                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6363                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6364                 .subvendor    = 0x11bd,
6365                 .subdevice    = 0x002e,
6366                 .driver_data  = SAA7134_BOARD_PINNACLE_PCTV_110i,
6367         },{
6368                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6369                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6370                 .subvendor    = 0x1043,
6371                 .subdevice    = 0x4862,
6372                 .driver_data  = SAA7134_BOARD_ASUSTeK_P7131_DUAL,
6373         },{
6374                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6375                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6376                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
6377                 .subdevice    = 0x2018,
6378                 .driver_data  = SAA7134_BOARD_PHILIPS_TIGER,
6379         },{
6380                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6381                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6382                 .subvendor    = 0x1462,
6383                 .subdevice    = 0x6231, /* tda8275a, ks003 IR */
6384                 .driver_data  = SAA7134_BOARD_MSI_TVATANYWHERE_PLUS,
6385         },{
6386                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6387                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6388                 .subvendor    = 0x1462,
6389                 .subdevice    = 0x8624, /* tda8275, ks003 IR */
6390                 .driver_data  = SAA7134_BOARD_MSI_TVATANYWHERE_PLUS,
6391         },{
6392                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6393                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6394                 .subvendor    = 0x153b,
6395                 .subdevice    = 0x1160,
6396                 .driver_data  = SAA7134_BOARD_CINERGY250PCI,
6397         },{
6398                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6399                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,  /* SAA 7131E */
6400                 .subvendor    = 0x5168,
6401                 .subdevice    = 0x0319,
6402                 .driver_data  = SAA7134_BOARD_FLYDVB_TRIO,
6403         },{
6404                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6405                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6406                 .subvendor    = 0x1461,
6407                 .subdevice    = 0x2c05,
6408                 .driver_data  = SAA7134_BOARD_AVERMEDIA_777,
6409         },{
6410                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6411                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6412                 .subvendor    = 0x5168,
6413                 .subdevice    = 0x0301,
6414                 .driver_data  = SAA7134_BOARD_FLYDVBT_LR301,
6415         },{
6416                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6417                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6418                 .subvendor    = 0x0331,
6419                 .subdevice    = 0x1421,
6420                 .driver_data  = SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331,
6421         },{
6422                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6423                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6424                 .subvendor    = 0x17de,
6425                 .subdevice    = 0x7201,
6426                 .driver_data  = SAA7134_BOARD_TEVION_DVBT_220RF,
6427         },{
6428                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6429                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6430                 .subvendor    = 0x17de,
6431                 .subdevice    = 0x7250,
6432                 .driver_data  = SAA7134_BOARD_KWORLD_DVBT_210,
6433         },{
6434                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6435                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
6436                 .subvendor    = 0x17de,
6437                 .subdevice    = 0x7350,
6438                 .driver_data  = SAA7134_BOARD_KWORLD_ATSC110,
6439         },{
6440                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6441                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
6442                 .subvendor    = 0x17de,
6443                 .subdevice    = 0x7352,
6444                 .driver_data  = SAA7134_BOARD_KWORLD_ATSC110, /* ATSC 115 */
6445         },{
6446                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6447                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
6448                 .subvendor    = 0x17de,
6449                 .subdevice    = 0xa134,
6450                 .driver_data  = SAA7134_BOARD_KWORLD_PC150U,
6451         }, {
6452                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6453                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6454                 .subvendor    = 0x1461,
6455                 .subdevice    = 0x7360,
6456                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B,
6457         },{
6458                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6459                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6460                 .subvendor    = 0x1461,
6461                 .subdevice    = 0x6360,
6462                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B1,
6463         },{
6464                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6465                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6466                 .subvendor    = 0x16be,
6467                 .subdevice    = 0x0005,
6468                 .driver_data  = SAA7134_BOARD_MD7134_BRIDGE_2,
6469         },{
6470                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6471                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6472                 .subvendor    = 0x5168,
6473                 .subdevice    = 0x0300,
6474                 .driver_data  = SAA7134_BOARD_FLYDVBS_LR300,
6475         },{
6476                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6477                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6478                 .subvendor    = 0x4e42,
6479                 .subdevice    = 0x0300,/* LR300 */
6480                 .driver_data  = SAA7134_BOARD_FLYDVBS_LR300,
6481         },{
6482                 .vendor = PCI_VENDOR_ID_PHILIPS,
6483                 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
6484                 .subvendor = 0x1489,
6485                 .subdevice = 0x0301,
6486                 .driver_data = SAA7134_BOARD_FLYDVBT_LR301,
6487         },{
6488                 .vendor = PCI_VENDOR_ID_PHILIPS,
6489                 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
6490                 .subvendor = 0x5168, /* Animation Technologies (LifeView) */
6491                 .subdevice = 0x0304,
6492                 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM,
6493         },{
6494                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6495                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6496                 .subvendor    = 0x5168,
6497                 .subdevice    = 0x3306,
6498                 .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
6499         },{
6500                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6501                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6502                 .subvendor    = 0x5168,
6503                 .subdevice    = 0x3502,  /* whats the difference to 0x3306 ?*/
6504                 .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
6505         },{
6506                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6507                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6508                 .subvendor    = 0x5168,
6509                 .subdevice    = 0x3307, /* FlyDVB-T Hybrid Mini PCI */
6510                 .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
6511         }, {
6512                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6513                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6514                 .subvendor    = 0x16be,
6515                 .subdevice    = 0x0007,
6516                 .driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
6517         },{
6518                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6519                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6520                 .subvendor    = 0x16be,
6521                 .subdevice    = 0x0008,
6522                 .driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
6523         },{
6524                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6525                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6526                 .subvendor    = 0x16be,
6527                 .subdevice    = 0x000d, /* triple CTX948_V1.1.1 */
6528                 .driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
6529         }, {
6530                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6531                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6532                 .subvendor    = 0x1461,
6533                 .subdevice    = 0x2c05,
6534                 .driver_data  = SAA7134_BOARD_AVERMEDIA_777,
6535         },{
6536                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6537                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6538                 .subvendor    = 0x1489,
6539                 .subdevice    = 0x0502,                /* Cardbus version */
6540                 .driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
6541         },{
6542                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6543                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6544                 .subvendor    = 0x0919, /* Philips Proteus PRO 2309 */
6545                 .subdevice    = 0x2003,
6546                 .driver_data  = SAA7134_BOARD_PROTEUS_2309,
6547         },{
6548                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6549                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6550                 .subvendor    = 0x1461,
6551                 .subdevice    = 0x2c00,
6552                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A16AR,
6553         },{
6554                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6555                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6556                 .subvendor    = 0x1043,
6557                 .subdevice    = 0x4860,
6558                 .driver_data  = SAA7134_BOARD_ASUS_EUROPA2_HYBRID,
6559         },{
6560                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6561                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6562                 .subvendor    = 0x11bd,
6563                 .subdevice    = 0x002f,
6564                 .driver_data  = SAA7134_BOARD_PINNACLE_PCTV_310i,
6565         },{
6566                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6567                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6568                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6569                 .subdevice    = 0x9715,
6570                 .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_507,
6571         },{
6572                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6573                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6574                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6575                 .subdevice    = 0xa11b,
6576                 .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_507UA,
6577         }, {
6578                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6579                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6580                 .subvendor    = 0x1043,
6581                 .subdevice    = 0x4876,
6582                 .driver_data  = SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA,
6583         },{
6584                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6585                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6586                 .subvendor    = 0x0070,
6587                 .subdevice    = 0x6700,
6588                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6589         },{
6590                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6591                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6592                 .subvendor    = 0x0070,
6593                 .subdevice    = 0x6701,
6594                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6595         },{
6596                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6597                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6598                 .subvendor    = 0x0070,
6599                 .subdevice    = 0x6702,
6600                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6601         },{
6602                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6603                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6604                 .subvendor    = 0x0070,
6605                 .subdevice    = 0x6703,
6606                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6607         },{
6608                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6609                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6610                 .subvendor    = 0x0070,
6611                 .subdevice    = 0x6704,
6612                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6613         },{
6614                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6615                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6616                 .subvendor    = 0x0070,
6617                 .subdevice    = 0x6705,
6618                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6619         },{
6620                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6621                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6622                 .subvendor    = 0x0070,
6623                 .subdevice    = 0x6706,
6624                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1150,
6625         },{
6626                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6627                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6628                 .subvendor    = 0x0070,
6629                 .subdevice    = 0x6707,
6630                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1120,
6631         },{
6632                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6633                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6634                 .subvendor    = 0x0070,
6635                 .subdevice    = 0x6708,
6636                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1150,
6637         },{
6638                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6639                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6640                 .subvendor    = 0x0070,
6641                 .subdevice    = 0x6709,
6642                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1120,
6643         },{
6644                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6645                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6646                 .subvendor    = 0x0070,
6647                 .subdevice    = 0x670a,
6648                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1120,
6649         },{
6650                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6651                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6652                 .subvendor    = 0x153b,
6653                 .subdevice    = 0x1172,
6654                 .driver_data  = SAA7134_BOARD_CINERGY_HT_PCMCIA,
6655         },{
6656                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6657                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6658                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
6659                 .subdevice    = 0x2342,
6660                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
6661         },{
6662                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6663                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6664                 .subvendor    = 0x1131,
6665                 .subdevice    = 0x2341,
6666                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
6667         },{
6668                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6669                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6670                 .subvendor    = 0x3016,
6671                 .subdevice    = 0x2344,
6672                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
6673         },{
6674                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6675                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6676                 .subvendor    = 0x1131,
6677                 .subdevice    = 0x230f,
6678                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV_FM,
6679         },{
6680                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6681                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6682                 .subvendor    = 0x1a7f,
6683                 .subdevice    = 0x2008,
6684                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV_FM53,
6685         }, {
6686                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6687                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6688                 .subvendor    = 0x1a7f,
6689                 .subdevice    = 0x2108,
6690                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV_FM3,
6691         }, {
6692                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6693                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6694                 .subvendor    = 0x153b,
6695                 .subdevice    = 0x1175,
6696                 .driver_data  = SAA7134_BOARD_CINERGY_HT_PCI,
6697         },{
6698                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6699                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6700                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6701                 .subdevice    = 0xf31e,
6702                 .driver_data  = SAA7134_BOARD_AVERMEDIA_M102,
6703         },{
6704                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6705                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6706                 .subvendor    = 0x4E42,         /* MSI */
6707                 .subdevice    = 0x0306,         /* TV@nywhere DUO */
6708                 .driver_data  = SAA7134_BOARD_FLYDVBTDUO,
6709         },{
6710                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6711                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6712                 .subvendor    = 0x1043,
6713                 .subdevice    = 0x4871,
6714                 .driver_data  = SAA7134_BOARD_ASUS_P7131_4871,
6715         },{
6716                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6717                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6718                 .subvendor    = 0x1043,
6719                 .subdevice    = 0x4857,         /* REV:1.00 */
6720                 .driver_data  = SAA7134_BOARD_ASUSTeK_TIGER,
6721         },{
6722                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6723                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6724                 .subvendor    = 0x0919, /* SinoVideo PCI 2309 Proteus (7134) */
6725                 .subdevice    = 0x2003, /* OEM cardbus */
6726                 .driver_data  = SAA7134_BOARD_SABRENT_TV_PCB05,
6727         },{
6728                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6729                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6730                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
6731                 .subdevice    = 0x2304,
6732                 .driver_data  = SAA7134_BOARD_10MOONSTVMASTER3,
6733         },{
6734                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6735                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6736                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6737                 .subdevice    = 0xf01d, /* AVerTV DVB-T Super 007 */
6738                 .driver_data  = SAA7134_BOARD_AVERMEDIA_SUPER_007,
6739         },{
6740                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6741                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6742                 .subvendor    = 0x0000,
6743                 .subdevice    = 0x4016,
6744                 .driver_data  = SAA7134_BOARD_BEHOLD_401,
6745         },{
6746                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6747                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6748                 .subvendor    = 0x0000,
6749                 .subdevice    = 0x4036,
6750                 .driver_data  = SAA7134_BOARD_BEHOLD_403,
6751         },{
6752                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6753                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6754                 .subvendor    = 0x0000,
6755                 .subdevice    = 0x4037,
6756                 .driver_data  = SAA7134_BOARD_BEHOLD_403FM,
6757         },{
6758                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6759                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6760                 .subvendor    = 0x0000,
6761                 .subdevice    = 0x4050,
6762                 .driver_data  = SAA7134_BOARD_BEHOLD_405,
6763         },{
6764                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6765                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6766                 .subvendor    = 0x0000,
6767                 .subdevice    = 0x4051,
6768                 .driver_data  = SAA7134_BOARD_BEHOLD_405FM,
6769         },{
6770                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6771                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6772                 .subvendor    = 0x0000,
6773                 .subdevice    = 0x4070,
6774                 .driver_data  = SAA7134_BOARD_BEHOLD_407,
6775         },{
6776                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6777                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6778                 .subvendor    = 0x0000,
6779                 .subdevice    = 0x4071,
6780                 .driver_data  = SAA7134_BOARD_BEHOLD_407FM,
6781         },{
6782                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6783                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6784                 .subvendor    = 0x0000,
6785                 .subdevice    = 0x4090,
6786                 .driver_data  = SAA7134_BOARD_BEHOLD_409,
6787         },{
6788                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6789                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6790                 .subvendor    = 0x0000,
6791                 .subdevice    = 0x505B,
6792                 .driver_data  = SAA7134_BOARD_BEHOLD_505RDS_MK5,
6793         }, {
6794                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6795                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6796                 .subvendor    = 0x0000,
6797                 .subdevice    = 0x5051,
6798                 .driver_data  = SAA7134_BOARD_BEHOLD_505RDS_MK3,
6799         },{
6800                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6801                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6802                 .subvendor    = 0x5ace,
6803                 .subdevice    = 0x5050,
6804                 .driver_data  = SAA7134_BOARD_BEHOLD_505FM,
6805         },{
6806                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6807                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6808                 .subvendor    = 0x0000,
6809                 .subdevice    = 0x5071,
6810                 .driver_data  = SAA7134_BOARD_BEHOLD_507RDS_MK3,
6811         },{
6812                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6813                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6814                 .subvendor    = 0x0000,
6815                 .subdevice    = 0x507B,
6816                 .driver_data  = SAA7134_BOARD_BEHOLD_507RDS_MK5,
6817         },{
6818                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6819                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6820                 .subvendor    = 0x5ace,
6821                 .subdevice    = 0x5070,
6822                 .driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
6823         },{
6824                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6825                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6826                 .subvendor    = 0x5ace,
6827                 .subdevice    = 0x5090,
6828                 .driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
6829         },{
6830                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6831                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6832                 .subvendor    = 0x0000,
6833                 .subdevice    = 0x5201,
6834                 .driver_data  = SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM,
6835         },{
6836                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6837                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6838                 .subvendor    = 0x5ace,
6839                 .subdevice    = 0x6070,
6840                 .driver_data  = SAA7134_BOARD_BEHOLD_607FM_MK3,
6841         },{
6842                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6843                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6844                 .subvendor    = 0x5ace,
6845                 .subdevice    = 0x6071,
6846                 .driver_data  = SAA7134_BOARD_BEHOLD_607FM_MK5,
6847         },{
6848                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6849                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6850                 .subvendor    = 0x5ace,
6851                 .subdevice    = 0x6072,
6852                 .driver_data  = SAA7134_BOARD_BEHOLD_607RDS_MK3,
6853         },{
6854                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6855                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6856                 .subvendor    = 0x5ace,
6857                 .subdevice    = 0x6073,
6858                 .driver_data  = SAA7134_BOARD_BEHOLD_607RDS_MK5,
6859         },{
6860                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6861                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6862                 .subvendor    = 0x5ace,
6863                 .subdevice    = 0x6090,
6864                 .driver_data  = SAA7134_BOARD_BEHOLD_609FM_MK3,
6865         },{
6866                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6867                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6868                 .subvendor    = 0x5ace,
6869                 .subdevice    = 0x6091,
6870                 .driver_data  = SAA7134_BOARD_BEHOLD_609FM_MK5,
6871         },{
6872                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6873                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6874                 .subvendor    = 0x5ace,
6875                 .subdevice    = 0x6092,
6876                 .driver_data  = SAA7134_BOARD_BEHOLD_609RDS_MK3,
6877         },{
6878                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6879                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6880                 .subvendor    = 0x5ace,
6881                 .subdevice    = 0x6093,
6882                 .driver_data  = SAA7134_BOARD_BEHOLD_609RDS_MK5,
6883         },{
6884                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6885                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6886                 .subvendor    = 0x5ace,
6887                 .subdevice    = 0x6190,
6888                 .driver_data  = SAA7134_BOARD_BEHOLD_M6,
6889         },{
6890                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6891                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6892                 .subvendor    = 0x5ace,
6893                 .subdevice    = 0x6193,
6894                 .driver_data  = SAA7134_BOARD_BEHOLD_M6_EXTRA,
6895         }, {
6896                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6897                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6898                 .subvendor    = 0x5ace,
6899                 .subdevice    = 0x6191,
6900                 .driver_data  = SAA7134_BOARD_BEHOLD_M63,
6901         },{
6902                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6903                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6904                 .subvendor    = 0x4e42,
6905                 .subdevice    = 0x3502,
6906                 .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
6907         }, {
6908                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6909                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6910                 .subvendor    = 0x1822, /*Twinhan Technology Co. Ltd*/
6911                 .subdevice    = 0x0022,
6912                 .driver_data  = SAA7134_BOARD_TWINHAN_DTV_DVB_3056,
6913         }, {
6914                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6915                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6916                 .subvendor    = 0x16be,
6917                 .subdevice    = 0x0010, /* Medion version CTX953_V.1.4.3 */
6918                 .driver_data  = SAA7134_BOARD_CREATIX_CTX953,
6919         }, {
6920                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6921                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6922                 .subvendor    = 0x1462, /* MSI */
6923                 .subdevice    = 0x8625, /* TV@nywhere A/D v1.1 */
6924                 .driver_data  = SAA7134_BOARD_MSI_TVANYWHERE_AD11,
6925         },{
6926                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6927                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6928                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6929                 .subdevice    = 0xf436,
6930                 .driver_data  = SAA7134_BOARD_AVERMEDIA_CARDBUS_506,
6931         }, {
6932                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6933                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6934                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6935                 .subdevice    = 0xf936,
6936                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A16D,
6937         }, {
6938                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6939                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6940                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6941                 .subdevice    = 0xa836,
6942                 .driver_data  = SAA7134_BOARD_AVERMEDIA_M115,
6943         }, {
6944                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6945                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6946                 .subvendor    = 0x185b,
6947                 .subdevice    = 0xc900,
6948                 .driver_data  = SAA7134_BOARD_VIDEOMATE_T750,
6949         }, {
6950                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6951                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
6952                 .subvendor    = 0x1421,
6953                 .subdevice    = 0x0380,
6954                 .driver_data  = SAA7134_BOARD_ADS_INSTANT_HDTV_PCI,
6955         }, {
6956                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6957                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6958                 .subvendor    = 0x5169,
6959                 .subdevice    = 0x1502,
6960                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
6961         }, {
6962                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6963                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6964                 .subvendor    = 0x5ace,
6965                 .subdevice    = 0x6290,
6966                 .driver_data  = SAA7134_BOARD_BEHOLD_H6,
6967         }, {
6968                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6969                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6970                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6971                 .subdevice    = 0xf636,
6972                 .driver_data  = SAA7134_BOARD_AVERMEDIA_M103,
6973         }, {
6974                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6975                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6976                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6977                 .subdevice    = 0xf736,
6978                 .driver_data  = SAA7134_BOARD_AVERMEDIA_M103,
6979         }, {
6980                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6981                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6982                 .subvendor    = 0x1043,
6983                 .subdevice    = 0x4878, /* REV:1.02G */
6984                 .driver_data  = SAA7134_BOARD_ASUSTeK_TIGER_3IN1,
6985         }, {
6986                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6987                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6988                 .subvendor    = 0x1043,
6989                 .subdevice    = 0x48cd,
6990                 .driver_data  = SAA7134_BOARD_ASUSTeK_PS3_100,
6991         }, {
6992                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6993                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6994                 .subvendor    = 0x17de,
6995                 .subdevice    = 0x7128,
6996                 .driver_data  = SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG,
6997         }, {
6998                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6999                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7000                 .subvendor    = 0x17de,
7001                 .subdevice    = 0xb136,
7002                 .driver_data  = SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG,
7003         }, {
7004                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7005                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7006                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
7007                 .subdevice    = 0xf31d,
7008                 .driver_data  = SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS,
7009         }, {
7010                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7011                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7012                 .subvendor    = 0x185b,
7013                 .subdevice    = 0xc900,
7014                 .driver_data  = SAA7134_BOARD_VIDEOMATE_S350,
7015         }, {
7016                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7017                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7018                 .subvendor    = 0x5ace, /* Beholder Intl. Ltd. */
7019                 .subdevice    = 0x7595,
7020                 .driver_data  = SAA7134_BOARD_BEHOLD_X7,
7021         }, {
7022                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7023                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
7024                 .subvendor    = 0x19d1, /* RoverMedia */
7025                 .subdevice    = 0x0138, /* LifeView FlyTV Prime30 OEM */
7026                 .driver_data  = SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM,
7027         }, {
7028                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7029                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7030                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
7031                 .subdevice    = 0x2004,
7032                 .driver_data  = SAA7134_BOARD_ZOLID_HYBRID_PCI,
7033         }, {
7034                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7035                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
7036                 .subvendor    = 0x1043,
7037                 .subdevice    = 0x4847,
7038                 .driver_data  = SAA7134_BOARD_ASUS_EUROPA_HYBRID,
7039         }, {
7040                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7041                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7042                 .subvendor    = 0x107d,
7043                 .subdevice    = 0x6655,
7044                 .driver_data  = SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S,
7045         }, {
7046                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7047                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7048                 .subvendor    = 0x13c2,
7049                 .subdevice    = 0x2804,
7050                 .driver_data  = SAA7134_BOARD_TECHNOTREND_BUDGET_T3000,
7051         }, {
7052                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7053                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7054                 .subvendor    = 0x5ace, /* Beholder Intl. Ltd. */
7055                 .subdevice    = 0x7190,
7056                 .driver_data  = SAA7134_BOARD_BEHOLD_H7,
7057         }, {
7058                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7059                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7060                 .subvendor    = 0x5ace, /* Beholder Intl. Ltd. */
7061                 .subdevice    = 0x7090,
7062                 .driver_data  = SAA7134_BOARD_BEHOLD_A7,
7063         }, {
7064                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7065                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7135,
7066                 .subvendor    = 0x185b,
7067                 .subdevice    = 0xc900,
7068                 .driver_data  = SAA7134_BOARD_VIDEOMATE_M1F,
7069         }, {
7070                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7071                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7072                 .subvendor    = 0x5ace,
7073                 .subdevice    = 0x5030,
7074                 .driver_data  = SAA7134_BOARD_BEHOLD_503FM,
7075         }, {
7076                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7077                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7078                 .subvendor    = 0x5ace,
7079                 .subdevice    = 0x5010,
7080                 .driver_data  = SAA7134_BOARD_BEHOLD_501,
7081         }, {
7082                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7083                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
7084                 .subvendor    = 0x17de,
7085                 .subdevice    = 0xd136,
7086                 .driver_data  = SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2,
7087         }, {
7088                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7089                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7090                 .subvendor    = 0x6000,
7091                 .subdevice    = 0x0811,
7092                 .driver_data  = SAA7134_BOARD_SENSORAY811_911,
7093         }, {
7094                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7095                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7096                 .subvendor    = 0x6000,
7097                 .subdevice    = 0x0911,
7098                 .driver_data  = SAA7134_BOARD_SENSORAY811_911,
7099         }, {
7100                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7101                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7102                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
7103                 .subdevice    = 0x2055, /* AverTV Satellite Hybrid+FM A706 */
7104                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A706,
7105         }, {
7106                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7107                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7108                 .subvendor    = 0x1905, /* WIS */
7109                 .subdevice    = 0x7007,
7110                 .driver_data  = SAA7134_BOARD_WIS_VOYAGER,
7111         }, {
7112                 /* --- boards without eeprom + subsystem ID --- */
7113                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7114                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
7115                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
7116                 .subdevice    = 0,
7117                 .driver_data  = SAA7134_BOARD_NOAUTO,
7118         },{
7119                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7120                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7121                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
7122                 .subdevice    = 0,
7123                 .driver_data  = SAA7134_BOARD_NOAUTO,
7124         },{
7125                 /* --- default catch --- */
7126                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7127                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7128                 .subvendor    = PCI_ANY_ID,
7129                 .subdevice    = PCI_ANY_ID,
7130                 .driver_data  = SAA7134_BOARD_UNKNOWN,
7131         },{
7132                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7133                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7134                 .subvendor    = PCI_ANY_ID,
7135                 .subdevice    = PCI_ANY_ID,
7136                 .driver_data  = SAA7134_BOARD_UNKNOWN,
7137         },{
7138                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7139                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
7140                 .subvendor    = PCI_ANY_ID,
7141                 .subdevice    = PCI_ANY_ID,
7142                 .driver_data  = SAA7134_BOARD_UNKNOWN,
7143         },{
7144                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7145                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7135,
7146                 .subvendor    = PCI_ANY_ID,
7147                 .subdevice    = PCI_ANY_ID,
7148                 .driver_data  = SAA7134_BOARD_UNKNOWN,
7149         },{
7150                 /* --- end of list --- */
7151         }
7152 };
7153 MODULE_DEVICE_TABLE(pci, saa7134_pci_tbl);
7154
7155 /* ----------------------------------------------------------- */
7156 /* flyvideo tweaks                                             */
7157
7158
7159 static void board_flyvideo(struct saa7134_dev *dev)
7160 {
7161         printk("%s: there are different flyvideo cards with different tuners\n"
7162                "%s: out there, you might have to use the tuner=<nr> insmod\n"
7163                "%s: option to override the default value.\n",
7164                dev->name, dev->name, dev->name);
7165 }
7166
7167 static int saa7134_xc2028_callback(struct saa7134_dev *dev,
7168                                    int command, int arg)
7169 {
7170         switch (command) {
7171         case XC2028_TUNER_RESET:
7172                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00000000);
7173                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00008000);
7174                 switch (dev->board) {
7175                 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
7176                 case SAA7134_BOARD_AVERMEDIA_M103:
7177                         saa7134_set_gpio(dev, 23, 0);
7178                         msleep(10);
7179                         saa7134_set_gpio(dev, 23, 1);
7180                 break;
7181                 case SAA7134_BOARD_AVERMEDIA_A16D:
7182                         saa7134_set_gpio(dev, 21, 0);
7183                         msleep(10);
7184                         saa7134_set_gpio(dev, 21, 1);
7185                 break;
7186                 case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
7187                         saa7134_set_gpio(dev, 18, 0);
7188                         msleep(10);
7189                         saa7134_set_gpio(dev, 18, 1);
7190                 break;
7191                 case SAA7134_BOARD_VIDEOMATE_T750:
7192                         saa7134_set_gpio(dev, 20, 0);
7193                         msleep(10);
7194                         saa7134_set_gpio(dev, 20, 1);
7195                 break;
7196                 }
7197         return 0;
7198         }
7199         return -EINVAL;
7200 }
7201
7202 static int saa7134_xc5000_callback(struct saa7134_dev *dev,
7203                                    int command, int arg)
7204 {
7205         switch (dev->board) {
7206         case SAA7134_BOARD_BEHOLD_X7:
7207         case SAA7134_BOARD_BEHOLD_H7:
7208         case SAA7134_BOARD_BEHOLD_A7:
7209                 if (command == XC5000_TUNER_RESET) {
7210                 /* Down and UP pheripherial RESET pin for reset all chips */
7211                         saa_writeb(SAA7134_SPECIAL_MODE, 0x00);
7212                         msleep(10);
7213                         saa_writeb(SAA7134_SPECIAL_MODE, 0x01);
7214                         msleep(10);
7215                 }
7216                 break;
7217         default:
7218                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x06e20000, 0x06e20000);
7219                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x06a20000, 0x06a20000);
7220                 saa_andorl(SAA7133_ANALOG_IO_SELECT >> 2, 0x02, 0x02);
7221                 saa_andorl(SAA7134_ANALOG_IN_CTRL1 >> 2, 0x81, 0x81);
7222                 saa_andorl(SAA7134_AUDIO_CLOCK0 >> 2, 0x03187de7, 0x03187de7);
7223                 saa_andorl(SAA7134_AUDIO_PLL_CTRL >> 2, 0x03, 0x03);
7224                 saa_andorl(SAA7134_AUDIO_CLOCKS_PER_FIELD0 >> 2,
7225                            0x0001e000, 0x0001e000);
7226                 break;
7227         }
7228         return 0;
7229 }
7230
7231 static int saa7134_tda8290_827x_callback(struct saa7134_dev *dev,
7232                                          int command, int arg)
7233 {
7234         u8 sync_control;
7235
7236         switch (command) {
7237         case 0: /* switch LNA gain through GPIO 22*/
7238                 saa7134_set_gpio(dev, 22, arg) ;
7239                 break;
7240         case 1: /* vsync output at GPIO22. 50 / 60Hz */
7241                 saa_andorb(SAA7134_VIDEO_PORT_CTRL3, 0x80, 0x80);
7242                 saa_andorb(SAA7134_VIDEO_PORT_CTRL6, 0x0f, 0x03);
7243                 if (arg == 1)
7244                         sync_control = 11;
7245                 else
7246                         sync_control = 17;
7247                 saa_writeb(SAA7134_VGATE_START, sync_control);
7248                 saa_writeb(SAA7134_VGATE_STOP, sync_control + 1);
7249                 saa_andorb(SAA7134_MISC_VGATE_MSB, 0x03, 0x00);
7250                 break;
7251         default:
7252                 return -EINVAL;
7253         }
7254
7255         return 0;
7256 }
7257
7258 static inline int saa7134_tda18271_hvr11x0_toggle_agc(struct saa7134_dev *dev,
7259                                                       enum tda18271_mode mode)
7260 {
7261         /* toggle AGC switch through GPIO 26 */
7262         switch (mode) {
7263         case TDA18271_ANALOG:
7264                 saa7134_set_gpio(dev, 26, 0);
7265                 break;
7266         case TDA18271_DIGITAL:
7267                 saa7134_set_gpio(dev, 26, 1);
7268                 break;
7269         default:
7270                 return -EINVAL;
7271         }
7272         return 0;
7273 }
7274
7275 static inline int saa7134_kworld_sbtvd_toggle_agc(struct saa7134_dev *dev,
7276                                                   enum tda18271_mode mode)
7277 {
7278         /* toggle AGC switch through GPIO 27 */
7279         switch (mode) {
7280         case TDA18271_ANALOG:
7281                 saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0x4000);
7282                 saa_writel(SAA7134_GPIO_GPSTATUS0 >> 2, 0x4000);
7283                 msleep(20);
7284                 break;
7285         case TDA18271_DIGITAL:
7286                 saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0x14000);
7287                 saa_writel(SAA7134_GPIO_GPSTATUS0 >> 2, 0x14000);
7288                 msleep(20);
7289                 saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0x54000);
7290                 saa_writel(SAA7134_GPIO_GPSTATUS0 >> 2, 0x54000);
7291                 msleep(30);
7292                 break;
7293         default:
7294                 return -EINVAL;
7295         }
7296         return 0;
7297 }
7298
7299 static int saa7134_kworld_pc150u_toggle_agc(struct saa7134_dev *dev,
7300                                             enum tda18271_mode mode)
7301 {
7302         switch (mode) {
7303         case TDA18271_ANALOG:
7304                 saa7134_set_gpio(dev, 18, 0);
7305                 break;
7306         case TDA18271_DIGITAL:
7307                 saa7134_set_gpio(dev, 18, 1);
7308                 msleep(30);
7309                 break;
7310         default:
7311                 return -EINVAL;
7312         }
7313         return 0;
7314 }
7315
7316 static int saa7134_tda8290_18271_callback(struct saa7134_dev *dev,
7317                                           int command, int arg)
7318 {
7319         int ret = 0;
7320
7321         switch (command) {
7322         case TDA18271_CALLBACK_CMD_AGC_ENABLE: /* 0 */
7323                 switch (dev->board) {
7324                 case SAA7134_BOARD_HAUPPAUGE_HVR1150:
7325                 case SAA7134_BOARD_HAUPPAUGE_HVR1120:
7326                 case SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2:
7327                         ret = saa7134_tda18271_hvr11x0_toggle_agc(dev, arg);
7328                         break;
7329                 case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG:
7330                         ret = saa7134_kworld_sbtvd_toggle_agc(dev, arg);
7331                         break;
7332                 case SAA7134_BOARD_KWORLD_PC150U:
7333                         ret = saa7134_kworld_pc150u_toggle_agc(dev, arg);
7334                         break;
7335                 default:
7336                         break;
7337                 }
7338                 break;
7339         default:
7340                 ret = -EINVAL;
7341                 break;
7342         }
7343         return ret;
7344 }
7345
7346 static int saa7134_tda8290_callback(struct saa7134_dev *dev,
7347                                     int command, int arg)
7348 {
7349         int ret;
7350
7351         switch (dev->board) {
7352         case SAA7134_BOARD_HAUPPAUGE_HVR1150:
7353         case SAA7134_BOARD_HAUPPAUGE_HVR1120:
7354         case SAA7134_BOARD_AVERMEDIA_M733A:
7355         case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG:
7356         case SAA7134_BOARD_KWORLD_PC150U:
7357         case SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2:
7358                 /* tda8290 + tda18271 */
7359                 ret = saa7134_tda8290_18271_callback(dev, command, arg);
7360                 break;
7361         default:
7362                 /* tda8290 + tda827x */
7363                 ret = saa7134_tda8290_827x_callback(dev, command, arg);
7364                 break;
7365         }
7366         return ret;
7367 }
7368
7369 int saa7134_tuner_callback(void *priv, int component, int command, int arg)
7370 {
7371         struct saa7134_dev *dev = priv;
7372
7373         if (dev != NULL) {
7374                 switch (dev->tuner_type) {
7375                 case TUNER_PHILIPS_TDA8290:
7376                         return saa7134_tda8290_callback(dev, command, arg);
7377                 case TUNER_XC2028:
7378                         return saa7134_xc2028_callback(dev, command, arg);
7379                 case TUNER_XC5000:
7380                         return saa7134_xc5000_callback(dev, command, arg);
7381                 }
7382         } else {
7383                 printk(KERN_ERR "saa7134: Error - device struct undefined.\n");
7384                 return -EINVAL;
7385         }
7386         return -EINVAL;
7387 }
7388 EXPORT_SYMBOL(saa7134_tuner_callback);
7389
7390 /* ----------------------------------------------------------- */
7391
7392 static void hauppauge_eeprom(struct saa7134_dev *dev, u8 *eeprom_data)
7393 {
7394         struct tveeprom tv;
7395
7396         tveeprom_hauppauge_analog(&dev->i2c_client, &tv, eeprom_data);
7397
7398         /* Make sure we support the board model */
7399         switch (tv.model) {
7400         case 67019: /* WinTV-HVR1110 (Retail, IR Blaster, hybrid, FM, SVid/Comp, 3.5mm audio in) */
7401         case 67109: /* WinTV-HVR1000 (Retail, IR Receive, analog, no FM, SVid/Comp, 3.5mm audio in) */
7402         case 67201: /* WinTV-HVR1150 (Retail, IR Receive, hybrid, FM, SVid/Comp, 3.5mm audio in) */
7403         case 67301: /* WinTV-HVR1000 (Retail, IR Receive, analog, no FM, SVid/Comp, 3.5mm audio in) */
7404         case 67209: /* WinTV-HVR1110 (Retail, IR Receive, hybrid, FM, SVid/Comp, 3.5mm audio in) */
7405         case 67559: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
7406         case 67569: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM) */
7407         case 67579: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM) */
7408         case 67589: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
7409         case 67599: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
7410         case 67651: /* WinTV-HVR1150 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
7411         case 67659: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
7412                 break;
7413         default:
7414                 printk(KERN_WARNING "%s: warning: "
7415                        "unknown hauppauge model #%d\n", dev->name, tv.model);
7416                 break;
7417         }
7418
7419         printk(KERN_INFO "%s: hauppauge eeprom: model=%d\n",
7420                dev->name, tv.model);
7421 }
7422
7423 /* ----------------------------------------------------------- */
7424
7425 int saa7134_board_init1(struct saa7134_dev *dev)
7426 {
7427         /* Always print gpio, often manufacturers encode tuner type and other info. */
7428         saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0);
7429         dev->gpio_value = saa_readl(SAA7134_GPIO_GPSTATUS0 >> 2);
7430         printk(KERN_INFO "%s: board init: gpio is %x\n", dev->name, dev->gpio_value);
7431
7432         switch (dev->board) {
7433         case SAA7134_BOARD_FLYVIDEO2000:
7434         case SAA7134_BOARD_FLYVIDEO3000:
7435         case SAA7134_BOARD_FLYVIDEO3000_NTSC:
7436                 dev->has_remote = SAA7134_REMOTE_GPIO;
7437                 board_flyvideo(dev);
7438                 break;
7439         case SAA7134_BOARD_FLYTVPLATINUM_MINI2:
7440         case SAA7134_BOARD_FLYTVPLATINUM_FM:
7441         case SAA7134_BOARD_CINERGY400:
7442         case SAA7134_BOARD_CINERGY600:
7443         case SAA7134_BOARD_CINERGY600_MK3:
7444         case SAA7134_BOARD_ECS_TVP3XP:
7445         case SAA7134_BOARD_ECS_TVP3XP_4CB5:
7446         case SAA7134_BOARD_ECS_TVP3XP_4CB6:
7447         case SAA7134_BOARD_MD2819:
7448         case SAA7134_BOARD_KWORLD_VSTREAM_XPERT:
7449         case SAA7134_BOARD_KWORLD_XPERT:
7450         case SAA7134_BOARD_AVERMEDIA_STUDIO_305:
7451         case SAA7134_BOARD_AVERMEDIA_STUDIO_505:
7452         case SAA7134_BOARD_AVERMEDIA_305:
7453         case SAA7134_BOARD_AVERMEDIA_STUDIO_307:
7454         case SAA7134_BOARD_AVERMEDIA_307:
7455         case SAA7134_BOARD_AVERMEDIA_STUDIO_507:
7456         case SAA7134_BOARD_AVERMEDIA_GO_007_FM:
7457         case SAA7134_BOARD_AVERMEDIA_777:
7458         case SAA7134_BOARD_AVERMEDIA_M135A:
7459 /*      case SAA7134_BOARD_SABRENT_SBTTVFM:  */ /* not finished yet */
7460         case SAA7134_BOARD_VIDEOMATE_TV_PVR:
7461         case SAA7134_BOARD_VIDEOMATE_GOLD_PLUS:
7462         case SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII:
7463         case SAA7134_BOARD_VIDEOMATE_M1F:
7464         case SAA7134_BOARD_VIDEOMATE_DVBT_300:
7465         case SAA7134_BOARD_VIDEOMATE_DVBT_200:
7466         case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
7467         case SAA7134_BOARD_MANLI_MTV001:
7468         case SAA7134_BOARD_MANLI_MTV002:
7469         case SAA7134_BOARD_BEHOLD_409FM:
7470         case SAA7134_BOARD_AVACSSMARTTV:
7471         case SAA7134_BOARD_GOTVIEW_7135:
7472         case SAA7134_BOARD_KWORLD_TERMINATOR:
7473         case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS:
7474         case SAA7134_BOARD_FLYDVBT_LR301:
7475         case SAA7134_BOARD_ASUSTeK_PS3_100:
7476         case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
7477         case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
7478         case SAA7134_BOARD_ASUSTeK_P7131_ANALOG:
7479         case SAA7134_BOARD_FLYDVBTDUO:
7480         case SAA7134_BOARD_PROTEUS_2309:
7481         case SAA7134_BOARD_AVERMEDIA_A16AR:
7482         case SAA7134_BOARD_ENCORE_ENLTV:
7483         case SAA7134_BOARD_ENCORE_ENLTV_FM:
7484         case SAA7134_BOARD_ENCORE_ENLTV_FM53:
7485         case SAA7134_BOARD_ENCORE_ENLTV_FM3:
7486         case SAA7134_BOARD_10MOONSTVMASTER3:
7487         case SAA7134_BOARD_BEHOLD_401:
7488         case SAA7134_BOARD_BEHOLD_403:
7489         case SAA7134_BOARD_BEHOLD_403FM:
7490         case SAA7134_BOARD_BEHOLD_405:
7491         case SAA7134_BOARD_BEHOLD_405FM:
7492         case SAA7134_BOARD_BEHOLD_407:
7493         case SAA7134_BOARD_BEHOLD_407FM:
7494         case SAA7134_BOARD_BEHOLD_409:
7495         case SAA7134_BOARD_BEHOLD_505FM:
7496         case SAA7134_BOARD_BEHOLD_505RDS_MK5:
7497         case SAA7134_BOARD_BEHOLD_505RDS_MK3:
7498         case SAA7134_BOARD_BEHOLD_507_9FM:
7499         case SAA7134_BOARD_BEHOLD_507RDS_MK3:
7500         case SAA7134_BOARD_BEHOLD_507RDS_MK5:
7501         case SAA7134_BOARD_GENIUS_TVGO_A11MCE:
7502         case SAA7134_BOARD_REAL_ANGEL_220:
7503         case SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG:
7504         case SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS:
7505         case SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM:
7506         case SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S:
7507                 dev->has_remote = SAA7134_REMOTE_GPIO;
7508                 break;
7509         case SAA7134_BOARD_FLYDVBS_LR300:
7510                 saa_writeb(SAA7134_GPIO_GPMODE3, 0x80);
7511                 saa_writeb(SAA7134_GPIO_GPSTATUS2, 0x40);
7512                 dev->has_remote = SAA7134_REMOTE_GPIO;
7513                 break;
7514         case SAA7134_BOARD_MD5044:
7515                 printk("%s: seems there are two different versions of the MD5044\n"
7516                        "%s: (with the same ID) out there.  If sound doesn't work for\n"
7517                        "%s: you try the audio_clock_override=0x200000 insmod option.\n",
7518                        dev->name,dev->name,dev->name);
7519                 break;
7520         case SAA7134_BOARD_CINERGY400_CARDBUS:
7521                 /* power-up tuner chip */
7522                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00040000, 0x00040000);
7523                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000000);
7524                 break;
7525         case SAA7134_BOARD_PINNACLE_300I_DVBT_PAL:
7526                 /* this turns the remote control chip off to work around a bug in it */
7527                 saa_writeb(SAA7134_GPIO_GPMODE1, 0x80);
7528                 saa_writeb(SAA7134_GPIO_GPSTATUS1, 0x80);
7529                 break;
7530         case SAA7134_BOARD_MONSTERTV_MOBILE:
7531                 /* power-up tuner chip */
7532                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00040000, 0x00040000);
7533                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000004);
7534                 break;
7535         case SAA7134_BOARD_FLYDVBT_DUO_CARDBUS:
7536                 /* turn the fan on */
7537                 saa_writeb(SAA7134_GPIO_GPMODE3, 0x08);
7538                 saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06);
7539                 break;
7540         case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
7541         case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
7542                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x08000000, 0x08000000);
7543                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08000000, 0x00000000);
7544                 break;
7545         case SAA7134_BOARD_AVERMEDIA_CARDBUS:
7546         case SAA7134_BOARD_AVERMEDIA_M115:
7547                 /* power-down tuner chip */
7548                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0xffffffff, 0);
7549                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0);
7550                 msleep(10);
7551                 /* power-up tuner chip */
7552                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0xffffffff, 0xffffffff);
7553                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff);
7554                 msleep(10);
7555                 break;
7556         case SAA7134_BOARD_AVERMEDIA_CARDBUS_501:
7557                 /* power-down tuner chip */
7558                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x08400000, 0x08400000);
7559                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08400000, 0);
7560                 msleep(10);
7561                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x08400000, 0x08400000);
7562                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08400000, 0x08400000);
7563                 msleep(10);
7564                 dev->has_remote = SAA7134_REMOTE_I2C;
7565                 break;
7566         case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
7567                 saa7134_set_gpio(dev, 23, 0);
7568                 msleep(10);
7569                 saa7134_set_gpio(dev, 23, 1);
7570                 dev->has_remote = SAA7134_REMOTE_I2C;
7571                 break;
7572         case SAA7134_BOARD_AVERMEDIA_M103:
7573                 saa7134_set_gpio(dev, 23, 0);
7574                 msleep(10);
7575                 saa7134_set_gpio(dev, 23, 1);
7576                 break;
7577         case SAA7134_BOARD_AVERMEDIA_A16D:
7578                 saa7134_set_gpio(dev, 21, 0);
7579                 msleep(10);
7580                 saa7134_set_gpio(dev, 21, 1);
7581                 msleep(1);
7582                 dev->has_remote = SAA7134_REMOTE_GPIO;
7583                 break;
7584         case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
7585                 /* power-down tuner chip */
7586                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x000A8004, 0x000A8004);
7587                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x000A8004, 0);
7588                 msleep(10);
7589                 /* power-up tuner chip */
7590                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x000A8004, 0x000A8004);
7591                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x000A8004, 0x000A8004);
7592                 msleep(10);
7593                 /* remote via GPIO */
7594                 dev->has_remote = SAA7134_REMOTE_GPIO;
7595                 break;
7596         case SAA7134_BOARD_RTD_VFG7350:
7597
7598                 /*
7599                  * Make sure Production Test Register at offset 0x1D1 is cleared
7600                  * to take chip out of test mode.  Clearing bit 4 (TST_EN_AOUT)
7601                  * prevents pin 105 from remaining low; keeping pin 105 low
7602                  * continually resets the SAA6752 chip.
7603                  */
7604
7605                 saa_writeb (SAA7134_PRODUCTION_TEST_MODE, 0x00);
7606                 break;
7607         case SAA7134_BOARD_HAUPPAUGE_HVR1150:
7608         case SAA7134_BOARD_HAUPPAUGE_HVR1120:
7609                 dev->has_remote = SAA7134_REMOTE_GPIO;
7610                 /* GPIO 26 high for digital, low for analog */
7611                 saa7134_set_gpio(dev, 26, 0);
7612                 msleep(1);
7613
7614                 saa7134_set_gpio(dev, 22, 0);
7615                 msleep(10);
7616                 saa7134_set_gpio(dev, 22, 1);
7617                 break;
7618         /* i2c remotes */
7619         case SAA7134_BOARD_PINNACLE_PCTV_110i:
7620         case SAA7134_BOARD_PINNACLE_PCTV_310i:
7621         case SAA7134_BOARD_UPMOST_PURPLE_TV:
7622         case SAA7134_BOARD_MSI_TVATANYWHERE_PLUS:
7623         case SAA7134_BOARD_HAUPPAUGE_HVR1110:
7624         case SAA7134_BOARD_BEHOLD_607FM_MK3:
7625         case SAA7134_BOARD_BEHOLD_607FM_MK5:
7626         case SAA7134_BOARD_BEHOLD_609FM_MK3:
7627         case SAA7134_BOARD_BEHOLD_609FM_MK5:
7628         case SAA7134_BOARD_BEHOLD_607RDS_MK3:
7629         case SAA7134_BOARD_BEHOLD_607RDS_MK5:
7630         case SAA7134_BOARD_BEHOLD_609RDS_MK3:
7631         case SAA7134_BOARD_BEHOLD_609RDS_MK5:
7632         case SAA7134_BOARD_BEHOLD_M6:
7633         case SAA7134_BOARD_BEHOLD_M63:
7634         case SAA7134_BOARD_BEHOLD_M6_EXTRA:
7635         case SAA7134_BOARD_BEHOLD_H6:
7636         case SAA7134_BOARD_BEHOLD_X7:
7637         case SAA7134_BOARD_BEHOLD_H7:
7638         case SAA7134_BOARD_BEHOLD_A7:
7639         case SAA7134_BOARD_KWORLD_PC150U:
7640                 dev->has_remote = SAA7134_REMOTE_I2C;
7641                 break;
7642         case SAA7134_BOARD_AVERMEDIA_A169_B:
7643                 printk("%s: %s: dual saa713x broadcast decoders\n"
7644                        "%s: Sorry, none of the inputs to this chip are supported yet.\n"
7645                        "%s: Dual decoder functionality is disabled for now, use the other chip.\n",
7646                        dev->name,card(dev).name,dev->name,dev->name);
7647                 break;
7648         case SAA7134_BOARD_AVERMEDIA_M102:
7649                 /* enable tuner */
7650                dev->has_remote = SAA7134_REMOTE_GPIO;
7651                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x8c040007, 0x8c040007);
7652                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0c0007cd, 0x0c0007cd);
7653                 break;
7654         case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
7655         case SAA7134_BOARD_AVERMEDIA_A700_PRO:
7656                 /* write windows gpio values */
7657                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x80040100, 0x80040100);
7658                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x80040100, 0x00040100);
7659                 break;
7660         case SAA7134_BOARD_AVERMEDIA_A706:
7661                 /* radio antenna select: tristate both as in Windows driver */
7662                 saa7134_set_gpio(dev, 12, 3);   /* TV antenna */
7663                 saa7134_set_gpio(dev, 13, 3);   /* FM antenna */
7664                 dev->has_remote = SAA7134_REMOTE_I2C;
7665                 /*
7666                  * Disable CE5039 DVB-S tuner now (SLEEP pin high) to prevent
7667                  * it from interfering with analog tuner detection
7668                  */
7669                 saa7134_set_gpio(dev, 23, 1);
7670                 break;
7671         case SAA7134_BOARD_VIDEOMATE_S350:
7672                 dev->has_remote = SAA7134_REMOTE_GPIO;
7673                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x0000C000, 0x0000C000);
7674                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0000C000, 0x0000C000);
7675                 break;
7676         case SAA7134_BOARD_AVERMEDIA_M733A:
7677                 saa7134_set_gpio(dev, 1, 1);
7678                 msleep(10);
7679                 saa7134_set_gpio(dev, 1, 0);
7680                 msleep(10);
7681                 saa7134_set_gpio(dev, 1, 1);
7682                 dev->has_remote = SAA7134_REMOTE_GPIO;
7683                 break;
7684         case SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2:
7685                 /* enable LGS-8G75 */
7686                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x0e050000, 0x0c050000);
7687                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0e050000, 0x0c050000);
7688                 break;
7689         case SAA7134_BOARD_VIDEOMATE_T750:
7690                 /* enable the analog tuner */
7691                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00008000, 0x00008000);
7692                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00008000);
7693                 break;
7694         }
7695         return 0;
7696 }
7697
7698 static void saa7134_tuner_setup(struct saa7134_dev *dev)
7699 {
7700         struct tuner_setup tun_setup;
7701         unsigned int mode_mask = T_RADIO | T_ANALOG_TV;
7702
7703         memset(&tun_setup, 0, sizeof(tun_setup));
7704         tun_setup.tuner_callback = saa7134_tuner_callback;
7705
7706         if (saa7134_boards[dev->board].radio_type != UNSET) {
7707                 tun_setup.type = saa7134_boards[dev->board].radio_type;
7708                 tun_setup.addr = saa7134_boards[dev->board].radio_addr;
7709
7710                 tun_setup.mode_mask = T_RADIO;
7711
7712                 saa_call_all(dev, tuner, s_type_addr, &tun_setup);
7713                 mode_mask &= ~T_RADIO;
7714         }
7715
7716         if ((dev->tuner_type != TUNER_ABSENT) && (dev->tuner_type != UNSET)) {
7717                 tun_setup.type = dev->tuner_type;
7718                 tun_setup.addr = dev->tuner_addr;
7719                 tun_setup.config = &saa7134_boards[dev->board].tda829x_conf;
7720                 tun_setup.tuner_callback = saa7134_tuner_callback;
7721
7722                 tun_setup.mode_mask = mode_mask;
7723
7724                 saa_call_all(dev, tuner, s_type_addr, &tun_setup);
7725         }
7726
7727         if (dev->tda9887_conf) {
7728                 struct v4l2_priv_tun_config tda9887_cfg;
7729
7730                 tda9887_cfg.tuner = TUNER_TDA9887;
7731                 tda9887_cfg.priv = &dev->tda9887_conf;
7732
7733                 saa_call_all(dev, tuner, s_config, &tda9887_cfg);
7734         }
7735
7736         if (dev->tuner_type == TUNER_XC2028) {
7737                 struct v4l2_priv_tun_config  xc2028_cfg;
7738                 struct xc2028_ctrl           ctl;
7739
7740                 memset(&xc2028_cfg, 0, sizeof(xc2028_cfg));
7741                 memset(&ctl, 0, sizeof(ctl));
7742
7743                 ctl.fname   = XC2028_DEFAULT_FIRMWARE;
7744                 ctl.max_len = 64;
7745
7746                 switch (dev->board) {
7747                 case SAA7134_BOARD_AVERMEDIA_A16D:
7748                 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
7749                 case SAA7134_BOARD_AVERMEDIA_M103:
7750                 case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
7751                         ctl.demod = XC3028_FE_ZARLINK456;
7752                         break;
7753                 default:
7754                         ctl.demod = XC3028_FE_OREN538;
7755                         ctl.mts = 1;
7756                 }
7757
7758                 xc2028_cfg.tuner = TUNER_XC2028;
7759                 xc2028_cfg.priv  = &ctl;
7760
7761                 saa_call_all(dev, tuner, s_config, &xc2028_cfg);
7762         }
7763 }
7764
7765 /* stuff which needs working i2c */
7766 int saa7134_board_init2(struct saa7134_dev *dev)
7767 {
7768         unsigned char buf;
7769         int board;
7770
7771         /* Put here the code that enables the chips that are needed
7772            for analog mode and doesn't depend on the tuner attachment.
7773            It is also a good idea to get tuner type from eeprom, etc before
7774            initializing tuner, since we can avoid loading tuner driver
7775            on devices that has TUNER_ABSENT
7776          */
7777         switch (dev->board) {
7778         case SAA7134_BOARD_BMK_MPEX_NOTUNER:
7779         case SAA7134_BOARD_BMK_MPEX_TUNER:
7780                 /* Checks if the device has a tuner at 0x60 addr
7781                    If the device doesn't have a tuner, TUNER_ABSENT
7782                    will be used at tuner_type, avoiding loading tuner
7783                    without needing it
7784                  */
7785                 dev->i2c_client.addr = 0x60;
7786                 board = (i2c_master_recv(&dev->i2c_client, &buf, 0) < 0)
7787                         ? SAA7134_BOARD_BMK_MPEX_NOTUNER
7788                         : SAA7134_BOARD_BMK_MPEX_TUNER;
7789                 if (board == dev->board)
7790                         break;
7791                 dev->board = board;
7792                 printk("%s: board type fixup: %s\n", dev->name,
7793                 saa7134_boards[dev->board].name);
7794                 dev->tuner_type = saa7134_boards[dev->board].tuner_type;
7795
7796                 break;
7797         case SAA7134_BOARD_MD7134:
7798         {
7799                 u8 subaddr;
7800                 u8 data[3];
7801                 int ret, tuner_t;
7802                 struct i2c_msg msg[] = {{.addr=0x50, .flags=0, .buf=&subaddr, .len = 1},
7803                                         {.addr=0x50, .flags=I2C_M_RD, .buf=data, .len = 3}};
7804
7805                 subaddr= 0x14;
7806                 tuner_t = 0;
7807
7808                 /* Retrieve device data from eeprom, checking for the
7809                    proper tuner_type.
7810                  */
7811                 ret = i2c_transfer(&dev->i2c_adap, msg, 2);
7812                 if (ret != 2) {
7813                         printk(KERN_ERR "EEPROM read failure\n");
7814                 } else if ((data[0] != 0) && (data[0] != 0xff)) {
7815                         /* old config structure */
7816                         subaddr = data[0] + 2;
7817                         msg[1].len = 2;
7818                         i2c_transfer(&dev->i2c_adap, msg, 2);
7819                         tuner_t = (data[0] << 8) + data[1];
7820                         switch (tuner_t){
7821                         case 0x0103:
7822                                 dev->tuner_type = TUNER_PHILIPS_PAL;
7823                                 break;
7824                         case 0x010C:
7825                                 dev->tuner_type = TUNER_PHILIPS_FM1216ME_MK3;
7826                                 break;
7827                         default:
7828                                 printk(KERN_ERR "%s Can't determine tuner type %x from EEPROM\n", dev->name, tuner_t);
7829                         }
7830                 } else if ((data[1] != 0) && (data[1] != 0xff)) {
7831                         /* new config structure */
7832                         subaddr = data[1] + 1;
7833                         msg[1].len = 1;
7834                         i2c_transfer(&dev->i2c_adap, msg, 2);
7835                         subaddr = data[0] + 1;
7836                         msg[1].len = 2;
7837                         i2c_transfer(&dev->i2c_adap, msg, 2);
7838                         tuner_t = (data[1] << 8) + data[0];
7839                         switch (tuner_t) {
7840                         case 0x0005:
7841                                 dev->tuner_type = TUNER_PHILIPS_FM1216ME_MK3;
7842                                 break;
7843                         case 0x001d:
7844                                 dev->tuner_type = TUNER_PHILIPS_FMD1216ME_MK3;
7845                                         printk(KERN_INFO "%s Board has DVB-T\n", dev->name);
7846                                 break;
7847                         default:
7848                                 printk(KERN_ERR "%s Can't determine tuner type %x from EEPROM\n", dev->name, tuner_t);
7849                         }
7850                 } else {
7851                         printk(KERN_ERR "%s unexpected config structure\n", dev->name);
7852                 }
7853
7854                 printk(KERN_INFO "%s Tuner type is %d\n", dev->name, dev->tuner_type);
7855                 break;
7856         }
7857         case SAA7134_BOARD_PHILIPS_EUROPA:
7858                 if (dev->autodetected && (dev->eedata[0x41] == 0x1c)) {
7859                         /* Reconfigure board as Snake reference design */
7860                         dev->board = SAA7134_BOARD_PHILIPS_SNAKE;
7861                         dev->tuner_type = saa7134_boards[dev->board].tuner_type;
7862                         printk(KERN_INFO "%s: Reconfigured board as %s\n",
7863                                 dev->name, saa7134_boards[dev->board].name);
7864                         break;
7865                 }
7866                 /* break intentionally omitted */
7867         case SAA7134_BOARD_VIDEOMATE_DVBT_300:
7868         case SAA7134_BOARD_ASUS_EUROPA2_HYBRID:
7869         case SAA7134_BOARD_ASUS_EUROPA_HYBRID:
7870         case SAA7134_BOARD_TECHNOTREND_BUDGET_T3000:
7871         {
7872
7873                 /* The Philips EUROPA based hybrid boards have the tuner
7874                    connected through the channel decoder. We have to make it
7875                    transparent to find it
7876                  */
7877                 u8 data[] = { 0x07, 0x02};
7878                 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
7879                 i2c_transfer(&dev->i2c_adap, &msg, 1);
7880
7881                 break;
7882         }
7883         case SAA7134_BOARD_PHILIPS_TIGER:
7884         case SAA7134_BOARD_PHILIPS_TIGER_S:
7885         {
7886                 u8 data[] = { 0x3c, 0x33, 0x60};
7887                 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
7888                 if (dev->autodetected && (dev->eedata[0x49] == 0x50)) {
7889                         dev->board = SAA7134_BOARD_PHILIPS_TIGER_S;
7890                         printk(KERN_INFO "%s: Reconfigured board as %s\n",
7891                                 dev->name, saa7134_boards[dev->board].name);
7892                 }
7893                 if (dev->board == SAA7134_BOARD_PHILIPS_TIGER_S) {
7894                         dev->tuner_type = TUNER_PHILIPS_TDA8290;
7895
7896                         data[2] = 0x68;
7897                         i2c_transfer(&dev->i2c_adap, &msg, 1);
7898                         break;
7899                 }
7900                 i2c_transfer(&dev->i2c_adap, &msg, 1);
7901                 break;
7902         }
7903         case SAA7134_BOARD_ASUSTeK_TVFM7135:
7904         /* The card below is detected as card=53, but is different */
7905                if (dev->autodetected && (dev->eedata[0x27] == 0x03)) {
7906                        dev->board = SAA7134_BOARD_ASUSTeK_P7131_ANALOG;
7907                        printk(KERN_INFO "%s: P7131 analog only, using "
7908                                                        "entry of %s\n",
7909                        dev->name, saa7134_boards[dev->board].name);
7910
7911                         /* IR init has already happened for other cards, so
7912                          * we have to catch up. */
7913                         dev->has_remote = SAA7134_REMOTE_GPIO;
7914                         saa7134_input_init1(dev);
7915                }
7916                break;
7917         case SAA7134_BOARD_HAUPPAUGE_HVR1150:
7918         case SAA7134_BOARD_HAUPPAUGE_HVR1120:
7919                 hauppauge_eeprom(dev, dev->eedata+0x80);
7920                 break;
7921         case SAA7134_BOARD_HAUPPAUGE_HVR1110:
7922                 hauppauge_eeprom(dev, dev->eedata+0x80);
7923                 /* break intentionally omitted */
7924         case SAA7134_BOARD_PINNACLE_PCTV_310i:
7925         case SAA7134_BOARD_KWORLD_DVBT_210:
7926         case SAA7134_BOARD_TEVION_DVBT_220RF:
7927         case SAA7134_BOARD_ASUSTeK_TIGER:
7928         case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
7929         case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
7930         case SAA7134_BOARD_MEDION_MD8800_QUADRO:
7931         case SAA7134_BOARD_AVERMEDIA_SUPER_007:
7932         case SAA7134_BOARD_TWINHAN_DTV_DVB_3056:
7933         case SAA7134_BOARD_CREATIX_CTX953:
7934         {
7935                 /* this is a hybrid board, initialize to analog mode
7936                  * and configure firmware eeprom address
7937                  */
7938                 u8 data[] = { 0x3c, 0x33, 0x60};
7939                 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
7940                 i2c_transfer(&dev->i2c_adap, &msg, 1);
7941                 break;
7942         }
7943         case SAA7134_BOARD_ASUSTeK_TIGER_3IN1:
7944         {
7945                 u8 data[] = { 0x3c, 0x33, 0x60};
7946                 struct i2c_msg msg = {.addr = 0x0b, .flags = 0, .buf = data,
7947                                                         .len = sizeof(data)};
7948                 i2c_transfer(&dev->i2c_adap, &msg, 1);
7949                 break;
7950         }
7951         case SAA7134_BOARD_ASUSTeK_PS3_100:
7952         {
7953                 u8 data[] = { 0x3c, 0x33, 0x60};
7954                 struct i2c_msg msg = {.addr = 0x0b, .flags = 0, .buf = data,
7955                                                        .len = sizeof(data)};
7956                 i2c_transfer(&dev->i2c_adap, &msg, 1);
7957                 break;
7958         }
7959         case SAA7134_BOARD_FLYDVB_TRIO:
7960         {
7961                 u8 temp = 0;
7962                 int rc;
7963                 u8 data[] = { 0x3c, 0x33, 0x62};
7964                 struct i2c_msg msg = {.addr=0x09, .flags=0, .buf=data, .len = sizeof(data)};
7965                 i2c_transfer(&dev->i2c_adap, &msg, 1);
7966
7967                 /*
7968                  * send weak up message to pic16C505 chip
7969                  * @ LifeView FlyDVB Trio
7970                  */
7971                 msg.buf = &temp;
7972                 msg.addr = 0x0b;
7973                 msg.len = 1;
7974                 if (1 != i2c_transfer(&dev->i2c_adap, &msg, 1)) {
7975                         printk(KERN_WARNING "%s: send wake up byte to pic16C505"
7976                                         "(IR chip) failed\n", dev->name);
7977                 } else {
7978                         msg.flags = I2C_M_RD;
7979                         rc = i2c_transfer(&dev->i2c_adap, &msg, 1);
7980                         printk(KERN_INFO "%s: probe IR chip @ i2c 0x%02x: %s\n",
7981                                    dev->name, msg.addr,
7982                                    (1 == rc) ? "yes" : "no");
7983                         if (rc == 1)
7984                                 dev->has_remote = SAA7134_REMOTE_I2C;
7985                 }
7986                 break;
7987         }
7988         case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
7989         case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
7990         {
7991                 /* initialize analog mode  */
7992                 u8 data[] = { 0x3c, 0x33, 0x6a};
7993                 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
7994                 i2c_transfer(&dev->i2c_adap, &msg, 1);
7995                 break;
7996         }
7997         case SAA7134_BOARD_CINERGY_HT_PCMCIA:
7998         case SAA7134_BOARD_CINERGY_HT_PCI:
7999         {
8000                 /* initialize analog mode */
8001                 u8 data[] = { 0x3c, 0x33, 0x68};
8002                 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
8003                 i2c_transfer(&dev->i2c_adap, &msg, 1);
8004                 break;
8005         }
8006         case SAA7134_BOARD_VIDEOMATE_DVBT_200:
8007         case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
8008                 /* The T200 and the T200A share the same pci id.  Consequently,
8009                  * we are going to query eeprom to try to find out which one we
8010                  * are actually looking at. */
8011
8012                 /* Don't do this if the board was specifically selected with an
8013                  * insmod option or if we have the default configuration T200*/
8014                 if (!dev->autodetected || (dev->eedata[0x41] == 0xd0))
8015                         break;
8016                 if (dev->eedata[0x41] == 0x02) {
8017                         /* Reconfigure board  as T200A */
8018                         dev->board = SAA7134_BOARD_VIDEOMATE_DVBT_200A;
8019                         dev->tuner_type   = saa7134_boards[dev->board].tuner_type;
8020                         dev->tda9887_conf = saa7134_boards[dev->board].tda9887_conf;
8021                         printk(KERN_INFO "%s: Reconfigured board as %s\n",
8022                                 dev->name, saa7134_boards[dev->board].name);
8023                 } else {
8024                         printk(KERN_WARNING "%s: Unexpected tuner type info: %x in eeprom\n",
8025                                 dev->name, dev->eedata[0x41]);
8026                         break;
8027                 }
8028                 break;
8029         case SAA7134_BOARD_ADS_INSTANT_HDTV_PCI:
8030         case SAA7134_BOARD_KWORLD_ATSC110:
8031         {
8032                 struct i2c_msg msg = { .addr = 0x0a, .flags = 0 };
8033                 int i;
8034                 static u8 buffer[][2] = {
8035                         { 0x10, 0x12 },
8036                         { 0x13, 0x04 },
8037                         { 0x16, 0x00 },
8038                         { 0x14, 0x04 },
8039                         { 0x17, 0x00 },
8040                 };
8041
8042                 for (i = 0; i < ARRAY_SIZE(buffer); i++) {
8043                         msg.buf = &buffer[i][0];
8044                         msg.len = ARRAY_SIZE(buffer[0]);
8045                         if (i2c_transfer(&dev->i2c_adap, &msg, 1) != 1)
8046                                 printk(KERN_WARNING
8047                                        "%s: Unable to enable tuner(%i).\n",
8048                                        dev->name, i);
8049                 }
8050                 break;
8051         }
8052         case SAA7134_BOARD_BEHOLD_H6:
8053         {
8054                 u8 data[] = { 0x09, 0x9f, 0x86, 0x11};
8055                 struct i2c_msg msg = {.addr = 0x61, .flags = 0, .buf = data,
8056                                                         .len = sizeof(data)};
8057
8058                 /* The tuner TUNER_PHILIPS_FMD1216MEX_MK3 after hardware    */
8059                 /* start has disabled IF and enabled DVB-T. When saa7134    */
8060                 /* scan I2C devices it not detect IF tda9887 and can`t      */
8061                 /* watch TV without software reboot. For solve this problem */
8062                 /* switch the tuner to analog TV mode manually.             */
8063                 if (i2c_transfer(&dev->i2c_adap, &msg, 1) != 1)
8064                                 printk(KERN_WARNING
8065                                       "%s: Unable to enable IF of the tuner.\n",
8066                                        dev->name);
8067                 break;
8068         }
8069         case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG:
8070                 saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0x4000);
8071                 saa_writel(SAA7134_GPIO_GPSTATUS0 >> 2, 0x4000);
8072
8073                 saa7134_set_gpio(dev, 27, 0);
8074                 break;
8075         } /* switch() */
8076
8077         /* initialize tuner (don't do this when resuming) */
8078         if (!dev->insuspend && TUNER_ABSENT != dev->tuner_type) {
8079                 int has_demod = (dev->tda9887_conf & TDA9887_PRESENT);
8080
8081                 /* Note: radio tuner address is always filled in,
8082                    so we do not need to probe for a radio tuner device. */
8083                 if (dev->radio_type != UNSET)
8084                         v4l2_i2c_new_subdev(&dev->v4l2_dev,
8085                                 &dev->i2c_adap, "tuner",
8086                                 dev->radio_addr, NULL);
8087                 if (has_demod)
8088                         v4l2_i2c_new_subdev(&dev->v4l2_dev,
8089                                 &dev->i2c_adap, "tuner",
8090                                 0, v4l2_i2c_tuner_addrs(ADDRS_DEMOD));
8091                 if (dev->tuner_addr == ADDR_UNSET) {
8092                         enum v4l2_i2c_tuner_type type =
8093                                 has_demod ? ADDRS_TV_WITH_DEMOD : ADDRS_TV;
8094
8095                         v4l2_i2c_new_subdev(&dev->v4l2_dev,
8096                                 &dev->i2c_adap, "tuner",
8097                                 0, v4l2_i2c_tuner_addrs(type));
8098                 } else {
8099                         v4l2_i2c_new_subdev(&dev->v4l2_dev,
8100                                 &dev->i2c_adap, "tuner",
8101                                 dev->tuner_addr, NULL);
8102                 }
8103         }
8104
8105         saa7134_tuner_setup(dev);
8106
8107         switch (dev->board) {
8108         case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
8109         case SAA7134_BOARD_AVERMEDIA_CARDBUS_501:
8110         {
8111                 struct v4l2_priv_tun_config tea5767_cfg;
8112                 struct tea5767_ctrl ctl;
8113
8114                 dev->i2c_client.addr = 0xC0;
8115                 /* set TEA5767(analog FM) defines */
8116                 memset(&ctl, 0, sizeof(ctl));
8117                 ctl.xtal_freq = TEA5767_HIGH_LO_13MHz;
8118                 tea5767_cfg.tuner = TUNER_TEA5767;
8119                 tea5767_cfg.priv  = &ctl;
8120                 saa_call_all(dev, tuner, s_config, &tea5767_cfg);
8121                 break;
8122         }
8123         } /* switch() */
8124
8125         return 0;
8126 }