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